|
|
@@ -14,6 +14,8 @@ use bizGhs\admin\classes\AdminClass;
|
|
|
use bizGhs\custom\classes\CustomClass;
|
|
|
use bizGhs\stat\classes\StatOrderCountClass;
|
|
|
use bizGhs\stat\classes\StatYjClass;
|
|
|
+use bizGhs\stock\classes\StockRecordClass;
|
|
|
+use bizGhs\stock\services\StockRecordService;
|
|
|
use bizHd\purchase\classes\PurchaseClass;
|
|
|
use bizHd\stat\classes\StatIncomeClass;
|
|
|
use bizHd\stat\classes\StatOrderClass;
|
|
|
@@ -126,21 +128,36 @@ class OrderClass extends BaseClass
|
|
|
$current = time() + $validTime;
|
|
|
$data['deadline'] = date("Y-m-d H:i:s", $current);
|
|
|
$data['status'] = self::ORDER_STATUS_UN_PAY;
|
|
|
-
|
|
|
+ $currentShopId = $data['shopId'] ?? 0;
|
|
|
//计算总重量(kg)
|
|
|
$weight = 0;
|
|
|
+ $productMapData = ProductClass::getProductMapData($product);
|
|
|
foreach ($product as $key => $val) {
|
|
|
$w = ProductClass::getWeight($val['productId'], $val['bigNum'], $val['smallNum']);
|
|
|
+ $productId = $val['productId'];
|
|
|
$weight = bcadd($w, $weight, 2);
|
|
|
//减库存
|
|
|
$orderType = $data['orderType'] ?? 1;
|
|
|
$checkStock = $orderType == OrderClass::ORDER_TYPE_HD_ADD ? true : false;
|
|
|
- ProductClass::decreaseStock($val['productId'], $val['bigNum'], $val['smallNum'], $checkStock);
|
|
|
+ $stockInfo = ProductClass::decreaseStock($val['productId'], $val['bigNum'], $val['smallNum'], $checkStock);
|
|
|
+ //记录库存流水
|
|
|
+ $recordData = [];
|
|
|
+ $recordData['merchantId'] = $sjId;
|
|
|
+ $recordData['shopId'] = $currentShopId;
|
|
|
+ $recordData['itemId'] = $productMapData[$productId]['itemId']??0;
|
|
|
+ $ratio = $productMapData[$productId]['ratio']??0;
|
|
|
+ $recordData['itemNum'] = ProductClass::mergeItemNum($val['bigNum'],$val['smallNum'],$ratio);
|
|
|
+ $recordData['oldStock'] = $stockInfo['oldStock'];
|
|
|
+ $recordData['newStock'] = $stockInfo['newStock'];
|
|
|
+ $recordData['productId'] = $productId;
|
|
|
+ $recordData['orderSn'] = $orderSn;
|
|
|
+ StockRecordService::addSellStockOrderRecord($recordData);
|
|
|
}
|
|
|
+
|
|
|
$data['weight'] = $weight;
|
|
|
|
|
|
//门店总订单数+1
|
|
|
- $currentShopId = $data['shopId'] ?? 0;
|
|
|
+
|
|
|
$shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $currentShopId])->one();
|
|
|
if (empty($shop)) {
|
|
|
util::fail('没有找到门店');
|
|
|
@@ -545,7 +562,17 @@ class OrderClass extends BaseClass
|
|
|
//加回库存
|
|
|
$orderItem = OrderItemClass::getOrderItem($order->orderSn);
|
|
|
foreach ($orderItem as $v){
|
|
|
- ProductClass::addStockByItemNum($v['productId'],$v['num']);
|
|
|
+ $stockInfo = ProductClass::addStockByItemNum($v['productId'],$v['num']);
|
|
|
+ $recordData = [];
|
|
|
+ $recordData['merchantId'] = $order->merchantId;
|
|
|
+ $recordData['shopId'] = $shopId;
|
|
|
+ $recordData['itemId'] =$v['itemId']??0;
|
|
|
+ $recordData['itemNum'] = $v['num'];
|
|
|
+ $recordData['oldStock'] = $stockInfo['oldStock'];
|
|
|
+ $recordData['newStock'] = $stockInfo['newStock'];
|
|
|
+ $recordData['productId'] = $v['productId'];
|
|
|
+ $recordData['orderSn'] = $order->orderSn;
|
|
|
+ StockRecordService::addSellStockOrderCancelRecord($recordData);
|
|
|
}
|
|
|
return $order;
|
|
|
}
|