shish преди 4 години
родител
ревизия
38a63d2750

+ 7 - 7
biz-ghs/stock/classes/StockRecordClass.php

@@ -24,10 +24,10 @@ class StockRecordClass extends BaseClass
     const STOCK_RECORD_TYPE_WASTAGE = 9;// 报损
     const STOCK_RECORD_TYPE_REFUND = 10;// 退款退货
     const STOCK_RECORD_TYPE_HD_ORDER = 11;//花店销售单
-    const STOCK_RECORD_TYPE_GOODS_CONSUME = 12;//制作成品消耗
+    const STOCK_RECORD_TYPE_GOODS_CONSUME = 12;//制作成品
     const STOCK_RECORD_TYPE_GOODS_WASTAGE = 13;//制作成品损耗
-    const STOCK_RECORD_TYPE_GOODS_CONSUME_CANCEL = 14;//取消制作成品损耗
-    const STOCK_RECORD_TYPE_GOODS_WASTAGE_CANCEL = 15;//取消制作成品损耗
+    const STOCK_RECORD_TYPE_GOODS_CONSUME_CANCEL = 14;//取消制作
+    const STOCK_RECORD_TYPE_GOODS_WASTAGE_CANCEL = 15;//取消制作已报损
 
     public static $typeMap = [
         self::STOCK_RECORD_TYPE_PURCHASE => '采购入库',
@@ -41,10 +41,10 @@ class StockRecordClass extends BaseClass
         self::STOCK_RECORD_TYPE_WASTAGE => '报损',
         self::STOCK_RECORD_TYPE_REFUND => '退货',
         self::STOCK_RECORD_TYPE_HD_ORDER => '开单',
-        self::STOCK_RECORD_TYPE_GOODS_CONSUME => '制作成品消耗',
+        self::STOCK_RECORD_TYPE_GOODS_CONSUME => '制作成品',
         self::STOCK_RECORD_TYPE_GOODS_WASTAGE => '制作成品损耗',
-        self::STOCK_RECORD_TYPE_GOODS_CONSUME_CANCEL => '取消制作成品消耗',
-        self::STOCK_RECORD_TYPE_GOODS_WASTAGE_CANCEL => '取消制作成品损耗',
+        self::STOCK_RECORD_TYPE_GOODS_CONSUME_CANCEL => '取消制作',
+        self::STOCK_RECORD_TYPE_GOODS_WASTAGE_CANCEL => '取消制作损耗',
     ];
 
     public static function getRecordList($where)
@@ -195,7 +195,7 @@ class StockRecordClass extends BaseClass
         return self::addRecord($data);
     }
 
-    //制作成品消耗 lqh 2022.03.20
+    //制作成品 lqh 2022.03.20
     public static function makeGoodsConsume($data)
     {
         $data['recordType'] = self::STOCK_RECORD_TYPE_GOODS_CONSUME;

+ 2 - 3
biz-hd/work/classes/WorkClass.php

@@ -29,10 +29,10 @@ class WorkClass extends BaseClass
     public static function cancel($work)
     {
         if ($work->status == self::STATUS_COMPLETE) {
-            util::fail('单已完成');
+            util::fail('单已完成');
         }
         if ($work->status == self::STATUS_CANCEL) {
-            util::fail('单已取消');
+            util::fail('单已取消');
         }
         if (isset($work->orderSn) && !empty($work->orderSn)) {
             util::fail('此工单有订单,请通过订单取消');
@@ -41,7 +41,6 @@ class WorkClass extends BaseClass
         WorkItemClass::cancelLock($work);
         $work->status = self::STATUS_CANCEL;
         $work->save();
-
     }
 
     //完成工单 ssh 20220320

+ 24 - 16
biz-hd/work/classes/WorkItemClass.php

@@ -5,6 +5,7 @@ namespace bizHd\work\classes;
 use biz\stock\classes\StockClass;
 use bizGhs\order\classes\StockWastageOrderClass;
 use bizGhs\product\classes\ProductClass;
+use bizHd\order\classes\OrderGoodsClass;
 use common\components\arrayUtil;
 use common\components\dict;
 use common\components\imgUtil;
@@ -89,10 +90,16 @@ class WorkItemClass extends BaseClass
             return true;
         }
         $workSn = $work->workSn ?? '';
+        $sjId = $work->sjId ?? 0;
+        $shopId = $work->shopId ?? 0;
         $itemList = self::getAllByCondition(['workSn' => $workSn], null, '*', null, true);
         if (!empty($itemList)) {
             foreach ($itemList as $key => $item) {
                 //库存回滚
+                $unitType = $item->unitType ?? 0;
+                $itemId = $item->itemId ?? 0;
+                $num = $item->num ?? 0;
+                OrderGoodsClass::consumeItemByMakeGoodsCancel($workSn, $sjId, $shopId, $itemId, $num, $unitType);
             }
         }
         $work->stockLock = 0;
@@ -161,24 +168,25 @@ class WorkItemClass extends BaseClass
     public static function lock($work)
     {
         $workSn = $work->workSn ?? '';
+        $sjId = $work->sjId ?? 0;
+        $shopId = $work->shopId ?? 0;
         $list = self::getAllByCondition(['workSn' => $workSn], null, '*', null, true);
-        if (!empty($list)) {
-            $bigNum = 0;
-            $smallNum = 0;
-            foreach ($list as $key => $item) {
-                //todo 库存
-                $unitType = $item->unitType ?? 0;
-                $num = $item->num ?? 0;
-                if ($unitType == dict::getDict('unitType', 'big')) {
-                    $bigNum = bcadd($bigNum, $num);
-                } else {
-                    $smallNum = bcadd($smallNum, $num);
-                }
-            }
-            $work->bigNum = $bigNum;
-            $work->smallNum = $smallNum;
-            $work->save();
+        if (empty($list)) {
+            util::fail('没有花材');
+        }
+        $bigNum = 0;
+        $smallNum = 0;
+        foreach ($list as $key => $item) {
+            $unitType = $item->unitType ?? 0;
+            $num = $item->num ?? 0;
+            $itemId = $item->itemId ?? 0;
+            //减库存
+            OrderGoodsClass::consumeItemByMakeGoods($workSn, $sjId, $shopId, $itemId, $num, $unitType);
         }
+        $work->bigNum = $bigNum;
+        $work->smallNum = $smallNum;
+        $work->stockLock = 1;
+        $work->save();
     }
 
     //获取工单的所有花材信息 ssh 20220320

+ 1 - 1
biz/stock/classes/GoodsStockRecordClass.php

@@ -33,7 +33,7 @@ class GoodsStockRecordClass extends BaseClass
         self::STOCK_RECORD_TYPE_SELL_STOCK_CANCEL => '取消订单',
         self::STOCK_RECORD_TYPE_WASTAGE => '报损',
         self::STOCK_RECORD_TYPE_REFUND => '退货',
-        self::STOCK_RECORD_TYPE_PURCHASE_CANCEL => '取消制作成品',
+        self::STOCK_RECORD_TYPE_PURCHASE_CANCEL => '取消制作',
     ];
 
     //报损

+ 6 - 7
biz/stock/classes/StockClass.php

@@ -79,7 +79,7 @@ class StockClass extends BaseClass
         ],
 
 
