shish il y a 5 ans
Parent
commit
42ddf08ea4

+ 27 - 15
biz-ghs/order/classes/OrderClass.php

@@ -125,9 +125,9 @@ class OrderClass extends BaseClass
             $w = ProductClass::getWeight($val['productId'], $val['bigNum'], $val['smallNum']);
             $weight = bcadd($w, $weight, 2);
             //减库存
-            $orderType = $data['orderType']??1;
-            $checkStock = $orderType==OrderClass::ORDER_TYPE_HD_ADD?true:false;
-            ProductClass::decreaseStock($val['productId'], $val['bigNum'], $val['smallNum'],$checkStock);
+            $orderType = $data['orderType'] ?? 1;
+            $checkStock = $orderType == OrderClass::ORDER_TYPE_HD_ADD ? true : false;
+            ProductClass::decreaseStock($val['productId'], $val['bigNum'], $val['smallNum'], $checkStock);
         }
         $data['weight'] = $weight;
 
@@ -467,29 +467,40 @@ class OrderClass extends BaseClass
             util::fail('订单已完成');
         }
 
-        //订单状态变更
-        self::updateById($id, ['sendType' => self::SEND_TYPE_NO, 'totalFlow' => OrderClass::TOTAL_FLOW, 'currentFlow' => OrderClass::TOTAL_FLOW]);
-        self::complete($order, self::TOTAL_FLOW);
-
-        OrderSendClass::withoutSend($order);
-
-        //完成订单+1
+        //自取订单,订单直接完成。【现在有三个地方有订单完成操作】,找不到请搜索【】内关键词。
+        $currentOrder = self::getById($id, true);
         $shopId = $order['shopId'] ?? 0;
-        $shop = ShopClass::getById($shopId, true);
+        $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
         if (empty($shop)) {
             util::fail('没有找到门店');
         }
-        $shop->finishOrder += 1;
+        $shop->unSendOrder -= 1;
+        $shop->sendingOrder += 1;
         $shop->save();
 
+        self::complete($currentOrder, $shop, self::TOTAL_FLOW, OrderClass::TOTAL_FLOW, self::SEND_TYPE_NO);
+
+        OrderSendClass::withoutSend($order);
+
         return self::TOTAL_FLOW;
     }
 
     //订单完成 ssh 2020.3.12
-    public static function complete($order, $currentFlow)
+    public static function complete($order, $shop, $currentFlow, $totalFlow = false, $sendType = false)
     {
-        $id = $order['id'];
-        self::updateById($id, ['status' => OrderClass::ORDER_STATUS_COMPLETE, 'currentFlow' => $currentFlow]);
+        $order->status = OrderClass::ORDER_STATUS_COMPLETE;
+        $order->currentFlow = $currentFlow;
+        if (isset($totalFlow)) {
+            $order->totalFlow = $totalFlow;
+        }
+        if (isset($sendType)) {
+            $order->sendType = $sendType;
+        }
+        $order->save();
+
+        $shop->finishOrder += 1;
+        $shop->sendingOrder -= 1;
+        $shop->save();
     }
 
     //员工开单选择付款方式 ssh 2021.3.15
@@ -532,6 +543,7 @@ class OrderClass extends BaseClass
         StatYjClass::addYj($order);
 
         $shop->unPayOrder -= 1;
+        $shop->unSendOrder += 1;
         $shop->totalOrderNum += 1;
         $shop->totalIncome = bcadd($shop->totalIncome, $amount, 2);
         $shop->save();

+ 22 - 20
biz-ghs/order/services/OrderSendService.php

@@ -2,11 +2,12 @@
 
 namespace bizGhs\order\services;
 
+use biz\shop\models\Shop;
 use bizGhs\base\services\BaseService;
 use bizGhs\order\classes\OrderClass;
 use bizGhs\order\classes\OrderExpressClass;
 use bizGhs\order\classes\OrderSendClass;
