|
|
@@ -2,9 +2,6 @@
|
|
|
namespace biz\stock\services;
|
|
|
|
|
|
use biz\base\services\BaseService;
|
|
|
-use bizGhs\product\classes\ProductClass;
|
|
|
-use bizGhs\stock\classes\StockRecordClass;
|
|
|
-use common\components\util;
|
|
|
|
|
|
//库存变动对外方法 后续把之前在product stock record 中的方法迁移到这边
|
|
|
//包含了库存变动和库存记录
|
|
|
@@ -12,249 +9,6 @@ use common\components\util;
|
|
|
class StockService extends BaseService
|
|
|
{
|
|
|
|
|
|
- const ADD_STOCK = 'addStock'; //加库存
|
|
|
- const DECREASE_STOCK = 'decreaseStock';//减库存
|
|
|
-
|
|
|
- public static $actionItemMap = [
|
|
|
- //采购--加库存
|
|
|
- StockRecordClass::STOCK_RECORD_TYPE_PURCHASE=>[
|
|
|
- 'stock'=>self::ADD_STOCK, //加库存
|
|
|
- 'recordType'=>StockRecordClass::STOCK_RECORD_TYPE_PURCHASE,
|
|
|
- ],
|
|
|
-
|
|
|
- //出库 减库存
|
|
|
- StockRecordClass::STOCK_RECORD_TYPE_IN_STOCK=>[
|
|
|
- 'stock'=>self::DECREASE_STOCK, //减库存
|
|
|
- 'recordType'=>StockRecordClass::STOCK_RECORD_TYPE_IN_STOCK,
|
|
|
- ],
|
|
|
-
|
|
|
- //入库 加库存
|
|
|
- StockRecordClass::STOCK_RECORD_TYPE_OUT_STOCK=>[
|
|
|
- 'stock'=>self::ADD_STOCK, //加库存
|
|
|
- 'recordType'=>StockRecordClass::STOCK_RECORD_TYPE_OUT_STOCK,
|
|
|
- ],
|
|
|
-
|
|
|
- //销售(开单) 加库存
|
|
|
- StockRecordClass::STOCK_RECORD_TYPE_SELL_STOCK=>[
|
|
|
- 'stock'=>self::ADD_STOCK, //加库存
|
|
|
- 'recordType'=>StockRecordClass::STOCK_RECORD_TYPE_SELL_STOCK,
|
|
|
- ],
|
|
|
-
|
|
|
- //取消入口 减库存
|
|
|
- StockRecordClass::STOCK_RECORD_TYPE_OUT_STOCK_CANCEL=>[
|
|
|
- 'stock'=>self::DECREASE_STOCK, //减库存
|
|
|
- 'recordType'=>StockRecordClass::STOCK_RECORD_TYPE_OUT_STOCK_CANCEL,
|
|
|
- ],
|
|
|
-
|
|
|
- //取消出库 加库存
|
|
|
- StockRecordClass::STOCK_RECORD_TYPE_IN_STOCK_CANCEL=>[
|
|
|
- 'stock'=>self::ADD_STOCK, //加库存
|
|
|
- 'recordType'=>StockRecordClass::STOCK_RECORD_TYPE_IN_STOCK_CANCEL,
|
|
|
- ],
|
|
|
-
|
|
|
- //订单取消 加库存
|
|
|
- StockRecordClass::STOCK_RECORD_TYPE_SELL_STOCK_CANCEL=>[
|
|
|
- 'stock'=>self::ADD_STOCK, //加库存
|
|
|
- 'recordType'=>StockRecordClass::STOCK_RECORD_TYPE_SELL_STOCK_CANCEL,
|
|
|
- ],
|
|
|
-
|
|
|
- //报损--减库存
|
|
|
- StockRecordClass::STOCK_RECORD_TYPE_WASTAGE=>[
|
|
|
- 'stock'=>self::DECREASE_STOCK, //减库存
|
|
|
- 'recordType'=>StockRecordClass::STOCK_RECORD_TYPE_WASTAGE,
|
|
|
- ],
|
|
|
-
|
|
|
- //退货退款 --加库存
|
|
|
- StockRecordClass::STOCK_RECORD_TYPE_REFUND=>[
|
|
|
- 'stock'=>self::ADD_STOCK,
|
|
|
- 'recordType'=>StockRecordClass::STOCK_RECORD_TYPE_REFUND,
|
|
|
- ],
|
|
|
-
|
|
|
- //花店销售单---减库存
|
|
|
- StockRecordClass::STOCK_RECORD_TYPE_HD_ORDER=>[
|
|
|
- 'stock'=>self::DECREASE_STOCK,
|
|
|
- 'recordType'=>StockRecordClass::STOCK_RECORD_TYPE_HD_ORDER,
|
|
|
- ],
|
|
|
-
|
|
|
-
|
|
|
- //制作成品消耗 ---减库存
|
|
|
- StockRecordClass::STOCK_RECORD_TYPE_GOODS_CONSUME=>[
|
|
|
- 'stock'=>self::DECREASE_STOCK,
|
|
|
- 'recordType'=>StockRecordClass::STOCK_RECORD_TYPE_GOODS_CONSUME,
|
|
|
- ],
|
|
|
-
|
|
|
- //制作成品损耗--减库存
|
|
|
- StockRecordClass::STOCK_RECORD_TYPE_GOODS_WASTAGE=>[
|
|
|
- 'stock'=>self::DECREASE_STOCK,
|
|
|
- '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,
|
|
|
- ],
|
|
|
-
|
|
|
- ];
|
|
|
-
|
|
|
- //花材--采购,(不用区分是供货商采购还是零售端采购)
|
|
|
- // 加库存,加记录
|
|
|
- public static function purchaseItem($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options= [])
|
|
|
- {
|
|
|
- $stockInfo =self::commonItemFun($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options,StockRecordClass::STOCK_RECORD_TYPE_PURCHASE);
|
|
|
- return $stockInfo;
|
|
|
- }
|
|
|
-
|
|
|
- //花材--出库
|
|
|
- public static function stockOutItem($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options= [])
|
|
|
- {
|
|
|
- $stockInfo =self::commonItemFun($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options,StockRecordClass::STOCK_RECORD_TYPE_OUT_STOCK);
|
|
|
- return $stockInfo;
|
|
|
- }
|
|
|
-
|
|
|
- //花材--入库
|
|
|
- public static function stockInItem($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options= [])
|
|
|
- {
|
|
|
- $stockInfo =self::commonItemFun($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options,StockRecordClass::STOCK_RECORD_TYPE_IN_STOCK);
|
|
|
- return $stockInfo;
|
|
|
- }
|
|
|
-
|
|
|
- //花材--盘点
|
|
|
- public static function stockPdItem($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options= [])
|
|
|
- {
|
|
|
- $stockInfo =self::commonItemFun($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options,StockRecordClass::STOCK_RECORD_TYPE_CHECK_STOCK);
|
|
|
- return $stockInfo;
|
|
|
- }
|
|
|
-
|
|
|
- //花材--报损
|
|
|
- public static function stockWastageItem($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options= [])
|
|
|
- {
|
|
|
- $stockInfo =self::commonItemFun($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options,StockRecordClass::STOCK_RECORD_TYPE_WASTAGE);
|
|
|
- return $stockInfo;
|
|
|
- }
|
|
|
-
|
|
|
- //花材--花店销售单
|
|
|
- public static function stockHdSellItem($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options= [])
|
|
|
- {
|
|
|
- $stockInfo =self::commonItemFun($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options,StockRecordClass::STOCK_RECORD_TYPE_HD_ORDER);
|
|
|
- return $stockInfo;
|
|
|
- }
|
|
|
-
|
|
|
- //花材--销售(卖出)
|
|
|
- public static function stockSellItem($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options= [])
|
|
|
- {
|
|
|
- $stockInfo =self::commonItemFun($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options,StockRecordClass::STOCK_RECORD_TYPE_SELL_STOCK);
|
|
|
- return $stockInfo;
|
|
|
- }
|
|
|
-
|
|
|
- //花材--取消出库
|
|
|
- public static function stockOutCancelItem($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options= [])
|
|
|
- {
|
|
|
- $stockInfo =self::commonItemFun($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options,StockRecordClass::STOCK_RECORD_TYPE_OUT_STOCK_CANCEL);
|
|
|
- return $stockInfo;
|
|
|
- }
|
|
|
-
|
|
|
- //花材--取消入库
|
|
|
- public static function stockInCancelItem($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options= [])
|
|
|
- {
|
|
|
- $stockInfo =self::commonItemFun($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options,StockRecordClass::STOCK_RECORD_TYPE_IN_STOCK_CANCEL);
|
|
|
- return $stockInfo;
|
|
|
- }
|
|
|
-
|
|
|
- //花材--退款退货
|
|
|
- public static function stockRefundItem($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options= [])
|
|
|
- {
|
|
|
- $stockInfo =self::commonItemFun($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options,StockRecordClass::STOCK_RECORD_TYPE_REFUND);
|
|
|
- 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);
|
|
|
- return $stockInfo;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- //花材--制作成品损耗
|
|
|
- public static function stockMakeGoodsWastageItem($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options= [])
|
|
|
- {
|
|
|
- $stockInfo =self::commonItemFun($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options,StockRecordClass::STOCK_RECORD_TYPE_GOODS_WASTAGE);
|
|
|
- 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);
|
|
|
- return $stockInfo;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- //成品相关---todo
|
|
|
-
|
|
|
-
|
|
|
- public static function commonItemFun($orderSn,$sjId,$shopId,$productId,$bigNum,$smallNum,$options,$action)
|
|
|
- {
|
|
|
- $product = self::verifyProduct($productId);
|
|
|
- $map = self::$actionItemMap[$action];
|
|
|
- if(empty($map) || !isset($map['stock']) || !isset($map['recordType'])){
|
|
|
- util::fail("参数错误");
|
|
|
- }
|
|
|
- $stock = $map['stock'];
|
|
|
- $className = 'bizGhs\product\classes\ProductClass';
|
|
|
- $params = [
|
|
|
- $productId,
|
|
|
- $bigNum,
|
|
|
- $smallNum
|
|
|
- ];
|
|
|
- $stockInfo = call_user_func_array(array($className,$stock),$params);
|
|
|
- $record = self::getItemRecordData($orderSn,$sjId,$shopId,$product,$stockInfo,$options);
|
|
|
- $record['recordType'] = $map['recordType'];
|
|
|
- StockRecordClass::addRecord($record);
|
|
|
- return $stockInfo;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public static function getItemRecordData($orderSn,$sjId,$shopId,$product,$stockInfo,$options=[])
|
|
|
- {
|
|
|
- $recordData = [];
|
|
|
- $recordData['sjId'] = $sjId;
|
|
|
- $recordData['shopId'] =$shopId;
|
|
|
- //增加中央ID
|
|
|
- $recordData['mainId'] = $product['mainId'] ?? 0;
|
|
|
- $recordData['itemId'] = $product['itemId'];
|
|
|
- $recordData['itemNum'] = $stockInfo['itemNum'];
|
|
|
- $recordData['oldStock'] = $stockInfo['oldStock'];
|
|
|
- $recordData['newStock'] = $stockInfo['newStock'];
|
|
|
- $recordData['productId'] = $product['id'];
|
|
|
- $recordData['orderSn'] = $orderSn;
|
|
|
- $recordData['relateName'] = $options['relateName'] ?? '';
|
|
|
- return $recordData;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- protected static function verifyProduct($productId)
|
|
|
- {
|
|
|
- $product = ProductClass::getById($productId);
|
|
|
- if(empty($product)){
|
|
|
- util::fail("花材不存在");
|
|
|
- }
|
|
|
- return $product;
|
|
|
- }
|
|
|
+ //注意方法已降级迁移到StockClass
|
|
|
|
|
|
}
|