OpenERP採購的兩種不同情況

原材料採購有兩種情況,一種是先收貨,並按實際收貨數量付款;一種是先付款,對方再發貨。對於國內的供應商,通常都採用前者處理,但有些進口原材料,對方會要求先付款,或者預付部分款額,對方纔會發貨。兩種情況在OpenERP中的處理方法有所不同。

一、先收貨再付款

一般來說,倉庫入庫數量及財務付款金額都應該以採購單上的數量及金額爲準。但實際中,由於下面一些常見原因,倉庫入庫數量及付款金額不同於採購單的現象經常發生:a) 質檢不過關,實際入庫數量少於採購數量;b) 質量等級偏低,折價接收;c) 供應商贈品,實際入庫數量多於採購數量。

爲了處理採購數量及價格不同於入庫數量及價格的問題,OpenERP中推薦如下處理:

1)採購下單時候,不要基於採購單生成內部發票(Invoice),而應該選擇基於入庫數量開Invoice。系統默認是下單自動生成Invoice。

2)原材料倉庫應設置單獨的Input Location,系統默認是Input Location等同於Stock Location。採購入庫時候,先入庫到Input Location,Input Location通過Location Chain關聯到Stock Location,這樣,原材料進入Input Location的同時,系統會自動產生到Stock Location的庫間調撥單。

3)質檢後,再將庫間調撥單上的數量實際入庫。

3.1)如果入庫數量低於採購單上的數量,和採購部商量之後,有兩種可能的處理:

a) 要求供應商補足數量

這種情況,處理調撥單時候,錄入實際入庫數量,系統會自動將調撥單分拆成兩張,一張是已入庫數量,另一張是不足數量,等待供應商補充貨物之後再次入庫。並基於Input Location的接收單開具發票。

b)按不足量收貨入庫

這種情況,要先修改調撥單上的數量爲實際數量,再做入庫處理。入庫完畢後,對Input Location上的接收單做退貨處理,退掉不足量部分(不作退貨處理,則Input Location上記錄的庫存數量不正確)。並基於Input Location上的接收單開具發票,此時,由於接收單上的數量多於實際入庫數量,系統生成的發票數量不正確,應手動修改發票上的數量。

3.2)如果入庫數量多於採購單上的數量,和採購部商量之後,也有三種可能的處理:

a) 按採購單數量接收

這種情況,處理調撥單時候,錄入實際入庫數量,並基於Input Location的接收單開具發票。

b)作爲供應商贈品接收

這種情況,需要在調撥單上增加一個明細行,其源庫位是“採購損益”,目標庫位和原來的明細行一樣,數量是贈品數量,之後再做入庫處理。這樣,系統會自動生成贈品的會計憑證:

借:原材料

貸:營業費用

入庫完畢後,基於Input Location上的接收單開具發票。

c)增加貨款後接收

這種情況,要求採購部再開一張採購訂單,倉庫先按前一張訂單數量接收,並開具發票,再按後一張訂單接收多出部分,並開具發票。

4)系統自動生成的會計憑證

4.1)倉庫處理調撥單時候,系統生成會計憑證如下:

借:原材料

貸:在途物資

如果有贈品,系統另生成憑證如下

借:原材料

貸:營業費用

4.2)財務確認採購發票時候,系統生成會計憑證如下:

借:在途物資

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

貸:應付賬款

5)原材料相關會計科目的設置

5.1)原材料的Product上的Inventory Valuation爲Real Time (automated),這樣入庫、出庫的時候,系統纔會自動生成相應的會計科目。

5.2)原材料的產品分類(Product Category)上,應設置如下:

Stock Input Account:在途物資

Stock Valuation Account:原材料

Expense Account:在途物資

6)倉庫相關設置

6.1) 系統自動生成入庫、出庫會計憑證的原理是:a) 從非Internal的Location移動到Internal的Location,系統自動生成憑證;b) 不同公司的Location間移動時候,不管是不是Internal的Location,總是生成憑證;c) 生成憑證時候,借目標Location的Stock Valuation Account (Incoming) ,貸源Location的Stock Valuation Account (Outgoing),如果Location上沒有設置,則取Product上的Stock Input Account、Stock Valuation Account和Stock Output Account

6.2)增加一個Input Location,其類型爲Inventory,作爲系統默認倉庫的Input Location,並通過Location Chain關聯到默認倉庫的Stock Location。Input Location上設置會計科目:

Stock Valuation Account (Incoming):在途物資

Stock Valuation Account (Outgoing):在途物資

6.3)增加一個“採購損溢”Location,其類型爲Inventory,作爲供應商贈品入庫的源庫位,“採購損溢”庫位上設置會計科目:

Stock Valuation Account (Incoming):營業費用

Stock Valuation Account (Outgoing):營業費用

二、先付款對方再發貨

這種情況,採購下單時候,需要基於採購訂單開具發票,而不是收貨入庫時候根據收貨數量開具發票。

