shish 2 лет назад
Родитель
Сommit
a650cf991b

+ 1 - 0
app-ghs/controllers/ProductController.php

@@ -648,6 +648,7 @@ class ProductController extends BaseController
                     $data['staffId'] = $staff->id ?? 0;
                     $data['staffName'] = $staff->name ?? '';
                     $data['adminId'] = $this->adminId ?? 0;
+                    $data['shop'] = $this->shop;
                     PurchaseOrderClass::putIn($cg, $data);
                     $needNotice = true;
                 }

+ 1 - 0
app-ghs/controllers/PurchaseOrderController.php

@@ -354,6 +354,7 @@ class PurchaseOrderController extends BaseController
             $data['staffId'] = $staff->id ?? 0;
             $data['staffName'] = $staff->name ?? '';
             $data['adminId'] = $this->adminId ?? 0;
+            $data['shop'] = $this->shop;
             $return = PurchaseOrderClass::putIn($cg, $data);
             $transaction->commit();
 

+ 77 - 5
biz-ghs/book/classes/BookCustomClass.php

@@ -12,6 +12,57 @@ class BookCustomClass extends BaseClass
 
     public static $baseFile = '\bizGhs\book\models\BookCustom';
 
+    public static function addOnNum($bookCustomRes, $addOnNum, $bill, $shop, $product, $params)
+    {
+        $bookCustomRes->onNum = bcadd($bookCustomRes->onNum, $addOnNum);
+        $bookCustomRes->save();
+        $bookCustomResId = $bookCustomRes->id ?? 0;
+
+        $ioRes = $params['ioRes'] ?? null;
+        $relatedId = $ioRes->id ?? 0;
+
+        //变动记录
+        $itemId = $product->id ?? 0;
+        $ptItemId = $product->itemId ?? 0;
+        $name = $product->name ?? '';
+        $py = $product->py ?? '';
+        $bigUnit = $product->bigUnit ?? '扎';
+        $bookSn = $shop->bookSn ?? '';
+        $mainId = $shop->mainId ?? 0;
+        $customId = $order->customId ?? 0;
+        $customName = $order->customName ?? '';
+        $customNamePy = $order->customNamePy ?? '';
+        $currentCapitalType = dict::getDict('capitalType', 'ghsCheckIn');
+        $staffName = $params['staffName'] ?? '';
+        $staffId = $params['staffId'] ?? 0;
+        $orderSn = $bill->orderSn??'';
+        $event = "采购单 {$orderSn} 入库,{$name} 上架 ".$addOnNum . $bigUnit;
+        $changeData = [
+            'mainId' => $mainId,
+            'bookSn' => $bookSn,
+            'name' => $name,
+            'py' => $py,
+            'itemId' => $itemId,
+            'ptItemId' => $ptItemId,
+            'customId' => $customId,
+            'customName' => $customName,
+            'customNamePy' => $customNamePy,
+            'relateId' => $relatedId,
+            'relateSecondId' => $bookCustomResId,
+            'ptStyle' => 2,
+            'capitalType' => $currentCapitalType,
+            'io' => 1,
+            'changeNum' => $addOnNum,
+            'num' => $bookCustomRes->onNum,
+            'event' => $event,
+            'staffId' => $staffId,
+            'staffName' => $staffName,
+            'remark' => '',
+        ];
+        BookCustomOnChangeClass::add($changeData, true);
+        return $bookCustomRes;
+    }
+
     public static function delOnNum($bookCustomRes, $delOnNum, $num, $order, $shop, $product, $params)
     {
         $bookCustomRes->onNum = bcsub($bookCustomRes->onNum, $delOnNum);
@@ -78,14 +129,35 @@ class BookCustomClass extends BaseClass
         $py = $product->py ?? '';
         $bigUnit = $product->bigUnit ?? '扎';
         $bookSn = $shop->bookSn ?? '';
-        $mainId = $order->mainId ?? 0;
-        $customId = $order->customId ?? 0;
-        $customName = $order->customName ?? '';
-        $customNamePy = $order->customNamePy ?? '';
+        $mainId = $shop->mainId ?? 0;
+
         $currentCapitalType = dict::getDict('capitalType', 'delBook');
         $staffName = $params['staffName'] ?? '';
         $staffId = $params['staffId'] ?? 0;
-        $event = $customName . '减少预订' . $name . $num . $bigUnit . ',其中路上减少' . $delRoadNum . $bigUnit;
+        $currentChangeType = $params['currentChangeType']??'delBook';
+        if($currentChangeType == 'putIn') {
+            //入库
+            $currentCapitalType = dict::getDict('capitalType', 'ghsCheckIn');
+            $customId = 0;
+            $customName = '';
+            $customNamePy = '';
+            $orderSn = $bill->orderSn??'';
+            $event = "采购单 {$orderSn} 入库上架,{$name} 路上减少".$delRoadNum . $bigUnit;
+        }elseif($currentChangeType == 'delBook'){
+            //减少预订
+            $currentCapitalType = dict::getDict('capitalType', 'delBook');
+            $customId = $bill->customId ?? 0;
+            $customName = $bill->customName ?? '';
+            $customNamePy = $bill->customNamePy ?? '';
+            $event = $customName . '减少预订' . $name . $num . $bigUnit . ',其中路上减少' . $delRoadNum . $bigUnit;
+        }else{
+            $event = '';
+            $customId = 0;
+            $customName = '';
+            $customNamePy = '';
+            util::fail('此变动方式没有找到');
+        }
+
         $changeData = [
             'mainId' => $mainId,
             'bookSn' => $bookSn,

+ 79 - 10
biz-ghs/book/classes/BookItemClass.php

@@ -161,10 +161,6 @@ class BookItemClass extends BaseClass
                 $secondRemainSubNum = bcsub($firstRemainSubNum, $secondNeedSubNum);
             }
 
-            $bookItemCustomRes->roadNum = bcsub($bookItemCustomRes->roadNum, $secondNeedSubNum);
-            $bookItemRes->roadNum = bcsub($bookItemRes->roadNum, $secondNeedSubNum);
-            $bookCustomRes->roadNum = bcsub($bookCustomRes->roadNum, $secondNeedSubNum);
-
             $bookItemRes = self::delRoadNum($bookItemRes, $secondNeedSubNum, $num, $order, $shop, $product, $params);
             $bookItemCustomRes = BookItemCustomClass::delRoadNum($bookItemCustomRes, $secondNeedSubNum, $num, $order, $shop, $product, $params);
             $bookCustomRes = BookCustomClass::delRoadNum($bookCustomRes, $secondNeedSubNum, $num, $order, $shop, $product, $params);
@@ -398,6 +394,57 @@ class BookItemClass extends BaseClass
         return $bookItemRes;
     }
 
