我們的軟件采用先出先出算法,但在實(shí)際應(yīng)用中,碰到下面一個問題。入庫時,客戶的入庫金額是按實(shí)際支付金額入庫的(這種情況很常見,付供應(yīng)商一筆整數(shù))比如:
某日購進(jìn)一批礦泉水,數(shù)量9600瓶,采購單價0.65元,共支付金額 6200元(實(shí)際支付金額),在我們的系統(tǒng)中,此筆業(yè)務(wù)會重算單價,6200/9600=0.6458(4位小數(shù)),系統(tǒng)按9600、0.6458記錄入批次庫存。這樣就造成了實(shí)際支付金額與成本金額的差異:實(shí)際成本6200,批次成本金額9600*0.6458=6199.68,雖然只差幾角錢,但如果一張單采購數(shù)量比較大的情況下,差別還是蠻大的,我們碰到過客戶最大一張單差別近千元的情況,月累計誤差可上萬元,F(xiàn)客戶要求一分錢都不能差,我們該如何解決這個問題。
因?yàn)閱蝺r的原因,這筆業(yè)務(wù)在出庫時,最終的出庫成本也只有6199.68元,這樣就與入庫不平衡,客戶不允許這種情況的發(fā)生。
我的想法,批次庫存中除保留單價、數(shù)量外,還保存金額。系統(tǒng)建立一個批次庫存表,記錄每筆業(yè)務(wù)的入庫數(shù)量、入庫金額、入庫成本價、已出數(shù)量、已出金額,在商品出庫時,如果出庫數(shù)量小于批次庫存結(jié)余數(shù)量,則按入庫成本價出庫,如果此次出庫會將結(jié)余數(shù)量出完,則要考慮加上調(diào)整金額,保證這個批次的出庫總金額與入庫金額一致。例:
對應(yīng)剛才業(yè)務(wù),批次庫存為:結(jié)余數(shù)量9600 成本價0.6458 入庫金額6200 批次號1111
第一次出庫:數(shù)量4800 出庫成本價0.6458 出庫金額 3099.84,此筆業(yè)務(wù)完成后,1111批次庫存為:結(jié)余數(shù)量4800 成本價0.6458 入庫金額6200 結(jié)余金額 6200-3099.84=3100.16
第二次出庫:數(shù)量4800 出庫成本價0.6459 出庫金額3100.16(注意此處,因?yàn)榇斯P業(yè)務(wù)發(fā)生后,1111批次的庫存將出完,所以不能使用0.6458出庫,否則會造成差異0.6458*4800+0.6458*4800=6199.68,而實(shí)際入庫金額為6200,所以此筆出庫金額應(yīng)為6200-0.6458*4800=3100.16)
我認(rèn)為采用這樣的解決方法,能保證數(shù)據(jù)的平衡,不知道在具體業(yè)務(wù)中是否可行,向各位請教,謝謝。
解決這個問題應(yīng)該沒有那么復(fù)雜吧?!
導(dǎo)致你這個成本問題的原因有兩個:1、0.65*9600=6240,但是實(shí)際結(jié)算金額卻是6200,其中的40元被你的批量采購給折掉了;2、就算是折后結(jié)算金額為6200,成本為0.64583333333,而你系統(tǒng)的精度為萬分位級(小數(shù)點(diǎn)后4為)成了0.6458,使得差額較大。
所以,就有了2個解決辦法:1、采購數(shù)據(jù)分解:按照0.65*9600=6240的6240元作為入庫金額,而折下的40元作為業(yè)外收入劃入收入,這樣成本比較工整;2、加大成本的核算精度,當(dāng)然這樣會使帶給服務(wù)器更多的負(fù)擔(dān)。
個人見解,請前輩們指正!