panlumeng преди 3 години
родител
ревизия
4ffefcfea9
променени са 1 файла, в които са добавени 52 реда и са изтрити 27 реда
  1. 52 27
      app/admin/controller/Allot.php

+ 52 - 27
app/admin/controller/Allot.php

@@ -64,7 +64,6 @@ class Allot extends BaseController
             $value['rcode'] =isset($dc['code']) ? $dc['code']:"";
             $data []=$value;
         }
-
         return app_show(0,"获取成功",['count'=>$count,'list'=>$data]);
     }
     public function create(){
@@ -86,7 +85,6 @@ class Allot extends BaseController
 //        if($allot_code==""){
 //            return error_show(1002,"调拨编号不能为空");
 //        }
-
     $apply_id =GetUserInfo($token);
         if(empty($apply_id)||$apply_id['code']!=0){
             return error_show(1002,"申请人数据不存在");
@@ -203,9 +201,7 @@ class Allot extends BaseController
         }
         $allot_code = isset($this->post['allot_code']) && $this->post['allot_code'] !=="" ? trim($this->post['allot_code']) :"";
         $post_name = isset($this->post['post_name']) && $this->post['post_name'] !=="" ? trim($this->post['post_name']) :"";
-
         $post_code = isset($this->post['post_code']) && $this->post['post_code'] !=="" ? trim($this->post['post_code']) :"";
-
        $apply_id =GetUserInfo($token);
         if(empty($apply_id)||$apply_id['code']!=0){
             return error_show(1002,"申请人数据不存在");
@@ -279,7 +275,6 @@ class Allot extends BaseController
         }catch (\Exception $e){
             Db::rollback();
             return error_show(1005,$e->getMessage());
-
         }
     }
     public function del(){
@@ -325,6 +320,7 @@ class Allot extends BaseController
                         $stock = Db::name("good_stock")->where(["good_type_code"=>$value['good_type_code'],"wsm_code"=>$st['wsm_out'],"is_del"=>0])->find();
                         //var_dump($value['allot_num'],$stock['usable_stock']);
                         if($value['allot_num']>$stock['usable_stock']){
+                            Db::rollback();
                             return error_show(1003,"超出库存数量");
                         }
                         $stock['usable_stock']-=$value['allot_num'];
@@ -389,6 +385,7 @@ class Allot extends BaseController
                     foreach ($vnp as $value){
                         $stock = Db::name("good_stock")->where(["good_type_code"=>$value['good_type_code'],"wsm_code"=>$al['wsm_out'],"is_del"=>0])->find();
                        if($stock['wait_out_stock']<$value['allot_num']){
+                           Db::rollback();
                            return error_show(1006,"超出库存数量");
                        }
                         $stock['wait_out_stock']-=$value['allot_num'];
@@ -439,10 +436,9 @@ class Allot extends BaseController
                 $st = Db::name("good_type")->alias("b")->join("good a", "a.good_code = b.good_code", "left")
                     ->join("good_stock c", "c.good_type_code = b.type_code", "left")->where(['wsm_code' => $al['wsm_out'], 'good_type_code' => $value['good_code'], 'b.is_del' => 0, 'a.is_del' => 0])->where("c.is_del=0 or c.is_del is null")
                     ->field("b.type_code,a.good_name,c.wsm_code,c.usable_stock,c.good_type_code")->find();
-                 //var_dump(Db::name("good_type")->getLastSql());
                 if (empty($st)) {
                     Db::rollback();
-                    return error_show(1003, "商品不能为空");
+                    return error_show(1003, "未找到商品");
                 }
                 $temp = [];
                 $temp['usable_num'] = $value['usable_num'];
@@ -450,29 +446,49 @@ class Allot extends BaseController
                 $temp['error_remark'] = $value['error_remark'];
                 $temp['updatetime'] = date("Y-m-d H:i:s");
                 $np = Db::name('allot_info')->where(['good_type_code'=>$value['good_code'],'allot_code'=> $al['allot_code']])->save($temp);
+                if($np==false){
+                    Db::rollback();
+                    return error_show(1001,"数据更新失败");
+                }
+                $n = Db::name('allot_info')->where(['good_type_code'=>$value['good_code'],'allot_code'=> $al['allot_code']])->find();
                 $stock = Db::name("good_stock")->where(["good_type_code"=>$value['good_code'],"wsm_code"=>$al['wsm_out'],"is_del"=>0])->find();
-              //var_dump(Db::name("good_stock")->getLastSql());
-                if($stock['intra_stock']<$np['allot_num']){
+                if($stock['intra_stock']<$n['allot_num']){
+                    Db::rollback();
                     return error_show(1002,"超出库存数量");
                 }
                 $stock['updatetime']= date('Y-m-d H:i:s');
-                $stock['intra_stock']-=$np['allot_num'];
+                $stock['intra_stock']-=$n['allot_num'];
                 $dr = Db::name('good_stock')->update($stock);
+                if($dr==false){
+                    Db::rollback();
+                    return error_show(1002,"数据更新失败");
+                }
                 $instock = Db::name("good_stock")->where(["good_type_code"=>$value['good_code'],"wsm_code"=>$al['wsm_in'],"is_del"=>0])->find();
-                if($instock==""){
-
+                if($instock==false){
+                   $instock =[];
+                    $instock['good_type_code']=$value['good_code'];
+                    $instock['wsm_code']=$al['wsm_in'];
+                    $instock['wait_in_stock']=0;
+                    $instock['wait_out_stock']=0;
+                    $instock['usable_stock']=0;
+                    $instock['intra_stock']=0;
+                    $instock['total_stock']=0;
+                    $instock['status']=1;
+                    $instock['is_del']=0;
+                    $instock['warn_stock']=0;
+                    $instock['addtime']= date('Y-m-d H:i:s');
                 }
-                $instock['wait_in_stock']+=$np['allot_num'];
+                $instock['wait_in_stock']+=$n['allot_num'];
                 $instock['updatetime']= date('Y-m-d H:i:s');
-//                $stock['total_stock']=$stock['wait_out_stock']+$stock['usable_stock'];
-                $sk = Db::name('good_stock')->update($instock);
+                $sk = Db::name('good_stock')->save($instock);
+//               $stock['total_stock']=$stock['wait_out_stock']+$stock['usable_stock'];
                 if ($sk==false) {
                     Db::rollback();
                     return error_show(1003, "入库验货更新失败");
                 }
-                Db::commit();
-                return error_show(0, "入库验货更新成功");
             }
+            Db::commit();
+            return error_show(0, "入库验货更新成功");
         }
         Db::rollback();
         return error_show(1002, "入库验货更新失败");
@@ -507,9 +523,8 @@ public function vesio(){
         if($datainfo>0) {
             foreach ($dain as $value) {
                 $st = Db::name("good_type")->alias("b")->join("good a", "a.good_code = b.good_code", "left")
-                    ->join("good_stock c", "c.good_type_code = b.type_code", "left")->where(['wsm_code' => $al['wsm_out'], 'good_type_code' => $value['good_code'], 'b.is_del' => 0, 'a.is_del' => 0])->where("c.is_del=0 or c.is_del is null")
+                    ->join("good_stock c", "c.good_type_code = b.type_code", "left")->where(['wsm_code' => $al['wsm_in'], 'good_type_code' => $value['good_code'], 'b.is_del' => 0, 'a.is_del' => 0])->where("c.is_del=0 or c.is_del is null")
                     ->field("b.type_code,a.good_name,c.wsm_code,c.usable_stock")->find();
-                // var_dump(Db::name("good_type")->getLastSql());
                 if (empty($st)) {
                     Db::rollback();
                     return error_show(1003, "商品不能为空");
@@ -518,21 +533,31 @@ public function vesio(){
                 $temp['stock_num'] = $value['stock_num'];
                 $temp['updatetime'] = date("Y-m-d H:i:s");
                 $np = Db::name('allot_info')->where(['good_type_code'=>$value['good_code'],'allot_code'=> $al['allot_code']])->save($temp);
-                $stock = Db::name("good_stock")->where(["good_type_code"=>$value['good_code'],"wsm_code"=>$datainfo['wsm_in'],"is_del"=>0])->find();
-               if($stock['wait_in_stock'<$np['allot_num']]){
-                   return error_show(1002,"超出库存数量");
+                if($np==false){
+                    Db::rollback();
+                    return error_show(1001,"数据更新失败");
+                }
+                $p = Db::name('allot_info')->where(['good_type_code'=>$value['good_code'],'allot_code'=>$al['allot_code']])->find();
+                if($p==""){
+                    Db::rollback();
+                    return error_show(1002,"未找到数据");
+                }
+                $stock = Db::name("good_stock")->where(["good_type_code"=>$value['good_code'],"wsm_code"=>$al['wsm_in'],"is_del"=>0])->find();
+                if($stock['wait_in_stock']<$p['allot_num']){
+                    Db::rollback();
+                   return error_show(1002,"超出待入库存数量");
                }
-                $stock['wait_in_stock']-=$np['allot_num'];
-                $stock['usable_stock']+=$np['allot_num'];
+                $stock['wait_in_stock']-=$p['allot_num'];
+                $stock['usable_stock']+=$p['allot_num'];
                 $stock['updatetime']=date('Y-m-d H:i:s');
                 $stock['total_stock']=$stock['wait_out_stock']+$stock['usable_stock'];
                 $dr = Db::name('good_stock')->update($stock);
                 if ($dr==false) {
                     Db::rollback();
-                    return error_show(0, "验货更新失败");
+                    return error_show(1004, "验货更新失败");
                 }
                 Db::commit();
-                return error_show(1003, "验货更新成功");
+                return error_show(0, "验货更新成功");
             }
         }
         Db::rollback();
@@ -542,4 +567,4 @@ public function vesio(){
         return error_show(1005,$e->getMessage());
     }
 }
-}
+}