| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- <?php
- namespace bizGhs\stock\classes;
- use bizGhs\base\classes\BaseClass;
- use bizGhs\order\traits\OrderTrait;
- use bizGhs\product\classes\ProductClass;
- use common\components\dict;
- use common\services\xhItemService;
- class OnStockRecordClass extends BaseClass
- {
- use OrderTrait;
- public static $baseFile = '\bizGhs\stock\models\OnStockRecord';
- const STOCK_RECORD_TYPE_PURCHASE = 1;//采购发货
- const STOCK_RECORD_TYPE_IN_STOCK = 3;//完成入库
- const STOCK_RECORD_TYPE_CANCEL_CG = 4;//取消采购
- const STOCK_RECORD_TYPE_MODIFY = 5;//修改
- public static $typeMap = [
- self::STOCK_RECORD_TYPE_PURCHASE => '采购发货',
- self::STOCK_RECORD_TYPE_IN_STOCK => '完成入库',
- self::STOCK_RECORD_TYPE_CANCEL_CG => '取消采购',
- self::STOCK_RECORD_TYPE_MODIFY => '修改',
- ];
- public static function getRecordList($where)
- {
- $data = self::getList('*', $where, 'addTime DESC,id DESC');
- $list = isset($data['list']) && !empty($data['list']) ? $data['list'] : [];
- if (empty($list)) {
- return $data;
- }
- $itemIds = array_column($list, 'itemId');
- $itemIdsUnitNum = xhItemService::getItemUnitNums($itemIds);
- foreach ($list as $k => $v) {
- $unitNum = $itemIdsUnitNum[$v['itemId']] ?? 0;
- $stock = ProductClass::formatStock($v['newStock'], $unitNum);
- $orderNums = ProductClass::formatStock($v['itemNum'], $unitNum);
- $list[$k]['bigNumOrder'] = $orderNums['bigNum'];
- $list[$k]['smallNumOrder'] = $orderNums['smallNum'];
- $list[$k]['bigNumStock'] = $stock['bigNum'];
- $list[$k]['smallNumStock'] = $stock['smallNum'];
- $list[$k]['typeName'] = self::getTypeName($v['recordType']);
- }
- $data['list'] = $list;
- return $data;
- }
- public static function getTypeName($type)
- {
- return self::$typeMap[$type] ?? '';
- }
- public static function addRecord($data)
- {
- $oldStock = $data['oldStock'] ?? 0;
- $newStock = $data['newStock'] ?? 0;
- $io = -1;
- if ($newStock > $oldStock) {
- $io = 1;
- }
- if ($newStock < $oldStock) {
- $io = 0;
- }
- $data['io'] = $io;
- $data['itemNum'] = abs($data['itemNum']);
- $respond = self::add($data);
- return $respond;
- }
- //根据order 记录流水
- // sjId,shopId,orderSn
- //itemInfo = [{productId:1,itemId:1,itemNum:操作的花材数据,oldStock(itemStock):当时库存,newStock:变化后的库存}]
- public static function addRecordByOrder($orderData, $type)
- {
- $itemInfo = $orderData['itemInfo'];
- $productData = self::getProductMapData($itemInfo);
- foreach ($itemInfo as $v) {
- $itemId = $v['itemId'];
- $productId = $v['productId'];
- $record = [];
- $unitNum = $productData[$productId]['ratio'] ?? 0;
- $itemNum = ProductClass::mergeItemNum($v['bigNum'], $v['smallNum'], $unitNum);
- $record['sjId'] = $orderData['sjId'];
- $record['shopId'] = $orderData['shopId'];
- $record['mainId'] = $productData[$productId]['mainId'] ?? 0;
- $record['orderSn'] = $orderData['orderSn'];
- $record['itemId'] = $itemId;
- $record['itemNum'] = $itemNum;
- $record['oldStock'] = $v['itemStock']; //当时库存
- $record['recordType'] = $type;
- $record['productId'] = $productId;
- $record['newStock'] = $v['newStock'];// 最新库存
- $record['relateName'] = $orderData['relateName'] ?? '';
- $record['ptStyle'] = $orderData['ptStyle'] ?? dict::getDict('ptStyle', 'ghs');
- self::addRecord($record);
- }
- }
- //采购发货 ssh 20231218
- public static function addPurchaseOrderRecord($data)
- {
- $data['recordType'] = self::STOCK_RECORD_TYPE_PURCHASE;
- return self::addRecord($data);
- }
- //完成入库 ssh 20231218
- public static function addInStockOrderRecord($data)
- {
- $data['recordType'] = self::STOCK_RECORD_TYPE_IN_STOCK;
- return self::addRecord($data);
- }
- //取消入库 ssh 20231218
- public static function cancelCg($data)
- {
- $data['recordType'] = self::STOCK_RECORD_TYPE_CANCEL_CG;
- return self::addRecord($data);
- }
- public static function modify($data)
- {
- $data['recordType'] = self::STOCK_RECORD_TYPE_MODIFY;
- return self::addRecord($data);
- }
- }
|