wufeng 2 anos atrás
pai
commit
465392a503

+ 10 - 5
app/admin/controller/After.php

@@ -276,6 +276,11 @@ class After extends \app\BaseController
                 return error_show(1005,"参数is_post不能为空");
             }
             $info['is_post']=$post;
+            $return_tag =isset($this->post['return_tag'])&&$this->post['return_tag']!==""? intval($this->post['return_tag']):"";
+            if($return_tag===""){
+                return error_show(1005,"参数return_tag不能为空");
+            }
+            $info['return_tag']=$return_tag;
         }
 //        $status = $info['order_status']==1&&$info['order_type']==1 && $status==1?4:$status;
         Db::startTrans();
@@ -833,13 +838,13 @@ class After extends \app\BaseController
                         "good_code"=>$info["good_code"],
                         "good_name"=>$info["good_name"],
                         "return_wsm"=>$returninfo["return_wsm"],
-                        "defective_wsm"=>'',
-                        "return_msg"=>$out["error_msg"],
+//                        "defective_wsm"=>'',
+                        "return_msg"=>$info["error_msg"],
                         "return_num"=>$info["total_num"],
                         "normal_num"=>0,
                         "received_num"=>0,
-                        "defective_num"=>0,
-                        "loss_num"=>0,
+                      //  "defective_num"=>0,
+                      //  "loss_num"=>0,
                         "contactor"=>$returninfo["contactor"],
                         "mobile"=>$returninfo["mobile"],
                         "addr"=>$returninfo["addr"],
@@ -848,7 +853,7 @@ class After extends \app\BaseController
                         "post_fee"=>$returninfo["post_fee"],
                         "post_code"=>$returninfo["post_code"],
                         "post_company"=>$returninfo["post_company"],
-                        "customer_code"=>$returninfo["customer_code"],
+                        "customer_code"=>$info["customer_code"],
                         "status"=>1,
                         "addtime"=>date("Y-m-d H:i:s"),
                         "updatetime"=>date("Y-m-d H:i:s")

+ 2 - 1
app/admin/controller/Base.php

@@ -9,6 +9,7 @@ use think\App;
 class Base extends \app\BaseController
 {
     public  $post=[];
+    public  $uid='';
     public function __construct(App $app)
     {
         parent::__construct($app);
@@ -26,6 +27,6 @@ class Base extends \app\BaseController
         if(!empty($effetc) && $effetc['code']!=0) {
             return error_show($effetc['code'], $effetc['message']);
         }
-        // TODO: Change the autogenerated stub
+
     }
 }

+ 19 - 7
app/admin/controller/Consult.php

@@ -1367,6 +1367,17 @@ class Consult extends Base
             ("zxNo");
             $where[] = ['zxNo','in',$zxlist];
         }
+
+//        $token = isset($this->post['token']) ? trim($this->post['token']) : "";
+//        if($token==""){
+//            return error_show(101,'token不能为空');
+//        }
+//        $apply_id =GetUserInfo($token);
+//        if(empty($apply_id)||$apply_id['code']!=0){
+//            return error_show(1002,"申请人数据不存在");
+//        }
+//        $rm= isset($apply_id["data"]['id']) ?  $apply_id["data"]['id'] : "";
+//        $where[]=['createrid',"=",$rm];
         $count = Db::name('consult_bids')->where($where)->count();
         $total = ceil($count / $size);
         $page = $page >= $total ? $total : $page;
@@ -1437,13 +1448,14 @@ class Consult extends Base
         if($token==''){
             return error_show(102,"参数token不能为空");
         }
-        $user =GetUserInfo($token);
-        if(empty($user)||$user['code']!=0){
-            return error_show(105,"用户数据不存在");
-        }
-        $createrid= isset($user["data"]['id']) ?  $user["data"]['id'] : "";
-        $creater= isset($user["data"]['nickname']) ?  $user["data"]['nickname'] : "";
-        $where[] = ["createrid","=",$createrid];
+//        $user =GetUserInfo($token);
+//        if(empty($user)||$user['code']!=0){
+//            return error_show(105,"用户数据不存在");
+//        }
+
+//        $createrid= isset($user["data"]['id']) ?  $user["data"]['id'] : "";
+//        $creater= isset($user["data"]['nickname']) ?  $user["data"]['nickname'] : "";
+//        $where[] = ["createrid","=",$createrid];
         $list =Db::name('consult_bids')->where($where)->select();
         $data=[];
         foreach ($list as $value){

+ 173 - 37
app/admin/controller/Purchin.php

@@ -156,7 +156,7 @@ class Purchin extends BaseController
            return error_show(1005,"采购单未发货");
        }
 
