wugg 2 years ago
parent
commit
3abf6ab602
1 changed files with 37 additions and 31 deletions
  1. 37 31
      app/admin/controller/Sale.php

+ 37 - 31
app/admin/controller/Sale.php

@@ -171,6 +171,9 @@ class Sale extends Base
             }
             $send_num = array_sum(array_column($addrlist,"receipt_quantity"));
         }
+        if($send_num>$good_num){
+            return error_show(1004,"发货数量超出订单总数量");
+        }
         $remark =isset($this->post['remark']) && $this->post['remark'] !=="" ?trim($this->post['remark']):"";
 
         $apply_id =GetUserInfo($token);
@@ -194,10 +197,10 @@ class Sale extends Base
                 "origin_price"=>$origin_price,
                 "sale_price"=>$sale_price,
                 "post_fee"=>0,
-                "status"=>$send_num == 0 ? 0 : 1,
-                "send_num"=>$send_num,
-                "wsend_num"=>$good_num-$send_num,
-                "send_status"=>$good_num==$send_num? 3 :($send_num==0?1 :2) ,
+                "status"=>0,
+                "send_num"=>0,
+                "wsend_num"=>$good_num,
+                "send_status"=>0 ,
                 "good_type"=>$goodtype,
                 "send_type"=>$sendtype,
                 "supplierNo"=>$supplierNo,
@@ -808,10 +811,10 @@ class Sale extends Base
                 "origin_price"=>$zxinfo['total_fee'],
                 "sale_price" => $sale_price,//销售单价支持修改
                 "post_fee"=>0,
-                "status"=>$send_num == 0 ? 0 : 1,
-                "send_num"=>$send_num,
-                "wsend_num"=>$good_num-$send_num,
-                "send_status"=>$good_num==$send_num? 3 :($send_num==0?1 :2) ,
+                "status"=>0,
+                "send_num"=>0,
+                "wsend_num"=>$good_num,
+                "send_status"=>1,
                 "good_type"=>1,
                 "send_type"=>$sendtype,
                 "supplierNo"=>$zxorder['companyNo'],
@@ -1239,10 +1242,10 @@ class Sale extends Base
             "origin_price"=>$goodinfo['total_fee'],
             "sale_price"=>$data['sale_price'],
             "post_fee"=>0,
-            "status"=>$data['send_num']==0?0 :1,
-            "send_num"=>$data['send_num'],
-            "wsend_num"=>$data['good_num']-$data['send_num'],
-            "send_status"=>$data['good_num']==$data['send_num']? 3 :($data['send_num']==0?1 :2),
+            "status"=>0,
+            "send_num"=>0,
+            "wsend_num"=>$data['good_num'],
+            "send_status"=>1,
             "good_type"=>1,
             "send_type"=>$data['sendtype'],
             "supplierNo"=>$data['companyNo'],
@@ -1450,10 +1453,10 @@ class Sale extends Base
             "origin_price"=>$origin_price,
             "sale_price"=>$sale_price,
             "post_fee"=>0,
-            "status"=>$data['send_num']==0?0 :1,
-            "send_num"=>$data['send_num'],
-            "wsend_num"=>$data['good_num']-$data['send_num'],
-            "send_status"=>$data['good_num']==$data['send_num']? 3 :($data['send_num']==0?1 :2) ,
+            "status"=>0,
+            "send_num"=>0,
+            "wsend_num"=>$data['good_num'],
+            "send_status"=>1,
             "good_type"=>1,
             "send_type"=>$data['sendtype'],
             "supplierNo"=>$data['companyNo'],
@@ -2900,7 +2903,8 @@ class Sale extends Base
         if ($send_num == "") {
             return error_show(1002, "发货数量不能为空");
         }
-        if ($send_num > $der['wsend_num']) {
+        $wsed=Db::name("order_out")->where(["orderCode"=>$orderCode])->where("status","<",2)->sum('send_num');
+        if ($send_num > $der['wsend_num']-$wsed) {
             return error_show(1002, "超出可发货数量");
         }
 
@@ -2956,16 +2960,16 @@ class Sale extends Base
             ];
             $addrid = Db::name("order_addr")->insert($addrlst,true);
             if($addrid>0){
-                    $der['send_num'] +=$send_num;
-                    $der['wsend_num'] -= $send_num;
-                    $der['send_status'] = $der['send_num'] == 0 ? 1 : $der['wsend_num'] == 0 ? 3 : 2;
-                    $der['status'] = $der['send_num'] == 0 ? 0 : $der['wsend_num'] == 0 ?2 :1;
-                    $der['updatetime'] = date("Y-m-d H:i:s");
-                    $si = Db::name('sale')->save($der);
-                    if($si==false){
-                        Db::rollback();
-                        return error_show(1002,"出库单新建失败");
-                    }
+//                    $der['send_num'] +=$send_num;
+//                    $der['wsend_num'] -= $send_num;
+//                    $der['send_status'] = $der['send_num'] == 0 ? 1 : $der['wsend_num'] == 0 ? 3 : 2;
+//                    $der['status'] = $der['send_num'] == 0 ? 0 : $der['wsend_num'] == 0 ?2 :1;
+//                    $der['updatetime'] = date("Y-m-d H:i:s");
+//                    $si = Db::name('sale')->save($der);
+//                    if($si==false){
+//                        Db::rollback();
+//                        return error_show(1002,"出库单新建失败");
+//                    }
 
                         $outCode = makeNo("DF");
                         $cgd =Db::name("purchease_order")->where(["cgdNo"=>$order['cgdNo']])->find();
@@ -3111,16 +3115,18 @@ class Sale extends Base
         try{
             $up =Db::name("order_out")->save($outinfo);
             if($up){
-                $sendnum = Db::name("order_out")->where([['orderCode',"=", $outinfo['orderCode']], ["status","<",2]])->count();
-                if($sendnum==0 && $einfo['wsend_num']==0){
-                    $einfo['status']=2;
+
+                    $einfo['status']=$einfo['wsend_num']==0?2:($einfo['send_num']==0?0:1);
+                    $einfo['send_num']+=$outinfo['send_num'];
+                    $einfo['wsend_num']-=$outinfo['send_num'];
+                    $einfo['send_status']=$einfo['wsend_num']==0?3:($einfo['send_num']==0?1:2);
                     $einfo['updatetime']=date("Y-m-d H:i:s");
                     $saleup=Db::name("sale")->save($einfo);
                     if($saleup==false){
                         Db::rollback();
                         return error_show(1002, "销售单状态更新失败");
                     }
-                }
+//                }
                 //修改状态,添加待办
                 ActionLog::logAdd($this->post['token'], [
                     "order_code" => $outinfo['outCode'],//出库单号