[ 'stock' => self::ADD_STOCK, //加库存 'recordType' => StockRecordClass::STOCK_RECORD_TYPE_PURCHASE, ], //入库 加库存 StockRecordClass::STOCK_RECORD_TYPE_IN_STOCK => [ 'stock' => self::ADD_STOCK, //加库存 'recordType' => StockRecordClass::STOCK_RECORD_TYPE_IN_STOCK, ], //出库 减库存 StockRecordClass::STOCK_RECORD_TYPE_OUT_STOCK => [ 'stock' => self::DECREASE_STOCK, //减库存 'recordType' => StockRecordClass::STOCK_RECORD_TYPE_OUT_STOCK, ], //销售(开单) 减库存 StockRecordClass::STOCK_RECORD_TYPE_SELL_STOCK => [ 'stock' => self::DECREASE_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; } //商品相关---??? 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']; $record['ptStyle'] = $options['ptStyle'] ?? dict::getDict('ptStyle', 'hd'); 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; } }