ofbiz 業務流程剖析

ofbiz 業務流程剖析

 

 

1 製造模塊剖析

 

mrp算法

 

爲了方便說明,給一個最簡單的生產模式

 

m1-p1

 

也就是由原材料m1直接加工生產p1,比例是1:1

 

我們設m1的庫存量是1000,最低庫存200,採購提前期6天,p1的庫存是900個,最低庫存100

 

現在接到一個訂單,2月2號要2000個p1發運(ofbiz是按照發運期來算提前量的),該怎麼算呢

 

很顯然,我們立刻得出,應該生產p1 1200個

 

但我們的實際生產量並不一定是1200,我們應該先找一下已經安排下的p1的生產單,看有多少

 

好,找到一個生產單,1月30號生產完畢300個,這樣,我們只需要生產900個p1就能滿足2月2號的需求

 

那什麼時候開始生產,就需要計算製造提前期,ofbiz是按照工藝路線*數量來計算的,比設一個固定的製造提前期要精確的多,經過計算,需要1月26號開始生產

 

爲了生產p1我們需要多少m1呢,如果不考慮損耗率,應該是900個,現在m1的庫存是1000個,能滿足需要麼

 

不能,因爲m1的最低庫存是200個,也就是最多隻有800個m1可用,那我們是不是還需要採購100個

 

和生產一樣,先要查一下有沒有在1月26號前到貨的採購訂單,這次發現沒有,那我們就要給供應商發一個採購訂單,訂購600個,爲什麼是600個

 

這裏有一個採購批量的概念,也就是說採購不是你需要多少就訂多少,供應商有一個批量規則,比如m1的供應商的要求是每次訂購必須是一箱,一箱是多少呢,600個

 

ofbiz並沒有給出採購批量的算法,只是給出了接口,保證了最大的靈活性,因爲實際中,對每一個採購訂單計算批量可能導致過大的採購量

 

比如,現在mrp運算得出 1月26號採購到貨100個m1,2月2號採購到貨300個m1,2月6號採購到貨200個m1,批量是600

 

在實際中採購員會把數量彙總,給供應商發出一張1月26號到貨的採購600個m1的訂單,這張訂單應該提前6天發出去,因爲採購提前期是6天,考慮到日曆的休息日,實際應該是提前6個工作日

 

如果按每張訂單分別來,同時考慮批量,就會是1月26號採購600個m1,2月2號採購600個m1,2月6號採購600個m1

 

以上流程分析清楚了,mrp算法就是一個大循環,先把需求按產品排序,然後按llc循環,計算實際生產或採購需求量,對於需要生產和採購的就生成採購建議和生產建議

 

代碼裏也有一些小技巧決定了運行的速度,比如要避免使用遞歸函數,一遍循環就要全部算完

 

製造模塊還有一些比較細緻的設計,比如考慮產品屬性,考慮產品配置bom(這兩個功能很重要),考慮虛擬件,引入非庫存件的概念

 

以庫存件和非庫存件的概念分析一下

 

我們考慮如下的生產模式

 

m1-p1_2-p1_1-p1

 

由原材料m1加工成半成品p1_2,再由p1_2加工成p1_1,最後由p1_1加工成成品p1

 

按很多erp的設計,先是領料m1,生產p1_2,然後將生產出來的p1_2入庫,然後領料p1_2,生產p1_1,將生產出來的p1_1入庫,然後領料p1_1,生產p1

 

看上去不是很嚴謹麼

 

問題在與,在車間的實際生產中,生產出p1_2,就直接拿去生產p1_1了,根本不會做什麼入庫再領料的操作,不然,一天要輸多少單據,如果所有半成品都嚴格要求做要出入庫操作的話,就會不符合實際的車間生產情況

 

所以,非庫存件是一個非常好的設計,我們把p1_2和p1_1設置成非庫存件,可以很好的適應實際的生產管理的需要

 

當然,還有其他需要考慮的,比如,如果非庫存件生產有結餘要入庫也需要處理

 

 

