Procházet zdrojové kódy

原库存和原成本

shish před 9 měsíci
rodič
revize
690b95015c
1 změnil soubory, kde provedl 6 přidání a 1 odebrání
  1. 6 1
      biz-ghs/order/classes/CheckOrderClass.php

+ 6 - 1
biz-ghs/order/classes/CheckOrderClass.php

@@ -352,12 +352,16 @@ class CheckOrderClass extends BaseClass
 
                     //涉及平均成本计算的,多处要修改,搜索关键词 calc_av_cost
                     if (isset($params['motherId']) && $params['motherId'] > 0) {
+                        //变动库存和变动成本
                         $changeNum = bcsub($productData->stock, $v['itemNum'], 2);
                         $changeNum = abs($changeNum);
                         $changeCost = bcmul($unitCost, $changeNum, 2);
+                        //原库存和原成本,也叫剩余成本和剩余库存
                         $oldItemStock = $productData->stock ?? 0;
-                        $oldItemCost = bcmul($oldItemStock, $unitCost, 2);
+                        $oldAvCost = $productData->avCost ?? 0;
+                        $oldItemCost = bcmul($oldItemStock, $oldAvCost, 2);
                         if ($productId == $params['motherId']) {
+                            //新库存和新成本
                             $remainCost = bcsub($oldItemCost, $changeCost, 2);
                             $remainCost = $remainCost > 0 ? $remainCost : 0;
                             $remainStock = bcsub($oldItemStock, $changeNum, 2);
@@ -368,6 +372,7 @@ class CheckOrderClass extends BaseClass
                             $productData->totalStock = $remainStock;
                             $productData->save();
                         } else {
+                            //新库存和新成本
                             $remainStock = bcadd($changeNum, $oldItemStock, 2);
                             $remainCost = bcadd($changeCost, $oldItemCost, 2);
                             if ($remainStock > 0) {