+    public static function addOnNum($bookItemRes, $addOnNum, $bill, $shop, $product, $params)
+    {
+        $bookItemRes->onNum = bcadd($bookItemRes->onNum, $addOnNum);
+        $bookItemRes->save();
+        $bookItemResId = $bookItemRes->id ?? 0;
+
+        $ioRes = $params['ioRes'] ?? null;
+        $relatedId = $ioRes->id ?? 0;
+
+        //变动记录
+        $itemId = $product->id ?? 0;
+        $ptItemId = $product->itemId ?? 0;
+        $name = $product->name ?? '';
+        $py = $product->py ?? '';
+        $bigUnit = $product->bigUnit ?? '扎';
+        $bookSn = $shop->bookSn ?? '';
+        $mainId = $shop->mainId ?? 0;
+        $customId = $bill->customId ?? 0;
+        $customName = $bill->customName ?? '';
+        $customNamePy = $bill->customNamePy ?? '';
+        $currentCapitalType = dict::getDict('capitalType', 'ghsCheckIn');
+        $staffName = $params['staffName'] ?? '';
+        $staffId = $params['staffId'] ?? 0;
+        $orderSn = $bill->orderSn ?? '';
+        $event = "采购单 {$orderSn} 入库,{$name} 上架 " . $addOnNum . $bigUnit;
+        $changeData = [
+            'mainId' => $mainId,
+            'bookSn' => $bookSn,
+            'name' => $name,
+            'py' => $py,
+            'itemId' => $itemId,
+            'ptItemId' => $ptItemId,
+            'customId' => $customId,
+            'customName' => $customName,
+            'customNamePy' => $customNamePy,
+            'relateId' => $relatedId,
+            'relateSecondId' => $bookItemResId,
+            'ptStyle' => 2,
+            'capitalType' => $currentCapitalType,
+            'io' => 1,
+            'changeNum' => $addOnNum,
+            'num' => $bookItemRes->onNum,
+            'event' => $event,
+            'staffId' => $staffId,
+            'staffName' => $staffName,
+            'remark' => '',
+        ];
+        BookOnChangeGlobalClass::add($changeData, true);
+        return $bookItemRes;
+    }
+
     public static function delOnNum($bookItemRes, $delOnNum, $num, $order, $shop, $product, $params)
     {
         $bookItemRes->onNum = bcsub($bookItemRes->onNum, $delOnNum);
@@ -448,7 +495,7 @@ class BookItemClass extends BaseClass
         return $bookItemRes;
     }
 