-        //制作成品消耗 ---减库存
+        //制作成品 ---减库存
         StockRecordClass::STOCK_RECORD_TYPE_GOODS_CONSUME => [
             'stock' => self::DECREASE_STOCK,
             'recordType' => StockRecordClass::STOCK_RECORD_TYPE_GOODS_CONSUME,
@@ -91,13 +91,13 @@ class StockClass extends BaseClass
             'recordType' => StockRecordClass::STOCK_RECORD_TYPE_GOODS_WASTAGE,
         ],
 
-        //取消制作成品损耗--加库存
+        //取消制作,所有花材库存回滚
         StockRecordClass::STOCK_RECORD_TYPE_GOODS_CONSUME_CANCEL => [
             'stock' => self::ADD_STOCK,
             'recordType' => StockRecordClass::STOCK_RECORD_TYPE_GOODS_CONSUME_CANCEL,
         ],
 
-        //取消制作成品损耗 --加库存
+        //取消制作,已报损花材库存回滚
         StockRecordClass::STOCK_RECORD_TYPE_GOODS_WASTAGE_CANCEL => [
             'stock' => self::ADD_STOCK,
             'recordType' => StockRecordClass::STOCK_RECORD_TYPE_GOODS_WASTAGE_CANCEL,
@@ -176,8 +176,7 @@ class StockClass extends BaseClass
         return $stockInfo;
     }
 
-
-    //花材--制作成品消耗
+    //制作成品用花材
     public static function stockMakeGoodsConsumeItem($orderSn, $sjId, $shopId, $productId, $bigNum, $smallNum, $options = [])
     {
         $stockInfo = self::commonItemFun($orderSn, $sjId, $shopId, $productId, $bigNum, $smallNum, $options, StockRecordClass::STOCK_RECORD_TYPE_GOODS_CONSUME);
@@ -192,14 +191,14 @@ class StockClass extends BaseClass
         return $stockInfo;
     }
 
-    //花材--取消制作成品损耗
+    //取消制作,所用花材库存回滚
     public static function stockMakeGoodsConsumeCancelItem($orderSn, $sjId, $shopId, $productId, $bigNum, $smallNum, $options = [])
     {
         $stockInfo = self::commonItemFun($orderSn, $sjId, $shopId, $productId, $bigNum, $smallNum, $options, StockRecordClass::STOCK_RECORD_TYPE_GOODS_CONSUME_CANCEL);
         return $stockInfo;
     }
 
-    //花材--取消制作成品损耗
+    //取消制作,已损耗花材回滚
     public static function stockMakeGoodsWastageCancelItem($orderSn, $sjId, $shopId, $productId, $bigNum, $smallNum, $options = [])
     {
         $stockInfo = self::commonItemFun($orderSn, $sjId, $shopId, $productId, $bigNum, $smallNum, $options, StockRecordClass::STOCK_RECORD_TYPE_GOODS_WASTAGE_CANCEL);