Przeglądaj źródła

取消入库功能

林琦海 5 lat temu
rodzic
commit
79c456267f

+ 8 - 0
app-ghs/controllers/StockInController.php

@@ -42,5 +42,13 @@ class StockInController extends BaseController
         util::complete("出库成功");
     }
 
+    //取消入库  linqh 2021.1.24
+    public function actionCancelOrder()
+    {
+        $get = Yii::$app->request->get();
+        $orderSn = $get['orderSn'];
+        StockInOrderClass::cancelOrder($orderSn, $this->shopId, $this->adminId);
+        util::complete("取消成功");
+    }
 
 }

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

@@ -323,4 +323,46 @@ class StockInOrderClass extends BaseClass
         }
         return $list;
     }
+
+    //取消入库
+    public static function cancelOrder($orderSn, $shopId, $adminId)
+    {
+        $where = [
+            'orderSn' => $orderSn,
+            'status' => self::STATUS_WAIT,
+            'inShopId' => $shopId,
+        ];
+        $order = self::orderExist($where);
+        $data = [
+            'status' => self::STATUS_CANCEL,
+            'adminId' => $adminId,
+        ];
+
+        $outOrderSn = $order['outOrderSn'];
+        $outShopId = $order['outShopId'];
+
+        $outOrderData = StockOutOrderClass::getOrderDetail($outOrderSn, $outShopId);
+        $outOrderData['shopId'] = $outShopId;
+        //加库存
+        $itemInfo = $outOrderData['itemInfo'] ?? [];
+        if (empty($itemInfo)) {
+            util::fail("订单异常");
+        }
+        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'];
+        }
+        $outOrderData['itemInfo'] = $itemInfo;
+        StockRecordClass::addRecordByOrder($outOrderData, StockRecordClass::STOCK_RECORD_TYPE_IN_STOCK_CANCEL);
+        self::updateByCondition($where, $data);
+
+        //修改出库订单状态
+        $whereOut = [
+            'orderSn'=>$outOrderSn,
+            'outShopId'=>$outShopId,
+        ];
+        StockOutOrderClass::updateByCondition($whereOut,$data);
+    }
 }