wugg 3 rokov pred
rodič
commit
f66eb423e0
1 zmenil súbory, kde vykonal 99 pridanie a 62 odobranie
  1. 99 62
      app/admin/controller/Sale.php

+ 99 - 62
app/admin/controller/Sale.php

@@ -129,9 +129,8 @@ class Sale extends BaseController
                 "order_type"=>$order_type,
             ];
         }
-
+        $is_activity= isset($this->post['is_activity'])&&$this->post['is_activity']!=="" ?$this->post['is_activity']:"";
         if($order_type==1){
-            $is_activity= isset($this->post['is_activity'])&&$this->post['is_activity']!=="" ?$this->post['is_activity']:"";
             if($is_activity===""){
                 return error_show(1002, "参数is_activity不能为空");
             }
@@ -187,6 +186,8 @@ class Sale extends BaseController
                 "platform_order"=>$platform_order,
                 "platform_id"=>$platform_id,
                 "remark"=>$remark,
+                "is_stock"=>$is_stock,
+                "is_activity"=>$is_activity===""?0:$is_activity,
                 "proof_id"=>$proofid,
                 "order_type"=>$order_type,
                 "addtime"=>date("Y-m-d H:i:s"),
@@ -377,10 +378,13 @@ class Sale extends BaseController
             $rela=[
                 "orderCode"=>$data['orderCode'],
                 "cgdNo"=>$cgdCode,
+                "spuCode"=>$data['spuCode'],
                 "good_num"=>$data['good_num'],
                 "wsend_num"=>$data['good_num'],
                 "send_num"=>0,
-                "wait_num"=>0
+                "wait_num"=>0,
+                "status"=>1,
+                "source"=>2
             ];
             $re =Db::name("order_num")->save($rela);
             if($re==false){
@@ -1729,75 +1733,108 @@ class Sale extends BaseController
         if ($der == "") {
           return false;
         }
-        if($der[''])
-        $cgd = Db::name("order_bk")->where([["spuCode","=",$der['spuCode']],["is_del","=",0],["balance_num",">",0]])
+        if($der['is_stock']==1){
+            $cgd = Db::name("order_bk")->where([["spuCode","=",$der['spuCode']],["is_del","=",0],["balance_num",">",0]])
                 ->select()->toArray();
-        if(empty($cgd)){
-            return false;
-        }
-        $send =$outinfo['send_num'];
-        $outsend=[];
-        foreach ($cgd as $value){
-            $temp=[];
-            if($value['balance_num']>=$send){
-                $value['balance_num']-=$send;
-                $value['merge_num']+=$send;
-                $send=0;
-                $temp['send_num'] =$send;
-            }else{
-                $value['balance_num'] =0;
-                $value['merge_num']+=$value['balance_num'];
-                $send -= $value['balance_num'];
-                $temp['send_num'] =$value['balance_num'];
-            }
-            $value['status'] = $value['balance_num']==0 ?2:$value['merge_num']==0?0:1 ;
-            $value['updatetime'] = date("Y-m-d H:i:s");
-            $bk = Db::name("order_bk")->save($value);
-            if($bk==false){
+            if(empty($cgd)){
                 return false;
             }
-            $temp['cgdNo'] = $value['cgdNo'];
-            $temp['outCode'] = $value['outCode'];
-            $temp['status'] = 1;
-            $temp['addtime']=date("Y-m-d H:i:s");
-            $temp['updatetime']=date("Y-m-d H:i:s");
-            $outsend[]=$temp;
-            $order = Db::name("order_num")->where(["orderCode"=>$der['orderCode'],"cgdNo"=>$value['cgdNo'],"spuCode"=>$der['spuCode'],"status"=>1])->find();
-            if($order==false){
-                $order=[
-                    "orderCode"=>$der['orderCode'],
-                    "cgdNo"=>$value['cgdNo'],
-                    "spuCode"=>$der['spuCode'],
-                    "good_num"=>$der['good_num'],
-                    "wsend_num"=>$der['good_num']-$temp['send_num'],
-                    "send_num"=>$temp['send_num'],
-                    "status"=>1,
-                    "source"=>1
-                ];
-            }else{
-                $order['wsend_num']-=$temp['send_num'];
-                $order['send_num']+=$temp['send_num'];
+            $send =$outinfo['send_num'];
+            $outsend=[];
+            foreach ($cgd as $value){
+                $temp=[];
+                if($value['balance_num']>=$send){
+                    $value['balance_num']-=$send;
+                    $value['merge_num']+=$send;
+                    $send=0;
+                    $temp['send_num'] =$send;
+                }else{
+                    $value['balance_num'] =0;
+                    $value['merge_num']+=$value['balance_num'];
+                    $send -= $value['balance_num'];
+                    $temp['send_num'] =$value['balance_num'];
+                }
+                $value['status'] = $value['balance_num']==0 ?2:$value['merge_num']==0?0:1 ;
+                $value['updatetime'] = date("Y-m-d H:i:s");
+                $bk = Db::name("order_bk")->save($value);
+                if($bk==false){
+                    return false;
+                }
+                $temp['cgdNo'] = $value['cgdNo'];
+                $temp['outCode'] = $outinfo['outCode'];
+                $temp['status'] = 1;
+                $temp['addtime']=date("Y-m-d H:i:s");
+                $temp['updatetime']=date("Y-m-d H:i:s");
+                $outsend[]=$temp;
+                $order = Db::name("order_num")->where(["orderCode"=>$der['orderCode'],"cgdNo"=>$value['cgdNo'],"spuCode"=>$der['spuCode'],"status"=>1])->find();
+                if($order==false){
+                    $order=[
+                        "orderCode"=>$der['orderCode'],
+                        "cgdNo"=>$value['cgdNo'],
+                        "spuCode"=>$der['spuCode'],
+                        "good_num"=>$der['good_num'],
+                        "wsend_num"=>$der['good_num']-$temp['send_num'],
+                        "send_num"=>$temp['send_num'],
+                        "status"=>1,
+                        "source"=>1
+                    ];
+                }else{
+                    $order['wsend_num']-=$temp['send_num'];
+                    $order['send_num']+=$temp['send_num'];
+                }
+                if($order['wsend_num']<0){
+                    return false;
+                }
+                $up =Db::name("order_num")->save($order);
+                if($up==false){
+                    return false;
+                }
+                if($send==0){
+                    break;
+                }
             }
-            if($order['wsend_num']<0){
+            if(empty($temp)){
                 return false;
             }
-            $up =Db::name("order_num")->save($order);
-            if($up==false){
+            $insert = Db::name("order_send")->insertAll($outsend);
+            if($insert){
+                return true;
+            }else{
                 return false;
             }
-            if($send==0){
-                break;
-            }
-        }
-        if(empty($temp)){
-            return false;
-        }
-            $insert = Db::name("order_send")->insertAll($outsend);
-        if($insert){
-            return true;
         }else{
-            return false;
+            $order = Db::name("order_num")->where(["orderCode"=>$der['orderCode'],"spuCode"=>$der['spuCode'],"status"=>1])->find();
+            if($order==false){
+                return false;
+            }else{
+                if($outinfo['send_num']> $order['wsend_num']){
+                    return false;
+                }
+                $order['wsend_num']-=$outinfo['send_num'];
+                $order['send_num']+=$outinfo['send_num'];
+                if($order['wsend_num']<0){
+                    return false;
+                }
+                $up =Db::name("order_num")->save($order);
+                if($up==false){
+                    return false;
+                }
+                $temp=[];
+                $temp['cgdNo'] = $order['cgdNo'];
+                $temp['outCode'] = $outinfo['outCode'];
+                $temp['send_num'] =$outinfo['send_num'];
+                $temp['status'] = 1;
+                $temp['addtime']=date("Y-m-d H:i:s");
+                $temp['updatetime']=date("Y-m-d H:i:s");
+                $insert = Db::name("order_send")->insert($temp);
+                if($insert){
+                    return true;
+                }else{
+                    return false;
+                }
+            }
         }
+
         }
 
 }