shish 4 år sedan
förälder
incheckning
56fc43a4a7

+ 1 - 1
app-hd/controllers/OrderController.php

@@ -343,7 +343,7 @@ class OrderController extends BaseController
             $post['product'] = $productList;
             $return = OrderService::createFinishOrder($post, $custom, $hasPay);
             $transaction->commit();
-            //订单生成时唤起在线打印
+            //打印小票
             $id = $return->id ?? 0;
             $order = OrderClass::getById($id, true);
             OrderClass::onlinePrint($order);

+ 55 - 32
biz-hd/order/classes/OrderClass.php

@@ -10,6 +10,7 @@ use biz\shop\classes\ShopClass;
 use biz\shop\classes\ShopExtClass;
 use biz\shop\models\Shop;
 use biz\stat\classes\StatOrderCountClass;
+use biz\stock\classes\GoodsStockRecordClass;
 use biz\wx\classes\WxMessageClass;
 use bizGhs\product\classes\ProductClass;
 use bizGhs\stat\classes\StatYjClass;
@@ -322,41 +323,63 @@ class OrderClass extends BaseClass
         //暂时只考虑花材库存的回滚
         $orderSn = $order->orderSn ?? '';
         $itemList = OrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
-        if (empty($itemList)) {
-            return false;
+        if (!empty($itemList)) {
+            foreach ($itemList as $item) {
+
+                $ptItemId = $item->ptItemId ?? 0;
+                $sjId = $item->sjId ?? 0;
+                $shopId = $item->shopId ?? 0;
+                $mainId = $item->mainId ?? 0;
+                $ratio = $item->ratio ?? 20;
+                $unitType = $item->unitType ?? 0;
+                $bigNum = 0;
+                $smallNum = 0;
+                if ($unitType == 0) {
+                    $bigNum = $item->num;
+                } else {
+                    $smallNum = $item->num;
+                }
+                $itemId = $item->itemId ?? 0;
+                $stockInfo = ProductClass::addStock($itemId, $bigNum, $smallNum);
+                $recordData = [];
+                $recordData['sjId'] = $sjId;
+                $recordData['shopId'] = $shopId;
+                $recordData['mainId'] = $mainId;
+                $recordData['itemId'] = $ptItemId;
+                $recordData['itemNum'] = ProductClass::mergeItemNum($bigNum, $smallNum, $ratio);
+                $recordData['oldStock'] = $stockInfo['oldStock'];
+                $recordData['newStock'] = $stockInfo['newStock'];
+                $recordData['productId'] = $itemId;
+                $recordData['orderSn'] = $orderSn;
+                $recordData['relateName'] = '系统';
+                StockRecordClass::addSellStockOrderCancelRecord($recordData);
+
+            }
         }
-        foreach ($itemList as $item) {
-
-            $ptItemId = $item->ptItemId ?? 0;
-            $sjId = $item->sjId ?? 0;
-            $shopId = $item->shopId ?? 0;
-            $mainId = $item->mainId ?? 0;
-            $ratio = $item->ratio ?? 20;
-            $unitType = $item->unitType ?? 0;
-            $bigNum = 0;
-            $smallNum = 0;
-            if ($unitType == 0) {
-                $bigNum = $item->num;
-            } else {
-                $smallNum = $item->num;
+        $goodsList = OrderGoodsClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
+        if (!empty($goodsList)) {
+            foreach ($goodsList as $key => $info) {
+                $sjId = $info->sjId ?? 0;
+                $shopId = $info->shopId ?? 0;
+                $mainId = $info->mainId ?? 0;
+                $goodsId = $info->goodsId ?? 0;
+                $num = $info->num ?? 0;
+                $respond = \bizHd\goods\classes\GoodsClass::addStock($goodsId, $mainId, $num);
+                $oldStock = $respond['oldStock'] ?? 0;
+                $newStock = $respond['newStock'] ?? 0;
+                $data = [];
+                $data['sjId'] = $sjId;
+                $data['shopId'] = $shopId;
+                $data['mainId'] = $mainId;
+                $data['orderSn'] = $orderSn;
+                $data['goodsId'] = $goodsId;
+                $data['goodsNum'] = $num;
+                $data['oldStock'] = $oldStock;
+                $data['newStock'] = $newStock;
+                $data['relateName'] = '';
+                GoodsStockRecordClass::cancelOrder($data);
             }
-            $itemId = $item->itemId ?? 0;
-            $stockInfo = ProductClass::addStock($itemId, $bigNum, $smallNum);
-            $recordData = [];
-            $recordData['sjId'] = $sjId;
-            $recordData['shopId'] = $shopId;
-            $recordData['mainId'] = $mainId;
-            $recordData['itemId'] = $ptItemId;
-            $recordData['itemNum'] = ProductClass::mergeItemNum($bigNum, $smallNum, $ratio);
-            $recordData['oldStock'] = $stockInfo['oldStock'];
-            $recordData['newStock'] = $stockInfo['newStock'];
-            $recordData['productId'] = $itemId;
-            $recordData['orderSn'] = $orderSn;
-            $recordData['relateName'] = '系统';
-            StockRecordClass::addSellStockOrderCancelRecord($recordData);
-
         }
-
     }
 
     // 扣库存

+ 7 - 0
biz/stock/classes/GoodsStockRecordClass.php

@@ -36,6 +36,13 @@ class GoodsStockRecordClass extends BaseClass
         self::STOCK_RECORD_TYPE_PURCHASE_CANCEL => '取消制作',
     ];
 
+    //取消订单 ssh 20220516
+    public static function cancelOrder($data)
+    {
+        $data['recordType'] = self::STOCK_RECORD_TYPE_SELL_STOCK_CANCEL;
+        return self::addRecord($data);
+    }
+
     public static function refund($data)
     {
         $data['recordType'] = self::STOCK_RECORD_TYPE_REFUND;