-use Yii;
+use common\components\util;
 
 class OrderSendService extends BaseService
 {
@@ -43,7 +44,7 @@ class OrderSendService extends BaseService
         }
         OrderClass::updateById($id, ['status' => OrderClass::ORDER_STATUS_UN_SEND, 'currentFlow' => 2, 'printStatus' => 1, 'hasDeliver' => $hasDeliver]);
 
-        //进入发货流程
+        //显示发货流程
         $deliverId = $actionRelation['deliver'];
         $data = ['actionId' => $deliverId, 'orderId' => $id, 'finishTime' => 0, 'addTime' => $time, 'inTurn' => $deliverId, 'orderSn' => $orderSn];
         OrderSendClass::add($data);
@@ -65,14 +66,10 @@ class OrderSendService extends BaseService
             util::fail('当前流程无法操作');
         }
         $time = time();
-
         $sendType = isset($data['sendType']) ? $data['sendType'] : OrderClass::SEND_TYPE_UNKNOWN;
-
         $sendInfo = [];
         if ($sendType == OrderClass::SEND_TYPE_THIRD) {
-
             util::fail('即将开通...');
-
             $side = $data['expressId'];
             $sendTime = strtotime(date("Y-m-d") . ' ' . $data['sendTime']);
             if ($sendTime < ($time + 20 * 60)) {
@@ -98,13 +95,16 @@ class OrderSendService extends BaseService
         OrderClass::updateById($id, ['status' => OrderClass::ORDER_STATUS_SENDING, 'currentFlow' => 3, 'sendType' => $sendType]);
 
         //待发货订单-1,配送中订单+1
-        $merchantId = $data['merchantId'];
-        $asset = MerchantAssetClass::getByMerchantId($merchantId, true);
-        $asset->unSendOrder -= 1;
-        $asset->sendingOrder += 1;
-        $asset->save();
+        $shopId = $data['shopId'];
+        $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
+        if (empty($shop)) {
+            util::fail('没有找到门店');
+        }
+        $shop->unSendOrder -= 1;
+        $shop->sendingOrder += 1;
+        $shop->save();
 
-        //进入送达流程
+        //显示送达流程
         $reachId = $actionRelation['reach'];
         $data = ['actionId' => $reachId, 'orderId' => $id, 'finishTime' => 0, 'addTime' => $time, 'inTurn' => $reachId, 'orderSn' => $orderSn];
         OrderSendClass::add($data);
@@ -124,14 +124,16 @@ class OrderSendService extends BaseService
             util::fail('当前流程无法操作');
         }
         OrderSendClass::reach($order);
-        OrderClass::complete($order, OrderClass::ORDER_TOTAL_FLOW);
-        //配送中订单-1,完成订单+1
-        $merchantId = $order['merchantId'];
-        $asset = MerchantAssetClass::getByMerchantId($merchantId, true);
-        $asset->sendingOrder -= 1;
-        $asset->finishOrder += 1;
-        $asset->save();
-        util::complete();
+
+        //送达,订单完成。【现在有三个地方有订单完成操作】,找不到请搜索【】内关键词。
+        $id = $order['id'];
+        $currentOrder = self::getById($id, true);
+        $shopId = $order['shopId'] ?? 0;
+        $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
+        if (empty($shop)) {
+            util::fail('没有找到门店');
+        }
+        OrderClass::complete($currentOrder, $shop, OrderClass::TOTAL_FLOW);
     }
 
     //发货详情 ssh 2019.12.15

+ 21 - 13
biz-hd/purchase/classes/PurchaseClass.php

@@ -8,6 +8,7 @@ use biz\shop\models\Shop;
 use bizGhs\admin\classes\AdminClass;
 use bizGhs\custom\classes\CustomClass;
 use bizGhs\custom\models\Custom;
+use bizGhs\order\classes\OrderSendClass;
 use bizGhs\order\traits\OrderTrait;
 use bizGhs\product\classes\ProductClass;
 use bizGhs\order\classes\OrderClass;
