Browse Source

删除预订

shish 2 years ago
parent
commit
808b83890d
2 changed files with 82 additions and 36 deletions
  1. 1 1
      app-ghs/controllers/OrderItemController.php
  2. 81 35
      biz-ghs/book/classes/BookItemClass.php

+ 1 - 1
app-ghs/controllers/OrderItemController.php

@@ -106,7 +106,7 @@ class OrderItemController extends BaseController
                 BookItemClass::addBatchItem($addData, $order);
             }
             if(!empty($delData)){
-                BookItemClass::delBatchItem($delData, $order);
+                BookItemClass::delBathItem($delData, $order);
             }
 
             $transaction->commit();

+ 81 - 35
biz-ghs/book/classes/BookItemClass.php

@@ -57,6 +57,7 @@ class BookItemClass extends BaseClass
                 }
             }
 
+            /****1****/
             $office = BookItemCustomClass::getByCondition(['mainId' => $mainId, 'bookSn' => $bookSn, 'customId' => $customId, 'itemId' => $itemId], true);
             if (empty($office)) {
                 $currentData = [
@@ -82,37 +83,8 @@ class BookItemClass extends BaseClass
                 util::fail($customName . '预订的' . $name . '不够减');
             }
             $office->bookNum = $thisNum;
-
-            if ($office->needCgNum >= $num) {
-                //待采数量足够扣
-                $office->needCgNum = bcsub($office->needCgNum, $num);
-            } else {
-                //待采数量不够扣
-                $remainSubNum = bcsub($num, $office->needCgNum);
-                $office->needCgNum = 0;
-                if ($office->onNum >= $remainSubNum) {
-                    //上架数量足够扣
-                    $office->onNum = bcsub($office->onNum, $remainSubNum);
-                } else {
-                    //上架数量也不够扣
-                    $lastRemainNum = bcsub($remainSubNum, $office->onNum);
-                    $office->onNum = 0;
-                    if ($lastRemainNum > 0) {
-                        //需要扣除路上数量,把路上有货位号的数量变成无货位号
-                        $roadNum = $office->roadNum ?? 0;
-                        if ($lastRemainNum >= $roadNum) {
-                            //路上数量也不够扣的,所以是库存,不再需要扣
-                            $maySubRoadNum = $roadNum;
-                        } else {
-                            $maySubRoadNum = $lastRemainNum;
-                        }
-                        //todo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-                        $office->roadNum = bcsub($office->roadNum, $maySubRoadNum);
-                    }
-                }
-            }
-            $office->save();
-
+            /****1****/
+            /****2****/
             $bookItemReturn = self::getByCondition(['mainId' => $mainId, 'bookSn' => $bookSn, 'itemId' => $itemId,], true);
             if (empty($bookItemReturn)) {
                 $statData = [
@@ -135,9 +107,8 @@ class BookItemClass extends BaseClass
                 util::fail($customName . '预订的' . $name . '不够减哦');
             }
             $bookItemReturn->bookNum = $currentNum;
-            $bookItemReturn->save();
-
-
+            /****2****/
+            /****3****/
             $bookCustomReturn = BookCustomClass::getByCondition(['mainId' => $mainId, 'bookSn' => $bookSn, 'customId' => $customId], true);
             if (empty($bookCustomReturn)) {
                 $currentData = [
@@ -156,12 +127,87 @@ class BookItemClass extends BaseClass
                 util::fail($customName . '预订的' . $name . '不够减哈');
             }
             $bookCustomReturn->bookNum = $nowNum;
+            /****3****/
+
+            if ($office->needCgNum >= $num) {
+                //待采数量足够扣
+                /****1****/
+                $office->needCgNum = bcsub($office->needCgNum, $num);
+                /****1****/
+                /****2****/
+                $bookItemReturn->needCgNum = bcsub($bookItemReturn->needCgNum, $num);
+                /****2****/
+                /****3****/
+                $bookCustomReturn->needCgNum = bcsub($bookCustomReturn->needCgNum, $num);
+                /****3****/
+            } else {
+                //待采数量不够扣
+                /****1****/
+                $needSubNum = $office->needCgNum;
+                $remainSubNum = bcsub($num, $needSubNum);
+                $office->needCgNum = bcsub($office->needCgNum, $needSubNum);
+                /****1****/
+                /****2****/
+                $bookItemReturn->needCgNum = bcsub($bookItemReturn->needCgNum, $needSubNum);
+                /****2****/
+                /****3****/
+                $bookCustomReturn->needCgNum = bcsub($bookCustomReturn->needCgNum, $needSubNum);
+                /****3****/
+                if ($office->onNum >= $remainSubNum) {
+                    //上架数量足够扣
+                    /****1****/
+                    $office->onNum = bcsub($office->onNum, $remainSubNum);
+                    /****1****/
+                    /****2****/
+                    $bookItemReturn->onNum = bcsub($bookItemReturn->onNum, $remainSubNum);
+                    /****2****/
+                    /****3****/
+                    $bookCustomReturn->onNum = bcsub($bookCustomReturn->onNum, $remainSubNum);
+                    /****3****/
+                } else {
+                    //上架数量也不够扣
+                    /****1****/
+                    $lastNeedSubNum = $office->onNum;
+                    $lastRemainNum = bcsub($remainSubNum, $lastNeedSubNum);
+                    $office->onNum = bcsub($office->onNum, $lastNeedSubNum);
+                    /****1****/
+                    /****2****/
+                    $bookItemReturn->onNum = bcsub($bookItemReturn->onNum, $lastNeedSubNum);
+                    /****2****/
+                    /****3****/
+                    $bookCustomReturn->onNum = bcsub($bookCustomReturn->onNum, $lastNeedSubNum);
+                    /****3****/
+                    if ($lastRemainNum > 0) {
+                        //需要扣除路上数量,把路上有货位号的数量变成无货位号
+                        $roadNum = $office->roadNum ?? 0;
+                        if ($lastRemainNum >= $roadNum) {
+                            //路上数量也不够扣的,所剩是库存,不再需要扣
+                            $maySubRoadNum = $roadNum;
+                        } else {
+                            $maySubRoadNum = $lastRemainNum;
+                        }
+
+                        //todo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 需要扣除路上数量,把路上有货位号的数量变成无货位号
+
+                        /****1****/
+                        $office->roadNum = bcsub($office->roadNum, $maySubRoadNum);
+                        /****1****/
+                        /****2****/
+                        $bookItemReturn->roadNum = bcsub($bookItemReturn->roadNum, $maySubRoadNum);
+                        /****2****/
+                        /****3****/
+                        $bookCustomReturn->roadNum = bcsub($bookCustomReturn->roadNum, $maySubRoadNum);
+                        /****3****/
+                    }
+                }
+            }
+            $office->save();
+            $bookItemReturn->save();
             $bookCustomReturn->save();
         }
     }
 
     //todo 预订数量增加没有增加待采购数量,如果有库存要提醒库存要上架
-
     //数据结构 [['productId' => $productId,'num' => $num]]
     public static function addBatchItem($batchData, $order)
     {