wugg 2 vuotta sitten
vanhempi
commit
07d02e94a3
2 muutettua tiedostoa jossa 21 lisäystä ja 3 poistoa
  1. 6 0
      app/admin/controller/After.php
  2. 15 3
      app/admin/controller/Reorder.php

+ 6 - 0
app/admin/controller/After.php

@@ -28,6 +28,9 @@ class After extends Base
          if($orderout==false){
              return error_show(1005,"未找到订单数据");
          }
+         $after_num =Db::name("order_return")->where(["orderCode"=>$orderout['orderCode'],"outCode"=>$outCode])
+             ->where("status","not in",[5,8])->sum("error_num");
+
          $wsm =Db::name("warehouse_info")->where(["wsm_code"=>$orderout['wsm_code']])->find();
         if($wsm==false){
             return error_show(1005,"未找到仓库数据");
@@ -58,6 +61,9 @@ class After extends Base
                 return error_show(1004,"参数 num 不能为空或零");
             }
         }
+        if($num>$orderout['send_num']-$after_num){
+            return error_show(1004,"可售后数量不足");
+        }
         $except_code =isset($this->post['except_code']) &&$this->post['except_code']!=''?trim($this->post['except_code']) :"";
         $img = isset($this->post['img']) &&$this->post['img']!=''?trim($this->post['img']) :"";
         $token = isset($this->post['token'])&&$this->post['token']!='' ? trim($this->post['token']):"";

+ 15 - 3
app/admin/controller/Reorder.php

@@ -778,7 +778,13 @@ class Reorder extends Base
                             }
                             if($stock['wait_in_stock']<$info['num']){
                                 $stock['wait_in_stock']=0;
-                                $stock['usable_stock'] -= $info['num']-$stock['wait_in_stock'];
+                                if( $stock['usable_stock']>$info['num']-$stock['wait_in_stock']){
+                                    $stock['usable_stock'] -= $info['num']-$stock['wait_in_stock'];
+                                }else{
+                                    $stock['usable_stock'] = 0;
+                                    $stock['wait_out_stock']-= $info['num']-$stock['wait_in_stock']- $stock['usable_stock'] ;
+                                }
+
                                 $stock['total_stock']= $stock['usable_stock']+ $stock['wait_out_stock'];
                             }else{
                                 $stock['wait_in_stock']-=$info['num'];
@@ -820,11 +826,17 @@ class Reorder extends Base
                                 Db::rollback();
                                 return error_show(1005, '商品仓库未找到');
                             }
-                            if($stock['usable_stock']<$info['num']){
+                            if($stock['usable_stock']+$stock['wait_out_stock']<$info['num']){
                                 Db::rollback();
                                 return error_show(1005, '商品可用库存不足退回数量');
                             }else{
-                                $stock['usable_stock'] -= $info['num'];
+
+                                if($stock['usable_stock']>$info['num']){
+                                    $stock['usable_stock'] -= $info['num'];
+                                }else{
+                                    $stock['usable_stock'] = 0;
+                                    $stock['wait_out_stock']-= $info['num']- $stock['usable_stock'] ;
+                                }
                                 $stock['total_stock']= $stock['usable_stock']+ $stock['wait_out_stock'];
                             }
                             $stock['updatetime'] = date("Y-m-d H:i:s");