Quellcode durchsuchen

出入口增加门店收支变动记录

林琦海 vor 5 Jahren
Ursprung
Commit
1ae891e017
1 geänderte Dateien mit 75 neuen und 0 gelöschten Zeilen
  1. 75 0
      biz-ghs/order/classes/StockInOrderClass.php

+ 75 - 0
biz-ghs/order/classes/StockInOrderClass.php

@@ -2,9 +2,13 @@
 
 namespace bizGhs\order\classes;
 
+use biz\shop\classes\ShopCapitalClass;
+use biz\shop\classes\ShopClass;
+use bizGhs\order\models\StockOutOrderItem;
 use bizGhs\order\traits\OrderTrait;
 use bizGhs\product\classes\ProductClass;
 use bizGhs\stock\classes\StockRecordClass;
+use common\components\dict;
 use common\components\orderSn;
 use common\components\util;
 use Yii;
@@ -118,6 +122,7 @@ class StockInOrderClass extends BaseClass
     //修改状态 1=》2
     // 加库存
     // 加流水记录
+    //增加门店收支记录 : 出库的门店加金额,入库的门店减金额(用成本价计算)
     public static function confirmOrder($orderSn,$shopId,$adminId)
     {
         $data = [
@@ -139,16 +144,86 @@ class StockInOrderClass extends BaseClass
                 $transaction->rollBack();
                 util::fail("订单异常");
             }
+            $inProductMapData = ProductClass::getProductMapData($itemInfo);
+            $inTotalCost = 0;
             foreach ($itemInfo as $k=>$v){
                 $stockInfo = ProductClass::addStockByItemNum($v['productId'],$v['itemNum']);
                 $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);
             }
             //流水记录
             $orderData['shopId'] = $shopId;
             $orderData['itemInfo'] = $itemInfo;
             StockRecordClass::addRecordByOrder($orderData,StockRecordClass::STOCK_RECORD_TYPE_IN_STOCK);
+            // 门店收支记录:
+            //出库门店
+            $outOrderSn = $orderData['outOrderSn'];
+            $outShopId = $orderData['outShopId'];
+            $outOrderInfo = StockOutOrderClass::getOrderDetail($outOrderSn,$outShopId);
+            $payWay =dict::getDict('payWay', 'unknown');
+            if($outOrderInfo){
+                $outOrderInfoItem = $outOrderInfo['itemInfo']??'';
+                if($outOrderInfoItem){
+                    $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');
+
+                    $shop = ShopClass::getLockById($outShopId);
+                    if($shop){
+                        $outCurrentTotalIncome = bcadd($shop->totalIncome, $outTotalCost, 2);
+                    }else{
+                        $outCurrentTotalIncome = $outTotalCost;
+                    }
+                    $capitalData = [
+                        'capitalType' => $outCapitalType,
+                        'io' => 1,
+                        'totalIncome' => $outCurrentTotalIncome,
+                        'payWay' => $payWay,
+                        'amount' => $outTotalCost,
+                        'sjId' => $outOrderInfo['sjId']??0,
+                        'shopId' => $outShopId,
+                        'event' => $outEvent,
+                    ];
+                    ShopCapitalClass::addCapital($capitalData);
+                }
+
+            }
+
+            //入库门店
+
+            $inEvent = '入库';
+            $inCapitalType = dict::getDict('capitalType', 'ghsCheckIn', 'id');
+
+            $inShop = ShopClass::getLockById($shopId);
+            if($inShop){
+                $inCurrentTotalIncome = bcadd($inShop->totalIncome, $inTotalCost, 2);
+            }else{
+                $inCurrentTotalIncome = $inTotalCost;
+            }
+            $capitalData = [
+                'capitalType' => $inCapitalType,
+                'io' => 1,
+                'totalIncome' => $inCurrentTotalIncome,
+                'payWay' => $payWay,
+                'amount' => $inTotalCost,
+                'sjId' => $orderData['sjId']??0,
+                'shopId' => $shopId,
+                'event' => $inEvent,
+            ];
+            ShopCapitalClass::addCapital($capitalData);
+
             $transaction->commit();
 
         }catch (\Exception $exception){