Browse Source

发货管理优化

qiuenguang 1 year ago
parent
commit
9ae6b3e2d6

+ 54 - 53
application/admin/controller/Deliver.php

@@ -127,18 +127,23 @@ class Deliver extends Backend
         if ($this->request->isAjax() === false){
             $this->error('请求错误');
         }
-        $lager_list = input('search');
+        $filter = input('filter');
+        $filter = json_decode($filter,true);
         $order = input('order');
         $offset = input('offset');
         $limit = input('limit');
-        $lagerList = explode(',',$lager_list);
+        $where = [
+            'delete_time' => '',
+        ];
+        if (isset($filter['large_id'])){
+            $where['large_id'] =$filter['large_id'];
+        }
         $smallList = $small->name($userinfo['company'].'_'.'qcode_small')
-            ->whereIn('large_id',$lagerList)
-//            ->order('l_flow',$order)
+            ->where($where)
             ->skip($offset)
             ->limit($limit)
             ->select();
-        $total = $small->name($userinfo['company'].'_'.'qcode_small')->whereIn('large_id',$lagerList)->count();
+        $total = $small->name($userinfo['company'].'_'.'qcode_small')->where($where)->count();
         $list = [];
         foreach ($smallList as $k=>$v){
             $list[$k] = [
@@ -189,53 +194,49 @@ class Deliver extends Backend
         $bach_id = array_unique($bach_id);
         $data = [];
         foreach ($bach_id as $k=>$v){
-            $m = 1;$n =0;
-            $large_str = '';
-            foreach ($lagerId as $key=>$value){
-                $lagerList = $lager->name($userinfo['company'].'_'.'qcode_large')->where('_id',$value)->find();
-                if($v === $lagerList['bach_id']){
-                    $m++;
-                    $large_str = $large_str.substr(json_encode($lagerList['_id']),9,-2).',';
-                }
-
-            }
-            $large_str = substr($large_str,0,strlen($large_str)-1);
-            foreach (explode(',',$large_str) as $kk=>$vv){
-                $n = $n + $small->name($userinfo['company'].'_'.'qcode_small')->where('large_id',$vv)->count();
-            }
-            $bachDetail = $bach->name($userinfo['company'].'_'.'qcode_bach')->where('_id',$v)->find();
-            if ($bachDetail['box_num'] === 1){
-                $mater_type = 2;
-            }else{
-                $mater_type = 1;
-            }
-            $exportData = $this->exportdata($v,$large_str,$userinfo['company'],$m,$n);
-            $file_dir = $this->exportExcel($exportData);
-            $data[$k] = [
-                'username'  => $bachDetail['supplier_name'],
-                'matter_name' => $bachDetail['matter_name'],
-                'matter_no' => $bachDetail['matter_no'],
-                'large_str' => $large_str,
-                'large_num' => $lager_num,
-                'small_num' => $n,
-                'status' => 0,
-                'num' => $bachDetail['s_weight'],
-                'bach_num' => $bachDetail['bach_num'],
-                'mater_type' => $mater_type,
-                'note' => '',
-                'user_id' => $userinfo['id'],
-                'create_time' => time(),
-                'file_dir' => $file_dir,
-                'company_id' => $userinfo['company'],
-            ];
-            $res = $export->save($data[$k]);
-            if ($res === false){
-                $this->error('发货失败');
-            }
-            $lager = new QcodeLarge();
-            $lager->name($userinfo['company'].'_'.'qcode_large')->where('bach_id',$v)->whereIn('_id',$lagerId)->update(['l_status'=>1]);
+            $data[$k] = $bach->name($userinfo['company'].'_'.'qcode_bach')->where('_id',$v)->field('matter_no')->find()['matter_no'];
         }
-        $this->success('成功');
+        $data = array_unique($data);
+        if (count($data)>1){
+            $this->error('请选择同一产品');
+        }
+        $n =0;
+        foreach (explode(',',$lager_id) as $kk=>$vv){
+            $n = $n + $small->name($userinfo['company'].'_'.'qcode_small')->where('large_id',$vv)->count();
+        }
+        $bachDetail = $bach->name($userinfo['company'].'_'.'qcode_bach')->where('_id',$bach_id[0])->find();
+        if ($bachDetail['box_num'] === 1){
+            $mater_type = 2;
+        }else{
+            $mater_type = 1;
+        }
+        $exportData = $this->exportdata($bach_id,$lager_id,$userinfo['company'],$lager_num,$n);
+        $file_dir = $this->exportExcel($exportData);
+        $row = [
+            'username'  => $bachDetail['supplier_name'],
+            'matter_name' => $bachDetail['matter_name'],
+            'matter_no' => $bachDetail['matter_no'],
+            'large_str' => $lager_id,
+            'large_num' => $lager_num,
+            'small_num' => $n,
+            'status' => 0,
+            'num' => $bachDetail['s_weight'],
+            'bach_num' => $bachDetail['bach_num'],
+            'mater_type' => $mater_type,
+            'note' => '',
+            'user_id' => $userinfo['id'],
+            'create_time' => time(),
+            'file_dir' => $file_dir,
+            'company_id' => $userinfo['company'],
+        ];
+        $res = $export->save($row);
+        if ($res === false){
+            $this->error('发货失败');
+        }
+        $lager = new QcodeLarge();
+        $lager->name($userinfo['company'].'_'.'qcode_large')->whereIn('_id',$lagerId)->update(['l_status'=>1]);
+
+        $this->success('成功','',$file_dir);
     }
     /**
      * 表格数据处理
@@ -254,7 +255,7 @@ class Deliver extends Backend
         $bach = new QcodeBach();
         $large = new QcodeLarge();
         $small = new QcodeSmall();
-        $bachList = $bach->name($company . '_' . 'qcode_bach')->where('_id', $bach_id)->find();
+        $bachList = $bach->name($company . '_' . 'qcode_bach')->where('_id', $bach_id[0])->find();
         $data = [
             'supplier_name' => $bachList['supplier_name'],
             'supplier_no' => $bachList['supplier_code'],
@@ -365,7 +366,7 @@ class Deliver extends Backend
         }
         $writer = IOFactory::createWriter($objexcel, 'Xlsx');
         $writer->save(ROOT_PATH.'public/uploads/export/'.$filename);
-        return 'public/uploads/export/'.$filename;
+        return 'uploads/export/'.$filename;
     }
 
     /**

+ 1 - 1
application/admin/view/deliver/lager.html

@@ -24,7 +24,7 @@
                 <div class="tab-pane fade active in row" id="two">
                     <div class="widget-body no-padding">
                         <div id="toolbar1" class="toolbar">
-<!--                            <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>-->
+                            <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
                         </div>
                         <table id="small_table" class="table"
                                width="100%">

+ 16 - 26
public/assets/js/backend/deliver.js

@@ -25,6 +25,11 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                   sortName: 'id',
                   toolbar:'#toolbar',
                   searchFormVisible:true,
+                  onClickRow:function(row, $element, field)
+                  {
+                      $("#myTabContent1 .form-commonsearch input[name='large_id']").val(row.id);
+                      $("#myTabContent1 .btn-refresh").trigger("click");
+                  },
                   search:false,
                   showToggle:false,
                   showColumns:false,
@@ -55,10 +60,15 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                       data:{lager_id:lager},
                   },function (data,res) {
                       if (res.code == 1){
+                          window.location.href = '/'+res.data;
+                          // console.log('/'+res.url);
                           table.bootstrapTable('refresh');
                       }
                       return false;
-                  },function (data) {
+                  },function (data,res) {
+                      if (res.code == 0){
+                          layer.confirm(res.msg);
+                      }
                       return false;
                   })
               })
@@ -70,28 +80,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                       $(this).attr('autocomplete','off');
                   })
               });
-
-              //复选框全选事件
-              table.on('check-all.bs.table',function (e,rows){
-                  var lagerlist = '';
-                  for (i=0;i<rows.length;i++){
-                      lagerlist = lagerlist + rows[i].id + ',';
-                  }
-                  $("#myTabContent1 .search input").val(lagerlist);
-                  $("#myTabContent1 .btn-refresh").trigger("click");
-              });
-              //复选框全反选
-              table.on('uncheck-all.bs.table',function (e,rows) {
-
-              });
-              //复选框单个选中
-              table.on('check.bs.table',function (e,rows){
-
-              });
-              //复选框单个反选
-              table.on('uncheck.bs.table',function (e,rows) {
-
-              });
           }, second:function(){
                 //小件列表
                 var smallTable = $('#small_table');
@@ -99,17 +87,18 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     url:'deliver/smallList',
                     height: 300,
                     toolbar: '#toolbar1',
-                    searchText:'',
-                    commonSearch:false,
+                    search:false,
+                    // commonSearch:false,
                     showToggle:false,
                     showColumns:false,
                     showExport:false,
                     columns: [
                         [
+                            {field: 'large_id',title: __('大件id'),operate: 'LIKE',visible:false},
                             {field: 'code', title: __('小件标签代码'),operate: false},
                             {field: 'l_flow', title: __('当前序号'),operate: false},
                             {field: 'print_num', title: __('打印次数'),operate: false},
-                            {field: 'status', title: __('状态'),operate: false},
+                            {field: 'status', title: __('状态'),searchList: {"0":'正常',"1":'已删除'},operate: false,formatter: Table.api.formatter.status},
                         ]
                     ]
                 });
@@ -267,6 +256,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         {field: 'buttons',
                             width: "120px",
                             title: __('发货单打印'),
+                            operate: false,
                             table: table,
                             events: Table.api.events.operate,
                             buttons: [