1)採購下單時候,系統自動生成採購發票,財務確認發票時候,系統自動生成如下會計憑證:

借:在途物資

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

貸:應付賬款

2)倉庫到貨後,和前面的情況一樣,先入質檢庫(Input Location),再將庫間調撥單上的數量實際入庫。

2.1)如果入庫數量低於採購單上的數量,和採購部商量之後,有兩種可能的處理:

a) 要求供應商補足數量

這種情況,處理調撥單時候,錄入實際入庫數量,系統會自動將調撥單分拆成兩張,一張是已入庫數量,另一張是不足數量,等待供應商補充貨物之後再次入庫。因爲系統在採購下單時候已經開機發票,因而此時不需要再開發票。

b)按不足量收貨入庫

這種情況,要先修改調撥單上的數量爲實際數量,再做入庫處理。入庫完畢後,對Input Location上的接收單做退貨處理,退掉不足量部分(不作退貨處理,則Input Location上記錄的庫存數量不正確)。注意,此時的退貨動作,需要選擇開具退貨發票(Invoicing上選擇“To be refunded/Invoiced”),因爲款項已付,需要供應商退款。

2.2)如果入庫數量多於採購單上的數量,和採購部商量之後,也有三種可能的處理:

a) 按採購單數量接收

這種情況,處理調撥單時候,錄入實際入庫數量。

b)作爲供應商贈品接收

這種情況,需要在調撥單上增加一個明細行,其源庫位是“採購損益”,目標庫位和原來的明細行一樣,數量是贈品數量,之後再做入庫處理。這樣,系統會自動生成贈品的會計憑證:

借:原材料

貸:營業費用

入庫完畢後,基於Input Location上的接收單開具發票。

c)增加貨款後接收

這種情況,要求採購部再開一張採購訂單,並開具發票。倉庫先按前一張訂單數量接收,再按後一張訂單接收多出部分。

3)經上述處理,系統自動生成的會計憑證如下:

3.1)財務確認採購發票時候,系統生成會計憑證如下:

借:在途物資

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

貸:應付賬款

3.2)倉庫處理調撥單時候,系統生成會計憑證如下:

借:原材料

貸:在途物資

如果有贈品,系統另生成憑證如下

借:原材料

貸:營業費用

如果有退貨,系統自動生成退貨發票,財務確認退貨發票時候,系統生成憑證如下:

借:應付賬款

貸:在途物資

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

4)預付款的處理

如果供應商不要求全額付款,預付部分款項即可。這個可以通過設置採購單上的Payment Term實現。

採購(purchasing):是指企業在一定的條件下從供應市場獲取產品或服務作爲企業資源, 以保證企業生產及經營活動正常開展的一項企業經營活動。根據各行業採購工作的通性和個性,可將採購管理工作分爲四類:

生產性採購,就是採購這個物品是直接爲了公司生產運營所需。而生產性採購又分爲兩類,  第1類是原材料性採購(MRP性物料採購)。所採購的此類物料是本企業所生產的產品的組成部分或中間體產品。第2類是零配件的採購(MRO性採購,就是維修,維護、修理、運作),這些零配件是爲了保障機器能正常生產運作所需要的維修、更換配件。

商貿性採購,像沃爾瑪這樣的零售商,它們的採購不屬於生產性採購,屬於商貿性採購。商貿性採購和生產性採購最大的區別是,批發商、零售商在採購物品時,採購什麼商品並不十分重要,重要的是採購的東西必須保證能賺錢。筆筆都得賺錢,不賺錢就沒有必要採購進貨。西瓜不賺錢,可以採購蘋果。但是對於生產性採購來講就不行,這個產品我們公司只能用這個原材料。我做餅乾的,只能買麪粉,不能說麪粉太貴就不買了,不買就停產了。所以生產性並不保證每次採購都賺錢,而且採購的盈利性也不能直接反應出來的。

一般日常用品性採購,像辦公用品採購,還有行政採購等。其特點是採購品類繁雜,但採購金額小。其所採購的物品主要是保障公司的正常行政辦公所用。

項目性採購,有時候,我們的採購工作屬於項目性採購,比如說買一臺設備,蓋一個車間等。項目性採購的主要特點是一次性。很少有重複性的採購。這就意味着每次採購的流程都得重新開始,以往的經驗和關係很少能用到。

一般的ERP軟件,都只支持生產性採購中的MRP性物料採購,專業採購軟件,可能支持所有類型的採購業務。OpenERP的採購,主要也是MRP性物料採購。不過,可能存在其它模塊支持別的採購管理,如辦公用品的請領、採購。本書的採購,如不特別說明,指的是MRP性物料採購。

