Browse Source

细节优化

wufeng 2 years ago
parent
commit
28a28dd9fa

+ 5 - 0
app/admin/controller/After.php

@@ -453,6 +453,11 @@ class After extends Base
         $info['return_tag'] = $info['return_tag'] == 0 ? "" : $info['return_tag'];
         $info['is_th'] = $info['is_th'] == 0 ? "" : $info['is_th'];
 
+        //校验是否开通了供应商账号
+        $supp_account = checkHasAccountBySupplierNos($info['supplierNo']);
+        $info['has_account']=(int)isset($supp_account[$value['supplierNo']]);
+
+
         return app_show(0, "获取成功", $info);
     }
 

+ 24 - 18
app/admin/controller/OrderOutChild.php

@@ -356,11 +356,14 @@ class OrderOutChild extends Base
 
         $info = Db::name('order_out_child')
             ->alias('a')
-            ->field('a.*,b.name wsm_name')
+            ->field('a.*,b.name wsm_name,b.contactor,b.contactor_name')
             ->leftJoin('warehouse_info b', 'b.wsm_code=a.wsm_code')
             ->where(['a.is_del' => 0, 'a.outChildCode' => $outChildCode])
             ->findOrEmpty();
+        //校验是否开通了供应商账号
+        $supp_account = checkHasAccountBySupplierNos($info['supplierNo']);
 
+        $info['has_account']=(int)isset($supp_account[$value['supplierNo']]);
         return json_show(0, '获取详情成功', $info);
 
     }
@@ -409,10 +412,10 @@ class OrderOutChild extends Base
 
 
         //判断供应商是否开通账号,若开通的话,则只能由供应商账号操作
