wugg 3 سال پیش
والد
کامیت
519bedf252
2فایلهای تغییر یافته به همراه126 افزوده شده و 46 حذف شده
  1. 108 39
      app/admin/controller/Allot.php
  2. 18 7
      app/admin/controller/Check.php

+ 108 - 39
app/admin/controller/Allot.php

@@ -46,7 +46,8 @@ class Allot extends BaseController
         $count = Db::name('allot_stock')->where($where)->count();
         $total = ceil($count/$size);
         $page = $page >= $total ? $total : $page;
-        $list = Db::name('allot_stock')->where($where)->page($page,$size)->select();
+        $list = Db::name('allot_stock')//->alias('a')->join("good_stock b","b.wsm")
+            ->where($where)->order("addtime desc")->page($page,$size)->select();
       // var_dump(Db::name('allot_stock')->getLastSql());
         return app_show(0,"获取成功",['count'=>$count,'list'=>$list]);
     }
@@ -295,23 +296,41 @@ class Allot extends BaseController
         if(empty($st)){
             return error_show(1002,"调拨信息未找到");
         }
-        $st['remark']=$remark;
-        $st['status']=$status;
-        $st['updatetime']= date('Y-m-d H:i:s');
-        $sv = Db::name('allot_stock')->save($st);
-        if($sv){
-            if($status==2){
-                $vmp = Db::name('allot_info')->where(['allot_code'=>$st['allot_code']])->select();
-              $data=[];
-                foreach ($vmp as $value){
-                    $stock = Db::name("good_stock")->where(["good_type_code"=>$value['good_type_code'],"is_del"=>0])->sum("total_stock");
-                    $value['usable_stock']+$value['wait_out_stock']=$stock;
-                    $data[]=$value;
-              }
+        Db::startTrans();
+        try{
+            $st['remark']=$remark;
+            $st['status']=$status;
+            $st['updatetime']= date('Y-m-d H:i:s');
+            $sv = Db::name('allot_stock')->save($st);
+            if($sv){
+                if($status==2){
+                    $vmp = Db::name('allot_info')->where(['allot_code'=>$st['allot_code']])->select();
+                    foreach ($vmp as $value){
+                        $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']){
+                            return error_show(1003,"超出库存数量");
+                        }
+                        $stock['usable_stock']-=$value['allot_num'];
+                        $stock['wait_out_stock']+=$value['allot_num'];
+                        $stock['total_stock']=$stock['wait_out_stock']+$stock['usable_stock'];
+                        $stock['updatetime']= date('Y-m-d H:i:s');
+                        $Db = Db::name('good_stock')->update($stock);
+                        //var_dump(Db::name('good_stock')->getLastSql());
+                        if($Db==false){
+                            Db::rollback();
+                            return error_show(1002,"状态更新失败");
+                        }
+                    }
+                }
+                Db::commit();
+                return error_show(0,"状态更新成功");
             }
-            return error_show(0,"状态更新成功");
-        }else{
-            return error_show(1002,"状态更新失败");
+            Db::rollback();
+            return error_show(1003,"状态更新失败");
+        }catch (\Exception $e) {
+            Db::rollback();
+            return error_show(1005, $e->getMessage());
         }
     }
     /*出库方发货*/
@@ -320,6 +339,10 @@ class Allot extends BaseController
         if(empty($allot_code)){
             return error_show(1002,"调拨单编号不能为空");
         }
+        $al = Db::name('allot_stock')->where(['allot_code'=>$allot_code,"is_del"=>0])->find();
+        if($al==""){
+            return error_show(1003,"调拨编号未找到");
+        }
         $post_name = isset($this->post['post_name']) && $this->post['post_name'] !=="" ? trim($this->post['post_name']) :"";
         if($post_name==""){
             return error_show(1002,"物流公司不能为空");
@@ -332,20 +355,45 @@ class Allot extends BaseController
         if($post_fee===""){
             return error_show(1002,"物流费用不能为空");
         }
-        $data=[
-            "allot_code"=>$allot_code,
-            "post_name"=>$post_name,
-            "post_code"=>$post_code,
-            "post_fee"=>$post_fee,
-            "status"=>3,
-            "is_del"=>0,
-            "updatetime"=>date("Y-m-d H:i:s"),
-        ];
-        $datainfo = Db::name('allot_stock')->where(['allot_code'=>$allot_code])->update($data);
-        if($datainfo){
-            return error_show(0,"发货更新成功");
+        Db::startTrans();
+        try {
+            $data=[
+                "allot_code"=>$allot_code,
+                "post_name"=>$post_name,
+                "post_code"=>$post_code,
+                "post_fee"=>$post_fee,
+                "status"=>3,
+                "is_del"=>0,
+                "updatetime"=>date("Y-m-d H:i:s"),
+            ];
+            $datainfo = Db::name('allot_stock')->where(['allot_code'=>$allot_code])->update($data);
+            if($datainfo){
+                    $vnp = Db::name('allot_info')->where(['allot_code'=>$al['allot_code']])->select();
+                    var_dump(Db::name('allot_info')->getLastSql());
+                    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']){
+                           return error_show(1006,"超出库存数量");
+                       }
+                        $stock['wait_out_stock']-=$value['allot_num'];
+                        $stock['intra_stock']+=$value['allot_num'];
+                        $stock['total_stock']=$stock['wait_out_stock']+$stock['usable_stock'];
+                        $stock['updatetime']= date('Y-m-d H:i:s');
+                        $dr = Db::name('good_stock')->update($stock);
+                        if($dr==false){
+                            Db::rollback();
+                            return error_show(1002,"发货更新失败");
+                        }
+                    }
+                Db::commit();
+                return error_show(0,"发货更新成功");
+            }
+            Db::rollback();
+            return error_show(1003,"发货更新失败");
+        }catch (\Exception $e) {
+            Db::rollback();
+            return error_show(1005, $e->getMessage());
         }
