|
|
@@ -14,6 +14,7 @@ use biz\stat\classes\StatOrderCountClass;
|
|
|
use biz\stat\classes\StatSaleClass;
|
|
|
use biz\stock\classes\GoodsStockRecordClass;
|
|
|
use biz\wx\classes\WxMessageClass;
|
|
|
+use bizGhs\order\classes\CheckOrderClass;
|
|
|
use bizGhs\product\classes\ProductClass;
|
|
|
use bizGhs\stat\classes\StatYjClass;
|
|
|
use bizGhs\stock\classes\StockRecordClass;
|
|
|
@@ -86,6 +87,63 @@ class OrderClass extends BaseClass
|
|
|
20000 => [90, 100],
|
|
|
];
|
|
|
|
|
|
+ //因为开负数订单时引导库存变化 ssh 20250731
|
|
|
+ public static function minusChangeStock($order, $shop, $staff)
|
|
|
+ {
|
|
|
+ $forward = $order['forward'] ?? 0;
|
|
|
+ if ($forward == 0) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ $forwardStock = $order['forwardStock'] ?? 0;
|
|
|
+ $orderSn = $order['orderSn'] ?? '';
|
|
|
+ $orderItemList = OrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*');
|
|
|
+ $orderGoodsList = OrderGoodsClass::getAllByCondition(['orderSn' => $orderSn], null, '*');
|
|
|
+ if (empty($orderItemList) && empty($orderGoodsList)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (!empty($orderItemList)) {
|
|
|
+ $itemInfo = [];
|
|
|
+ $ids = array_column($orderItemList, 'itemId');
|
|
|
+ $infoList = ProductClass::getAllByCondition(['id' => ['in', $ids]], null, '*', 'id');
|
|
|
+ foreach ($orderItemList as $orderItem) {
|
|
|
+ $unitType = $orderItem['unitType'] ?? 0;
|
|
|
+ $num = $orderItem['num'] ?? 0;
|
|
|
+ $productId = $orderItem['itemId'] ?? 0;
|
|
|
+ $info = $infoList[$productId] ?? [];
|
|
|
+ $stock = $info['stock'] ?? 0;
|
|
|
+ $ratio = $info['ratio'] ?? 20;
|
|
|
+ $map = ProductClass::formatStock($stock, $ratio);
|
|
|
+ $bigNum = $map['bigNum'] ?? 0;
|
|
|
+ $smallNum = $map['smallNum'] ?? 0;
|
|
|
+ $num = $forwardStock == 0 ? $num * 2 : $num;
|
|
|
+ if ($unitType == 0) {
|
|
|
+ $bigNum = $bigNum + $num;
|
|
|
+ } else {
|
|
|
+ $smallNum = $smallNum + $num;
|
|
|
+ }
|
|
|
+ $itemInfo[] = ['productId' => $productId, 'bigNum' => $bigNum, 'smallNum' => $smallNum];
|
|
|
+ }
|
|
|
+ $shopId = $shop->id ?? 0;
|
|
|
+ $sjId = $shop->sjId ?? 0;
|
|
|
+ $adminId = $staff->adminId;
|
|
|
+ $remark = $forwardStock == 0 ? '开负数订单,退货并退款,库存退回' : '开负数订单,只退款,库存退回';
|
|
|
+ $itemData = [
|
|
|
+ 'remark' => $remark,
|
|
|
+ 'itemInfo' => $itemInfo,
|
|
|
+ 'sjId' => $sjId,
|
|
|
+ 'shopId' => $shopId,
|
|
|
+ 'adminId' => $adminId,
|
|
|
+ ];
|
|
|
+ CheckOrderClass::opOrder($itemData);
|
|
|
+ }
|
|
|
+ if (!empty($orderGoodsList)) {
|
|
|
+ foreach ($orderGoodsList as $orderGoods) {
|
|
|
+ $a = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @param $order
|
|
|
* @param $mainId
|