| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- <?php
- namespace bizHd\pd\classes;
- use biz\stock\classes\GoodsStockRecordClass;
- use bizHd\base\classes\BaseClass;
- use bizHd\goods\classes\GoodsClass;
- use common\components\orderSn;
- use common\components\util;
- use Yii;
- class PdGoodsClass extends BaseClass
- {
- public static $baseFile = '\bizHd\pd\models\PdGoods';
- public static function addBase($data, $bool = false)
- {
- return self::add($data, $bool);
- }
- public static function getPdList($where)
- {
- $data = self::getList('*', $where, 'addTime DESC');
- $list = isset($data['list']) && !empty($data['list']) ? $data['list'] : [];
- if (empty($list)) {
- return $data;
- }
- return $data;
- }
- //创建盘点 ssh 20230302
- public static function createPd($data)
- {
- $goodsList = $data['goodsInfo'];
- $mainId = $data['mainId'] ?? 0;
- $sjId = $data['sjId'] ?? 0;
- $shopId = $data['shopId'] ?? 0;
- $staffName = $data['staffName'] ?? '';
- $orderSn = orderSn::getPdGoodsSn();
- $data['orderSn'] = $orderSn;
- $ids = array_column($goodsList, 'goodsId');
- $ids = array_unique(array_filter($ids));
- $goodsInfo = GoodsClass::getByIds($ids, null, 'id');
- if (empty($goodsInfo)) {
- util::fail('没有商品');
- }
- foreach ($goodsInfo as $goodsData) {
- $name = $goodsData['name'] ?? '';
- if (isset($goodsData['mainId']) == false || $goodsData['mainId'] != $mainId) {
- util::fail($name . '没有权限盘点');
- }
- }
- foreach ($goodsList as $item) {
- $goodsId = $item['goodsId'] ?? 0;
- $name = $item['name'] ?? '';
- $cover = $item['cover'] ?? '';
- $flower = $item['flower'] ?? 0;
- $kindId = $item['kindId'] ?? 0;
- $num = $item['num'] ?? 0;
- $current = $goodsInfo[$goodsId] ?? [];
- if (empty($current)) {
- util::fail('存在有问题商品');
- }
- $stock = $current['stock'];
- $price = $current['price'] ?? 0;
- $cost = $current['cost'] ?? 0;
- if ($num != $stock) {
- if ($num > $stock) {
- $diffNum = bcsub($num, $stock);
- $respond = GoodsClass::addStock($goodsId, $mainId, $diffNum);
- } else {
- $diffNum = bcsub($stock, $num);
- $checkStock = false;
- $params = [];
- $respond = GoodsClass::decreaseStock($goodsId, $mainId, $diffNum, $checkStock, $params);
- }
- $oldStock = $respond['oldStock'] ?? 0;
- $newStock = $respond['newStock'] ?? 0;
- $recordData = [];
- $recordData['sjId'] = $sjId;
- $recordData['shopId'] = $shopId;
- $recordData['mainId'] = $mainId;
- $recordData['orderSn'] = $orderSn;
- $recordData['goodsId'] = $goodsId;
- $recordData['goodsNum'] = $diffNum;
- $recordData['oldStock'] = $oldStock;
- $recordData['newStock'] = $newStock;
- $recordData['relateName'] = $staffName;
- GoodsStockRecordClass::pdGoods($recordData);
- $itemData = [
- 'orderSn' => $orderSn,
- 'goodsId' => $goodsId,
- 'name' => $name,
- 'cover' => $cover,
- 'flower' => $flower,
- 'kindId' => $kindId,
- 'num' => $num,
- 'stock' => $oldStock,
- 'price' => $price,
- 'cost' => $cost,
- ];
- PdGoodsDetailClass::add($itemData);
- }
- }
- $data['status'] = 2;
- $result = self::addBase($data, true);
- return $result;
- }
- }
|