shish il y a 3 ans
Parent
commit
ac291f512a

+ 12 - 25
biz-ghs/order/classes/StockInOrderClass.php

@@ -74,7 +74,7 @@ class StockInOrderClass extends BaseClass
         $data['adminId'] = $outOrderData['adminId'];
         $data['bigNum'] = $outOrderData['bigNum'];
         $data['smallNum'] = $outOrderData['smallNum'];
-        $data['price'] = $outOrderData['price'];
+        $data['price'] = $outOrderData['price'] ?? 0;
         $data['remark'] = $outOrderData['remark'];
         $ghsItemInfo = $outOrderData['itemInfo'];
         $shopId = $outOrderData['inShopId'] ?? 0;
@@ -156,8 +156,7 @@ class StockInOrderClass extends BaseClass
         if (empty($itemInfo)) {
             util::fail("订单异常");
         }
-        $inProductMapData = ProductClass::getProductMapData($itemInfo);
-        $inTotalCost = 0;
+        $totalCost = $orderData['price'] ?? 0;
         $dayItem = [];
         $time = date("Ymd");
         foreach ($itemInfo as $k => $v) {
@@ -165,11 +164,7 @@ class StockInOrderClass extends BaseClass
             $itemInfo[$k]['oldStock'] = $stockInfo['oldStock'];
             $itemInfo[$k]['itemStock'] = $stockInfo['oldStock'];
             $itemInfo[$k]['newStock'] = $stockInfo['newStock'];
-            $inPId = $v['productId'];
-            $inNum = $v['itemNum'];
-            $cost = $inProductMapData[$inPId]['cost'] ?? 0;
 
-            $inTotalCost = bcadd($inTotalCost, bcmul($inNum, $cost, 2), 2);
             $dayItem[] = ['mainId' => $v['mainId'], 'itemId' => $v['productId'], 'ptItemId' => $v['itemId'], 'time' => $time];
         }
 
@@ -192,14 +187,6 @@ class StockInOrderClass extends BaseClass
         if (empty($outOrderInfoItem)) {
             util::fail('没有出库单信息');
         }
-        $outTotalCost = 0;
-        $outProductData = ProductClass::getProductMapData($outOrderInfoItem);
-        foreach ($outOrderInfoItem as $v) {
-            $pId = $v['productId'];
-            $num = $v['itemNum'];
-            $cost = $outProductData[$pId]['cost'] ?? 0; //成本
-            $outTotalCost = bcadd($outTotalCost, bcmul($num, $cost, 2), 2);
-        }
         $outEvent = '出库';
         $outCapitalType = dict::getDict('capitalType', 'ghsCheckOut', 'id');
 
@@ -212,8 +199,8 @@ class StockInOrderClass extends BaseClass
         if (empty($main)) {
             util::fail('没有main信息');
         }
-        $outCurrentTotalIncome = bcadd($main->totalIncome, $outTotalCost, 2);
-        $currentTotalStockOut = bcadd($main->totalStockOut, $outTotalCost, 2);
+        $outCurrentTotalIncome = bcadd($main->totalIncome, $totalCost, 2);
+        $currentTotalStockOut = bcadd($main->totalStockOut, $totalCost, 2);
         $main->totalIncome = $outCurrentTotalIncome;
         $main->totalStockOut = $currentTotalStockOut;
         $main->save();
@@ -222,7 +209,7 @@ class StockInOrderClass extends BaseClass
             'io' => 1,
             'totalIncome' => $outCurrentTotalIncome,
             'payWay' => $payWay,
-            'amount' => $outTotalCost,
+            'amount' => $totalCost,
             'sjId' => $outOrderInfo['sjId'] ?? 0,
             'shopId' => $outShopId,
             'event' => $outEvent,
@@ -230,9 +217,9 @@ class StockInOrderClass extends BaseClass
         ];
         ShopCapitalClass::addCapital($capitalData);
         //每天和每月收入统计,出库也算收入
-        StatIncomeClass::updateOrInsert($main, $shop, $outTotalCost);
+        StatIncomeClass::updateOrInsert($main, $shop, $totalCost);
         //出库每日和每月统计
-        StatStockOutClass::replace($main, $shop, $outTotalCost);
+        StatStockOutClass::replace($main, $shop, $totalCost);
         //入库门店
         $inEvent = '入库';
         $inCapitalType = dict::getDict('capitalType', 'ghsCheckIn', 'id');
