| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- <?php
- namespace biz\stock\classes;
- use biz\base\classes\BaseClass;
- class GoodsStockRecordClass extends BaseClass
- {
- public static $baseFile = '\biz\stock\models\GoodsStockRecord';
- //定义库存变更类型
- const STOCK_RECORD_TYPE_PURCHASE = 1; //采购(制作商品)
- const STOCK_RECORD_TYPE_OUT_STOCK = 2; //出库
- const STOCK_RECORD_TYPE_IN_STOCK = 3; //入库
- const STOCK_RECORD_TYPE_CHECK_STOCK = 4; //盘点
- const STOCK_RECORD_TYPE_SELL_STOCK = 5; //销售(卖出)
- const STOCK_RECORD_TYPE_OUT_STOCK_CANCEL = 6; //取消入库
- const STOCK_RECORD_TYPE_IN_STOCK_CANCEL = 7; //取消出库
- const STOCK_RECORD_TYPE_SELL_STOCK_CANCEL = 8;// 取消订单
- const STOCK_RECORD_TYPE_WASTAGE = 9;// 报损
- const STOCK_RECORD_TYPE_REFUND = 10;// 退款退货
- const STOCK_RECORD_TYPE_PURCHASE_CANCEL = 11; //取消退回采购(制作商品)
- const STOCK_RECORD_TYPE_CG = 12;//采购
- const STOCK_RECORD_TYPE_CANCEL_ORDER = 13;//取消订单
- public static $typeMap = [
- self::STOCK_RECORD_TYPE_PURCHASE => '制作',
- self::STOCK_RECORD_TYPE_IN_STOCK => '调拨入库',
- self::STOCK_RECORD_TYPE_OUT_STOCK => '调拨出库',
- self::STOCK_RECORD_TYPE_CHECK_STOCK => '盘点',
- self::STOCK_RECORD_TYPE_SELL_STOCK => '开单',
- self::STOCK_RECORD_TYPE_OUT_STOCK_CANCEL => '取消入库',
- self::STOCK_RECORD_TYPE_IN_STOCK_CANCEL => '取消出库',
- 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_CG => '采购',
- self::STOCK_RECORD_TYPE_CANCEL_ORDER => '取消订单',
- ];
- public static function pdGoods($data)
- {
- $data['recordType'] = self::STOCK_RECORD_TYPE_CHECK_STOCK;
- return self::addRecord($data);
- }
- //取消订单 ssh 20220516
- public static function cancelOrder($data)
- {
- $data['recordType'] = self::STOCK_RECORD_TYPE_SELL_STOCK_CANCEL;
- return self::addRecord($data);
- }
- public static function refund($data)
- {
- $data['recordType'] = self::STOCK_RECORD_TYPE_REFUND;
- return self::addRecord($data);
- }
- //报损
- public static function wastage($data)
- {
- $data['recordType'] = self::STOCK_RECORD_TYPE_WASTAGE;
- return self::addRecord($data);
- }
- //制作单
- public static function addMakeGoods($data)
- {
- $data['recordType'] = self::STOCK_RECORD_TYPE_PURCHASE;
- return self::addRecord($data);
- }
- //采购商品
- public static function cgAddGoods($data)
- {
- $data['recordType'] = self::STOCK_RECORD_TYPE_CG;
- return self::addRecord($data);
- }
- //制作单退回
- public static function cancelMakeGoods($data)
- {
- $data['recordType'] = self::STOCK_RECORD_TYPE_PURCHASE_CANCEL;
- return self::addRecord($data);
- }
- //销售商品
- public static function sellGoods($data)
- {
- $data['recordType'] = self::STOCK_RECORD_TYPE_SELL_STOCK;
- return self::addRecord($data);
- }
- //取消订单,制作单取消,库存要求回滚
- public static function cancelOrderGoods($data)
- {
- $data['recordType'] = self::STOCK_RECORD_TYPE_CANCEL_ORDER;
- return self::addRecord($data);
- }
- //新增库存变更记录
- public static function addRecord($data)
- {
- $record = [];
- $record['sjId'] = $data['sjId'] ?? 0;
- $record['shopId'] = $data['shopId'] ?? 0;
- $record['mainId'] = $data['mainId'] ?? 0;
- $record['orderSn'] = $data['orderSn'] ?? '';
- $record['recordType'] = $data['recordType'] ?? '';
- $record['goodsId'] = $data['goodsId'] ?? '';
- $record['goodsNum'] = $data['goodsNum'] ?? '';
- $record['relateName'] = $data['relateName'] ?? '';
- $record['oldStock'] = $data['oldStock'] ?? 0;
- $record['newStock'] = $data['newStock'] ?? 0;
- $io = -1;
- if ($record['newStock'] > $record['oldStock']) {
- $io = 1;
- }
- if ($record['newStock'] < $record['oldStock']) {
- $io = 0;
- }
- $record['io'] = $io;
- $respond = self::add($record);
- return $respond;
- }
- //获取某个商品的库存变更记录
- public static function getRecordList($where)
- {
- $data = self::getList('*', $where, 'addTime DESC,id DESC');
- $list = !empty($data['list']) ? $data['list'] : [];
- if (empty($list)) {
- return $data;
- }
- foreach ($list as $k => $v) {
- $list[$k]['typeName'] = self::getTypeName($v['recordType']);
- }
- $data['list'] = $list;
- return $data;
- }
- public static function getTypeName($type)
- {
- return self::$typeMap[$type] ?? '';
- }
- }
|