-        $wsm_in_code = makeNo("DF");
+        $wsm_in_code = makeNo("CF");
 //       $wsm_code = isset($this->post['wsm_code'])&&$this->post['wsm_code']!="" ? trim($this->post['wsm_code']):"";
 //       if($wsm_code==""){
 //           return error_show(1004,"参数 wsm_code 不能为空");
@@ -242,6 +242,32 @@ class Purchin extends BaseController
                     $cgdinfo['updatetime']=date("Y-m-d H:i:s");
                     $up=Db::name("purchease_order")->save($cgdinfo);
                     if($up){
+                        $good = Db::name("good_stock")->where(["wsm_code"=>$cgdinfo['wsm_code'],"spuCode"=>$cgdinfo['spuCode'],"is_del"=>0])->find();
+                        if(empty($good)) {
+                            $good=[
+                                "spuCode"=>$cgdinfo['spuCode'],
+                                "wsm_code"=>$cgdinfo['wsm_code'],
+                                "usable_stock"=>0,
+                                "wait_out_stock"=>0,
+                                "wait_in_stock"=>0,
+                                "total_stock"=>0,
+                                "addtime"=>date("Y-m-d H:i:s"),
+                                "updatetime"=>date("Y-m-d H:i:s"),
+                            ];
+                            $order = ["order_code"=>$good['spuCode'],"status"=>1,"action_remark"=>'', "action_type"=>"create"];
+                        }else{
+                            $order = ["order_code"=>$good['spuCode'],"status"=>1,"action_remark"=>'', "action_type"=>"edit"];
+                        }
+                        $good['wait_in_stock']+=$send_num;
+                        $good['updatetime'] = date("Y-m-d H:i:s");
+                        $upd=  Db::name("good_stock")->save($good);
+                        if($upd==false){
+                            Db::rollback();
+                            return error_show(1004,"新建失败");
+                        }
+                            $good_data[]=['good_log_code'=>$cgdNo,"stock_id"=>isset($good['id'])? $good['id']:Db::name("good_stock")->getLastInsID(),"type"=>1,'stock'=>$send_num,"stock_name"=>"usable_stock"];
+                            GoodLog::LogAdd($this->post['token'],$good_data,'RKD');
+                            ActionLog::logAdd($this->post['token'],$order,"RKD", 1,$good  );
                             $process=["order_code"=>$cgdNo,"order_id"=>$cgdinfo['id'],"order_status"=>$cgdinfo['status'],"order_type"=>'CGD'];
                             ProcessOrder::AddProcess($this->post['token'],$process);
                             Db::commit();
@@ -266,8 +292,7 @@ class Purchin extends BaseController
                     ActionLog::logAdd($this->post['token'],$order,"CGD", $cgdinfo['status'],$cgdinfo);
                     $process=["order_code"=>$cgdNo,"order_id"=>$cgdinfo['id'],"order_status"=>$cgdinfo['status'],"order_type"=>'CGD'];
                     ProcessOrder::AddProcess($this->post['token'],$process);
-                    $good = Db::name("good_stock")->where(["wsm_code"=>$cgdinfo['wsm_code'],
-                        "spuCode"=>$cgdinfo['spuCode'],"is_del"=>0])->find();
+                    $good = Db::name("good_stock")->where(["wsm_code"=>$cgdinfo['wsm_code'],"spuCode"=>$cgdinfo['spuCode'],"is_del"=>0])->find();
                     if(empty($good)) {
                         $good=[
                             "spuCode"=>$cgdinfo['spuCode'],
@@ -279,14 +304,11 @@ class Purchin extends BaseController
                             "addtime"=>date("Y-m-d H:i:s"),
                             "updatetime"=>date("Y-m-d H:i:s"),
                         ];
-                        $order = ["order_code"=>$good['spuCode'],"status"=>1,"action_remark"=>'',
-                            "action_type"=>"create"];
-
+                        $order = ["order_code"=>$good['spuCode'],"status"=>1,"action_remark"=>'', "action_type"=>"create"];
                     }else{
                         $order = ["order_code"=>$good['spuCode'],"status"=>1,"action_remark"=>'', "action_type"=>"edit"];
                     }
                     $good['usable_stock']+=$send_num;
-                    $good['wait_in_stock']-=$send_num;
                     $good['total_stock']=$good['usable_stock']+$good['wait_out_stock'];
                     $good['updatetime'] = date("Y-m-d H:i:s");
                     $upd=  Db::name("good_stock")->save($good);
@@ -295,6 +317,45 @@ class Purchin extends BaseController
                     if($upd){
                         GoodLog::LogAdd($this->post['token'],$good_data,'RKD');
                         ActionLog::logAdd($this->post['token'],$order,"RKD", 1,$good  );
+                        if($cgdinfo['send_status']==3){
+                            $send=Db::name("order_send")->where(["cgdNo"=>$cgdNo,"status"=>1])->column("outCode");
+                            if(!empty($send)){
+                                $out =Db::name("order_out")->where(["outCode"=>$send,"status"=>0])->select()
+                                    ->toArray();
+                                if(!empty($out)){
+                                    $up =Db::name("order_out")->where(["outCode"=>$send,"status"=>0])->update
+                                    (["status"=>1,'wsm_code'=>$cgdinfo['wsm_code'],"updatetime"=>date('Y-m-d H:i:s')]);
+                                    if($up==false){
+                                        Db::rollback();
+                                        return error_show(1004,"出库单出库失败");
+                                    }
+                                    $good1 = Db::name("good_stock")->where(["wsm_code"=>$cgdinfo['wsm_code'], "spuCode"=>$cgdinfo['spuCode'],"is_del"=>0])->find();
+                                    if($good1==false){
+                                        Db::rollback();
+                                        return error_show(1004,"未找到对应商品库存");
+                                    }
+                                    $out_num = intval(array_sum(array_column($out,"send_num")));
+                                    if($out_num>$good1['usable_stock']){
+                                        Db::rollback();
+                                        return error_show(1004,"库存数量不足发货");
+                                    }
+                                    $good1['usable_stock']-=$out_num;
+                                    $good1['wait_out_stock']+=$out_num;
+                                    $good1['total_stock']=$good1['usable_stock']+$good1['wait_out_stock'];
+                                    $good1['updatetime'] = date("Y-m-d H:i:s");
+                                    $upd=  Db::name("good_stock")->save($good1);
+                                    if($upd==false){
+                                        Db::rollback();
+                                        return error_show(1004,"库存数量更新失败");
+                                    }
+                                    $sendp=Db::name("order_send")->where(["cgdNo"=>$cgdNo,"outCode"=>$send,"status"=>1])->save (["status"=>2]);
+                                    if($sendp==false){
+                                        Db::rollback();
+                                        return error_show(1004,"库存发货失败");
+                                    }
+                                }
+                            }
+                        }
                         Db::commit();
                         return app_show(0,'商品入库成功',["wsm_in_code"=>$wsm_in_code]);
                     }else{
@@ -554,6 +615,45 @@ class Purchin extends BaseController
                     if($upd){
                         GoodLog::LogAdd($this->post['token'],$good_data,'RKD');
                         ActionLog::logAdd($this->post['token'],$order,"RKD", 1,$good  );
+//                        if($cgdinfo['send_status']==3){
+//                            $send=Db::name("order_send")->where(["cgdNo"=>$info['cgdNo'],"status"=>1])->column("outCode");
+//                            if(!empty($send)){
+//                                $out =Db::name("order_out")->where(["outCode"=>$send,"status"=>0,"is_del"=>0])->select()
+//                                    ->toArray();
+//                                if(!empty($out)){
+//                                    $up =Db::name("order_out")->where(["outCode"=>$send,"status"=>0,"is_del"=>0])->update
+//                                    (["status"=>1,"updatetime"=>date('Y-m-d H:i:s')]);
+//                                    if($up==false){
+//                                        Db::rollback();
+//                                        return error_show(1004,"出库单出库失败");
+//                                    }
+//                                    $good1 = Db::name("good_stock")->where(["wsm_code"=>$cgdinfo['wsm_code'], "spuCode"=>$cgdinfo['spuCode'],"is_del"=>0])->find();
+//                                    if($good1==false){
+//                                        Db::rollback();
+//                                        return error_show(1004,"未找到对应商品库存");
+//                                    }
+//                                    $out_num = intval(array_sum(array_column($out,"send_num")));
+//                                    if($out_num>$good1['usable_stock']){
+//                                        Db::rollback();
+//                                        return error_show(1004,"库存数量不足发货");
+//                                    }
+//                                    $good1['usable_stock']-=$out_num;
+//                                    $good1['wait_out_stock']+=$out_num;
+//                                    $good1['total_stock']=$good1['usable_stock']+$good1['wait_out_stock'];
+//                                    $good1['updatetime'] = date("Y-m-d H:i:s");
+//                                    $upd=  Db::name("good_stock")->save($good1);
+//                                    if($upd==false){
+//                                        Db::rollback();
+//                                        return error_show(1004,"库存数量更新失败");
+//                                    }
+//                                    $sendp=Db::name("order_send")->where(["cgdNo"=>$info['cgdNo'],"outCode"=>$out,"status"=>1])->save (["status"=>2]);
+//                                    if($sendp==false){
+//                                        Db::rollback();
+//                                        return error_show(1004,"库存发货失败");
+//                                    }
+//                                }
+//                            }
+//                        }
                         Db::commit();
                         return app_show(0,'商品入库成功');
                     }else{
@@ -617,43 +717,79 @@ class Purchin extends BaseController
         Db::startTrans();
        try{
 
-        $info['status'] =5;
+        $info['status'] =$info['wsm_num']==$wsm_num ? 4 :5;
         $info['is_th'] =$return_num>0 ?1:0;
         $info['updatetime'] = date("Y-m-d H:i:s");
         $up= Db::name("purchease_in")->save($info);
         if($up){
-            $process=["order_code"=>$info['wsm_in_code'],"order_id"=>$info['id'],"order_status"=>$info['status'],"order_type"=>'RKD'];
-            ProcessOrder::AddProcess($this->post['token'],$process);
-            $data=[
-                "wsm_in_code"=>$incode,
-                "wsm_num"=>$wsm_num,
-                "reissue_num"=>$reissue_num,
-                "return_num"=>$return_num,
-                "return_contactor"=>$contactor,
-                "return_addr"=>$addr,
-                "return_mobile"=>$mobile,
-                "error_remark"=>$error_remark,
-                "post_code"=>"",
-                "post_company"=>"",
-                "remark"=>$remark ,
-                "apply_id"=>$userinfo['id'],
-                "apply_name"=>$userinfo['nickname'],
-                "status"=>0,
-                "addtime"=>date("Y-m-d H:i:s"),
-                "updatetime"=>date("Y-m-d H:i:s")
-            ];
-            $res = Db::name("purchease_return")->insert($data,true);
-            if($res){
-                $sto = ["order_code"=>$incode,"status"=>0,"action_remark"=>'',"action_type"=>"create"];
-                ActionLog::logAdd($this->post['token'],$sto,"RKTHD",0,$sto);
-                $process=["order_code"=>$info['wsm_in_code'],"order_id"=>$res,"order_status"=>0,"order_type"=>'RKTHD'];
-                ProcessOrder::AddProcess($this->post['token'],$process);
-                Db::commit();
-                return app_show(0,"验货审核完成");
+            $cgdinfo=Db::name("purchease_order")->where(['cgdNo'=>$info['cgdNo'],"is_del"=>0])->find();
+            if(empty($cgdinfo)){
+                Db::rollback();
+                return error_show(1002,"未找到采购单数据");
+            }
+            $good = Db::name("good_stock")->where(["wsm_code"=>$info['wsm_code'], "spuCode"=>$cgdinfo['spuCode'],"is_del"=>0])->find();
+
+            if(empty($good)) {
+                $good=[
+                    "spuCode"=>$cgdinfo['spuCode'],
+                    "wsm_code"=>$info['wsm_code'],
+                    "usable_stock"=>0,
+                    "wait_out_stock"=>0,
+                    "wait_in_stock"=>0,
+                    "total_stock"=>0,
+                    "addtime"=>date("Y-m-d H:i:s"),
+                    "updatetime"=>date("Y-m-d H:i:s"),
+                ];
+                $order = ["order_code"=>$good['spuCode'],"status"=>1,"action_remark"=>'',
+                    "action_type"=>"create"];
+
             }else{
+                $order = ["order_code"=>$good['spuCode'],"status"=>1,"action_remark"=>'', "action_type"=>"edit"];
+            }
+            $good['usable_stock']+=$wsm_num;
+            $good['wait_in_stock']-=$wsm_num;
+            $good['total_stock']=$good['usable_stock']+$good['wait_out_stock'];
+            $good['updatetime'] = date("Y-m-d H:i:s");
+            $upd=  Db::name("good_stock")->save($good);
+            if($upd==false){
                 Db::rollback();
-                return error_show(1002,"验货审核失败");
+                return error_show(1002,"库存更新失败");
             }
+            $good_data[]=["stock_id"=>isset($good['id'])? $good['id']:Db::name("good_stock")->getLastInsID(),"type"=>1, 'stock'=>$info['wsm_num'],"stock_name"=>"usable_stock"];
+            GoodLog::LogAdd($this->post['token'],$good_data,'RKD');
+            $process=["order_code"=>$info['wsm_in_code'],"order_id"=>$info['id'],"order_status"=>$info['status'],"order_type"=>'RKD'];
+            ProcessOrder::AddProcess($this->post['token'],$process);
+            if($info['status']==5){
+                $data=[
+                    "wsm_in_code"=>$incode,
+                    "wsm_num"=>$wsm_num,
+                    "reissue_num"=>$reissue_num,
+                    "return_num"=>$return_num,
+                    "return_contactor"=>$contactor,
+                    "return_addr"=>$addr,
+                    "return_mobile"=>$mobile,
+                    "error_remark"=>$error_remark,
+                    "post_code"=>"",
+                    "post_company"=>"",
+                    "remark"=>$remark ,
+                    "apply_id"=>$userinfo['id'],
+                    "apply_name"=>$userinfo['nickname'],
+                    "status"=>0,
+                    "addtime"=>date("Y-m-d H:i:s"),
+                    "updatetime"=>date("Y-m-d H:i:s")
+                ];
+                $res = Db::name("purchease_return")->insert($data,true);
+                if($res==false){
+                    Db::rollback();
+                    return error_show(1002,"验货审核失败");
+                }
+            }
+            $sto = ["order_code"=>$incode,"status"=>0,"action_remark"=>'',"action_type"=>"create"];
+            ActionLog::logAdd($this->post['token'],$sto,"RKTHD",0,$sto);
+            $process=["order_code"=>$info['wsm_in_code'],"order_id"=>$res,"order_status"=>0,"order_type"=>'RKTHD'];
+            ProcessOrder::AddProcess($this->post['token'],$process);
+            Db::commit();
+            return app_show(0,"验货审核完成");
         }
        }catch (\Exception $e){
            Db::rollback();

+ 37 - 37
app/admin/controller/Resign.php

@@ -790,46 +790,46 @@ class Resign extends BaseController
                     "updatetime"=>date("Y-m-d H:i:s")
                 ];
                 $in =Db::name("order_bk")->insert($data);
-                if($in){
-                  $good = Db::name("good_stock")->where(["wsm_code"=>$info['wsm_code'],"spuCode"=>$info['spuCode'],"is_del"=>0])->find();
-                        if($good==false) {
-                            $good=[
-                                "spuCode"=>$info['spuCode'],
-                                "wsm_code"=>$info['wsm_code'],
-                                "usable_stock"=>0,
-                                "wait_out_stock"=>0,
-                                "wait_in_stock"=>0,
-                                "total_stock"=>0,
-                                "addtime"=>date("Y-m-d H:i:s"),
-                                "updatetime"=>date("Y-m-d H:i:s"),
-                            ];
-                            $order = ["order_code"=>$info['spuCode'],"status"=>1,"action_remark"=>'',"action_type"=>"create"];
-                        }else{
-                            $order = ["order_code"=>$info['spuCode'],"status"=>1,"action_remark"=>'', "action_type"=>"edit"];
-                        }
-                        $good['wait_in_stock']+=$info['good_num'];
-                        $good['updatetime'] = date("Y-m-d H:i:s");
-                        $upd=  Db::name("good_stock")->save($good);
-
+                if($in) {
+//                    $good = Db::name("good_stock")->where(["wsm_code" => $info['wsm_code'], "spuCode" => $info['spuCode'], "is_del" => 0])->find();
+//                    if ($good == false) {
+//                        $good = [
+//                            "spuCode" => $info['spuCode'],
+//                            "wsm_code" => $info['wsm_code'],
+//                            "usable_stock" => 0,
+//                            "wait_out_stock" => 0,
+//                            "wait_in_stock" => 0,
+//                            "total_stock" => 0,
+//                            "addtime" => date("Y-m-d H:i:s"),
+//                            "updatetime" => date("Y-m-d H:i:s"),
+//                        ];
+//                        $order = ["order_code" => $info['spuCode'], "status" => 1, "action_remark" => '', "action_type" => "create"];
+//                    } else {
+//                        $order = ["order_code" => $info['spuCode'], "status" => 1, "action_remark" => '', "action_type" => "edit"];
+//                    }
+//                    $good['wait_in_stock'] += $info['good_num'];
+//                    $good['updatetime'] = date("Y-m-d H:i:s");
+//                    $upd = Db::name("good_stock")->save($good);
+//                    $good_data[] = ['good_log_code' => $cgdCode,"stock_id" => isset($good['id']) ? $good['id'] : Db::name("good_stock")->getLastInsID(), "type" => 1,
+//                        'stock' => $info['good_num'], "stock_name" => "wait_in_stock"];
+//                    if ($upd) {
                     //商品变动日志表,good_log_code字段存储采购单号
-                    $good_data[] = ['good_log_code' => $cgdCode, "stock_id" => isset($good['id']) ? $good['id'] : Db::name("good_stock")->getLastInsID(), "type" => 1, 'stock' => $info['good_num'], "stock_name" => "wait_in_stock"];
-                        if($upd) {
-                            GoodLog::LogAdd($this->post['token'], $good_data, 'RKD');
-                            ActionLog::logAdd($this->post['token'], $order, "RKD", 1, $good);
-                            $process=["order_code"=>$cgdCode,"order_id"=>Db::name("purchease_order")->getLastInsID(),"order_status"=>$cg['status'],"order_type"=>'CGD'];
-                            ProcessOrder::AddProcess($this->post['token'],$process);
-                            $info['wsm_code']=$wsm_code;
-                            $info['status']=2;
-                            $info['updatetime']=date("Y-m-d H:i:s");
-                            $bas= Db::name("purchease")->save($info);
-                            if($bas){
-                                Db::commit();
-                                return app_show(0, "采购单新建成功", ["cgdNo" => $cgdCode]);
-                            }
-
+//                        GoodLog::LogAdd($this->post['token'], $good_data, 'RKD');
+//                        ActionLog::logAdd($this->post['token'], $order, "RKD", 1, $good);
+//                        $process = ["order_code" => $cgdCode, "order_id" => Db::name("purchease_order")->getLastInsID(), "order_status" => $cg['status'], "order_type" => 'CGD'];
+//                        ProcessOrder::AddProcess($this->post['token'], $process);
+                        $info['wsm_code'] = $wsm_code;
+                        $info['status'] = 2;
+                        $info['updatetime'] = date("Y-m-d H:i:s");
+                        $bas = Db::name("purchease")->save($info);
+                        if ($bas) {
+                            Db::commit();
+                            return app_show(0, "采购单新建成功", ["cgdNo" => $cgdCode]);
                         }
+
+//                    }
+                    }
                 }
-            }
                 Db::rollback();
                 return error_show(1004,"采购单新建失败");
         }catch (\Exception $e){

+ 107 - 64
app/admin/controller/Sale.php

@@ -259,61 +259,78 @@ class Sale extends Base
                         $temp['arrive_time']=$arrtime;
                         $vmp = Db::name('order_addr')->insert($temp,true);
                         if($vmp>0){
-//                            $outCode=makeNo("CK");
-//                            $out=[
-//                                "orderCode"=>$orderCode,
-//                                "outCode"=>$outCode,
-//                                "apply_id"=>$rm,
-//                                "apply_name"=>$ri,
-//                                "addrid"=>$vmp,
-//                                "post_name"=>"",
-//                                "post_code"=>"",
-//                                "post_fee"=>0,
-//                                "sendtime"=>date("Y-m-d H:i:s"),
-//                                "send_num"=>$value['receipt_quantity'],
-//                                "check_num"=>0,
-//                                "error_num"=>0,
-//                                "wsm_code"=>"",
-//                                "order_type"=>$order_type,
-//                                "status"=>0,
-//                                "addtime"=>date("Y-m-d H:i:s"),
-//                                "updatetime"=>date("Y-m-d H:i:s")
-//                            ];
-//                            $ou =Db::name("order_out")->insert($out);
-//                            if($ou==false){
-//                                Db::rollback();
-//                                return error_show(1002,"发货地址添加创建失败");
-//                            }
-//                            if($is_stock==0){
-//                                $order =Db::name("order_num")->where(["orderCode"=>$orderCode,"status"=>1])->where([["wsend_num",">=",0]])
-//                                    ->find();
-//                                if($order==false){
-//                                    Db::rollback();
-//                                    return error_show(1006,"采购单关联数据未找到");
-//                                }
-//                                $order['send_num']+=$value['receipt_quantity'];
-//                                $order['wsend_num']-=$value['receipt_quantity'];
-//                                if($order['wsend_num']<0){
-//                                    Db::rollback();
-//                                    return error_show(1002,"发货数量已超出总数");
-//                                }
-//                                $ups = Db::name("order_num")->save($order);
-//                                if($ups){
-//                                    $tep=[
-//                                        "cgdNo"=>$order['cgdNo'],
-//                                        "outCode"=>$outCode,
-//                                        "send_num"=>$value['receipt_quantity'],
-//                                        "status"=>1,
-//                                        "addtime"=>date("Y-m-d H:i:s"),
-//                                        "updatetime"=>date("Y-m-d H:i:s")
-//                                    ];
-//                                    $sen=Db::name("order_send")->save($tep);
-//                                    if($sen==false){
-//                                        Db::rollback();
-//                                        return error_show(1002,"发货地址添加创建失败");
-//                                    }
-//                                }
-//                            }
+                            if($is_stock==0) {
+                                $order = Db::name("order_num")->where(["orderCode" => $orderCode, "status" => 1])->where([["wsend_num", ">=", 0]])
+                                    ->select()->toArray();
+                                if (empty($order)) {
+                                    return error_show(1004, "未找到可以发货得采购单数据");
+                                }
+                                $num = $value['receipt_quantity'];
+                                $orsend = [];
+                                foreach ($order as $val) {
+                                    $outCode = makeNo("DF");
+                                    $tep = [];
+                                    $ornum = 0;
+                                    if ($val['wsend_num'] >= $num) {
+                                        $val['wsend_num'] -= $num;
+                                        $val['send_num'] += $num;
+                                        $ornum = $num;
+                                        $num = 0;
+                                    } else {
+                                        $num -= $val['wsend_num'];
+                                        $val['send_num'] += $val['wsend_num'];
+                                        $ornum = $val['wsend_num'];
+                                        $val['wsend_num'] = 0;
+                                    }
+                                    $or = Db::name("order_num")->save($val);
+                                    if ($or == false) {
+                                        Db::rollback();
+                                        return error_show(1002, "发货地址添加创建失败");
+                                    }
+                                    $tep = [
+                                        "cgdNo" => $val['cgdNo'],
+                                        "outCode" => $outCode,
+                                        "send_num" => $ornum,
+                                        "status" => 1,
+                                        "addtime" => date("Y-m-d H:i:s"),
+                                        "updatetime" => date("Y-m-d H:i:s")
+                                    ];
+                                    $sen = Db::name("order_send")->save($tep);
+                                    if ($sen == false) {
+                                        Db::rollback();
+                                        return error_show(1002, "发货地址添加创建失败");
+                                    }
+                                    $cgdinfo = Db::name("purchease_order")->where(["cgdNo" => $val['cgdNo']])->find();
+                                    if ($cgdinfo == false) {
+                                        Db::rollback();
+                                        return error_show(1002, "未匹配到采购数据");
+                                    }
+                                    $out = [
+                                        "orderCode" => $orderCode,
+                                        "outCode" => $outCode,
+                                        "apply_id" => $rm,
+                                        "apply_name" => $ri,
+                                        "addrid" => $vmp,
+                                        "post_name" => "",
+                                        "post_code" => "",
+                                        "post_fee" => 0,
+                                        "sendtime" => date("Y-m-d H:i:s"),
+                                        "send_num" => $ornum,
+                                        "check_num" => 0,
+                                        "error_num" => 0,
+                                        "wsm_code" => $cgdinfo['wsm_code'],
+                                        "order_type" =>1,
+                                        "status" => 0,
+                                        "addtime" => date("Y-m-d H:i:s"),
+                                        "updatetime" => date("Y-m-d H:i:s")
+                                    ];
+                                    $ou = Db::name("order_out")->insert($out);
+                                    if ($ou == false) {
+                                        Db::rollback();
+                                        return error_show(1002, "发货地址添加创建失败");
+                                    }
+                                }
+                            }
                         }else{
                             Db::rollback();
                             return error_show(1002,"发货地址添加创建失败");
@@ -425,18 +442,15 @@ class Sale extends Base
                     $stokc=[
                         "spuCode"=>$data['spuCode'],
                         "wsm_code"=>$wsm_code,
-                        "wait_in_stock"=>$data['good_num'],
+                        "wait_in_stock"=>0,
                         "wait_out_stock"=>0,
                         "usable_stock"=>0,
                         "intra_stock"=>0,
-                        "total_stock"=>$data['good_num'],
+                        "total_stock"=>0,
                         "status"=>1,
                         "addtime"=>date("Y-m-d H:i:s"),
                         "updatetime"=>date("Y-m-d H:i:s")
                     ];
-                }else{
-                    $stokc['wait_in_stock']+=$data['good_num'];
-                    $stokc['updatetime']=date("Y-m-d H:i:s");
                 }
                 $stoc= Db::name("good_stock")->save($stokc);
                 if($stoc==false){
@@ -556,10 +570,10 @@ class Sale extends Base
                             "sendtime"=>date("Y-m-d H:i:s"),
                             "send_num"=>$ornum,
                             "check_num"=>0,
-                            "error_num"=>0,
+                            "error_num"=>1,
                             "wsm_code"=>$cgdinfo['wsm_code'],
                             "order_type"=>$etid['order_type'],
-                            "status"=>1,
+                            "status"=>0,
                             "addtime"=>date("Y-m-d H:i:s"),
                             "updatetime"=>date("Y-m-d H:i:s")
                         ];
@@ -584,14 +598,17 @@ class Sale extends Base
                             return error_show(1004, '库存不足');
                         }
 
-                        Db::name('wsm_good_stock')
+                        $up =Db::name('wsm_good_stock')
                             ->where('id', $temp['id'])
                             ->update([
                                 'usable_stock' => $temp['usable_stock'] - $ornum,
                                 'wait_out_stock' => $temp['wait_out_stock'] + $ornum,
                                 'updatetime' => date('Y-m-d H:i:s'),
                             ]);
-
+                        if($up==false){
+                            Db::rollback();
+                            return error_show(1004, '库存更新失败');
+                        }
                         //维护商品所在仓库的库存 --- end
 
 
@@ -2774,6 +2791,32 @@ class Sale extends Base
                             "addtime" => date("Y-m-d H:i:s"),
                             "updatetime" => date("Y-m-d H:i:s")
                         ];
+                        //维护商品所在仓库的库存 --- start
+                        $temp = Db::name('wsm_good_stock')
+                            ->field('id,usable_stock,wait_out_stock')
+                            ->where(['spuCode' => $der['spuCode'], 'wsm_code' => $cgd['wsm_code']])
+                            ->find();
+                        if ($temp == false) {
+                            Db::rollback();
+                            return error_show(1004, '库存不足');
+                        }
+
+                        if (($temp['usable_stock'] - $ornum) < 0) {
+                            Db::rollback();
+                            return error_show(1004, '库存不足');
+                        }
+
+                        $up =Db::name('wsm_good_stock')
+                            ->where('id', $temp['id'])
+                            ->update([
+                                'usable_stock' => $temp['usable_stock'] - $ornum,
+                                'wait_out_stock' => $temp['wait_out_stock'] + $ornum,
+                                'updatetime' => date('Y-m-d H:i:s'),
+                            ]);
+                        if($up==false){
+                            Db::rollback();
+                            return error_show(1004, '库存更新失败');
+                        }
                         if($num==0){
                             break;
                         }