-    public static function delRoadNum($bookItemRes, $delRoadNum, $num, $order, $shop, $product, $params)
+    public static function delRoadNum($bookItemRes, $delRoadNum, $num, $bill, $shop, $product, $params)
     {
         $bookItemRes->roadNum = bcsub($bookItemRes->roadNum, $delRoadNum);
         $bookItemRes->save();
@@ -464,14 +511,36 @@ class BookItemClass extends BaseClass
         $py = $product->py ?? '';
         $bigUnit = $product->bigUnit ?? '扎';
         $bookSn = $shop->bookSn ?? '';
-        $mainId = $order->mainId ?? 0;
-        $customId = $order->customId ?? 0;
-        $customName = $order->customName ?? '';
-        $customNamePy = $order->customNamePy ?? '';
+        $mainId = $shop->mainId ?? 0;
+
         $currentCapitalType = dict::getDict('capitalType', 'delBook');
         $staffName = $params['staffName'] ?? '';
         $staffId = $params['staffId'] ?? 0;
-        $event = $customName . '减少预订' . $name . $num . $bigUnit . ',其中减少路上' . $delRoadNum . $bigUnit;
+        $currentChangeType = $params['currentChangeType'] ?? 'delBook';
+
+        if ($currentChangeType == 'putIn') {
+            //入库
+            $currentCapitalType = dict::getDict('capitalType', 'ghsCheckIn');
+            $customId = 0;
+            $customName = '';
+            $customNamePy = '';
+            $orderSn = $bill->orderSn ?? '';
+            $event = "采购单 {$orderSn} 入库上架,{$name} 路上减少" . $delRoadNum . $bigUnit;
+        } elseif ($currentChangeType == 'delBook') {
+            //减少预订
+            $currentCapitalType = dict::getDict('capitalType', 'delBook');
+            $customId = $bill->customId ?? 0;
+            $customName = $bill->customName ?? '';
+            $customNamePy = $bill->customNamePy ?? '';
+            $event = $customName . '减少预订' . $name . $num . $bigUnit . ',其中减少路上' . $delRoadNum . $bigUnit;
+        } else {
+            $event = '';
+            $customId = 0;
+            $customName = '';
+            $customNamePy = '';
+            util::fail('此变动方式没有找到');
+        }
+
         $changeData = [
             'mainId' => $mainId,
             'bookSn' => $bookSn,

+ 78 - 8
biz-ghs/book/classes/BookItemCustomClass.php

@@ -62,9 +62,9 @@ class BookItemCustomClass extends BaseClass
         return $bookItemCustomRes;
     }
 
-    public static function delRoadNum($bookItemCustomRes, $delRoadNum, $num, $order, $shop, $product, $params)
+    public static function addOnNum($bookItemCustomRes, $addOnNum, $bill, $shop, $product, $params)
     {
-        $bookItemCustomRes->roadNum = bcsub($bookItemCustomRes->roadNum, $delRoadNum);
+        $bookItemCustomRes->onNum = bcadd($bookItemCustomRes->onNum, $addOnNum);
         $bookItemCustomRes->save();
         $bookItemResId = $bookItemCustomRes->id ?? 0;
 
@@ -78,14 +78,84 @@ class BookItemCustomClass extends BaseClass
         $py = $product->py ?? '';
         $bigUnit = $product->bigUnit ?? '扎';
         $bookSn = $shop->bookSn ?? '';
-        $mainId = $order->mainId ?? 0;
-        $customId = $order->customId ?? 0;
-        $customName = $order->customName ?? '';
-        $customNamePy = $order->customNamePy ?? '';
-        $currentCapitalType = dict::getDict('capitalType', 'delBook');
+        $mainId = $shop->mainId ?? 0;
+        $customId = $bill->customId ?? 0;
+        $customName = $bill->customName ?? '';
+        $customNamePy = $bill->customNamePy ?? '';
+        $orderSn = $bill->orderSn??'';
+        $currentCapitalType = dict::getDict('capitalType', 'ghsCheckIn');
+        $staffName = $params['staffName'] ?? '';
+        $staffId = $params['staffId'] ?? 0;
+        $event = "采购单 {$orderSn} 入库,{$name} 上架 ".$addOnNum . $bigUnit;
+        $changeData = [
+            'mainId' => $mainId,
+            'bookSn' => $bookSn,
+            'name' => $name,
+            'py' => $py,
+            'itemId' => $itemId,
+            'ptItemId' => $ptItemId,
+            'customId' => $customId,
+            'customName' => $customName,
+            'customNamePy' => $customNamePy,
+            'relateId' => $relatedId,
+            'relateSecondId' => $bookItemResId,
+            'ptStyle' => 2,
+            'capitalType' => $currentCapitalType,
+            'io' => 1,
+            'changeNum' => $addOnNum,
+            'num' => $bookItemCustomRes->onNum,
+            'event' => $event,
+            'staffId' => $staffId,
+            'staffName' => $staffName,
+            'remark' => '',
+        ];
+        BookOnChangeClass::add($changeData, true);
+        return $bookItemCustomRes;
+    }
+
+    public static function delRoadNum($bookItemCustomRes, $delRoadNum, $num, $bill, $shop, $product, $params)
+    {
+        $bookItemCustomRes->roadNum = bcsub($bookItemCustomRes->roadNum, $delRoadNum);
+        $bookItemCustomRes->save();
+        $bookItemResId = $bookItemCustomRes->id ?? 0;
+
+        $ioRes = $params['ioRes'] ?? null;
+        $relatedId = $ioRes->id ?? 0;
+        $bigUnit = $product->bigUnit ?? '扎';
+        $currentChangeType = $params['currentChangeType']??'delBook';
+        $itemId = $product->id ?? 0;
+        $ptItemId = $product->itemId ?? 0;
+        $name = $product->name ?? '';
+        $py = $product->py ?? '';
+        $bookSn = $shop->bookSn ?? '';
+        $mainId = $shop->mainId ?? 0;
+
         $staffName = $params['staffName'] ?? '';
         $staffId = $params['staffId'] ?? 0;
-        $event = $customName . '减少预订' . $name . $num . $bigUnit . ',其中减少路上' . $delRoadNum . $bigUnit;
+
+        if($currentChangeType == 'putIn') {
+            //入库
+            $currentCapitalType = dict::getDict('capitalType', 'ghsCheckIn');
+            $customId = 0;
+            $customName = '';
+            $customNamePy = '';
+            $orderSn = $bill->orderSn??'';
+            $event = "采购单 {$orderSn} 入库上架,{$name} 路上减少".$delRoadNum . $bigUnit;
+        }elseif($currentChangeType == 'delBook'){
+            //减少预订
+            $currentCapitalType = dict::getDict('capitalType', 'delBook');
+            $customId = $bill->customId ?? 0;
+            $customName = $bill->customName ?? '';
+            $customNamePy = $bill->customNamePy ?? '';
+            $event = $customName . '减少预订' . $name . $num . $bigUnit . ',其中减少路上' . $delRoadNum . $bigUnit;
+        }else{
+            $event = '';
+            $customId = 0;
+            $customName = '';
+            $customNamePy = '';
+            util::fail('此变动方式没有找到');
+        }
+
         $changeData = [
             'mainId' => $mainId,
             'bookSn' => $bookSn,

+ 24 - 10
biz-ghs/cg/classes/CgOrderItemClass.php

@@ -8,6 +8,7 @@ use bizGhs\book\classes\BookItemClass;
 use bizGhs\book\classes\BookItemCustomClass;
 use bizGhs\book\classes\BookItemGhsClass;
 use bizGhs\order\classes\PurchaseOrderItemClass;
+use bizGhs\product\classes\ProductClass;
 use common\components\util;
 use Yii;
 
@@ -88,7 +89,7 @@ class CgOrderItemClass extends BaseClass
     }
 
     //分配货位后上架和入库
-    public static function assignToPutOn($cg)
+    public static function assignToPutOn($cg, $shop, $params)
     {
         if ($cg->status != 3) {
             return true;
@@ -99,8 +100,20 @@ class CgOrderItemClass extends BaseClass
         if (empty($cgItemList)) {
             return true;
         }
+
+        $ids = [];
+        foreach ($cgItemList as $cgItem) {
+            $productId = $cgItem->productId ?? 0;
+            $ids[] = $productId;
+        }
+        $productInfo = ProductClass::getAllByCondition(['id' => ['in', $ids]], null, '*', 'id', true);
+
         foreach ($cgItemList as $cgItem) {
             $productId = $cgItem->productId ?? 0;
+            $product = $productInfo[$productId] ?? null;
+            if (empty($product)) {
+                util::fail('花材信息无效呢');
+            }
             $cgItemName = $cgItem->name ?? '';
             $parentId = $cgItem->id ?? 0;
             $sendList = CgOrderItemSendClass::getAllByCondition(['parentId' => $parentId], null, '*', null, true);
@@ -128,9 +141,10 @@ class CgOrderItemClass extends BaseClass
                         if ($num > $roadNum) {
                             util::fail("路上库存不足扣减 bookItemCustom {$cgItemName}");
                         }
-                        $bookItemCustomRes->roadNum = bcsub($roadNum, $num);
-                        $bookItemCustomRes->onNum = bcadd($bookItemCustomRes->onNum, $num);
-                        $bookItemCustomRes->save();
+
+                        $params['currentChangeType'] = 'putIn';
+                        $bookItemCustomRes = BookItemCustomClass::delRoadNum($bookItemCustomRes, $num, 0, $cg, $shop, $product, $params);
+                        $bookItemCustomRes = BookItemCustomClass::addOnNum($bookItemCustomRes, $num, $cg, $shop, $product, $params);
 
                         $customId = $bookItemCustomRes->customId ?? 0;
                         $bookCustomRes = BookCustomClass::getByCondition(['bookSn' => $bookSn, 'customId' => $customId], true);
@@ -141,9 +155,9 @@ class CgOrderItemClass extends BaseClass
                         if ($num > $roadNum2) {
                             util::fail("路上库存不足扣减 bookCustom {$cgItemName}");
                         }
-                        $bookCustomRes->roadNum = bcsub($roadNum2, $num);
-                        $bookCustomRes->onNum = bcadd($bookCustomRes->onNum, $num);
-                        $bookCustomRes->save();
+
+                        $bookCustomRes = BookCustomClass::delRoadNum($bookCustomRes, $num, 0, $cg, $shop, $product, $params);
+                        BookCustomClass::addOnNum($bookCustomRes, $num, $cg, $shop, $product, $params);
 
                         $bookItemRes = BookItemClass::getByCondition(['bookSn' => $bookSn, 'itemId' => $productId], true);
                         if (empty($bookItemRes)) {
@@ -153,9 +167,9 @@ class CgOrderItemClass extends BaseClass
                         if ($num > $roadNum3) {
                             util::fail("路上库存不足扣减 bookItem {$cgItemName}");
                         }
-                        $bookItemRes->roadNum = bcsub($roadNum3, $num);
-                        $bookItemRes->onNum = bcadd($bookItemRes->onNum, $num);
-                        $bookItemRes->save();
+
+                        $bookItemRes = BookItemClass::delRoadNum($bookItemRes, $num, 0, $cg, $shop, $product, $params);
+                        BookItemClass::addOnNum($bookItemRes, $num, $cg, $shop, $product, $params);
                     }
                 }
             }

+ 3 - 1
biz-ghs/order/classes/PurchaseOrderClass.php

@@ -513,7 +513,9 @@ class PurchaseOrderClass extends BaseClass
                 self::assign($cg);
                 util::unlock($key);
                 //分配货位后上架和入库
-                CgOrderItemClass::assignToPutOn($cg);
+                $params = ['staffId'=>$staffId,'staffName'=>$staffName];
+                $shop = $data['shop']??null;
+                CgOrderItemClass::assignToPutOn($cg,$shop,$params);
             } else {
                 util::fail('正在分配货位,请1秒后再提交');
             }