進銷存中加權價在有負數這種情況下怎麼處理 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061224180508129.html
按正常的計算方法加權價應該是
新加權價=(庫存*加權價 + 新增數量*單價)/(庫存+新增數量)
可有時庫存出現負數時還是這樣計算的話,新加權值似乎跳動很大,有時使用者也希望新增數量可以寫成負數,表示是退貨,這樣計算出來也似乎有問題,大家遇到這種情況是怎麼處理的?
價格不應該為負數的,可以這樣
新加權價=(庫存*加權價 + 新增數量絕對值*單價)/(庫存+新增數量絕對值)
這是你感覺可以這樣計算的還是在實際使用時就是這樣計算的?我沒有學過財務,拿不定注意。庫存是負數的時候要不要把庫存取個絕對值再計算呢?
按正常公式計算沒問題的,正常公式
新加權價=(庫存*加權價 + 新增數量*單價)/(庫存+新增數量)
實際上是
新加權價=(庫存總額 + 新增商品總額)/(庫存數量+新增數量)
正常情況下,庫存總額不應該為負數,如果出現負數,說明管理有問題,也就是庫存商品出現短缺或者損毀,正常計算可如實反映這一問題。至於退貨情況,新增商品為負數很正常啊,如果庫存商品不足以退貨,那麼實物帳務也無法處理(沒那多庫存商品,怎麼退?),只能等待,這並不矛盾。取絕對數肯定是錯誤的。
補充:在財務上,如果確實出現庫存商品嚴重短缺或者損毀,財務上可通過盤點審計後正常報損,並重新調整帳務的。
如按樓上說的那樣做,那是不是在退貨時要判斷庫存是不是滿足退貨數量、銷售出單時是不是要判斷銷售數量是否不超過庫存數量?如果不滿足就提示停止操作嗎,能不能讓使用者先出單回頭再來補上進貨單呢?
如按樓上說的那樣做,那是不是在退貨時要判斷庫存是不是滿足退貨數量、銷售出單時是不是要判斷銷售數量是否不超過庫存數量?如果不滿足就提示停止操作嗎,能不能讓使用者先出單回頭再來補上進貨單呢?
===================================================================================
在實際操作中,不會出現你說的情況。
如果是購進商品,企業購進100件商品,發現有問題或不適用,顯然是企業要找供貨方退貨,如果因使用或者損毀只剩下80,那麼肯定只能退掉80,其它就沒法退了,只能索賠等;如果是銷售商品,拿來退的是客戶,新增商品只能是增加。
補充:所以出現負數的情況一般只能是商品損毀、丟失或者商品串戶造成的,企業財務會通過定期或不定期盤點解決的。
謝謝阿發伯,看來我可以放心用
新加權價=(庫存*加權價 + 新增數量*單價)/(庫存+新增數量)
來計算了。