採購的日常工作有,接收採購計劃、詢價/議價、決定、下PO(採購單)、審覈、跟催、收貨、付款、退貨。相關的單據有:請購單、採購計劃、採購單、詢價單,進貨單等。簡單的說,採購部門接收其它各部門的採購要求,定期彙總採購物品,作成採購計劃。根據採購計劃,分別和相應的供應商詢價、議價。向選定的供應商下單(通常是傳真,供應商簽字後再回傳回來)。而後跟蹤供應商及時發貨,貨到後驗貨、入庫。貨有問題的話,要求供應商換貨、退貨。

採購的財務處理,供應商的發票送至財務部門。採購部門向財務部門申請付款,或者出具供應商簽字確認過的採購單複印件至財務部門,代替付款申請。倉庫收貨後將入庫單亦送至財務部門。財務部門憑此三單(採購部門的付款申請、供應商發票、倉庫的入庫單),覈對三單一致後,記錄會計帳務,制定付款計劃,按計劃付款。

當採用OpenERP後,典型的採購流程大致是這樣的。採購員在系統中新建一張採購單,輸入要採購的物品的規格型號、價格等,而後和供應商Email或電話溝通,進一步敲定價格等。採購員提交採購單,經理審批。審批後,採購員打印採購單,傳真給供應商,供應商簽字確認,回傳。採購員點擊採購單上的“供應商通過”按鈕,表示供應商已確認。此時,系統自動生成2張單子,一是供應商憑證(Invoice),送至財務部門,財務部門據此審覈供應商發票並安排付款計劃。當財務收到供應商發票,確認供應商憑證後,系統會自動生成此採購業務對應的記賬憑證。二是收貨單(Incoming Packing List),送至倉管部門,倉管部門據此驗貨、收貨。

1)採購數量有小數點時候的採購入庫時候系統報錯問題

採購入庫時候,如果入庫數量有小數點,實際入庫數量明明和待入庫數量一樣多,系統卻報錯,不讓入庫。

原因是,帶小數點的待入庫數量和實際入庫數量,表面上看是一樣多,但計算機內部浮點數表示方法的原因,可能會差異0.00000001。OpenERP系統誤判爲待入庫數量和實際入庫數量不一致,不讓入庫。修改方法是,待入庫數量和實際入庫數量是否一致的判斷,不可嚴格判斷,而應該允許一定的“誤差”。修改代碼是:文件 addons\stock\wizard\stock_partial_picking.py,方法 do_partial中,兩個判斷語句不正確,修改如下:

if qty_in_line_uom <> wizard_line.quantity: => if abs(qty_in_line_uom - wizard_line.quantity) >= line_uom.rounding:

if qty_in_initial_uom <> without_rounding_qty: => if abs(qty_in_initial_uom - without_rounding_qty) >= line_uom.rounding:

2)當採購單位不同於採購產品的默認單位時候,系統生成的入庫會計憑證金額錯誤問題

原因在於,當採購入庫系統自動生成入庫會計憑證時候,系統計算入庫金額時候有錯誤。本來應該用入庫數量 * 入庫單位對應的單價。

但系統卻用入庫單位對應的單價 * 轉換成產品默認單位後的數量。修改方法爲:文件 addons\stock\stock.py 的方法 _get_reference_accounting_values_for_valuation 中:

reference_amount = qty * move.price_unit => reference_amount = move.product_qty * move.price_unit

3)以含稅價(增值稅)採購時候,系統生成的入庫會計憑證的金額中未扣除稅額

原因在於,以含稅價(增值稅)採購時候,採購訂單上顯示的是含稅單價,單採購入庫時候,入庫金額應以不含稅價計算。但系統在採購訂單確認時候,傳遞給採購入庫的單價卻未扣除稅,導致問題。修改辦法是:文件 addons\purchase\purchase.py的方法_prepare_order_line_move中:

'price_unit': order_line.price_unit => 'price_unit': self.pool.get('account.tax').compute_all(cr, uid, order_line.taxes_id, order_line.price_unit, 1, order.partner_address_id.id, order_line.product_id.id, order.partner_id)'total'

4)以非本位幣採購時候,採購入庫時候,系統生成的入庫會計憑證,及加權移動平均成本法計算庫存成本價格時候,系統未按本位幣金額算

原因在於,採購訂單確認時候,傳遞給採購入庫的單價是非本位幣單價,但入庫時候,系統以加權移動平均成本法計算庫存成本價格,以及自動生成採購入庫會計憑證時候,卻將該單價當作本位幣價格進行計算。修改方法是,文件 addons\stock\wizard\stock_partial_picking.py,方法_partial_move_for中,應設置入庫金額幣種爲對應採購訂單上的Pricelist的幣種:

partial_move.update(update_cost=True, **self._product_cost_for_average_update(cr, uid, move)) =>

unit_price = move.price_unit

move_currency = (move.purchase_line_id and move.purchase_line_id.order_id.pricelist_id.currency_id.id) \

or move.picking_id.company_id.currency_id.id \

or False

partial_move.update({'update_cost':True,'cost':unit_price, 'currency':move_currency,} )

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