wugg 2 éve
szülő
commit
099d1ddd04

+ 63 - 11
app/admin/controller/Reorder.php

@@ -46,8 +46,10 @@ class Reorder extends \app\BaseController
         }
         $rm= isset($user["data"]['id']) ?  $user["data"]['id'] : "";
         $ri= isset($user["data"]['nickname']) ?  $user["data"]['nickname'] : "";
-
-     //   var_dump($order['good_code']);
+        $returnadr =isset($this->post['returnAddr'])&&$this->post['returnAddr']!="" ? $this->post['returnAddr']:"";
+        if($returnadr!=''){
+            $thnum=array_sum(array_column($returnadr,"return_num"));
+        }
         $returnCode=makeNo("RXS");
         Db::startTrans();
         try{
@@ -73,6 +75,31 @@ class Reorder extends \app\BaseController
                 ActionLog::logAdd($this->post['token'],$stn,"QRTHD",0,$stn);
                 $process=["order_code"=>$returnCode,"order_id"=>$create,"order_status"=>0,"order_type"=>'QRTHD'];
                 ProcessOrder::AddProcess($this->post['token'],$process);
+                if($returnadr!=""){
+                    $inf=[];
+                    foreach ($returnadr as $val){
+                        $temp=[];
+                        $addrinfo =Db::name("order_addr")->where(['id'=>$val['id'],"orderCode"=>$ordeCode])->find();
+                        if($addrinfo==false){
+                            Db::rollback();
+                            return error_show(1005,"地址信息未找到");
+                        }
+                        $temp['returnCode']=$returnCode;
+                        $temp['orderCode']=$ordeCode;
+                        $temp['addrid']=$val['id'];
+                        $temp['send_num']=$addrinfo['receipt_quantity'];
+                        $temp['return_num']=$val['return_num'];
+                        $temp['is_del']=0;
+                        $temp['addtime']=date("Y-m-d H:i:s");
+                        $temp['updatetime']=date("Y-m-d H:i:s");
+                        $inf[]=$temp;
+                    }
+                    $inadd=Db::name("sale_returnaddr")->insertAll($inf);
+                    if($inadd==0){
+                        Db::rollback();
+                        return error_show(1005,"退货单新建失败");
+                    }
+                }
                 Db::commit();
                 return app_show(0,"退货单新建成功",["returnCode"=>$returnCode]);
 
@@ -304,8 +331,17 @@ class Reorder extends \app\BaseController
             return error_show(1004,"未找到订单数据");
         }
         if($status==5){
-            $good_stock = Db::name("good_stock")->where(["spuCode"=>$orderinfo['good_code'],"is_del"=>0])->find();
-            if($good_stock==false){
+            $cgd=Db::name("order_num")->where(['orderCode'=>$info["orderCode"]])->order("send_num asc")->column('cgdNo');
+            if(empty($cgd)){
+                return error_show(1004,"未找到商品库存数据");
+            }
+            $wsm =Db::name("purchease_order")->where(["cgdNo"=>$cgd])->column("wsm_code");
+            if(empty($wsm)){
+                return error_show(1004,"未找到商品仓库库存数据");
+            }
+            $good_stock = Db::name("good_stock")->where(["spuCode"=>$orderinfo['good_code'],"wsm_code"=>$wsm,"is_del"=>0])
+                ->select()->toArray();
+            if(empty($good_stock)){
                 return error_show(1004,"未找到商品库存数据");
             }
         }
@@ -332,14 +368,30 @@ class Reorder extends \app\BaseController
                         Db::rollback();
                         return error_show(1004,"更新失败");
                     }
-                    $good_stock['usable_stock']+=$info['num'];
-                    $good_stock['wait_out_stock']-=$info['num'];
-                    $good_stock['updatetime']=date("Y-m-d H:i:s");
-                    $stock = Db::name("good_stock")->save($good_stock);
-                    if($stock==false){
-                        Db::rollback();
-                        return error_show(1004,"更新失败");
+
+                    foreach ($good_stock as $value){
+                        if($value['wait_out_stock']>=$info['num']){
+                            $value['usable_stock']+=$info['num'];
+                            $value['wait_out_stock']-=$info['num'];
+                            $value['updatetime']=date("Y-m-d H:i:s");
+                            $info["num"]=0;
+                        }else{
+                            $value['usable_stock']+=$value['wait_out_stock'];
+                            $value['wait_out_stock']=0;
+                            $value['updatetime']=date("Y-m-d H:i:s");
+                            $info["num"]-=$value['wait_out_stock'];
+                        }
+
+                        $stock = Db::name("good_stock")->save($value);
+                        if($stock==false){
+                            Db::rollback();
+                            return error_show(1004,"更新失败");
+                        }
+                        if($info['num']==0){
+                            break;
+                        }
                     }
+
                 }
                 Db::commit();
                 return app_show(0,"更新成功");