-        if ($this->level != 3) {
-            $temp = checkHasAccountBySupplierNos(array_column($sale, 'supNo'));
-            if (!empty($temp)) return json_show(1004, implode(',', array_keys($temp)) . '这些供应商已经开通账号,请使用供应商账号操作');
-        }
+//        if ($this->level != 3) {
+//            $temp = checkHasAccountBySupplierNos(array_column($sale, 'supNo'));
+//            if (!empty($temp)) return json_show(1004, implode(',', array_keys($temp)) . '这些供应商已经开通账号,请使用供应商账号操作');
+//        }
 
 
         $val = Validate::rule([
@@ -429,7 +432,7 @@ class OrderOutChild extends Base
 
             //所有供应商负责人
             $userCommon = \app\admin\common\User::getIns();
-            $person_temp = $userCommon->handle('sGetList', ['more_code' => array_unique(array_column($child, 'supplierNo'))]);
+            $person_temp = $userCommon->handle('sGetList', ['more_code' => array_unique(array_column($child, 'supplierNo')), 'size' => count(array_column($child, 'supplierNo'))]);
             $person = array_column($person_temp['data']['list'], 'personid', 'code');
             unset($userCommon);
             unset($person_temp);
@@ -446,16 +449,19 @@ class OrderOutChild extends Base
                 if ($val->check($value) == false) throw new Exception($val->getError());
 
                 //如果是库存品,只能由库管操作
-                //非库存品和采返商品只能由供应商负责人操作
-                if ($this->level == 2) {
-                    if ($sale[$child[$value['outChildCode']]['orderCode']]['is_stock'] == 1) {
-                        if ($this->uid != $wsm_contactor[$child[$value['outChildCode']]['wsm_code']]) throw new Exception('库存品只能由仓库管理员操作');
-                    } else {
-                        if ($this->uid != $person[$child[$value['outChildCode']]['supplierNo']]) throw new Exception('非库存品和采返商品只能由供应商负责人操作');
-                    }
-                }
+                //其他商品,若level2只能由供应商负责人操作,level3不限制
+                if (($sale[$child[$value['outChildCode']]['orderCode']]['is_stock'] == 1) && ($this->uid != $wsm_contactor[$child[$value['outChildCode']]['wsm_code']])) throw new Exception('库存品只能由仓库管理员操作');
+                elseif (($this->level == 2) && ($this->uid != $person[$child[$value['outChildCode']]['supplierNo']])) throw new Exception('非库存品和采返商品只能由供应商负责人操作');
+
+//                if ($this->level == 2) {
+//                    if ($sale[$child[$value['outChildCode']]['orderCode']]['is_stock'] == 1) {
+//                        if ($this->uid != $wsm_contactor[$child[$value['outChildCode']]['wsm_code']]) throw new Exception('库存品只能由仓库管理员操作');
+//                    } else {
+//                        if ($this->uid != $person[$child[$value['outChildCode']]['supplierNo']]) throw new Exception('非库存品和采返商品只能由供应商负责人操作');
+//                    }
+//                }
 
-                if (($this->level) == 3 && ($sale[$child[$value['outChildCode']]['orderCode']]['is_stock'] == 1) && ($this->uid != $wsm_contactor[$child[$value['outChildCode']]['wsm_code']])) throw new Exception('库存品只能由仓库管理员操作');
+//                if (($this->level) == 3 && ($sale[$child[$value['outChildCode']]['orderCode']]['is_stock'] == 1) && ($this->uid != $wsm_contactor[$child[$value['outChildCode']]['wsm_code']])) throw new Exception('库存品只能由仓库管理员操作');
 
                 //工单
                 if (!isset($child[$value['outChildCode']])) throw new Exception($value['outChildCode'] . '工单不存在或状态不允许发货');
@@ -635,11 +641,11 @@ class OrderOutChild extends Base
     {
         $param = $this->request->only(['outCode'], 'post', 'trim');
 
-        $val = Validate::rule(['outCode'=>'require']);
+        $val = Validate::rule(['outCode' => 'require']);
 
-        if($val->check($param)==false) return json_show(1004,$val->getError());
+        if ($val->check($param) == false) return json_show(1004, $val->getError());
 
-        $where = ['a.is_del'=>0, 'outCode'=>$param['outCode']];
+        $where = ['a.is_del' => 0, 'outCode' => $param['outCode']];
 
         $list = Db::name('order_out_child')
             ->alias('a')

+ 11 - 4
app/admin/controller/Purchin.php

@@ -1031,17 +1031,24 @@ class Purchin extends Base
         $info['diff_fee']=$dom['diff_fee'];
         $info['diff_weight']=$dom['diff_weight'];
         $info['gold_price']=$dom['gold_price'];
-        $wsmcode = Db::name("warehouse_info")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")
+        $wsmcode = Db::name("warehouse_info")
+            ->alias("a")
+//            ->leftJoin("supplier b","a.supplierNo=b.code")
             ->leftJoin("warehouse_addr c","a.wsm_code=c.wsm_code and c.is_del=0")
-            ->where(["a.wsm_code"=>$info['wsm_code']])->field("a.name as wsm_name,b.name,b.code,c.wsm_name as wsm_contactor,c.wsm_mobile,c.wsm_addr,c.addr_code")->find();
+            ->where(["a.wsm_code"=>$info['wsm_code']])
+            ->field("a.name as wsm_name,a.contactor,a.contactor_name,a.supplierNo,c.wsm_name as wsm_contactor,c.wsm_mobile,c.wsm_addr,c.addr_code")
+            ->find();
+        $names = \app\admin\common\User::getIns()->handle('getCodeAndName',['code'=>$wsmcode['supplierNo']]);
         $info['wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
-        $info['wsm_supplier'] =isset($wsmcode['name']) ? $wsmcode['name']:"";
-        $info['wsm_supplierNo'] =isset($wsmcode['code']) ? $wsmcode['code']:"";
+        $info['wsm_supplier'] =$names['data'][$wsmcode['supplierNo']]??'';
+        $info['wsm_supplierNo'] =$wsmcode['supplierNo']??"";
         $info['wsm_contactor'] =isset($wsmcode['wsm_contactor']) ? $wsmcode['wsm_contactor']:"";
         $info['wsm_mobile'] =isset($wsmcode['wsm_mobile']) ? $wsmcode['wsm_mobile']:"";
         $info['addr_code'] =isset($wsmcode['addr_code']) ? $wsmcode['addr_code']:"";
         $info['wsm_addr'] =isset($wsmcode['addr_code']) ? GetAddr($wsmcode['addr_code']):"";
         $info['wsm_addr'].=isset($wsmcode['wsm_addr']) ? $wsmcode['wsm_addr']:"";
+        $info['contactor'] =$wsmcode['contactor']??"";
+        $info['contactor_name'] =$wsmcode['contactor_name']??"";
         $check = Db::name("purchease_info")->alias("a")->leftJoin("result_info b","a.error_code=b.result_code")->where
         (['wsm_in_code'=>$incode,"a.is_del"=>0])->field("a.id,a.wsm_in_code,a.num,a.error_code,b.result as error_msg,a.error_img,remark,a.is_del")->select();
         $info['checkinfo']= $check;

+ 5 - 0
app/admin/controller/Reorder.php

@@ -748,6 +748,11 @@ class Reorder extends Base
         }
         $info['addrinfo'] = $addrinfo;
         $info['can'] = $int;
+
+        //校验是否开通了供应商账号
+        $supp_account = checkHasAccountBySupplierNos($info['supplierNo']);
+        $info['has_account']=(int)isset($supp_account[$value['supplierNo']]);
+
         return json_show(0, "获取成功", $info);
     }
 

+ 26 - 22
app/admin/controller/ReorderChild.php

@@ -17,11 +17,11 @@ class ReorderChild extends Base
     public function add()
     {
 
-        $param = $this->request->only(['returnCode', 'outCode', 'list'], 'post', 'trim');
+        $param = $this->request->only(['returnCode', 'outCode' => '', 'list'], 'post', 'trim');
 
         $val = Validate::rule([
             'returnCode|退货单编号' => 'require',
-            'outCode|发货单编号' => 'require',
+//            'outCode|发货单编号' => 'require',
             'list|退货工单集合' => 'require|array|max:100',
         ]);
         if ($val->check($param) == false) return json_show(1004, $val->getError());
@@ -34,27 +34,28 @@ class ReorderChild extends Base
         if ($saleReturn['status'] != 11) return json_show(1004, '退货单状态有误');
 
         $sale = Db::name('sale')
-            ->field('id,sale_price,good_num,total_price')
+            ->field('id,sale_price,good_num,total_price,is_stock')
             ->where(['is_del' => 0, 'orderCode' => $saleReturn['orderCode']])
             ->findOrEmpty();
         if (empty($sale)) return json_show(1004, '销售单不存在');
 
-        //所有发货工单
-        $orderOutChild = Db::name('order_out_child')
-            ->where(['is_del' => 0, 'outChildCode' => array_unique(array_column($param['list'], 'outChildCode'))])
-            ->column('outCode,wsm_code,num,status', 'outChildCode');
-
-        $saleReturnAddr = Db::name('sale_returnaddr')
-            ->field('id,return_num,is_sale_return_child')
-            ->where(['is_del' => 0, 'returnCode' => $param['returnCode'], 'outCode' => $param['outCode']])
-            ->findOrEmpty();
-        if (empty($saleReturnAddr)) return json_show(1004, '该退货地址不存在');
-        if ($saleReturnAddr['is_sale_return_child'] == 1) return json_show(1004, '该退货地址不能重复设置退货工单');
-        if ($saleReturnAddr['return_num'] != array_sum(array_column($param['list'], 'return_num'))) return json_show(1004, '数量错误');
+        if ($param['outCode'] != '') {
+            //所有发货工单
+            $orderOutChild = Db::name('order_out_child')
+                ->where(['is_del' => 0, 'outChildCode' => array_unique(array_column($param['list'], 'outChildCode'))])
+                ->column('outCode,wsm_code,num,status', 'outChildCode');
 
+            $saleReturnAddr = Db::name('sale_returnaddr')
+                ->field('id,return_num,is_sale_return_child')
+                ->where(['is_del' => 0, 'returnCode' => $param['returnCode'], 'outCode' => $param['outCode']])
+                ->findOrEmpty();
+            if (empty($saleReturnAddr)) return json_show(1004, '该退货地址不存在');
+            if ($saleReturnAddr['is_sale_return_child'] == 1) return json_show(1004, '该退货地址不能重复设置退货工单');
+            if ($saleReturnAddr['return_num'] != array_sum(array_column($param['list'], 'return_num'))) return json_show(1004, '数量错误');
 
+        }
         $val_child = Validate::rule([
-            'outChildCode|发货工单号' => 'require',
+//            'outChildCode|发货工单号' => 'require',
             'return_num|退货数量' => 'require|number|gt:0|max:999999999999',
             'return_wsm_code|退货仓库编码' => 'require'
         ]);
@@ -68,9 +69,12 @@ class ReorderChild extends Base
             $date = date('Y-m-d H:i:s');
 
             //维护退货地址
-            Db::name('sale_returnaddr')
-                ->where(['id' => $saleReturnAddr['id'], 'is_del' => 0, 'is_sale_return_child' => 0])
-                ->update(['is_sale_return_child' => 1, 'updatetime' => $date]);
+            if (isset($saleReturnAddr)) {
+                Db::name('sale_returnaddr')
+                    ->where(['id' => $saleReturnAddr['id'], 'is_del' => 0, 'is_sale_return_child' => 0])
+                    ->update(['is_sale_return_child' => 1, 'updatetime' => $date]);
+
+            }
 
             //生成售前退货工单
             $insert = [];
@@ -84,7 +88,7 @@ class ReorderChild extends Base
                     'returnCode' => $param['returnCode'],
                     'outCode' => $param['outCode'],
                     'outChildCode' => $value['outChildCode'] ?? '',
-                    'order_out_child_status' => $orderOutChild[$value['outChildCode']]['status'],
+                    'order_out_child_status' => $orderOutChild[$value['outChildCode']]['status'] ?? 0,
                     'saleReturnChildCode' => substr(makeNo('KCC'), 0, -2) . str_pad($i++, 2, '0', STR_PAD_LEFT),
 //                    'type' => $param['type'],
                     'companyNo' => $saleReturn['companyNo'],
@@ -97,8 +101,8 @@ class ReorderChild extends Base
                     'addtime' => $date,
                     'updatetime' => $date,
                     'record' => '',
-                    'send_wsm_code' => $orderOutChild[$value['outChildCode']]['wsm_code'],
-                    'send_num' => $orderOutChild[$value['outChildCode']]['num'],
+                    'send_wsm_code' => $orderOutChild[$value['outChildCode']]['wsm_code'] ?? '',
+                    'send_num' => $orderOutChild[$value['outChildCode']]['num'] ?? 0,
                     'return_num' => $value['return_num'],
                     'return_wsm_code' => $value['return_wsm_code'],
                     'good_receive_type' => 0,

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

@@ -315,11 +315,13 @@ class Resign extends Base
         }
 //        $userCommon = \app\admin\common\User::getIns();
         if($info['wsm_code']!=""){
-            $wsmcode = Db::name("warehouse_info")->where(["wsm_code"=>$info['wsm_code']])->field("name as wsm_name,supplierNo,supplierName")->find();
+            $wsmcode = Db::name("warehouse_info")->where(["wsm_code"=>$info['wsm_code']])->field("name as wsm_name,supplierNo,supplierName,contactor,contactor_name")->find();
 //			$tmpd = $userCommon->handle('getCodeAndName', ['code' =>$wsmcode['supplierNo']]);
             $info['wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
             $info['wsm_supplier'] =$wsmcode['supplierName']??"";
             $info['wsm_supplierNo'] =$wsmcode['supplierNo']??"";
+            $info['wsm_contactor'] =$wsmcode['contactor']??"";
+            $info['wsm_contactor_name'] =$wsmcode['contactor_name']??"";
         }
 //        $supplier =Db::name("supplier")->where(["code"=>$info['supplierNo']])->find();