2 庫存成本的計算和移動平均法

 

  庫存成本就是銷貨成本(COGS),在對組織機構設置財務選項時就需要確定COGS,一般有先進先出,後進先出,移動平均和個別計價法

  我們看一個例子

 

  2月2號購入原材料m1 1000 個,價格100 $

  2月6號,購入原材料m1 1000 個,價格 200 $

 

  2月8日,賣出原材料m1 600個,那成本是多少呢

 

  按移動平均法,成本是 (1000*100+1000*200)/2000 = 150 $

 

  按後進先出,成本是就是200 $

 

  按先進先出,成本是就是100 $

 

  有了成本,就可以立刻得到銷售利潤

 

  但是在實際的業務中,由於有進貨,退貨,各種庫存移動,物理庫存變動,因此,庫存成本的計算要比上面描述的要複雜,一般分爲即時計算和月末計算

 

  即時計算是業務發生時就立刻計算這時的移動平均價或後進先出法 先進先出的價格,並寫入銷售單據(出庫單據),對計算速度要求高,並要求軟件邏輯必須考慮全面

 

  月末計算是業務發生時不計算成本,到月末時,把入庫單據和出庫單據按時間順序排列,從頭開始計算成本,並回寫到出庫單據,一般要計算比較長的時間,有的erp單獨設置了 存貨覈算模塊

 

  對於即時計算來說,我們需要有一張表,保存着所有產品的移動平均價 當前數量

 

  比如在該表中,產品m1,當前數量 20000,當前移動平均價 150 $

 

  現在入庫m1 10000 個,價格 300 $

 

  那麼 當前移動平均價=(20000*150+10000*300)/(20000+10000)= 200 $,當前數量變成 30000

 

3 自動生成憑證

 

  主要發生在採購 銷售 和 生產 的業務發生後,自動生成財務憑證

 

  採購業務的會計分錄

 

  入庫時

 

  借:庫存商品 (1243)

   

    貸:材料採購 (1201)

 

  收到發票時

 

  借:材料採購 (1201)

     應交稅費-應交增值稅(進項稅)(21710101)

 

    貸:應付賬款 (2121)

 

 

 

  付款時

 

  借:應付賬款 (2121)

 

    貸:銀行存款 (1002)

 

 

  銷售業務的會計分錄

 

  銷售出庫時

 

  借:主營業務成本 (6401)

    貸:庫存商品 (1243)

 

 

  開出發票時

 

  借:應收賬款 (1131)

    貸:主營業務收入 (6001)

       應交稅費-應交增值稅(銷項稅)(21710105)

 

 

  對方付款時

 

  借:銀行存款(1002)

 

   貸:應收賬款 (1131)

 

  在銷售 出庫 收款時,系統都能自動生成會計憑證,金額從單據中提取,而記賬科目則需要預先定義,也就是說,你要指定你的科目表中的哪個科目對應主營業務收入,比如6001,哪個對應應收賬款,比如1131,那個對應應交增值稅(銷項稅),一般都是2171

 

  生產則涉及到 原材料科目(比如1211),在產品科目(1241),生產成本科目(4101),製造費用科目(4105)的指定

 

  由於國外erp軟件一般沒有委外加工的功能,需要做變通處理,可以設置虛擬倉庫,紀錄委外發出原材料,科目上相應的要設置 委託加工物資 科目

 

  發出材料時

 

  借:在途物資

    貸:原材料

 

  收到委外加工產品時

 

  借:委託加工物資

    貸:在途物資

 

  一個比較複雜的問題就是,商品入庫時,沒有收到發票,就會以訂單價格或標準價格入庫,入庫後下月收到發票,如果發票價格與入庫價格不一致,國外軟件一般計入庫存差異,而國內是計入 材料成本差異 科目,另外,應收應付賬款是出入庫確定,還是開票確認,也會涉及到不同的會計處理,需要增加 庫存商品-銷售及 應計負債(未稅價)等中間科目

 

 

 

==================================

 

附錄

 

ofbiz快速操作流程

 

 

1 建立一個類型爲原材料的產品m1,和類型爲成品的產品p1

 

2 建立一個角色類型爲供應商的客戶組g1,和類型爲客戶的客戶k1

 

3 設置產品m1 p1的價格和供應商價格

 

4 設置產品m1 p1的倉庫爲ofbiz的webstore,位置,並初始化庫存各6000個

 

5 建立一個銷售訂單,銷售p1給k1,店鋪爲ofbiz的電子商務店鋪,從webstore出貨

 

6 建立一個貨運計劃,交付p1

 

7 到倉庫執行分揀和驗證包裝

 

8 建立一個銷售發票,和銷售付款,與發票匹配

 

9 建立一個採購訂單,從g1採購原材料m1

 

10 到倉庫接受庫存m1

 

11 開採購發票,採購付款,與採購發票匹配

 

12 新建一個規程任務rtask1

 

13 新建一個p1的物料清單,子項爲m1,數量1,規程任務rtask1

 

14 建立一個生產單,生產p1, 選擇規程任務,然後開始,從倉庫領料m1,完成,將生產的p1入庫

 

15 到倉庫裏可以看庫存明細,也可以做倉庫調撥和貨位移動

 

16 在總帳裏關閉已有的會計期間,新建一個當月的會計期間

 

快速流程走過一遍,就可以做比較複雜的配置,比如可定製產品,虛擬,變型,特性的配置

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章