+ 3 - 1
app/admin/controller/Resign.php

@@ -699,6 +699,7 @@ class Resign extends BaseController
         $info['updatetime']=date("y-m-d H;i:s");
         $up =Db::name("purchease")->save($info);
         if($up){
+
             return app_show(0,"备库单仓库选择成功");
         }else{
             return error_show(1004,"备库单仓库选择失败");
@@ -714,7 +715,7 @@ class Resign extends BaseController
         if($info==false){
             return error_show(1002,'未找到备库数据');
         }
-        $wsm_code =isset($this->post['wsm_code'])&&$this->post['wsm_code']!=="" ? trim($this->post['wsm_code']):$info['wsm_code'];
+        $wsm_code =isset($this->post['wsm_code'])&&$this->post['wsm_code']!=="" ? trim($this->post['wsm_code']):'';
         if($wsm_code==""){
             return error_show(1002,'备库仓库不能为空');
         }
@@ -812,6 +813,7 @@ class Resign extends BaseController
                             ActionLog::logAdd($this->post['token'], $order, "仓库库存", 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);

+ 28 - 26
app/admin/controller/Sale.php

@@ -999,7 +999,7 @@ class Sale extends Base
             "demo_fee"=>$goodinfo['demo_fee'],
             "good_num"=>$data['good_num'],
             "good_type"=>1,
-            "order_type"=>4,
+            "order_type"=>3,
         ];
         $datas=[
             "orderCode"=>$orderCode,
@@ -2508,7 +2508,6 @@ class Sale extends Base
 
     public function outadd(){
         $token = isset($this->post['token']) && $this->post['token'] !== "" ? trim($this->post['token']) : "";
-        $outCode = makeNo("CK");
         $orderCode = isset($this->post['orderCode']) && $this->post['orderCode'] !== "" ? trim($this->post['orderCode']) : "";
         if ($orderCode == "") {
             return error_show(1002, "参数orderCoder不能为空");
@@ -2571,27 +2570,6 @@ class Sale extends Base
             ];
             $addrid = Db::name("order_addr")->insert($addrlst,true);
             if($addrid>0){
-                $data = [
-                    "wsm_code" => "",
-                    "orderCode" => $orderCode,
-                    "outCode" => $outCode,
-                    "order_type" => $der['order_type'],
-                    "apply_id" => $rm,
-                    "apply_name" => $ri,
-                    "addrid" => $addrid,
-                    "post_name" => "",
-                    "post_code" =>"",
-                    "post_fee" => "",
-                    "sendtime" => $sendtime,
-                    "send_num" => $send_num,
-                    "check_num" => 0,
-                    "error_num" => 0,
-                    "status" => 1,
-                    "addtime" => date("Y-m-d H:i:s"),
-                    "updatetime" => date("Y-m-d H:i:s")
-                ];
-                $datainfo = Db::name('order_out')->insert($data,true);
-                if($datainfo>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;
@@ -2603,7 +2581,10 @@ class Sale extends Base
                         return error_show(1002,"出库单新建失败");
                     }
                     $num = $send_num;
+                    $data=[];
                     foreach ($order as $val){
+                        $outCode = makeNo("CK");
+                        $cgd =Db::name("purchease_order")->where(["cgdNo"=>$val['cgdNo']])->find();
                         $tep=[];
                         $ornum=0;
                         if($val['wsend_num']>=$num){
@@ -2635,13 +2616,34 @@ class Sale extends Base
                             Db::rollback();
                             return error_show(1002,"发货地址添加创建失败");
                         }
+                        $data[] = [
+                            "wsm_code" => isset($cgd['wsm_code'])? $cgd['wsm_code']:"",
+                            "orderCode" => $orderCode,
+                            "outCode" => $outCode,
+                            "order_type" => $der['order_type'],
+                            "apply_id" => $rm,
+                            "apply_name" => $ri,
+                            "addrid" => $addrid,
+                            "post_name" => "",
+                            "post_code" =>"",
+                            "post_fee" => "",
+                            "sendtime" => $sendtime,
+                            "send_num" => $ornum,
+                            "check_num" => 0,
+                            "error_num" => 0,
+                            "status" => 1,
+                            "addtime" => date("Y-m-d H:i:s"),
+                            "updatetime" => date("Y-m-d H:i:s")
+                        ];
                         if($num==0){
                             break;
                         }
                     }
-                    Db::commit();
-                    return app_show(0,"出库单新建成功",["outCode"=>$outCode]);
-                }
+                    $datainfo = Db::name('order_out')->insertAll($data);
+                    if($datainfo>0){
+                        Db::commit();
+                        return app_show(0,"出库单新建成功");
+                    }
             }
             Db::rollback();
             return error_show(1004,"出库单新建失败");