shish 1 年間 前
コミット
4b216bd411

+ 2 - 2
app-hd/controllers/CheckOrderController.php

@@ -107,9 +107,9 @@ class CheckOrderController extends BaseController
         $post['itemInfo'] = $ghsItemInfo;
         if ($update === true) {
             //编辑
-            $order = CheckOrderClass::opOrder($post, $draft, $update);
+            $order = CheckOrderClass::opOrder($post, $draft, true);
         } else {
-            $order = CheckOrderClass::opOrder($post, $draft, $update);
+            $order = CheckOrderClass::opOrder($post, $draft);
         }
         if ($order) {
             util::success($order);

+ 4 - 0
app-hd/controllers/OrderController.php

@@ -588,6 +588,10 @@ class OrderController extends BaseController
 
             //多处调用这个方法,注意同步修改,搜索关键词 createHdNewOrder
             $return = OrderService::createHdOrder($post, $custom, $hasPay);
+            $shop = $this->shop;
+            $staff = $this->shopAdmin;
+            //如果开的是负数订单,库存问题要处理,多处需要同步修改 minus_change_stock
+            OrderClass::minusChangeStock($return, $shop, $staff);
             $transaction->commit();
 
             //打印小票和语音播报

+ 8 - 0
app-hd/controllers/RefundController.php

@@ -123,6 +123,10 @@ class RefundController extends BaseController
                 util::fail('历史订单,不能发起退款哦');
             }
 
+            if ($order->forward == 1) {
+                util::fail('负数订单不能发起售后');
+            }
+
             //商品花材结构 property 0花束 1花材
             //[{productId:0,num:1,unitType:0,unitPrice:12,unitName:'扎',property:1}]
             $productJson = $post['product'] ?? '';
@@ -246,6 +250,10 @@ class RefundController extends BaseController
                 ];
                 //走负数订单,多处调用这个方法,注意同步修改,搜索关键词 createHdNewOrder
                 $returnOrder = OrderService::createHdOrder($orderData, $custom, $hasPay);
+                $shop = $this->shop;
+                $staff = $this->shopAdmin;
+                //如果开的是负数订单,库存问题要处理,多处需要同步修改 minus_change_stock
+                OrderClass::minusChangeStock($returnOrder, $shop, $staff);
                 util::complete();
             } else {
                 //走正常售后

+ 5 - 0
app-mall/controllers/OrderController.php

@@ -759,8 +759,13 @@ class OrderController extends BaseController
     //订单列表 ssh 2019.12.12
     public function actionList()
     {
+        $get = Yii::$app->request->get();
+        $status = $get['status'] ?? 0;
         $userId = $this->userId;
         $where = ['userId' => $userId];
+        if (!empty($status)) {
+            $where['status'] = $status;
+        }
         $list = OrderService::getOrderList($where);
         util::success($list);
     }

+ 58 - 0
biz-hd/order/classes/OrderClass.php

@@ -14,6 +14,7 @@ use biz\stat\classes\StatOrderCountClass;
 use biz\stat\classes\StatSaleClass;
 use biz\stock\classes\GoodsStockRecordClass;
 use biz\wx\classes\WxMessageClass;
+use bizGhs\order\classes\CheckOrderClass;
 use bizGhs\product\classes\ProductClass;
 use bizGhs\stat\classes\StatYjClass;
 use bizGhs\stock\classes\StockRecordClass;
@@ -86,6 +87,63 @@ class OrderClass extends BaseClass
         20000 => [90, 100],
     ];
 
+    //因为开负数订单时引导库存变化 ssh 20250731
+    public static function minusChangeStock($order, $shop, $staff)
+    {
+        $forward = $order['forward'] ?? 0;
+        if ($forward == 0) {
+            return false;
+        }
+        $forwardStock = $order['forwardStock'] ?? 0;
+        $orderSn = $order['orderSn'] ?? '';
+        $orderItemList = OrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*');
+        $orderGoodsList = OrderGoodsClass::getAllByCondition(['orderSn' => $orderSn], null, '*');
+        if (empty($orderItemList) && empty($orderGoodsList)) {
+            return false;
+        }
+        if (!empty($orderItemList)) {
+            $itemInfo = [];
+            $ids = array_column($orderItemList, 'itemId');
+            $infoList = ProductClass::getAllByCondition(['id' => ['in', $ids]], null, '*', 'id');
+            foreach ($orderItemList as $orderItem) {
+                $unitType = $orderItem['unitType'] ?? 0;
+                $num = $orderItem['num'] ?? 0;
+                $productId = $orderItem['itemId'] ?? 0;
+                $info = $infoList[$productId] ?? [];
+                $stock = $info['stock'] ?? 0;
+                $ratio = $info['ratio'] ?? 20;
+                $map = ProductClass::formatStock($stock, $ratio);
+                $bigNum = $map['bigNum'] ?? 0;
+                $smallNum = $map['smallNum'] ?? 0;
+                $num = $forwardStock == 0 ? $num * 2 : $num;
+                if ($unitType == 0) {
+                    $bigNum = $bigNum + $num;
+                } else {
+                    $smallNum = $smallNum + $num;
+                }
+                $itemInfo[] = ['productId' => $productId, 'bigNum' => $bigNum, 'smallNum' => $smallNum];
+            }
+            $shopId = $shop->id ?? 0;
+            $sjId = $shop->sjId ?? 0;
+            $adminId = $staff->adminId;
+            $remark = $forwardStock == 0 ? '开负数订单,退货并退款,库存退回' : '开负数订单,只退款,库存退回';
+            $itemData = [
+                'remark' => $remark,
+                'itemInfo' => $itemInfo,
+                'sjId' => $sjId,
+                'shopId' => $shopId,
+                'adminId' => $adminId,
+            ];
+            CheckOrderClass::opOrder($itemData);
+        }
+        if (!empty($orderGoodsList)) {
+            foreach ($orderGoodsList as $orderGoods) {
+                $a = 1;
+            }
+        }
+        return true;
+    }
+
     /**
      * @param $order
      * @param $mainId

+ 6 - 1
biz-hd/order/services/OrderService.php

@@ -37,7 +37,8 @@ class OrderService extends BaseService
         $sjId = $data['sjId'] ?? 0;
         $shopId = $data['shopId'] ?? 0;
         $mainId = $data['mainId'] ?? 0;
-
+        $forward = $data['forward'] ?? 0;
+        $forwardStock = $data['forwardStock'] ?? 0;
         $groupCover = '';
 
         $product = $data['product'] ?? [];
@@ -159,6 +160,8 @@ class OrderService extends BaseService
                     'mainId' => $mainId,
                     'kindId' => $kindId,
                     'kindName' => $kindName,
+                    'forward' => $forward,
+                    'forwardStock' => $forwardStock,
                 ];
                 OrderGoodsClass::addData($currentGoodsData);
                 $groupGoodsData[] = ['goodsId' => $currentId, 'num' => $num, 'name' => $name, 'unitPrice' => $unitPrice];
@@ -209,6 +212,8 @@ class OrderService extends BaseService
                     'classId' => $classId,
                     'price' => bcmul($unitPrice, $num, 2),
                     'belongCost' => $belongCost,
+                    'forward' => $forward,
+                    'forwardStock' => $forwardStock,
                 ];
 
                 //库存变化在这里