@@ -313,6 +314,7 @@ class PurchaseClass extends BaseClass
         $ghsOrder->status = OrderClass::ORDER_STATUS_UN_SEND;
         $ghsOrder->debt = OrderClass::DEBT_YES;
         $ghsOrder->save();
+        /**供货商门店资产变化**/
         $shopId = $ghsOrder->shopId;
         $actPrice = $ghsOrder->actPrice;
         $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
@@ -321,7 +323,13 @@ class PurchaseClass extends BaseClass
         }
         $shop->totalIncome = bcadd($shop->totalIncome, $actPrice, 2);
         $shop->totalOrderNum += 1;
+        $shop->unPayOrder -= 1;
+        $shop->unSendOrder += 1;
         $shop->save();
+        //自取订单,订单直接完成,【现在有三个地方有订单完成操作】,找不到请搜索【】内关键词。
+        if (isset($ghsOrder->sendType) && $ghsOrder->sendType == OrderClass::SEND_TYPE_NO) {
+            OrderClass::withoutSend($ghsOrder->attributes);
+        }
 
         /**供货商的客户资产变化**/
         $customId = $ghsOrder->customId;
@@ -338,8 +346,8 @@ class PurchaseClass extends BaseClass
 
         /********订单完成后加库存 linqh 2021-05-10*********/
         $orderSn = $info->orderSn;
-        $purchaseItem = PurchaseItemClass::getAllByCondition(['orderSn'=>$orderSn],null,"*");
-        foreach ($purchaseItem as $v){
+        $purchaseItem = PurchaseItemClass::getAllByCondition(['orderSn' => $orderSn], null, "*");
+        foreach ($purchaseItem as $v) {
             ProductClass::addStockByItemNum($v['productId'], $v['itemNum']);
         }
     }
@@ -351,33 +359,33 @@ class PurchaseClass extends BaseClass
         $order->save();
         //供货商那边加回库存
         $orderSn = $order->orderSn;
-        $purchaseItem = PurchaseItemClass::getAllByCondition(['orderSn'=>$orderSn],null,"*");
-        foreach ($purchaseItem as $v){
+        $purchaseItem = PurchaseItemClass::getAllByCondition(['orderSn' => $orderSn], null, "*");
+        foreach ($purchaseItem as $v) {
             ProductClass::addStockByItemNum($v['ghsProductId'], $v['itemNum']);
         }
     }
 
     //采购统计2021-05-08
     //采购数,采购金额统计(根据时间,今日,昨天,7天,30天)
-    public static function statOrderInfo($shopId,$statType)
+    public static function statOrderInfo($shopId, $statType)
     {
         $start = '';
         $end = '';
-        switch ($statType){
+        switch ($statType) {
             case "today":
                 $start = date('Y-m-d');
                 $end = $start;
                 break;
             case "yesterday" :
-                $start = date('Y-m-d',strtotime("-1 day"));
+                $start = date('Y-m-d', strtotime("-1 day"));
                 $end = $start;
                 break;
             case "seven":
-                $start = date('Y-m-d',strtotime("-6 day"));
+                $start = date('Y-m-d', strtotime("-6 day"));
                 $end = date('Y-m-d');
                 break;
             case "thirty":
-                $start = date('Y-m-d',strtotime("-29 day"));
+                $start = date('Y-m-d', strtotime("-29 day"));
                 $end = date('Y-m-d');
                 break;
             default:
@@ -389,12 +397,12 @@ class PurchaseClass extends BaseClass
         $res = self::getAllByCondition($where, null, "id,actPrice");
         $totalAmount = 0;
         $totalNum = count($res);
-        foreach ($res as $v){
-            $totalAmount = bcadd($totalAmount,$v['actPrice'],2);
+        foreach ($res as $v) {
+            $totalAmount = bcadd($totalAmount, $v['actPrice'], 2);
         }
         return [
-            'totalAmount'=>$totalAmount,
-            'totalNum'=>$totalNum,
+            'totalAmount' => $totalAmount,
+            'totalNum' => $totalNum,
         ];
 
     }