|
|
@@ -47,11 +47,25 @@ class StockOutOrderClass extends BaseClass
|
|
|
|
|
|
$connection = Yii::$app->db;
|
|
|
$transaction = $connection->beginTransaction();
|
|
|
+
|
|
|
try{
|
|
|
$order = self::add($data);
|
|
|
//写入详情表
|
|
|
$batchData = self::groupOrderItem($ghsItemInfo,$orderSn);
|
|
|
StockOutOrderItemClass::batchAddOrderItem($batchData);
|
|
|
+
|
|
|
+ //先减库存,若取消出库则加回来
|
|
|
+ $orderData = self::getOrderDetail($orderSn,$data['outShopId']);
|
|
|
+ //减库存
|
|
|
+ $itemInfo = $orderData['itemInfo']??[];
|
|
|
+ if(empty($itemInfo)){
|
|
|
+ $transaction->rollBack();
|
|
|
+ util::fail("订单异常");
|
|
|
+ }
|
|
|
+ foreach ($itemInfo as $v){
|
|
|
+ ProductClass::decreaseStockByItemNum($v['productId'],$v['itemNum']);
|
|
|
+ }
|
|
|
+
|
|
|
$transaction->commit();
|
|
|
if($action===self::ACTION_CONFIRM){
|
|
|
//直接出库=》直接入库
|
|
|
@@ -98,10 +112,7 @@ class StockOutOrderClass extends BaseClass
|
|
|
}
|
|
|
$orderData['shopId'] = $shopId;
|
|
|
StockRecordClass::addRecordByOrder($orderData,StockRecordClass::STOCK_RECORD_TYPE_OUT_STOCK);
|
|
|
- //减库存
|
|
|
- foreach ($itemInfo as $v){
|
|
|
- ProductClass::decreaseStockByItemNum($v['productId'],$v['itemNum']);
|
|
|
- }
|
|
|
+
|
|
|
//写入一条数据到入库门店的入库订单表(生成入库订单号
|
|
|
$inOrderData = StockInOrderClass::addOrder($orderData);
|
|
|
$inOrderSn = $inOrderData['orderSn'];
|
|
|
@@ -119,6 +130,7 @@ class StockOutOrderClass extends BaseClass
|
|
|
|
|
|
//2021.1.23. linqh 取消出库 :
|
|
|
//一、 从状态1 修改为 3
|
|
|
+ //二、 加回库存
|
|
|
public static function cancelOrder($orderSn,$shopId,$adminId)
|
|
|
{
|
|
|
$where = [
|
|
|
@@ -131,6 +143,17 @@ class StockOutOrderClass extends BaseClass
|
|
|
'status'=>self::STATUS_CANCEL,
|
|
|
'adminId'=>$adminId,
|
|
|
];
|
|
|
+
|
|
|
+ $orderData = self::getOrderDetail($orderSn,$shopId);
|
|
|
+ //加库存
|
|
|
+ $itemInfo = $orderData['itemInfo']??[];
|
|
|
+ if(empty($itemInfo)){
|
|
|
+ util::fail("订单异常");
|
|
|
+ }
|
|
|
+ foreach ($itemInfo as $v){
|
|
|
+ ProductClass::addStockByItemNum($v['productId'],$v['itemNum']);
|
|
|
+ }
|
|
|
+
|
|
|
self::updateByCondition($where,$data);
|
|
|
|
|
|
}
|