Browse Source

新增待采数量

shish 2 years ago
parent
commit
a74672f12a
1 changed files with 28 additions and 2 deletions
  1. 28 2
      biz-ghs/book/classes/BookItemClass.php

+ 28 - 2
biz-ghs/book/classes/BookItemClass.php

@@ -236,6 +236,7 @@ class BookItemClass extends BaseClass
                     util::fail($name . '没有设置采购人');
                 }
             }
+            //总花材新增预订
             $stat = self::getByCondition(['mainId' => $mainId, 'bookSn' => $bookSn, 'itemId' => $itemId,], true);
             if (empty($stat)) {
                 $statData = [
@@ -252,10 +253,32 @@ class BookItemClass extends BaseClass
             }
             $id = $stat->id;
             $unique = self::getLockById($id);
+
+            $currentStock = $product->stock;
+            $remainStock = 0;
+            if ($currentStock > 0) {
+                //未上架数量
+                $unOnNum = bcsub($unique->bookNum, $unique->onNum);
+                //待采购数量
+                $unCgNum = bcsub($unOnNum, $unique->roadNum);
+                if ($currentStock > $unCgNum) {
+                    $remainStock = bcsub($currentStock, $unCgNum);
+                }
+            }
+            //新增待采数量 = 预订数量 - 剩余库存
+            $needCgNumValue = bcsub($num, $remainStock);
+            $addNeedCgNum = $needCgNumValue < 0 ? 0 : $needCgNumValue;
+            $key = 'add_need_cg_num_' . $itemId;
+            $lock = util::lock($key);
+            if (!$lock) {
+                util::fail("系统繁忙,请重试");
+            }
+
             $currentNum = bcadd($unique->bookNum, $num);
             $unique->bookNum = $currentNum;
+            $unique->needCgNum = bcadd($unique->needCgNum, $addNeedCgNum);
             $unique->save();
-
+            //客户花材新增预订
             $has = BookItemCustomClass::getByCondition(['mainId' => $mainId, 'bookSn' => $bookSn, 'customId' => $customId, 'itemId' => $itemId], true);
             if (empty($has)) {
                 $currentData = [
@@ -277,8 +300,9 @@ class BookItemClass extends BaseClass
             $hasId = $has->id ?? 0;
             $has = BookItemCustomClass::getLockById($hasId);
             $has->bookNum = bcadd($has->bookNum, $num);
+            $has->needCgNum = bcadd($has->needCgNum, $addNeedCgNum);
             $has->save();
-            //新增客户预订
+            //客户新增预订
             $has = BookCustomClass::getByCondition(['mainId' => $mainId, 'bookSn' => $bookSn, 'customId' => $customId], true);
             if (empty($has)) {
                 $currentData = [
@@ -294,7 +318,9 @@ class BookItemClass extends BaseClass
             $hasId = $has->id ?? 0;
             $has = BookCustomClass::getLockById($hasId);
             $has->bookNum = bcadd($has->bookNum, $num);
+            $has->needCgNum = bcadd($has->needCgNum, $addNeedCgNum);
             $has->save();
+            util::unlock($key);
         }
     }