-        return error_show(1003,"发货更新失败");
     }
     /*入库方验货*/
     public function getin(){
@@ -380,20 +428,32 @@ class Allot extends BaseController
                     Db::rollback();
                     return error_show(1003, "商品不能为空");
                 }
+
                 $temp = [];
                 $temp['usable_num'] = $value['usable_num'];
                 $temp['error_num'] = $value['error_num'];
                 $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) {
-                    Db::commit();
-                    return error_show(0, "入库验货更新成功");
+                $np = Db::name('allot_info')->where(['good_type_code'=>$value['good_type_code'],'allot_code'=> $al['allot_code']])->save($temp);
+                $stock = Db::name("good_stock")->where(["good_type_code"=>$np['allot_code'],"wsm_code"=>$al['wsm_out'],"is_del"=>0])->find();
+                if($stock['intra_stock']<$np['allot_num']){
+                    return error_show(1002,"超出库存数量");
+                }
+                $stock['intra_stock']-=$np['allot_num'];
+                $stock['wait_in_stock']+=$np['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, "入库验货更新失败");
                 }
+                Db::commit();
+                return error_show(1003, "入库验货更新成功");
             }
         }
         Db::rollback();
-        return error_show(1003, "入库验货更新失败");
+        return error_show(1002, "入库验货更新失败");
     }catch (\Exception $e){
 Db::rollback();
 return error_show(1005,$e->getMessage());
@@ -436,10 +496,20 @@ 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);
-                if ($np) {
-                    Db::commit();
-                    return error_show(0, "验货更新成功");
+                $stock = Db::name("good_stock")->where(["good_type_code"=>$np['allot_code'],"wsm_code"=>$datainfo['wsm_in'],"is_del"=>0])->find();
+               if($stock['wait_in_stock'<$np['allot_num']]){
+                   return error_show(1002,"超出库存数量");
+               }
+                $stock['wait_in_stock']-=$np['allot_num'];
+                $stock['usable_stock']+=$np['allot_num'];
+                $stock['total_stock']=$stock['wait_out_stock']+$stock['usable_stock'];
+                $dr = Db::name('good_stock')->update([$stock,"updatetime"=>date('Y-m-d H:i:s')]);
+                if ($dr==false) {
+                    Db::rollback();
+                    return error_show(0, "验货更新失败");
                 }
+                Db::commit();
+                return error_show(1003, "验货更新成功");
             }
         }
         Db::rollback();
@@ -449,5 +519,4 @@ public function vesio(){
         return error_show(1005,$e->getMessage());
     }
 }
-
 }

+ 18 - 7
app/admin/controller/Check.php

@@ -175,9 +175,18 @@ public function goodlist(){
     $page = isset($this->post['page']) && $this->post['page'] !=="" ? intval($this->post['page']) :"1";
     $size = isset($this->post['size']) && $this->post['size'] !=="" ? intval($this->post['size']) :"10";
     $where = ['is_del'=>0];
-    $check_code = isset($this->post['check_code']) && $this->post['check_code'] !== "" ? trim($this->post['check_code']) : "";
-    if ($check_code !== "") {
-        $where['check_code'] = $check_code;
+    $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']) :"";
+    if($id==""){
+        return error_show(1002,"参数id不能为空");
+    }
+    $fo = Db::name('good_check')->alias('a')->join('warehouse_info b',"b.wsm_code=a.wsm_code","left")
+        ->join('supplier c',"c.code=b.supplierNo","left")->field("c.name,c.code,a.*")
+        ->where(['a.id'=>$id,'a.is_del'=>0])->find();
+    if(empty($fo)){
+        return error_show(1003,"未找到盘点信息");
+    }
+    if ($fo['check_code'] !== "") {
+        $where['check_code'] = $fo['check_code'];
     }
     $count = Db::name('check_item')->where($where)->count();
     $total = ceil($count / $size);
@@ -202,8 +211,9 @@ public function create(){
         return error_show(1002,"申请人数据不存在");
     }
     $rm= isset($apply_id["data"]['id']) ?  $apply_id["data"]['id'] : "";
-    $ri= isset($apply_id["data"]['nickname']) ?  $apply_id["data"]['nickname'] : "";
-    //$status = isset($this->post['status']) && $this->post['status'] !=="" ? intval($this->post['status']) :"0";
+    $ri= isset($apply_name["data"]['nickname']) ?  $apply_name["data"]['nickname'] : "";
+    $status = isset($this->post['status']) && $this->post['status'] !=="" ? intval($this->post['status']) :"0";
+    $remark = isset($this->post['remark']) && $this->post['remark'] !=="" ? intval($this->post['remark']) :"";
 //    $dain=isset($this->post['good']) && $this->post['good'] !=="" ? trim($this->post['good']):"";
 //    if($type==2){
 //        if($dain==""||empty($dain)){
@@ -227,7 +237,8 @@ public function create(){
             "check_code"=>$check_code,
             "wsm_code"=>$wsm_code,
             "type"=>$type,
-            "status"=>0,
+            "status"=>$status,
+            "remark"=>$remark,
             "apply_id"=>$rm,
             "apply_name"=>$ri,
             "is_del"=>0,
@@ -275,7 +286,7 @@ public function create(){
 public function info(){
     $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']) :"";
     if($id==""){
-        return error_show(1002,"盘点单号不能为空");
+        return error_show(1002,"参数id不能为空");
     }
     $fo = Db::name('good_check')->alias('a')->join('warehouse_info b',"b.wsm_code=a.wsm_code","left")
         ->join('supplier c',"c.code=b.supplierNo","left")->field("c.name,c.code,a.*")