@@ -245,9 +232,9 @@ class StockInOrderClass extends BaseClass
         if (empty($inMain)) {
             util::fail('没有main信息');
         }
-        $inCurrentTotalExpend = bcadd($inMain->totalExpend, $inTotalCost, 2);
+        $inCurrentTotalExpend = bcadd($inMain->totalExpend, $totalCost, 2);
         $inMain->totalExpend = $inCurrentTotalExpend;
-        $currentTotalStockIn = bcadd($inMain->totalStockIn, $inTotalCost, 2);
+        $currentTotalStockIn = bcadd($inMain->totalStockIn, $totalCost, 2);
         $inMain->totalStockIn = $currentTotalStockIn;
         $inMain->save();
         $capitalData = [
@@ -255,7 +242,7 @@ class StockInOrderClass extends BaseClass
             'io' => 0,
             'totalExpend' => $inCurrentTotalExpend,
             'payWay' => $payWay,
-            'amount' => $inTotalCost,
+            'amount' => $totalCost,
             'sjId' => $orderData['sjId'] ?? 0,
             'shopId' => $shopId,
             'event' => $inEvent,
@@ -263,9 +250,9 @@ class StockInOrderClass extends BaseClass
         ];
         ShopCapitalClass::addCapital($capitalData);
         //当天和当月支出统计,调拨入库算支出
-        StatOutClass::updateOrInsert($main, $shop, $inTotalCost);
+        StatOutClass::updateOrInsert($main, $shop, $totalCost);
         //入库每天和每月统计
-        StatStockInClass::replace($inMain, $inShop, $inTotalCost);
+        StatStockInClass::replace($inMain, $inShop, $totalCost);
     }
 
     //2021.1.23 lqh 订单详情

+ 9 - 4
biz-ghs/order/classes/StockOutOrderClass.php

@@ -48,8 +48,7 @@ class StockOutOrderClass extends BaseClass
         $outShopId = $data['outShopId'] ?? 0;
         $outMainId = $data['outMainId'] ?? 0;
 
-
-        $order = self::add($data);
+        $order = self::add($data, true);
         //先减库存,若取消出库则加回来
         foreach ($ghsItemInfo as $k => $v) {
             $stockInfo = ProductClass::decreaseStock($v['productId'], $v['bigNum'], $v['smallNum'], true);
@@ -59,11 +58,17 @@ class StockOutOrderClass extends BaseClass
 
         //写入详情表
         $batchData = self::groupOrderItem($ghsItemInfo, $orderSn);
+        $totalCost = 0;
         foreach ($batchData as $outKey => $outVal) {
             $batchData[$outKey]['mainId'] = $outMainId;
             $batchData[$outKey]['shopId'] = $outShopId;
+            $currentCost = $outVal['itemPrice'] ?? 0;
+            $totalCost = bcadd($totalCost, $currentCost, 2);
         }
         StockOutOrderItemClass::batchAddOrderItem($batchData);
+        //记录总成本 ssh 20221113
+        $order->price = $totalCost;
+        $order->save();
 
         $orderData = self::getOrderDetail($orderSn, $data['outShopId']);
         $orderData['shopId'] = $outShopId;
@@ -112,7 +117,7 @@ class StockOutOrderClass extends BaseClass
                 util::fail("订单异常");
             }
             $orderData['shopId'] = $shopId;
-            //写入一条数据到入库门店的入库订单表生成入库订单号
+            //写入一条数据到入库门店的入库订单表生成入库订单号
             $inOrderData = StockInOrderClass::addOrder($orderData);
             $inOrderSn = $inOrderData['orderSn'];
             //更新入库订单号
@@ -241,7 +246,7 @@ class StockOutOrderClass extends BaseClass
             $tmp['itemStock'] = $v['oldStock'];//当时库存
             $tmp['newStock'] = $v['newStock'];//当时库存
             $tmp['itemNum'] = ProductClass::mergeItemNum($v['bigNum'], $v['smallNum'], $unitNum);// 数量
-            $tmp['itemPrice'] = $productData[$productId]['price'] ?? 0; //当时售卖的价格
+            $tmp['itemPrice'] = $productData[$productId]['cost'] ?? 0; //当时成本价
             $stockFormat = ProductClass::formatStock($tmp['itemStock'], $unitNum); // 库存总单位数量转大小单位的数量
             $itemInfo = [
                 'itemName' => $productData[$productId]['name'] ?? '',//花材名称