odoo-OPENERP仓库各类知识详解
轉(zhuǎn)載至:https://www.jianshu.com/p/33d8d90cbed9?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
OPENERP倉庫各類知識詳解
一、復(fù)式庫存(DOUBLE-ENTRY STOCK MANAGEMENT)和庫存移動(STOCK MOVE)
OpenERP的庫存管理采取了獨特的復(fù)式庫存(Double-Entry Stock Management)。什么是復(fù)式庫存?就是每一筆庫存變動,同時記錄庫存減少和庫存增加。例如賣了10輛自行車給客戶,OpenERP會在你的庫位(Location,這個概念后面再說)減去10輛自行車,再在客戶庫位(Customers Location)增加10輛自行車。因此,任何時候,OpenERP的所有庫位的庫存數(shù)量加起來總是為零。
系統(tǒng)中,復(fù)式庫存是通過記錄庫存移動(stock move)來實現(xiàn)的。例如,前面的賣10輛自行車給客戶,系統(tǒng)記錄的是:
產(chǎn)品 |數(shù)量 | 源庫位 | 目標(biāo)庫位
自行車 | 10 | stock | Partner Locations > Customers
這條記錄的意思是,有10輛自行車從自己的庫位(stock)轉(zhuǎn)移到了客戶的庫位(Partner Locations > Customers)。任何一筆庫存變動,系統(tǒng)中都記錄了一筆如此形式的庫存移動。在OE中,“庫存變動”的概念非常廣泛,如庫存盤點發(fā)現(xiàn)盤虧了2輛自行車,系統(tǒng)記錄的是:
產(chǎn)品 |數(shù)量 | 源庫位 | 目標(biāo)庫位
自行車 | 2 | stock | Virtual Locations > Inventory Loss
這條記錄的意思是,有2輛自行車從自己的庫位(stock)轉(zhuǎn)移到了“盤點庫位”(Virtual Locations > Inventory Loss)。反之,盤盈的話,就是從盤點庫位轉(zhuǎn)移到了stock。又如生產(chǎn),生產(chǎn)領(lǐng)料系統(tǒng)記錄庫存移動:從原料庫位轉(zhuǎn)移到生產(chǎn)庫位(Produce Location)。成品入庫系統(tǒng)記錄庫存移動:從生產(chǎn)庫位(Produce Location)轉(zhuǎn)移到成品庫位。
二、實際庫存(REAL STOCK)和虛擬庫存(VIRTUAL STOCK OR FUTURE STOCK)
系統(tǒng)中不記錄各庫位的產(chǎn)品庫存數(shù)量,只記錄庫存變動,那么,怎么知道某庫位中某產(chǎn)品的數(shù)量呢?這個其實很容易,例如自行車在庫位A中的數(shù)量,移入庫位A(庫存移動的目標(biāo)庫位是庫位A)使得自行車數(shù)量增加,反之,移出使得自行車數(shù)量減少。因此,只要統(tǒng)計自行車的庫存移動記錄中,目標(biāo)庫位為A的數(shù)量,以及源庫位為A的數(shù)量,兩者相減,即得到庫位A中自行車的庫存數(shù)量。
現(xiàn)實中,庫存分實際庫存(Real Stock)和虛擬庫存(Virtual Stock or Future Stock)。實際庫存是庫位中實有數(shù)量,虛擬庫存是庫位中的將來數(shù)量。例如,采購時候,假設(shè)今天下單,采購物資要5天后到達。那么,采購員考慮今天要不要下單,以及采購多少數(shù)量時候,他應(yīng)該參考5天后的庫存數(shù)量來決定。在未來的5天中,有一部分產(chǎn)品已銷售出去,將在5天內(nèi)出庫,還有一部分產(chǎn)品之前已下單(采購單或生產(chǎn)單),將在5天內(nèi)入庫。實際庫存,加上未來一段時間將要入庫的數(shù)量,減去未來一段時間將要出庫的數(shù)量,就是虛擬庫存。注意,虛擬庫存的數(shù)量和時間相關(guān),例如10天后的虛擬庫存顯然和5天后的虛擬庫存不同。
系統(tǒng)如何計算實際庫存和虛擬庫存呢?還是基于庫存移動記錄來計算,不過,要用到庫存移動記錄中的更多信息。系統(tǒng)中實際記錄的庫存移動(Stock Move)記錄,還包括移動狀態(tài)和計劃移動日期、實際移動日期等字段。統(tǒng)計實際庫存時,統(tǒng)計那些已經(jīng)實際發(fā)生(移動狀態(tài)為Done)的庫存移動記錄的數(shù)量即得到。計算虛擬庫存時,統(tǒng)計那些實際已經(jīng)發(fā)生的、以及將要發(fā)生(移動狀態(tài)為Valid,以及計劃移動日期在計算時間段內(nèi))但尚未發(fā)生(沒有實際移動日期)的移動記錄數(shù)量即得到。
三、倉庫(WAREHOUSE)和庫位(LOCATION)
倉庫是我們通常說的實際“倉庫”。一個實際倉庫中,通常分為若干貨區(qū),如成品區(qū)、原料區(qū)、廢品區(qū),貨區(qū)還分貨架、貨層等,貨區(qū)、貨架等形成樹狀層次結(jié)構(gòu),這個層次結(jié)構(gòu)在OE中可以用庫位建模。
在OE的倉庫(Warehouse)設(shè)置中,一個倉庫分為三個庫位(Location):存貨庫位(Location Stock)、進貨庫位(Location Input)、出貨庫位(Location Output)。
存貨庫位:倉庫中存放貨物的貨區(qū),下面還可按貨架、貨層等進一步細(xì)分。
進貨庫位:倉庫中收貨的暫存貨區(qū),例如存放已收貨但尚未驗收的臨時存放區(qū)。簡單情況,不需要臨時收貨區(qū),進貨庫位可以和存放庫位設(shè)置成同一個庫位。
出貨庫位:倉庫中發(fā)貨的暫存貨區(qū),例如存放已發(fā)貨等待裝運的臨時存放區(qū)。簡單情況,不需要臨時發(fā)貨區(qū),出貨庫位可以和存放庫位設(shè)置成同一個庫位。
庫位類似于倉庫里面的貨區(qū),用于存放產(chǎn)品(注意,OE的產(chǎn)品包括原料、消耗品、成品等一切物資)。庫存移動中記錄的源庫位、目標(biāo)庫位都是庫位,不可用倉庫。OE的庫位概念非常靈活,可以是實際庫位(庫區(qū)),也可以是虛擬庫位。虛擬庫位是物理上不存在,僅用于復(fù)式庫存的庫存移動記錄的需要。例如,盤虧時候的庫存移動記錄,目標(biāo)庫位是“盤點庫位”,該庫位就是一種虛擬庫位。OE的庫存移動概念非常廣泛,對應(yīng)的庫位也有多種類型。
供應(yīng)商庫位(Supplier Location): 用于從供應(yīng)商處收貨時的庫存移動的源庫位,是一種虛擬庫位。
視圖庫位(View): 庫位樹狀結(jié)構(gòu)的中間節(jié)點,用于組織庫位樹狀結(jié)構(gòu)。該種視圖不可在庫存移動中使用,但可用于庫存統(tǒng)計,即統(tǒng)計其下面的各個庫位的總庫存。
內(nèi)部庫位(Internal Location): 倉庫中實際存放貨物的庫位,即庫區(qū)。
客戶庫位(Customer Location): 用于供貨給客戶時的庫存移動的目標(biāo)庫位,是一種虛擬庫位。
盤點庫位(Inventory): 用于盤虧時的目標(biāo)庫位,或者盤盈時的源庫位。注意,新上OE系統(tǒng)時候也是從該庫位中“移動”產(chǎn)品至各庫位,以建立期初庫存。
補貨庫位(Procurement): 產(chǎn)品補貨單(Procurement Order,這個概念很重要,后面再講)引起的庫存移動的“臨時”源庫位或目標(biāo)庫位。當(dāng)系統(tǒng)初次生成補貨單時候,系統(tǒng)不能確定補貨的來源(不確定是通過購買還是通過生產(chǎn)補貨)。只有當(dāng)系統(tǒng)運行完補貨調(diào)度計劃(Procurement Scheduler)后,才知道補貨來源。默認(rèn)情況下,系統(tǒng)每天運行一次補貨調(diào)度計劃,當(dāng)然,你可以在任何時候手動執(zhí)行補貨調(diào)度計劃。補貨庫位用于初次生成的補貨單中的庫存移動。每當(dāng)運行完補貨調(diào)度計劃后,該庫位庫存數(shù)量應(yīng)為零。
生產(chǎn)庫位(Production): 生產(chǎn)時候,生產(chǎn)領(lǐng)料或成品入庫時候的目標(biāo)庫位或源庫位,是一種虛擬庫位。
多公司中間庫位(Transit Location for Inter-Companies Transfers): 多公司時候,用于庫存移動時候的中間庫位。
四、庫位鏈(LOCATION CHAIN)
OE的庫位間可以串聯(lián)起來形成庫位鏈。舉個簡單例子,你希望收到貨物后先進入質(zhì)檢區(qū),經(jīng)質(zhì)檢人員確認(rèn)后再入庫。要實現(xiàn)這個業(yè)務(wù),一個簡單辦法是利用庫位鏈。設(shè)置一個質(zhì)檢庫位,該庫位鏈接到你的存貨庫位,每當(dāng)貨物進入質(zhì)檢庫位時候(系統(tǒng)記錄到一個目標(biāo)庫位為質(zhì)檢庫位的庫存移動),系統(tǒng)自動生成一個從質(zhì)檢庫位到存貨庫位的移動單,要求質(zhì)檢人員確認(rèn)該單子。
庫位鏈中,從前一庫位到下一庫位的移動,有三種移動方式:
手動轉(zhuǎn)移(Manual Operation):系統(tǒng)自動生成一張到下一庫位的移動單,要求操作員確認(rèn)后才實際移動。
自動轉(zhuǎn)移(Automatic Move):系統(tǒng)自動生成一張到下一庫位的移動單,不需要操作員確認(rèn),直接移動。此時通常還會指定庫鏈提前時間(Chaining Lead Time),該時間表示,貨物進入庫位后,等待該時間,再進入下一庫位。這個概念可以用于建模物流路徑結(jié)點及其時間。
自動跳移(Automatic No Step Added):系統(tǒng)不生成到下一庫位的移動單,而是直接修改原庫存移動的目標(biāo)庫位為下一庫位。
可以利用OE靈活的庫位及庫位鏈的概念建模物流處理過程。如:
銷售發(fā)貨的多次確認(rèn):例如,系統(tǒng)默認(rèn)的銷售發(fā)貨過程是兩次確認(rèn),一次是出庫前確認(rèn)待發(fā)貨產(chǎn)品合格,其次是客戶收到貨物后聯(lián)系客戶確認(rèn)收貨無誤。第一次確認(rèn)在銷售單確認(rèn)時系統(tǒng)自動產(chǎn)生的裝箱單(Packing List,其內(nèi)容是存貨庫位Stock到出貨庫位Output的庫存移動)上確認(rèn),第二次在第一次確認(rèn)后產(chǎn)生的運輸單(Delivery Order,其內(nèi)容是從出貨庫位Output到客戶庫位Cusomer的庫存移動)上確認(rèn)。如果不需要第二次確認(rèn),那么,只要將Output -> Customer設(shè)置成自動轉(zhuǎn)移庫位鏈,則第二次將自動移動,無需確認(rèn)。
跟蹤貨物進出口的海運路徑:例如,假設(shè)某產(chǎn)品從美國公司A進口,A公司發(fā)貨后2天到達美國西岸港口,1個月后到達上海港口,5天后應(yīng)到達公司倉庫。為了跟蹤該物流過程,可以建立庫位鏈:Supplier A -> 西岸港 -> 上海港 -> Input -> Stock,并設(shè)置該庫位鏈各環(huán)節(jié)的庫鏈提前時間,則系統(tǒng)可以自動產(chǎn)生庫存移動供用戶確認(rèn)貨物是否按時到達各節(jié)點。
管理單個產(chǎn)品的物流路徑:安裝Location_Path模塊后,OE支持為每個產(chǎn)品設(shè)置特定的物流路徑。
管理出租產(chǎn)品:例如某設(shè)備A出租給某客戶A 3個月,可以為設(shè)備A設(shè)置庫位鏈:Stock -> Output -> Customer A -> Input ->Stock,并將Customer A -> Input環(huán)節(jié)的庫鏈提前時間設(shè)置為3個月。這樣,系統(tǒng)將于3個月后自動產(chǎn)生庫存移動單供用戶確認(rèn)設(shè)備A是否按時歸還。
管理委托產(chǎn)品:委托產(chǎn)品是指,存放于客戶或供應(yīng)商處,但產(chǎn)權(quán)屬于自己的產(chǎn)品,或者,存放于本公司倉庫,但產(chǎn)權(quán)不屬于本公司的產(chǎn)品。例如,對于產(chǎn)權(quán)屬于自己,但存放于客戶處的產(chǎn)品,可以在自己公司的總存貨庫位下設(shè)置一個“客戶庫位”,用于記錄該類產(chǎn)品庫存。
五、產(chǎn)品補貨(PROCUREMENT)
銷售缺貨時需要及時“補貨”,這個補貨過程在OE里叫產(chǎn)品補貨(Procurement)。OE的補貨,是通過手動或自動生成補貨單(Procurement Order)來實現(xiàn)。有多種情況會引發(fā)補貨:
1)倉管員發(fā)現(xiàn)某產(chǎn)品庫存太低,他可以手動生成一張補貨單(Procurement Order)。在產(chǎn)品畫面,右邊有個“Make Procurement”鏈接,當(dāng)查看庫存時發(fā)現(xiàn)產(chǎn)品庫存太低,可以點擊該鏈接手工填寫補貨單。
2)按庫存生產(chǎn)(Make to Stock)的產(chǎn)品,當(dāng)該產(chǎn)品庫存低于最低庫存(minimum stock rules)時,系統(tǒng)會自動生成補貨單。系統(tǒng)有一個批處理Job,該Job會定期執(zhí)行(默認(rèn)為一天一次),該Job根據(jù)設(shè)定的最低庫存規(guī)則(minimum stock rules),如果庫存不夠時,自動生成補貨單。
3)按訂單生產(chǎn)(Make to Order)的產(chǎn)品,確認(rèn)銷售訂單時候,系統(tǒng)會自動生成補貨單。
4)按庫存生產(chǎn)(Make to Stock)的產(chǎn)品,根據(jù)主生產(chǎn)計劃(master production schedule)生成補貨單。
隨著補貨單的執(zhí)行,系統(tǒng)會產(chǎn)生一系列的動作。如自動生成采購單(Purchase Order),自動生成制造單(Manufacturing Order),自動生成任務(wù)(Task)。具體采取什么動作,取決于產(chǎn)品(Product)的供應(yīng)方法(Supply Method)、補貨方法(Procurement Method)、產(chǎn)品類型(Product Type)三個屬性的設(shè)置。
OE支持兩種產(chǎn)品補貨方法:按庫存生產(chǎn)(Make to Stock)、按訂單生產(chǎn)(Make to Order)。
按庫存生產(chǎn)(Make to Stock): 表示從倉庫取貨供給客戶的產(chǎn)品,如分銷商的情況,或者季節(jié)性產(chǎn)品。
按訂單生產(chǎn)(Make to Order): 表示有銷售訂單時,根據(jù)訂單去采購或生產(chǎn)的產(chǎn)品,該種產(chǎn)品不會入庫。
OE支持兩種產(chǎn)品供應(yīng)方法:生產(chǎn)(Produce)、購買(Buy)。
生產(chǎn)(Produce): 表示該產(chǎn)品通過自己生產(chǎn)來供應(yīng),或者該服務(wù)是通過內(nèi)部資源來提供。
購買(Buy): 表示該產(chǎn)品或服務(wù)通過購買來供應(yīng)。
OE支持三種產(chǎn)品類型:可庫存品(Stockable)、消耗品(Cosumable)、服務(wù)(Service)
可庫存品(Stockable):需要計量其庫存數(shù)量的物資,通常的有形產(chǎn)品都是該類型。
消耗品(Cosumable):不需要計量其庫存數(shù)量的物資,通常是低值易耗品,如小螺釘?shù)取?/p>
服務(wù)(Service):非有形物,OE中將服務(wù)也看做產(chǎn)品。如咨詢服務(wù)、軟件開發(fā)服務(wù)。
對于可庫存產(chǎn)品,補貨單(Procurement Order)的后續(xù)動作:
補貨方法 | 供應(yīng)方法(Produce) | 供應(yīng)方法(Buy)
MTS | 等待 | 等待
MTO | 自動生成生產(chǎn)單 | 自動生成采購單
對于服務(wù)產(chǎn)品,補貨單(Procurement Order)的后續(xù)動作:
補貨方法 | 供應(yīng)方法(Produce) | 供應(yīng)方法(Buy)
MTS | - | -
MTO | 自動生成項目任務(wù) | 自動生成服務(wù)外包合同
下面舉個復(fù)雜點的例子說明OE的補貨(Procurement)過程:
1)銷售出某MTO的產(chǎn)品A
2)銷售單(SO:Sale Order)確認(rèn)時候,系統(tǒng)自動生成產(chǎn)品A的補貨單(PO:Procurement Order)
3)該PO導(dǎo)致系統(tǒng)生成產(chǎn)品A的制造單(MO:Manufacturing Order)
4)隨著該MO的執(zhí)行,系統(tǒng)會根據(jù)BOM計算產(chǎn)品零部件的補貨單
5)零部件補貨單會導(dǎo)致系統(tǒng)生成庫間移動單(INT:Internal Moves,相當(dāng)于領(lǐng)料單)
6)如果零部件是MTO的產(chǎn)品,該INT又會觸發(fā)新的PO及MO,如果該零部件是MTS的,且?guī)齑娌蛔泐I(lǐng)料數(shù)量,則系統(tǒng)將處于待料狀態(tài)(Waiting)
7)待料狀態(tài)下,等待一天后,最小庫存規(guī)則會自動引發(fā)該零部件的補貨單,該補貨單又會產(chǎn)生采購單(PO:Purchase Order)
8)采購員確認(rèn)系統(tǒng)生成的采購單,且采購零部件入庫后,待料狀態(tài)結(jié)束,生產(chǎn)可以繼續(xù)進行。
從上述補貨過程可以看出,有多種原因會導(dǎo)致補貨過程中斷(Procurement Exception),補貨單會記錄導(dǎo)致異常的原因。設(shè)置錯誤是導(dǎo)致自動補貨異常的最常見原因。
產(chǎn)品未定義BOM(No bill of materials defined for production): 這種情況,需要定義BOM,或者將產(chǎn)品的供應(yīng)方法改成購買(Buy)。
找不到采購單的供應(yīng)商(No supplier available for a purchase): 這中情況是因為沒有定義產(chǎn)品的供應(yīng)商,需要在Product界面的Supplier頁定義產(chǎn)品默認(rèn)供應(yīng)商。
找不到供應(yīng)商的地址(No address defined on the supplier partner):這種情況,需要設(shè)置該供應(yīng)商的地址,系統(tǒng)自動生成采購單時需要該地址。
庫存不足(No quantity available in stock):這種情況需要定義最小庫存規(guī)則,以使系統(tǒng)能夠自動補貨,或者手工錄入補貨單補足庫存。
六、庫存價值(STOCK VALUATION)
庫存價值計算比較難,財務(wù)經(jīng)理給出的庫存價值往往和庫管經(jīng)理給出的庫存價值相差很多,所謂庫存“兩張皮”現(xiàn)象。在OE中,非常巧妙的將“兩張皮”統(tǒng)一成了一張皮。OE中統(tǒng)一“兩張皮”的辦法是,每一筆庫存移動都會自動生成會計上的一筆庫存移動分錄。因為系統(tǒng)自動生成,避免了人為錯誤,故而會計分錄和庫存移動能夠保持一致,財務(wù)經(jīng)理從會計分錄計算的庫存價值和庫管經(jīng)理從庫存移動計算出的庫存價值總是相等的。
為了統(tǒng)一庫存價值的“兩張皮”,在OE中需要設(shè)置如下一些基礎(chǔ)參數(shù):產(chǎn)品(Product)畫面的Stock Input Account、Stock Output Account,庫位(Location)畫面的Stock Input Account、Stock Output Account。
產(chǎn)品的Stock Input Account:該產(chǎn)品入庫時,入庫分錄的貸方。產(chǎn)品入庫時候,借方通常固定是“庫存商品”。
產(chǎn)品的Stock Output Account:該產(chǎn)品出庫時,出庫分錄的借方。產(chǎn)品出庫時候,貸方通常固定是“庫存商品”。
庫位的Stock Input Account:產(chǎn)品入該庫位時,入庫分錄的借方。該參數(shù)通常是“庫存商品”下的以庫位名命名的二級科目,如“A庫”。但如果是“盤點庫位”或“生產(chǎn)庫位”,不要設(shè)置成“庫存商品”的二級科目,你可以設(shè)置該參數(shù)為“盤點庫”、“生產(chǎn)庫”,或者不設(shè)。
庫位的Stock Output Account:產(chǎn)品出該庫位時,出庫分錄的貸方。該參數(shù)通常也是“庫存商品”下的以庫位名命名的二級科目,如“A庫”。
考慮如下例子,
產(chǎn)品“自行車”的Stock Input Account=“外庫”,Stock Output Account=“外庫”
A庫位的Stock Input Account=“庫存商品 - A庫”,Stock Output Account=“庫存商品 - A庫”
盤點庫位的Stock Input Account=“盤庫”,Stock Output Account=“盤庫”
自行車單價200元,期初自行車庫存數(shù)量為0,依次發(fā)生業(yè)務(wù):1)采購入庫自行車10輛,入A庫位;2)銷售出庫自行車5輛,從A庫出;3)月末盤點盤虧1輛自行車。
當(dāng)確認(rèn)上述庫存移動時候,系統(tǒng)會自動生成如下會計分錄:
1)采購入庫
產(chǎn)品 |數(shù)量 | 源庫位 | 目標(biāo)庫位
自行車 | 10 | Supplier | A庫位
會計分錄
借:庫存商品 - A庫 2000
貸:外庫 2000
2)銷售出庫
產(chǎn)品 |數(shù)量 | 源庫位 | 目標(biāo)庫位
自行車 | 5 | A庫位 | Customer
會計分錄
借:外庫 1000
貸:庫存商品 - A庫 1000
3)盤虧
產(chǎn)品 |數(shù)量 | 源庫位 | 目標(biāo)庫位
自行車 | 1 | A庫位 | 盤點庫位
會計分錄
借:盤庫 200
貸:庫存商品 - A庫 200
從系統(tǒng)的記錄中,庫管經(jīng)理很容易得出結(jié)論:A庫位4輛(10輛-5輛-1輛),盤點庫位1輛。
財務(wù)經(jīng)理很容易得出結(jié)論:A庫位價值800元(2000元-1000元-200元),盤點庫位價值200元。
盤點庫位的價值表示盤虧了200元。
作者:luohuayong
鏈接:https://www.jianshu.com/p/33d8d90cbed9
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
總結(jié)
以上是生活随笔為你收集整理的odoo-OPENERP仓库各类知识详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 空指针入栈问题
- 下一篇: VS2012安装教程