wugg 2 years ago
parent
commit
8a3f08c316

+ 92 - 59
app/admin/controller/After.php

@@ -106,9 +106,11 @@ class After extends Base
 
         $userCommon = new \app\admin\common\User();
         $supplier = $userCommon->handle('sInfo', ['code' => $goon['supplierNo']]);
-        if (!isset($supplier['code']) || $supplier['code'] != 0) return json_show($supplier['code'], $supplier['message'], $supplier['data']);
+//        if (!isset($supplier['code']) || $supplier['code'] != 0) return json_show($supplier['code'], $supplier['message'], $supplier['data']);
         $supplier = $supplier['data'];
 
+        $names = $userCommon->handle('getCodeAndName', ['code' => [$oder['customer_code'], $oder['supplierNo']]]);
+
 //         $supplier =Db::name("supplier")->where(["code"=>$goon['supplierNo']])->find();
 //        if($supplier==false){
 //            return error_show(1005,"未找到商品供应商数据");
@@ -155,8 +157,11 @@ class After extends Base
                 "good_code" => $oder['good_code'],
                 "good_name" => $oder['good_name'],
                 "customer_code" => $oder['customer_code'],
+                "customer_name" => $names['data'][$oder['customer_code']] ?? '',
                 "apply_id" => $rm,
                 "apply_name" => $ri,
+                'supplierNo' => $goon['supplierNo'],
+                'supplierName' => $supplier['name'],
                 "cgder" => $wsm['contactor_name'] ?? '',
                 "cgderid" => $wsm['contactor'] ?? 0,
                 "person" => $supplier['person'] ?? '',
@@ -171,6 +176,8 @@ class After extends Base
                 "remark" => '',
                 "except_code" => $param['except_code'],
                 "order_type" => $orderout['order_type'],
+                'companyNo' => $oder['supplierNo'],
+                'companyName' => $names['data'][$oder['supplierNo']] ?? '',
                 "status" => 1,
                 "is_del" => 0,
                 "addtime" => date("Y-m-d H:i:s"),
@@ -219,7 +226,6 @@ class After extends Base
     //售后申请单列表
     public function list()
     {
-
         $param = $this->request->only([
             'page' => 1,
             'size' => 10,
@@ -231,13 +237,14 @@ class After extends Base
             'orderCode' => '',
             'good_code' => '',
             'good_name' => '',
-            'customer_code' => '',
             'except_code' => '',
             'apply_name' => '',
             'start' => '',
             'end' => '',
-            'company_name' => '',
+            'company_name' => '',//部门名称
             'supplierNo' => '',
+            'customer_code' => '',
+            'companyNo' => '',
             'order_source' => '',
         ], 'post', 'trim');
 
@@ -256,12 +263,9 @@ class After extends Base
         if ($param['start'] !== "") $where[] = ['a.addtime', ">=", $param['start']];
         if ($param['end'] !== "") $where[] = ['a.addtime', "<=", $param['end']];
         if ($param['order_source'] !== "") $where[] = ['c.order_source', "=", $param['order_source']];
-        if ($param['supplierNo'] !== "") {
-            $spuCode = Db::name('good_basic')
-                ->where(['is_del' => 0, 'supplierNo' => $param['supplierNo']])
-                ->column('spuCode');
-            $where[] = ['c.good_code', "in", $spuCode];
-        }
+        if ($param['supplierNo'] !== "") $where[] = ['a.supplierNo', "like", '%' . $param['supplierNo'] . '%'];
+        if ($param['companyNo'] !== "") $where[] = ['a.companyNo', "like", '%' . $param['companyNo'] . '%'];
+
 
         $condition = [];
 
@@ -303,7 +307,7 @@ class After extends Base
             ->where(function ($query) use ($condition) {
                 $query->whereOr($condition);
             })
-            ->field("a.*,b.return_wsm,b.contactor,b.mobile,b.addr,b.addr_code,b.post_code,b.post_company,b.post_fee,b.gys_remark,c.order_source,c.supplierNo")
+            ->field("a.*,b.return_wsm,b.contactor,b.mobile,b.addr,b.addr_code,b.post_code,b.post_company,b.post_fee,b.gys_remark,c.order_source")
             ->page($param['page'], $param['size'])
             ->order("a.addtime desc")
             ->select()
@@ -316,14 +320,14 @@ class After extends Base
         //获取客户信息
 //        $all_customer_code = array_column($list, 'customer_code');
 
-        $userCommon = new \app\admin\common\User();
-        $customer_ = $userCommon->handle('getCodeAndName', ['code' => array_unique(array_merge(array_column($list, 'customer_code'), array_column($list, 'supplierNo')))]);
+//        $userCommon = new \app\admin\common\User();
+//        $customer_ = $userCommon->handle('getCodeAndName', ['code' => array_unique(array_merge(array_column($list, 'customer_code'), array_column($list, 'supplierNo')))]);
 
         $data = [];
         foreach ($list as $value) {
 
-            $value['customer_name'] = $customer_['data'][$value['customer_code']] ?? '';
-            $value['supplierName'] = $customer_['data'][$value['supplierNo']] ?? '';
+//            $value['customer_name'] = $customer_['data'][$value['customer_code']] ?? '';
+//            $value['supplierName'] = $customer_['data'][$value['supplierNo']] ?? '';
             $value['company_name'] = $item[$value['apply_id']] ?? '';
 
             //是否具有编辑权限
@@ -359,8 +363,8 @@ class After extends Base
         $info['order_type'] = $orderinfo['order_type'];
         $info['order_source'] = $orderinfo['order_source'];
         $info['is_stock'] = $orderinfo['is_stock'];
-        $info['customer_code'] = $orderinfo['customer_code'];
-        $info['companyNo'] = $orderinfo['supplierNo'];
+//        $info['customer_code'] = $orderinfo['customer_code'];
+//        $info['companyNo'] = $orderinfo['supplierNo'];
         $info['sale_price'] = $orderinfo['sale_price'];
         $info['total_price'] = sprintf("%1\$.2f", $orderinfo['sale_price'] * $info['error_num']);
         if ($orderinfo['order_type'] == 3) {
@@ -406,9 +410,9 @@ class After extends Base
         $names = $userCommon->handle('getCodeAndName', ['code' => [
             $wsmcode['supplierNo'] ?? '',
             $wsmcode['companyNo'] ?? '',
-            $info['customer_code'],
-            $info['companyNo'],
-            $info['supplierNo'],
+//            $info['customer_code'],
+//            $info['companyNo'],
+//            $info['supplierNo'],
         ]]);
 
         if ($info['return_wsm'] != '') {
@@ -425,9 +429,9 @@ class After extends Base
 //            $customer = Db::name("business")->field('id,company,companyNo')->where(["companyNo" => $orderinfo['supplierNo']])->find();
 //        }
 
-        $info['customer_name'] = $names['data'][$info['customer_code']] ?? '';
-        $info['companyName'] = $names['data'][$info['companyNo']] ?? '';
-        $info['supplierName'] = $names['data'][$info['supplierNo']] ?? '';
+//        $info['customer_name'] = $names['data'][$info['customer_code']] ?? '';
+//        $info['companyName'] = $names['data'][$info['companyNo']] ?? '';
+//        $info['supplierName'] = $names['data'][$info['supplierNo']] ?? '';
 
         $info['can'] = $int;
 
@@ -458,11 +462,11 @@ class After extends Base
                 'returnCode',
                 'status',
                 'remark' => '',
-                'wsm_code'=>'',
-                'contactor'=>'',
-                'mobile'=>'',
-                'addr_code'=>'',
-                'addr'=>'',
+                'wsm_code' => '',
+                'contactor' => '',
+                'mobile' => '',
+                'addr_code' => '',
+                'addr' => '',
 
             ], 'post', 'trim');
 
@@ -532,7 +536,7 @@ class After extends Base
             }
 
             //当处于以下节点时,level2账号必须是供应商负责人操作,level3账号不做限制
-            if(in_array($info['status'],[9,10]) && ($this->level==2) && ($this->uid!=$info['person_id'])) return json_show(1004,'您不是供应商负责人,此时无权操作');
+            if (in_array($info['status'], [9, 10]) && ($this->level == 2) && ($this->uid != $info['person_id'])) return json_show(1004, '您不是供应商负责人,此时无权操作');
 
 //        $param['status'] = isset($this->post['status']) && $this->post['status']!=="" ? intval($this->post['status']) :"";
 //        if($param['status']===""){
@@ -633,34 +637,34 @@ class After extends Base
                     }
 
                     //维护退货地址的收货信息
-                    if($info['is_receive'] == 1 && $param['status'] == 4){
+                    if ($info['is_receive'] == 1 && $param['status'] == 4) {
 
                         $tmp = Db::name('order_returninfo')
                             ->field('id')
-                            ->where('returnCode',$param['returnCode'])
+                            ->where('returnCode', $param['returnCode'])
                             ->findOrEmpty();
 
-                        if(empty($tmp)){
+                        if (empty($tmp)) {
                             //新增
                             Db::name('order_returninfo')
                                 ->insert([
-                                    'returnCode'=>$param['returnCode'],
-                                    'return_wsm'=>$param['wsm_code'],
-                                    'contactor'=>$param['contactor'],
-                                    'mobile'=>$param['mobile'] ,
-                                    'addr'=>$param['addr'],
-                                    'addr_code'=>$param['addr_code'],
-                                    'addtime'=>$date
+                                    'returnCode' => $param['returnCode'],
+                                    'return_wsm' => $param['wsm_code'],
+                                    'contactor' => $param['contactor'],
+                                    'mobile' => $param['mobile'],
+                                    'addr' => $param['addr'],
+                                    'addr_code' => $param['addr_code'],
+                                    'addtime' => $date
                                 ]);
-                        }else{
+                        } else {
                             Db::name('order_returninfo')
-                                ->where('id',$tmp['id'])
+                                ->where('id', $tmp['id'])
                                 ->update([
-                                    'return_wsm'=>$param['wsm_code'],
-                                    'contactor'=>$param['contactor'],
-                                    'mobile'=>$param['mobile'] ,
-                                    'addr'=>$param['addr'],
-                                    'addr_code'=>$param['addr_code'],
+                                    'return_wsm' => $param['wsm_code'],
+                                    'contactor' => $param['contactor'],
+                                    'mobile' => $param['mobile'],
+                                    'addr' => $param['addr'],
+                                    'addr_code' => $param['addr_code'],
                                 ]);
                         }
                     }
@@ -1022,8 +1026,13 @@ class After extends Base
                         "post_code"=>$return_info['post_code'],
                         "post_company"=>$return_info['post_company'],
                         "customer_code"=>$info['customer_code'],
+                        "customer_name"=>$info['customer_name'],
                         "addtime"=>date("Y-m-d H:i:s"),
-                        "updatetime"=>date("Y-m-d H:i:s")
+                        "updatetime"=>date("Y-m-d H:i:s"),
+                        'supplierNo' => $info['supplierNo'],
+                        'supplierName' => $info['supplierName'],
+                        'companyNo' => $info['companyNo'],
+                        'companyName' => $info['companyName'],
                     ];
                     $back =Db::name("order_back")->insert($data,true);
                     if($back>0){
@@ -1365,9 +1374,14 @@ class After extends Base
                         "post_code" => $returninfo["post_code"],
                         "post_company" => $returninfo["post_company"],
                         "customer_code" => $info["customer_code"],
+                        "customer_name" => $info["customer_name"],
                         "status" => $info['return_tag'] == 1 ? 4 : 1, //return_tag==1退回供应商,status:4完成退货,1待验收
                         "addtime" => date("Y-m-d H:i:s"),
-                        "updatetime" => date("Y-m-d H:i:s")
+                        "updatetime" => date("Y-m-d H:i:s"),
+                        'supplierNo' => $info['supplierNo'],
+                        'supplierName' => $info['supplierName'],
+                        'companyNo' => $info['companyNo'],
+                        'companyName' => $info['companyName'],
                     ];
                     $sav = Db::name("order_back")->insert($thdata, true);
                     if ($sav) {
@@ -2834,12 +2848,15 @@ class After extends Base
             'orderCode' => '',
             'good_code' => '',
             'good_name' => '',
-            'customer_code' => '',
             'except_code' => '',
             'apply_name' => '',
             'start' => '',
             'end' => '',
-            'company_name' => '',
+            'company_name' => '',//部门名称
+            'supplierNo' => '',
+            'customer_code' => '',
+            'companyNo' => '',
+            'order_source' => '',
         ], 'post', 'trim');
 
         $val = Validate::rule(['returnCode' => 'require|array|max:10']);
@@ -2847,6 +2864,8 @@ class After extends Base
         if ($val->check($param) == false) return json_show(1004, $val->getError());
 
         $where = [['a.is_del', "=", 0], ['a.returnCode', 'in', $param['returnCode']]];
+//        if ($param['relaComNo'] !== '') $where[] = ['a.supplierNo', "=", $param['relaComNo']];
+        if ($param['returnCode'] !== '') $where[] = ['a.returnCode', "like", "%{$param['returnCode']}%"];
         if ($param['outCode'] !== '') $where[] = ['a.outCode', "like", "%{$param['outCode']}%"];
         if ($param['status'] !== '') $where[] = ['a.status', "=", $param['status']];
         if ($param['order_type'] !== "") $where[] = ['a.order_type', "=", $param['order_type']];
@@ -2858,17 +2877,25 @@ class After extends Base
         if ($param['apply_name'] != "") $where[] = ['a.apply_name', "like", "%{$param['apply_name']}%"];
         if ($param['start'] !== "") $where[] = ['a.addtime', ">=", $param['start']];
         if ($param['end'] !== "") $where[] = ['a.addtime', "<=", $param['end']];
+        if ($param['order_source'] !== "") $where[] = ['c.order_source', "=", $param['order_source']];
+        if ($param['supplierNo'] !== "") $where[] = ['a.supplierNo', "like", '%' . $param['supplierNo'] . '%'];
+        if ($param['companyNo'] !== "") $where[] = ['a.companyNo', "like", '%' . $param['companyNo'] . '%'];
         if ($param['company_name'] !== "") $where[] = ["a.apply_id", 'in', get_company_item_user_by_name($param['company_name'])];
 
-        $condition = [];
-        $hand = resign_hand_user($this->uid, 0);
-        $role = $this->checkDataShare();
-        if (!empty($role[DataGroupModel::$type_全部])) {
-            $arr = array_unique(array_merge($hand, $role[DataGroupModel::$type_全部]));
-            $condition[] = ["a.person_id", "in", $hand];
-            $condition[] = ["a.apply_id", "in", $arr];
-            $condition[] = ["a.cgderid", "in", $hand];
+        //只有level2的账号过滤数据权限
+        if ($this->level == 2) {
+            $hand = resign_hand_user($this->uid, 0);
+            $role = $this->checkDataShare();
+            if (!empty($role[DataGroupModel::$type_全部])) {
+                $arr = array_unique(array_merge($hand, $role[DataGroupModel::$type_全部]));
+                $condition[] = ["a.person_id", "in", $hand];
+                $condition[] = ["a.apply_id", "in", $arr];
+                $condition[] = ["a.cgderid", "in", $hand];
+            }
         }
+
+        //level3账号不允许看到库存品订单
+        if ($this->level == 3) $where[] = ['c.is_stock', '<>', 1];
 //        $condition .="a.cgderid in {$hand} or a.person_id in {$hand} or a.apply_id in ("
 //        .implode(',',$role[DataGroupModel::$type_全部]).")";
 
@@ -2890,6 +2917,7 @@ a.orderCode 订单编号,
 a.good_code 商品编号,
 a.good_name 商品名称,
 a.customer_code 客户编码,
+a.customer_name 客户名称,
 a.is_post 是否承担物流费用,
 a.is_th 供应商是否退货,
 a.return_tag 退回何处,
@@ -2908,13 +2936,18 @@ b.addr_code,
 b.post_code 快递单号,
 b.post_company 快递公司,
 b.post_fee 快递费用,
-b.gys_remark 供应商备注')
+b.gys_remark 供应商备注,
+a.supplierNo 供应商编码,
+a.supplierName 供应商名称,
+a.companyNo 业务公司编码,
+a.companyName 业务公司名称')
             ->alias('a')
             ->where($where)
             ->where(function ($query) use ($condition) {
                 $query->whereOr($condition);
             })
             ->leftJoin('order_returninfo b', 'b.returnCode=a.returnCode')
+            ->leftJoin("sale c", "c.orderCode=a.orderCode AND c.is_del=0")
             ->select()
             ->toArray();
 

+ 43 - 35
app/admin/controller/Consult.php

@@ -831,19 +831,6 @@ class Consult extends Base
         $relaComNo = isset($this->post['relaComNo']) && $this->post['relaComNo'] != '' ? trim($this->post['relaComNo']) : "";
         if ($relaComNo == '') return error_show(1004, '关联公司不能为空');
 
-        //判断支付渠道中是否有相关供应商
-        $is_select_pay_rate = Db::name('platform')
-            ->where(['is_del' => 0, 'id' => $zx['platform_code']])
-            ->value('is_select_pay_rate', 0);
-        if ($is_select_pay_rate == 1) {
-            $temp = Db::name('platform_pay_rate')
-                ->field('id')
-                ->where(['is_del' => 0, 'platform_id' => $zx['platform_code'], 'companyNo' => $supplierNo])
-                ->findOrEmpty();
-            if (!empty($temp)) return json_show(1004, '招标任务平台已存在该供应商,请更换其他供应商');
-        }
-
-
 //        $platform_id = isset($this->post['platform_id']) && $this->post['platform_id'] != '' ? intval($this->post['platform_id']) : 0;
 //        if ($platform_id == 0) return error_show(1004, '平台id不能为空');
 
@@ -927,7 +914,25 @@ class Consult extends Base
         if($supplier_temp['code']!=0 || empty($supplier_temp['data']) ) return error_show(1004,"供应商信息未找到");
 		$supplierArr=$supplier_temp['data']??[];
 		$supplier=$supplierArr['child']??[];
-		if($supplierArr['relation_code']==$zx['companyNo']) return error_show(1004,"业务公司与供应商信息一致");
+
+        if ($supplierArr['relation_code'] != '') {
+            if ($supplierArr['relation_code'] == $zx['companyNo']) return error_show(1004, "业务公司与供应商信息一致");
+
+            //判断支付渠道中是否有相关供应商
+            $is_select_pay_rate = Db::name('platform')
+                ->where(['is_del' => 0, 'id' => $zx['platform_code']])
+                ->value('is_select_pay_rate', 0);
+            if ($is_select_pay_rate == 1) {
+                $temp = Db::name('platform_pay_rate')
+                    ->field('id')
+                    ->where(['is_del' => 0, 'platform_id' => $zx['platform_code'], 'companyNo' => $supplierArr['relation_code']])
+                    ->findOrEmpty();
+                if (!empty($temp)) return json_show(1004, '招标任务平台已存在该供应商,请更换其他供应商');
+            }
+        }
+
+
+
         $data=[
             "bidNo"=>$bidNo,
             "infoNo"=>$infoNo,
@@ -1199,23 +1204,9 @@ class Consult extends Base
         $work_day = isset($this->post['work_day'])&&$this->post['work_day']!=""? intval($this->post['work_day']):"";
         $delivery_day = isset($this->post['delivery_day'])&&$this->post['delivery_day']!=""? intval($this->post['delivery_day']):"";
         $good_img = isset($this->post['good_img'])&&$this->post['good_img']!=""? $this->post['good_img']:[];
-        $expire_day = isset($this->post['expire_day'])&&$this->post['expire_day']!=""? intval($this->post['expire_day'])
-            :"";
+        $expire_day = isset($this->post['expire_day'])&&$this->post['expire_day']!=""? intval($this->post['expire_day']) :"";
         $origin_place = isset($this->post['origin_place'])&&$this->post['origin_place']!=""? trim($this->post['origin_place']):"";
         $supplierNo = isset($this->post['supplierNo'])&&$this->post['supplierNo']!=""? trim($this->post['supplierNo']):"";
-
-        //判断支付渠道中是否有相关供应商
-        $is_select_pay_rate = Db::name('platform')
-            ->where(['is_del' => 0, 'id' => $zx['platform_code']])
-            ->value('is_select_pay_rate', 0);
-        if ($is_select_pay_rate == 1) {
-            $temp = Db::name('platform_pay_rate')
-                ->field('id')
-                ->where(['is_del' => 0, 'platform_id' => $zx['platform_code'], 'companyNo' => $supplierNo])
-                ->findOrEmpty();
-            if (!empty($temp)) return json_show(1004, '招标任务平台已存在该供应商,请更换其他供应商');
-        }
-
         $pay_way = isset($this->post['pay_way'])&&$this->post['pay_way']!=""? intval($this->post['pay_way']):"";
         $tax = isset($this->post['tax'])&&$this->post['tax']!=""? trim($this->post['tax']):"";
         $send_way = isset($this->post['send_way'])&&$this->post['send_way']!=""? intval($this->post['send_way']):"0";
@@ -1264,16 +1255,31 @@ class Consult extends Base
             $sale_cost_fee = ( $saleprice- ($demo_fee / $zxinfo['num'] + $open_fee / $zxinfo['num'] + $pakge_fee + $mark_fee + $cert_fee + $nake_fee + $delivery_fee)) / $noble_weight - $gold["price"];
 
         }else{
-            $saleprice = ($demo_fee / $zxinfo['num']+$delivery_fee+$open_fee / $zxinfo['num'] + $cost_fee*$noble_weight + $pakge_fee +
-                    $mark_fee + $cert_fee + $nake_fee) / (1 - $budget);
+            $saleprice = ($demo_fee / $zxinfo['num']+$delivery_fee+$open_fee / $zxinfo['num'] + $cost_fee*$noble_weight + $pakge_fee + $mark_fee + $cert_fee + $nake_fee) / (1 - $budget);
             $total_fee = $demo_fee/$zxinfo['num']+$delivery_fee+$open_fee/$zxinfo['num'] + $cost_fee * $noble_weight + $pakge_fee + $mark_fee+$cert_fee +$nake_fee;
         }
         $userCommon= new \app\admin\common\User();
         $supplier_temp =$userCommon->handle("hqInfo",["code"=>$supplierNo]);
         if($supplier_temp['code']!=0 || empty($supplier_temp['data']) ) return error_show(1004,"供应商信息未找到");
 		$supplierArr=$supplier_temp['data']??[];
-		$supplier=$supplierArr['child']??[];
-		if($supplierArr['relation_code']==$zx['companyNo']) return error_show(1004,"业务公司与供应商信息一致");
+//		$supplier=$supplierArr['child']??[];
+
+        if ($supplierArr['relation_code'] != '') {
+            if ($supplierArr['relation_code'] == $zx['companyNo']) return error_show(1004, "业务公司与供应商信息一致");
+
+            //判断支付渠道中是否有相关供应商
+            $is_select_pay_rate = Db::name('platform')
+                ->where(['is_del' => 0, 'id' => $zx['platform_code']])
+                ->value('is_select_pay_rate', 0);
+            if ($is_select_pay_rate == 1) {
+                $temp = Db::name('platform_pay_rate')
+                    ->field('id')
+                    ->where(['is_del' => 0, 'platform_id' => $zx['platform_code'], 'companyNo' => $supplierArr['relation_code']])
+                    ->findOrEmpty();
+                if (!empty($temp)) return json_show(1004, '招标任务平台已存在该供应商,请更换其他供应商');
+            }
+        }
+
         Db::startTrans();
         try{
             $data=[
@@ -2422,6 +2428,7 @@ class Consult extends Base
         $count = Db::name('consult_info')
             ->alias("a")
             ->leftJoin("consult_order b","a.zxNo=b.zxNo")
+            ->leftJoin("platform c","c.id=b.platform_code")
             ->where($where)
             ->count();
         $total = ceil($count / $size);
@@ -2429,9 +2436,10 @@ class Consult extends Base
         $list =Db::name('consult_info')
             ->alias("a")
             ->leftJoin("consult_order b","a.zxNo=b.zxNo")
+            ->leftJoin("platform c","c.id=b.platform_code")
             ->where($where)
             ->page($page,$size)
-            ->field("a.*,b.createrid,b.creater,b.is_project,b.projectNo,b.khNo,b.endtime,b.platform_code,b.saleid,b.salesman,b.depart,b.companyNo")
+            ->field("a.*,b.createrid,b.creater,b.is_project,b.projectNo,b.khNo,b.endtime,b.saleid,b.salesman,b.depart,b.companyNo,c.id platform_id,c.platform_code,c.platform_name")
             ->select()
             ->toArray();
         $data=[];
@@ -2449,7 +2457,7 @@ class Consult extends Base
 //                  ->where(["id"=>$value['cat_id']])
 //                  ->find();
 //              $budget = isset($cat['order_rate']) ? $cat['order_rate']:0;
-            $budget = get_budget($value['cat_id'], $value['companyNo'], $value['platform_code']);
+            $budget = get_budget((int)$value['cat_id'], $value['companyNo'], (int)$value['platform_code']);
                $value['original_price']=sprintf("%.2f",$value['budget_price']* (1 -$budget));
 
 //            $brand = Db::name("brand")->where(['id'=>$value['brand_id']])->find();

+ 1 - 2
app/admin/controller/Good.php

@@ -1083,8 +1083,7 @@ class Good extends Base
         $page = $total>=$param['page'] ? $param['page'] :$total;
         $list = Db::name("good_log")
             ->alias('a')
-            ->field("a.good_log_code,a.action_name,a.type,a.stock_name,a.stock,a.action_type,b.spuCode,
-            a.addtime,a.action_uid,b.wsm_code,c.is_stock,c.good_name,c.cat_id,c.companyNo,c.supplierNo")
+            ->field("a.good_log_code,a.action_name,a.type,a.stock_name,a.stock,a.action_type,b.spuCode,a.addtime,a.action_uid,b.wsm_code,c.is_stock,c.good_name,c.cat_id,c.companyNo,c.supplierNo")
             ->leftJoin('good_stock b','b.id=a.stock_id')
             ->leftJoin('good c','c.spuCode=b.spuCode')
             ->where($where)

+ 213 - 0
app/admin/controller/Goodup.php

@@ -244,6 +244,219 @@ class Goodup extends Base
         return app_show(0,"获取成功",['list'=>$data,'count'=>$count]);
     }
 
+    //商品成本列表,不受数据权限控制
+    public function list_copy()
+    {
+        $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 = [["gb.is_del", "=", 0]];
+        $condit = [["a.is_del", "=", 0]];
+        $cat_id = isset($this->post['cat_id']) && $this->post['cat_id'] !== "" ? intval($this->post['cat_id']) : "";
+        if ($cat_id !== "") {
+            $cat_ids = catChild($cat_id);
+            $where[] = ['gb.cat_id', "in", $cat_ids];
+            $condit[] = ['a.cat_id', "in", $cat_ids];
+        }
+        $good_name = isset($this->post['good_name']) && $this->post['good_name'] !== "" ? trim($this->post['good_name']) : "";
+        if ($good_name !== "") {
+            $where[] = ['gb.good_name', "like", "%$good_name%"];
+            $condit[] = ['a.good_name', "like", "%$good_name%"];
+        }
+        $spucode = isset($this->post['spucode']) && $this->post['spucode'] !== "" ? trim($this->post['spucode']) : "";
+        if ($spucode !== "") {
+            $where[] = ['gb.spuCode', "like", "%$spucode%"];
+            $condit[] = ['a.spuCode', "like", "%$spucode%"];
+        }
+        $good_type = isset($this->post['good_type']) && $this->post['good_type'] !== "" ? trim($this->post['good_type']) : "";
+        if ($good_type !== "") {
+            $where[] = ['gb.good_type', "=", $good_type];
+            $condit[] = ['a.good_type', "=", $good_type];
+        }
+        $companyNo = isset($this->post['companyNo']) && $this->post['companyNo'] !== "" ? trim($this->post['companyNo']) : "";
+        if ($companyNo !== "") {
+            $where[] = ['gb.companyNo', "like", "%$companyNo%"];
+            $condit[] = ['a.companyNo', "like", "%$companyNo%"];
+        }
+
+        $userCommon = new \app\admin\common\User();
+
+        $supplierNo = isset($this->post['supplierNo']) && $this->post['supplierNo'] !== "" ? trim($this->post['supplierNo']) : "";
+        if ($supplierNo !== "") {
+            $where[] = ['gb.supplierNo', "like", "%$supplierNo%"];
+            $condit[] = ['a.supplierNo', "like", "%$supplierNo%"];
+        }
+        $supplier = isset($this->post['supplier']) && $this->post['supplier'] !== "" ? trim($this->post['supplier']) : "";
+        if ($supplier !== "") {
+//            $suppliernos = Db::name("supplier")->where([["name","like","%$supplier%"]])->column("code");
+
+            $tmp = $userCommon->handle('sGetList', ['name' => $supplier]);
+            if (isset($tmp['data']['list']) && !empty($tmp['data']['list'])) {
+                $suppliernos = array_column($tmp['data']['list'], 'companyNo');
+                $where[] = ['gb.supplierNo', "in", $suppliernos];
+                $condit[] = ['a.supplierNo', "in", $suppliernos];
+            }
+
+        }
+        $company = isset($this->post['company']) && $this->post['company'] !== "" ? trim($this->post['company']) : "";
+        if ($company !== "") {
+//            $companyNos = Db::name("business")->where([["company","like","%$company%"]])->column("companyNo");
+
+            $tmp = $userCommon->handle('bGetList', ['company' => $company]);
+            if (isset($tmp['data']['list']) && !empty($tmp['data']['list'])) {
+                $companyNos = array_column($tmp['data']['list'], 'companyNo');
+                $where[] = ['gb.companyNo', "in", $companyNos];
+                $condit[] = ['a.companyNo', "in", $companyNos];
+            }
+
+        }
+
+        $brandid = isset($this->post['brandid']) && $this->post['brandid'] !== "" ? intval($this->post['brandid']) : "";
+        if ($brandid !== "") {
+            $where[] = ['gb.brand_id', "=", $brandid];
+            $condit[] = ['a.brand_id', "=", $brandid];
+        }
+        $status = isset($this->post['status']) && $this->post['status'] !== "" ? intval($this->post['status']) : "";
+        if ($status !== "") {
+            $where[] = ['gb.status', "=", $status];
+            $condit[] = ['a.status', "=", $status];
+        }
+        $is_stock = isset($this->post['is_stock']) && $this->post['is_stock'] !== "" ? intval($this->post['is_stock']) : '';
+        if ($is_stock !== '') {
+            $where[] = ['gb.is_stock', "=", $is_stock];
+        }
+        $start = isset($this->post['start']) && $this->post['start'] !== "" ? $this->post['start'] : "";
+        if ($start !== "") {
+            $where[] = ['gb.addtime', ">=", date('Y-m-d H:i:s', strtotime($start))];
+            $condit[] = ['a.addtime', ">=", date('Y-m-d H:i:s', strtotime($start))];
+        }
+        $end = isset($this->post['end']) && $this->post['end'] !== "" ? $this->post['end'] : "";
+        if ($end !== "") {
+            $where[] = ['gb.addtime', "<", date('Y-m-d H:i:s', strtotime($end) + 24 * 3600)];
+            $condit[] = ['a.addtime', "<", date('Y-m-d H:i:s', strtotime($end) + 24 * 3600)];
+        }
+        $isonline = isset($this->post['isonline']) && $this->post['isonline'] !== "" ? $this->post['isonline'] : "";
+        if ($isonline !== "") {
+            $condit[] = ['b.exam_status', "=", 6];
+//            if($isonline==1){
+//                $condit[] =['b.exam_status',"=",6];
+//            }else{
+//                $condit[] =['b.exam_status',"<>",6];
+//            }
+            $sta = Db::name("good_basic")
+                ->alias("a")
+                ->leftJoin("good_platform b", "a.spuCode=b.spuCode")
+                ->where($condit)
+                ->group("a.spuCode")
+                ->column('a.spuCode');
+
+            if ($isonline == 1) $where[] = ["gb.spuCode", "in", $sta];
+            else  $where[] = ["gb.spuCode", "not in", $sta];
+        }
+//        $token = isset($this->post['token']) ? trim($this->post['token']) : "";
+//        if($token==""){
+//            return error_show(101,'token不能为空');
+//        }
+//        $apply_id =GetUserInfo($token);
+//        if(empty($apply_id)||$apply_id['code']!=0){
+//            return error_show(102,"申请人数据不存在");
+//        }
+//        $rm= isset($apply_id["data"]['id']) ?  $apply_id["data"]['id'] : "";
+//        if($rm!=''){
+//            $useinfo = Db::name("user_role")->where(['uid'=>$rm,"status"=>1,"is_del"=>0])->find();
+//            if($useinfo==false){
+//                return error_show(1002,"未找到用户角色权限");
+//            }
+//            $check = checkRole($useinfo['roleid'],115);
+//            if($check){
+//                $where[]=['gb.createrid', "=" ,$rm];
+//            }
+//        }
+//        $role=$this->checkRole();
+//        $wheror=[];
+//        $role = $this->checkDataShare();//取负责人字段
+//        if(!empty($role[DataGroupModel::$type_全部]))  $wheror[]=["gb.chargerid","in",$role[DataGroupModel::$type_全部]];
+
+
+        $company_name = isset($this->post['company_name']) && $this->post['company_name'] !== "" ? trim($this->post['company_name']) : "";
+        if ($company_name !== "") $where[] = ["gb.createrid", 'in', get_company_item_user_by_name($company_name)];
+
+        $relaComNo = isset($this->post['relaComNo']) && $this->post['relaComNo']!="" ? trim($this->post['relaComNo']):"";
+        if($relaComNo!="") $where[]=['gb.companyNo','=', $relaComNo];
+
+        $count = Db::name('good_basic')
+            ->alias('gb')
+            ->where($where)
+//            ->where(function ($Query) use ($wheror) {
+//                return $Query->whereOr($wheror);
+//            })
+            ->count('gb.id');
+        $total = ceil($count / $size);
+        $page = $page >= $total ? $total : $page;
+        $list = Db::name('good_basic')
+            ->alias('gb')
+            ->where($where)
+            ->page($page, $size)
+            ->order("addtime desc")
+            ->select()
+            ->toArray();
+        $data = [];
+
+        $all_createrid = array_column($list, 'chargerid');
+        $item = get_company_name_by_uid($all_createrid);
+
+        //查询一下这些spucode是否在平台上成功上线
+        $exam_statuss = Db::name('good_platform')
+            ->whereIn('spuCode', array_column($list, 'spuCode'))
+            ->where(['is_del' => 0, 'exam_status' => 6])//exam_status==6表示上线审核成功
+            ->column('id', 'spuCode');
+        $exam_status_yz = Db::name('platform_youzan')
+            ->whereIn('spuCode', array_column($list, 'spuCode'))
+            ->where(['is_del' => 0, 'exam_status' => 6])//exam_status==6表示上线审核成功
+            ->column('id', 'spuCode');
+
+        $account = checkHasAccountBySupplierNos(array_column($list, 'supplierNo'));
+
+        $brand = Db::name('brand')
+            ->where(['id' => array_column($list, 'brand_id')])
+            ->column('brand_name', 'id');
+
+        $unit = Db::name('unit')
+            ->where(['id' => array_column($list, 'good_unit')])
+            ->column('unit', 'id');
+
+        $supplierInfo = $userCommon->handle('getCodeAndName', ['code' => array_merge(array_column($list, 'companyNo'), array_column($list, 'supplierNo'))]);
+
+        foreach ($list as $value) {
+            $value["cat_info"] = made($value['cat_id'], []);
+//                $brand=Db::name("brand")->where(["id"=>$value['brand_id']])->find();
+            $value["brand_name"] = $brand[$value['brand_id']] ?? '';//isset($brand['brand_name'])?$brand['brand_name']:"";
+//                $unit = Db::name("unit")->where(["id"=>$value['good_unit']])->find();
+            $value['unit'] = $unit[$value['good_unit']] ?? '';//isset($unit['unit'])?$unit['unit']:"";
+//                $company = Db::name("business")->where(["companyNo"=>$value['companyNo']])->find();
+            $value['company'] = $supplierInfo['data'][$value['companyNo']] ?? '';//isset($company['company'])?$company['company']:"";
+//                $supplier = Db::name("supplier")->where(['code'=>$value['supplierNo']])->find();
+            $value['supplier_name'] = $supplierInfo['data'][$value['supplierNo']] ?? '';//isset($supplier['name'])?$supplier['name']:"";
+            $value['exclusive'] = makeExcluse($value['is_exclusive']);
+            $value['noble_name'] = isset($value['noble_metal']) && $value['noble_metal'] != 0 ? $this->noble[$value['noble_metal']] : "";
+
+            //如果一个spucode在任意平台上线,那么就视为它上线,即手动把它的is_online值改为1
+            if (isset($exam_statuss[$value['spuCode']]) || isset($exam_status_yz[$value['spuCode']])) $value['is_online'] = 1;
+
+            $value['charger_company_name'] = $item[$value['chargerid']] ?? '';
+
+            $value['has_account'] = (int)isset($account[$value['supplierNo']]);
+
+//            //是否具有编辑权限
+//            $value['is_allow_update'] = 0;
+//            if ($this->level == 2) {
+//                if (in_array($this->roleid, [1, 33]) || in_array($value['chargerid'], $role[DataGroupModel::$type_可编辑])) $value['is_allow_update'] = 1;
+//            } elseif ($this->level == 3) $value['is_allow_update'] = 1;
+
+            $data[] = $value;
+        }
+        return app_show(0, "获取成功", ['list' => $data, 'count' => $count]);
+    }
+
 
     public function  create(){
         $good_name= isset($this->post['good_name'])&&$this->post['good_name']!="" ? trim($this->post['good_name']):"";

+ 37 - 27
app/admin/controller/Orderback.php

@@ -71,18 +71,16 @@ class Orderback extends Base
             $where[] = ['a.addtime', "<=", $end];
         }
 
-        $order_source = $order_source = isset($this->post['order_source']) && $this->post['order_source'] != "" ? trim($this->post['order_source']) : "";
+        $order_source = isset($this->post['order_source']) && $this->post['order_source'] != "" ? trim($this->post['order_source']) : "";
         if ($order_source !== "") {
             $where[] = ['b.order_source', "=", $order_source];
         }
 
-        $supplierNo = $this->post['supplierNo'] ?? '';
-        if ($supplierNo !== '') {
-            $spuCode = Db::name('good_basic')
-                ->where(['is_del' => 0, 'supplierNo' => $supplierNo])
-                ->column('spuCode');
-            $where[] = ['b.good_code', 'in', $spuCode];
-        }
+        $supplierNo = trim($this->post['supplierNo'] ?? '');
+        if ($supplierNo !== '') $where[] = ['a.supplierNo', 'like', '%'.$supplierNo.'%'];
+
+        $companyNo = trim($this->post['companyNo'] ?? '');
+        if ($companyNo !== '') $where[] = ['a.companyNo', 'like', '%'.$companyNo.'%'];
 
         $condition = [];
 //        $role=$this->checkRole();
@@ -106,7 +104,6 @@ class Orderback extends Base
             }
         }
 
-
         //供应商账号不允许看到库存品数据
         if ($this->level == 3) $where[] = ['b.is_stock', '<>', 1];
 //        if(!empty($role['platform']) ){
@@ -129,7 +126,7 @@ class Orderback extends Base
             ->where(function ($query) use ($condition) {
                 $query->whereOr($condition);
             })
-            ->field('a.*,b.order_source,b.supplierNo')
+            ->field('a.*,b.order_source')
             ->page($page, $size)
             ->order("a.addtime desc")
             ->select()
@@ -142,7 +139,7 @@ class Orderback extends Base
             ->column("a.name,a.supplierNo", 'a.wsm_code');//b.name,b.code
 
         $userCommon = new \app\admin\common\User();
-        $names = $userCommon->handle('getCodeAndName', ['code' => array_unique(array_merge(array_column($all_wsm, 'supplierNo'), array_column($list, 'customer_code'), array_column($list, 'supplierNo')))]);
+        $names = $userCommon->handle('getCodeAndName', ['code' => array_unique(array_column($all_wsm, 'supplierNo'))]);
 
         foreach ($list as $value) {
             $value['wsm_name'] = "";
@@ -159,14 +156,17 @@ class Orderback extends Base
                 $value['wsm_supplier'] = $names['data'][$all_wsm[$value['return_wsm']]['supplierNo']] ?? '';//isset($wsmcode['name']) ? $wsmcode['name']:"";
                 $value['wsm_supplierNo'] = $all_wsm[$value['return_wsm']]['supplierNo'];//isset($wsmcode['code']) ? $wsmcode['code']:"";
             }
-            $value['customer_name'] = '';
-            if ($value['customer_code'] != '') {
+//            $value['customer_name'] = '';
+//            if ($value['customer_code'] != '') {
 //                $customer = Db::name("customer_info")->where(['companyNo'=>$value['customer_code']])->find();
-                $value['customer_name'] = $names['data'][$value['customer_code']] ?? '';//isset($customer['companyName'])?$customer['companyName']:'';
-            }
-            $inorder = Db::name("order_backinfo")->where(['thNo' => $value['thNo'], "is_del" => 0])->select();
+//                $value['customer_name'] = $names['data'][$value['customer_code']] ?? '';//isset($customer['companyName'])?$customer['companyName']:'';
+//            }
+            $inorder = Db::name("order_backinfo")
+                ->where(['thNo' => $value['thNo'], "is_del" => 0])
+                ->select()
+                ->toArray();
             $value['child'] = empty($inorder) ? [] : $inorder;
-            $value['supplierName'] = $names['data'][$value['supplierNo']] ?? '';//isset($customer['companyName'])?$customer['companyName']:'';
+//            $value['supplierName'] = $names['data'][$value['supplierNo']] ?? '';//isset($customer['companyName'])?$customer['companyName']:'';
 
             //是否具有编辑权限
 //            $value['is_allow_update'] = 0;
@@ -198,18 +198,23 @@ class Orderback extends Base
         $info['order_type']=$orderinfo['order_type'];
         $info['order_source']=$orderinfo['order_source'];
         $info['total_price']=$orderinfo['total_price'];
-        $info['companyNo']=$orderinfo['supplierNo'];
+//        $info['companyNo']=$orderinfo['supplierNo'];
 
 //      $info['company'] = Db::name('business')
 //          ->where(['companyNo' => $orderinfo['supplierNo'], 'is_del' => 0])
 //          ->value('company','');
         $info['addr_cn']=GetAddr($info['addr_code']);
         if($orderinfo['order_type']==3){
-            $goon = Db::name("good_zixun")->where(["spuCode"=>$orderinfo['good_code'],"is_del"=>0])->find();
+            $goon = Db::name("good_zixun")
+                ->where(["spuCode"=>$orderinfo['good_code'],"is_del"=>0])
+                ->find();
             $is_stock=0;
         }else {
-            $goon = Db::name('good_platform')->alias('a')->join('good b', 'b.spuCode=a.spuCode', 'left')
-                ->where(['a.skuCode' => $orderinfo['skuCode']])->find();
+            $goon = Db::name('good_platform')
+                ->alias('a')
+                ->leftJoin('good b', 'b.spuCode=a.spuCode', 'left')
+                ->where(['a.skuCode' => $orderinfo['skuCode']])
+                ->find();
             $is_stock=$goon['is_stock'];
         }
         if (empty($goon)) {
@@ -243,7 +248,7 @@ class Orderback extends Base
         $info['wsm_name']="";
         $info['wsm_supplier']='';
         $info['wsm_supplierNo']='';
-        if($info['return_wsm']!=""){
+//        if($info['return_wsm']!=""){
 //          $wsmcode = Db::name("warehouse_info")
 //              ->alias("a")
 ////              ->leftJoin("supplier b","a.supplierNo=b.code")
@@ -253,9 +258,14 @@ class Orderback extends Base
 //          $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']:"";
-        }
-        $inorder= Db::name("order_backinfo")->alias("a")->leftJoin("result_info b","a.error_code=b.result_code")
-            ->where(['a.thNo'=>$info['thNo'],"a.is_del"=>0])->field("a.*,b.result as error_msg")->select();
+//        }
+        $inorder= Db::name("order_backinfo")
+            ->alias("a")
+            ->leftJoin("result_info b","a.error_code=b.result_code")
+            ->where(['a.thNo'=>$info['thNo'],"a.is_del"=>0])
+            ->field("a.*,b.result as error_msg")
+            ->select()
+            ->toArray();
         $info['child']=empty($inorder)? [] : $inorder;
 
         $info['can']=$int;
@@ -270,9 +280,9 @@ class Orderback extends Base
             ->column('wi.name,wi.supplierNo', 'wi.wsm_code');
 
         $userCommon = new \app\admin\common\User();
-        $names = $userCommon->handle('getCodeAndName', ['code' => array_unique(array_merge(array_column($warehouse, 'supplierNo'), [$orderinfo['supplierNo']]))]);
+        $names = $userCommon->handle('getCodeAndName', ['code' => array_unique(array_merge(array_column($warehouse, 'supplierNo')))]);
 
-        $info['company'] = $names['data'][$orderinfo['supplierNo']] ?? '';
+//        $info['company'] = $names['data'][$orderinfo['supplierNo']] ?? '';
 
         $info['can_sell_wsm_name'] = isset($warehouse[$info['can_sell_wsm']]['name']) ? $warehouse[$info['can_sell_wsm']]['name'] : '';
         $info['can_sell_wsm_supplierNo'] = isset($warehouse[$info['can_sell_wsm']]['supplierNo']) ? $warehouse[$info['can_sell_wsm']]['supplierNo'] : '';

+ 11 - 3
app/admin/controller/Purch.php

@@ -210,9 +210,15 @@ class Purch extends Base
         $person_list = array_column($person_list['data']['list'], null, 'code');
 
         foreach ($list as $value){
-            $value['wsm_name'] = isset($wsmcode[$value['wsm_code']]['wsm_name']) ? $wsmcode[$value['wsm_code']]['wsm_name'] : "";
-            $value['wsm_supplier'] =isset($wsmcode[$value['wsm_code']]['code'])? $person_list[$wsmcode[$value['wsm_code']]['code']]['name'] ?? "":"";
-            $value['wsm_supplierNo'] = $wsmcode[$value['wsm_code']]['code'] ?? "";
+
+//            $value['wsm_name'] = isset($wsmcode[$value['wsm_code']]['wsm_name']) ? $wsmcode[$value['wsm_code']]['wsm_name'] : "";
+//            $value['wsm_supplier'] =isset($wsmcode[$value['wsm_code']]['code'])? $person_list[$wsmcode[$value['wsm_code']]['code']]['name'] ?? "":"";
+//            $value['wsm_supplierNo'] = $wsmcode[$value['wsm_code']]['code'] ?? "";
+
+            $value['wsm_name'] = $value['wsm_code'] != '' ? $wsmcode[$value['wsm_code']]['wsm_name'] ?? '' : "";
+            $value['wsm_supplier'] = $value['wsm_code'] != '' ? $person_list[$wsmcode[$value['wsm_code']]['code']]['name'] ?? "" : '';
+            $value['wsm_supplierNo'] = $value['wsm_code'] != '' ? $wsmcode[$value['wsm_code']]['code'] ?? "" : '';
+
 
             $value['supplier_cgderid'] = $person_list[$value['supplierNo']]['personid'] ?? '';
             $value['supplier_cgder'] = $person_list[$value['supplierNo']]['person'] ?? '';
@@ -957,6 +963,8 @@ class Purch extends Base
 			            "customerNo"=>$order['customer_code'],
 			            "companyNo"=>$order['supplierNo'],
 			            "companyName"=>$SuppArr[$order['supplierNo']]??'',
+                        "supplierName"=>$cg['supplier_name'],
+                        "supplierNo"=>$cg['supplierNo'],
                         "status"=>1,
                         "addtime"=>date("Y-m-d H:i:s"),
                         "updatetime"=>date("Y-m-d H:i:s")

+ 37 - 35
app/admin/controller/Purchin.php

@@ -680,24 +680,24 @@ class Purchin extends Base
             return error_show(1004,"参数 order_num 不为空");
         }
         $error_list = isset($this->post['error_list']) && $this->post['error_list']!==''?$this->post['error_list']:"";
-        $result = GetUserInfo($this->post['token']);
-        if((!empty($result) && $result['code']!=0) ||empty($result) ){
-            return error_show($result['code'],$result['message']);
-        }
-        $userinfo = $result['data'];
+//        $result = GetUserInfo($this->post['token']);
+//        if((!empty($result) && $result['code']!=0) ||empty($result) ){
+//            return error_show($result['code'],$result['message']);
+//        }
+//        $userinfo = $result['data'];
         Db::startTrans();
         try{
             $order = ["order_code"=>$incode,"status"=>$info['status'],"action_remark"=>'',"action_type"=>"edit"];
             $info['wsm_num'] = $order_num;
             $info['wait_num'] = $info['send_num'];
-            $info['checkid'] = $userinfo['id'];
-            $info['check_name'] = $userinfo['nickname'];
+            $info['checkid'] = $this->uid;
+            $info['check_name'] = $this->uname;
             $info['status'] =2;
             $info['error_num'] = $info['send_num']-$order_num;
             $info['updatetime'] = date("Y-m-d H:i:s");
             $up =Db::name("purchease_in")->save($info);
             if($up){
-                ActionLog::logAdd($this->post['token'],$order,"RKD",2,$this->post);
+                ActionLog::logAdd(['id'=>$this->uid,'nickname'=>$this->uname],$order,"RKD",2,$this->post);
                  $uid = Db::name('user_role')
                                 ->where([
                                     ['is_del', '=', 0],
@@ -706,7 +706,7 @@ class Purchin extends Base
                                 ])->column('uid');
                 	  $handle_user_list = implode(',', $uid);
                 $process=["order_code"=>$info['wsm_in_code'],"order_id"=>$info['id'],"order_status"=>$info['status'],"order_type"=>'RKD',"before_status"=>$order['status'],'holder_id' => $info['apply_id'],"handle_user_list"=>$handle_user_list];
-                ProcessOrder::AddProcess($this->post['token'],$process);
+                ProcessOrder::AddProcess(['id'=>$this->uid,'nickname'=>$this->uname],$process);
                 if(!empty($error_list)){
                     $data=[];
                     foreach ($error_list as $value ){
@@ -774,7 +774,7 @@ class Purchin extends Base
             $info['updatetime'] = date("Y-m-d H:i:s");
             $update = Db::name("purchease_in")->save($info);
             if($update){
-                ActionLog::logAdd($this->post['token'],$order,"RKD",$status,$this->post);
+                ActionLog::logAdd(['id'=>$this->uid,'nickname'=>$this->uname],$order,"RKD",$status,$this->post);
             $uid = Db::name('user_role')
                                 ->where([
                                     ['is_del', '=', 0],
@@ -783,7 +783,7 @@ class Purchin extends Base
                                 ])->column('uid');
                 	  $handle_user_list = implode(',', $uid);
                 $process=["order_code"=>$info['wsm_in_code'],"order_id"=>$info['id'],"order_status"=>$status,"order_type"=>'RKD',"before_status"=>$order['status'],'holder_id' => $info['apply_id'],"handle_user_list"=>$handle_user_list];
-                ProcessOrder::AddProcess($this->post['token'],$process);
+                ProcessOrder::AddProcess(['id'=>$this->uid,'nickname'=>$this->uname],$process);
                 if($status==0){
                     $order = ["order_code"=>$info['cgdNo'],"status"=>$cgdinfo['status'],"action_remark"=>'',"action_type"=>"edit"];
                     $cgdinfo['wsend_num']+=$info['send_num'];
@@ -793,7 +793,7 @@ class Purchin extends Base
                     $cgdinfo['updatetime']=date("Y-m-d H:i:s");
                     $up=Db::name("purchease_order")->save($cgdinfo);
                     if($up){
-                        ActionLog::logAdd($this->post['token'],$order,"CGD", $cgdinfo['status'],$cgdinfo);
+                        ActionLog::logAdd(['id'=>$this->uid,'nickname'=>$this->uname],$order,"CGD", $cgdinfo['status'],$cgdinfo);
 
                         if($cgdinfo['status']==1  || $cgdinfo['status']==2){
 //                            $orderinfo = Db::name('sale')
@@ -849,7 +849,7 @@ class Purchin extends Base
                     $cgdinfo['updatetime']=date("Y-m-d H:i:s");
                     $up=Db::name("purchease_order")->save($cgdinfo);
                     if($up){
-                        ActionLog::logAdd($this->post['token'],$order,"CGD", $cgdinfo['status'],$cgdinfo);
+                        ActionLog::logAdd(['id'=>$this->uid,'nickname'=>$this->uname],$order,"CGD", $cgdinfo['status'],$cgdinfo);
 
 //                        $holder_id = Db::name('supplier')->where(['code' => $cgdinfo['supplierNo'], 'is_del' => 0])->value('personid', 0);
 
@@ -881,7 +881,7 @@ class Purchin extends Base
 //                                $process=["order_code"=>$info['cgdNo'],"order_id"=>$cgdinfo['id'],"order_status"=>$cgdinfo['status'],"order_type"=>'CGD',"before_status"=>$order['status'],'holder_id'=>$holder_id,'handle_user_list'=>$holder_id];
                             }//非库存品和采返商品,推给供应商负责人
                         }//else $process=["order_code"=>$info['cgdNo'],"order_id"=>$cgdinfo['id'],"order_status"=>$cgdinfo['status'],"order_type"=>'CGD',"before_status"=>$order['status'],'holder_id'=>Db::name('supplier')->where(['code' => $cgdinfo['supplierNo'], 'is_del' => 0])->value('personid', 0)];
-                        $process=["order_code"=>$info['cgdNo'],"order_id"=>$cgdinfo['id'],"order_status"=>$cgdinfo['status'],"order_type"=>'CGD',"before_status"=>$order['status'],'holder_id'=>$holder_id];ProcessOrder::AddProcess($this->post['token'],$process);
+                        $process=["order_code"=>$info['cgdNo'],"order_id"=>$cgdinfo['id'],"order_status"=>$cgdinfo['status'],"order_type"=>'CGD',"before_status"=>$order['status'],'holder_id'=>$holder_id];ProcessOrder::AddProcess(['id'=>$this->uid,'nickname'=>$this->uname],$process);
                         Db::commit();
                         return app_show(0,'发货成功');
                     }else{
@@ -906,7 +906,7 @@ class Purchin extends Base
                         Db::rollback();
                         return error_show(1002,"发货失败");
                     }
-                    ActionLog::logAdd($this->post['token'],$order,"CGD", $cgdinfo['status'],$cgdinfo);
+                    ActionLog::logAdd(['id'=>$this->uid,'nickname'=>$this->uname],$order,"CGD", $cgdinfo['status'],$cgdinfo);
 //                    $holder_id = Db::name('supplier')->where(['code' => $cgdinfo['supplierNo'], 'is_del' => 0])->value('personid', 0);
                     if($cgdinfo['status']==1 || $cgdinfo['status']==2){
 //                        $orderinfo = Db::name('sale')
@@ -937,7 +937,7 @@ class Purchin extends Base
                         }//非库存品和采返商品,推给供应商负责人
                     }//else $process=["order_code"=>$info['cgdNo'],"order_id"=>$cgdinfo['id'],"order_status"=>$cgdinfo['status'],"order_type"=>'CGD',"before_status"=>$order['status'],'holder_id'=>Db::name('supplier')->where(['code' => $cgdinfo['supplierNo'], 'is_del' => 0])->value('personid', 0)];
                     $process=["order_code"=>$info['cgdNo'],"order_id"=>$cgdinfo['id'],"order_status"=>$cgdinfo['status'],"order_type"=>'CGD',"before_status"=>$order['status'],'holder_id'=>$holder_id];
-                    ProcessOrder::AddProcess($this->post['token'],$process);
+                    ProcessOrder::AddProcess(['id'=>$this->uid,'nickname'=>$this->uname],$process);
 
                     $good = Db::name("good_stock")->where(["wsm_code"=>$info['wsm_code'], "spuCode"=>$cgdinfo['spuCode'],"is_del"=>0])->find();
 
@@ -974,7 +974,7 @@ class Purchin extends Base
                     		Db::rollback();
                             return error_show(1004,"库存bn数据新增失败");
                     	}
-                        GoodLog::LogAdd($this->post['token'],$good_data,'RKD');
+                        GoodLog::LogAdd(['id'=>$this->uid,'nickname'=>$this->uname],$good_data,'RKD');
                         Db::commit();
                         return app_show(0,'商品入库成功');
                     }else{
@@ -1263,23 +1263,25 @@ class Purchin extends Base
             $up =Db::name("purchease_return")->where($return)->save($data);
             if($up){
                 $sto = ["order_code"=>$info['wsm_in_code'],"status"=>$return['status'],"action_remark"=>'', "action_type"=>"edit"];
-                ActionLog::logAdd($this->post['token'],$sto,"RKTHD",1,$this->post);
+                ActionLog::logAdd(['id'=>$this->uid,'nickname'=>$this->uname],$sto,"RKTHD",1,$this->post);
                 $ark=$info['status'];
                 $info['status']=6;
                 $info['updatetime']=date("Y-m-d H:i:s");
                 $sa=Db::name("purchease_in")->save($info);
                 if($sa){
                     $stn = ["order_code"=>$info['wsm_in_code'],"status"=>$ark,"action_remark"=>'',"action_type"=>"edit"];
-                    ActionLog::logAdd($this->post['token'],$stn,"RKD",6,$info);
-                       $uid = Db::name('user_role')
-                                ->where([
-                                    ['is_del', '=', 0],
-                                    ['roleid', 'in', [31, 41]],
-                                    ['status', '=', 1]
-                                ])->column('uid');
+                    ActionLog::logAdd(['id'=>$this->uid,'nickname'=>$this->uname],$stn,"RKD",6,$info);
+//                       $uid = Db::name('user_role')
+//                                ->where([
+//                                    ['is_del', '=', 0],
+//                                    ['roleid', 'in', [31, 41]],
+//                                    ['status', '=', 1]
+//                                ])->column('uid');
+                    //库管人员取仓库管理员
+                    $uid = Db::name('warehouse_info')->where(['is_del'=>0,'wsm_code'=>$info['wsm_code']])->column('contactor');
                 	  $handle_user_list = implode(',', $uid);
                     $process=["order_code"=>$info['wsm_in_code'],"order_id"=>$info['id'],"order_status"=>6,"order_type"=>'RKD',"before_status"=>$stn['status'],'holder_id' => $info['apply_id'],"handle_user_list"=>$handle_user_list];
-                    ProcessOrder::AddProcess($this->post['token'],$process);
+                    ProcessOrder::AddProcess(['id'=>$this->uid,'nickname'=>$this->uname],$process);
 
                         $good = Db::name("good_stock")->where(["wsm_code"=>$info['wsm_code'], "spuCode"=>$cgdinfo['spuCode'],"is_del"=>0])->find();
                         if(empty($good)) {
@@ -1314,7 +1316,7 @@ class Purchin extends Base
                     	}
                         $good_data[]=['good_log_code' => $incode,"stock_id"=>$stockid,"type"=>1, 'stock'=>$info['wsm_num'],"stock_name"=>"usable_stock"];
                         $good_data[]=['good_log_code' => $incode,"stock_id"=>$stockid,"type"=>2, 'stock'=>$good['wait_in_stock'],"stock_name"=>"wait_in_stock"];
-                        GoodLog::LogAdd($this->post['token'],$good_data,'RKD');
+                        GoodLog::LogAdd(['id'=>$this->uid,'nickname'=>$this->uname],$good_data,'RKD');
 
                     $order = ["order_code"=>$cgdinfo['cgdNo'],"status"=>$cgdinfo['status'],"action_remark"=>'',"action_type"=>"edit"];
                     $cgdinfo['wsend_num']-=$return['wsm_num']+$return['return_num']-$return['reissue_num'];
@@ -1355,7 +1357,7 @@ class Purchin extends Base
                         Db::rollback();
                         return error_show(1004,"采购单数量更新失败");
                     }
-                    ActionLog::logAdd($this->post['token'],$order,"CGD", $cgdinfo['status'],$cgdinfo);
+                    ActionLog::logAdd(['id'=>$this->uid,'nickname'=>$this->uname],$order,"CGD", $cgdinfo['status'],$cgdinfo);
 //                    $holder_id = Db::name('supplier')->where(['code' => $cgdinfo['supplierNo'], 'is_del' => 0])->value('personid', 0);
 
                     if($cgdinfo['status']==1 || $cgdinfo['status']==2){
@@ -1373,12 +1375,12 @@ class Purchin extends Base
 
                         if($is_stock==1){
                             //库存品,推给31库管人员、41库管-张凯旋
-                            $uid = Db::name('user_role')
-                                ->where([
-                                    ['is_del', '=', 0],
-                                    ['roleid', 'in', [31, 41]],
-                                    ['status', '=', 1]
-                                ])->column('uid');
+//                            $uid = Db::name('user_role')
+//                                ->where([
+//                                    ['is_del', '=', 0],
+//                                    ['roleid', 'in', [31, 41]],
+//                                    ['status', '=', 1]
+//                                ])->column('uid');
                             if(!in_array($this->uid,$uid)) throw new Exception('库存品订单只能由库管人员操作');
 //                            $process=["order_code"=>$cgdinfo['cgdNo'],"order_id"=>$cgdinfo['id'],"order_status"=>$cgdinfo['status'],"order_type"=>'CGD',"before_status"=>$order['status'],'holder_id'=>Db::name('supplier')->where(['code' => $cgdinfo['supplierNo'], 'is_del' => 0])->value('personid', 0),'handle_user_list'=>implode(',', $uid)];
 //								$handle_user_list = implode(",",$uid);
@@ -1389,7 +1391,7 @@ class Purchin extends Base
                         }
                     }//else $process=["order_code"=>$cgdinfo['cgdNo'],"order_id"=>$cgdinfo['id'],"order_status"=>$cgdinfo['status'],"order_type"=>'CGD',"before_status"=>$order['status'],'holder_id'=>Db::name('supplier')->where(['code' => $cgdinfo['supplierNo'], 'is_del' => 0])->value('personid', 0)];
                     $process=["order_code"=>$cgdinfo['cgdNo'],"order_id"=>$cgdinfo['id'],"order_status"=>$cgdinfo['status'],"order_type"=>'CGD',"before_status"=>$order['status'],'holder_id'=>$holder_id];//非库存品和采返商品,推给供应商负责人
-                    ProcessOrder::AddProcess($this->post['token'],$process);
+                    ProcessOrder::AddProcess(['id'=>$this->uid,'nickname'=>$this->uname],$process);
 
                     Db::commit();
                     return  app_show(0,"退货发货成功");

+ 106 - 54
app/admin/controller/Reorder.php

@@ -61,6 +61,8 @@ class Reorder extends Base
 //        if($supplier==false){
 //            return error_show(1005,"未找到商品供应商数据");
 //        }
+        $names = $userCommon->handle('getCodeAndName',['code'=>[$order['supplierNo'],$order['customer_code']]]);
+
         $errorCode = isset($this->post['errorCode']) &&$this->post['errorCode']!=''?trim($this->post['errorCode']) :"";
         if($errorCode==''){
             return error_show(1004,"参数errorCode 不能为空");
@@ -112,7 +114,13 @@ class Reorder extends Base
                 "status"=>$order['is_stock']==1?4:1,
                 "is_del"=>0,
                 "addtime"=>date("Y-m-d H:i:s"),
-                "updatetime"=>date("Y-m-d H:i:s")
+                "updatetime"=>date("Y-m-d H:i:s"),
+                'supplierNo' => $goon['supplierNo'],
+                'supplierName' => $supplier['name'],
+                'companyNo' => $order['supplierNo'],
+                'companyName' => $names['data'][$order['supplierNo']] ?? '',
+                'customer_code' => $order['customer_code'],
+                'customer_name' => $names['data'][$order['customer_code']] ?? '',
             ];
             $create = Db::name("sale_return")->insert($in,true);
             if($create>0){
@@ -451,15 +459,16 @@ class Reorder extends Base
         }
 
         $relaComNo = isset($this->post['relaComNo']) && $this->post['relaComNo'] != "" ? trim($this->post['relaComNo']) : "";
-        if ($relaComNo != "") $where[] = ['b.supplierNo', '=', $relaComNo];
+        if ($relaComNo != "") $where[] = ['sr.companyNo', '=', $relaComNo];
 
         $supplierNo = isset($this->post['supplierNo']) && $this->post['supplierNo'] != "" ? trim($this->post['supplierNo']) : "";
-        if ($supplierNo !== "") {
-            $spuCode = Db::name('good_basic')
-                ->where(['is_del' => 0, 'supplierNo' => $supplierNo])
-                ->column('spuCode');
-            $where[] = ['b.good_code', "in", $spuCode];
-        }
+        if ($supplierNo !== "") $where[] = ['sr.supplierNo', "like", '%' . $supplierNo . '%'];
+
+        $companyNo = isset($this->post['companyNo']) && $this->post['companyNo'] != "" ? trim($this->post['companyNo']) : "";
+        if ($companyNo !== "") $where[] = ['sr.companyNo', "like", '%' . $companyNo . '%'];
+
+        $customer_code = isset($this->post['customer_code']) && $this->post['customer_code'] != "" ? trim($this->post['customer_code']) : "";
+        if ($customer_code !== "") $where[] = ['sr.customer_code', "like", '%' . $customer_code . '%'];
 
         $order_source = $order_source = isset($this->post['order_source']) && $this->post['order_source'] != "" ? trim($this->post['order_source']) : "";
         if ($order_source !== "") $where[] = ['b.order_source', "=", $order_source];
@@ -497,8 +506,8 @@ class Reorder extends Base
         $company_name = isset($this->post['company_name']) && $this->post['company_name'] !== "" ? trim($this->post['company_name']) : "";
         if ($company_name !== "") $where[] = ["sr.apply_id", 'in', get_company_item_user_by_name($company_name)];
 
-        $customer_code = trim($this->post['customer_code']??'');
-        $where[]=['b.customer_code', "like", "%{$customer_code}%"];
+//        $customer_code = trim($this->post['customer_code']??'');
+//        $where[]=['b.customer_code', "like", "%{$customer_code}%"];
 
         $count=Db::name("sale_return")
             ->alias('sr')
@@ -510,7 +519,7 @@ class Reorder extends Base
         $page = $total>=$page ? $page :$total;
         $list = Db::name("sale_return")
             ->alias('sr')
-            ->field('sr.*,b.skuCode,b.sale_price,b.good_num total_num,b.customer_code,b.supplierNo ,b.order_source')
+            ->field('sr.*,b.skuCode,b.sale_price,b.good_num total_num,b.order_source')
             ->leftJoin("sale b", "b.orderCode=sr.orderCode AND b.is_del=0")
             ->where($where)
             ->where(function ($query)use ($condition){$query->whereOr($condition);})
@@ -522,8 +531,8 @@ class Reorder extends Base
 
         $all_createrid = array_column($list,'apply_id');
         $item = get_company_name_by_uid($all_createrid);
-		 $userCommon = new \app\admin\common\User();
-        $names = $userCommon->handle('getCodeAndName',['code'=>array_merge(array_column($list,'supplierNo'),array_column($list,'customer_code'))]);
+//		 $userCommon = new \app\admin\common\User();
+//        $names = $userCommon->handle('getCodeAndName',['code'=>array_merge(array_column($list,'supplierNo'),array_column($list,'customer_code'))]);
 
         $data=[];
         foreach ($list as $value){
@@ -537,8 +546,8 @@ class Reorder extends Base
             $value['return_total'] =$value['sale_price']*$value['num'] ;
 //            $value['total_num'] =$order['good_num'] ;
             $value['company_name'] = $item[$value['apply_id']]??'';
-			$value['supplierName'] = $names['data'][$value['supplierNo']] ?? '';//isset($wsm['company']) ? $wsm['company'] : "";
-            $value['customerName'] = $names['data'][$value['customer_code']] ?? '';//isset($wsm['company']) ? $wsm['company'] : "";
+//			$value['supplierName'] = $names['data'][$value['supplierNo']] ?? '';//isset($wsm['company']) ? $wsm['company'] : "";
+//            $value['customerName'] = $names['data'][$value['customer_code']] ?? '';//isset($wsm['company']) ? $wsm['company'] : "";
             //是否具有编辑权限
 //            $value['is_allow_update'] = 0;
 //            if (in_array($this->roleid, [1, 33]) || in_array($value['apply_id'], $role[DataGroupModel::$type_可编辑])) $value['is_allow_update'] = 1;
@@ -583,7 +592,7 @@ class Reorder extends Base
        $info['send_status'] = isset($orderinfo['send_status'])?$orderinfo['send_status']:'';
        $info['total_price'] = isset($orderinfo['total_price'])?$orderinfo['total_price']:'0';
        $info['post_fee'] = isset($orderinfo['post_fee'])?$orderinfo['post_fee']:'0';
-       $info['customer_code'] = isset($orderinfo['customer_code'])?$orderinfo['customer_code']:'';
+//       $info['customer_code'] = isset($orderinfo['customer_code'])?$orderinfo['customer_code']:'';
 
         $userCommon = new \app\admin\common\User();
         if($info['return_wsm']!=""){
@@ -593,33 +602,36 @@ class Reorder extends Base
                 ->where(["a.wsm_code"=>$info['return_wsm']])
                 ->field("a.name as wsm_name,a.supplierNo")
                 ->find();
+            $tmp = $userCommon->handle('getCodeAndName', ['code' => [
+//            $orderinfo['supplierNo'],
+//            $orderinfo['customer_code'],
+                $wsmcode['supplierNo']??'',
+            ]]);
             $info['wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
-        }
-
-        $tmp = $userCommon->handle('getCodeAndName', ['code' => [
-            $orderinfo['supplierNo'],
-            $orderinfo['customer_code'],
-            $wsmcode['supplierNo']??'',
-        ]]);
-
-        if(!empty($wsmcode['supplierNo'])){
             $info['wsm_supplier'] =$tmp['data'][$wsmcode['supplierNo']]??'';//isset($wsmcode['name']) ? $wsmcode['name']:"";
             $info['wsm_supplierNo'] =$wsmcode['supplierNo']??'';//isset($wsmcode['code']) ? $wsmcode['code']:"";
         }
 
-        $info['customer_name']='';
-        if(isset($orderinfo['customer_code'])&&$orderinfo['customer_code']!=''){
-//            $customerinfo = Db::name("customer_info")->where(['companyNo'=>$orderinfo['customer_code']])->find();
-            $info['customer_name'] = $tmp['data'][$orderinfo['customer_code']]??'';//isset($customerinfo['companyName']) ? $customerinfo['companyName']:"";
-        }
-        $info['supplierNo'] = isset($orderinfo['supplierNo'])?$orderinfo['supplierNo']:'';
-        $info['supplier_name']='';
-        if(isset($orderinfo['supplierNo'])&&$orderinfo['supplierNo']!=''){
-//            $customerinfo = Db::name("business")->where(['companyNo'=>$orderinfo['supplierNo']])->find();
-//            $info['supplier_name'] = isset($customerinfo['company']) ? $customerinfo['company']:"";
-            $info['supplier_name'] = $tmp['data'][$orderinfo['supplierNo']] ?? '';
 
-        }
+
+//        if(!empty($wsmcode['supplierNo'])){
+//            $info['wsm_supplier'] =$tmp['data'][$wsmcode['supplierNo']]??'';//isset($wsmcode['name']) ? $wsmcode['name']:"";
+//            $info['wsm_supplierNo'] =$wsmcode['supplierNo']??'';//isset($wsmcode['code']) ? $wsmcode['code']:"";
+//        }
+
+//        $info['customer_name']='';
+//        if(isset($orderinfo['customer_code'])&&$orderinfo['customer_code']!=''){
+//            $customerinfo = Db::name("customer_info")->where(['companyNo'=>$orderinfo['customer_code']])->find();
+//            $info['customer_name'] = $tmp['data'][$orderinfo['customer_code']]??'';//isset($customerinfo['companyName']) ? $customerinfo['companyName']:"";
+//        }
+//        $info['supplierNo'] = isset($orderinfo['supplierNo'])?$orderinfo['supplierNo']:'';
+//        $info['supplier_name']='';
+//        if(isset($orderinfo['supplierNo'])&&$orderinfo['supplierNo']!=''){
+////            $customerinfo = Db::name("business")->where(['companyNo'=>$orderinfo['supplierNo']])->find();
+////            $info['supplier_name'] = isset($customerinfo['company']) ? $customerinfo['company']:"";
+//            $info['supplier_name'] = $tmp['data'][$orderinfo['supplierNo']] ?? '';
+//
+//        }
         $info['platform_name']='';
         $info['platform_id']=$orderinfo['platform_id'];
         if($orderinfo['platform_id']!=0){
@@ -642,6 +654,14 @@ class Reorder extends Base
         }
 
         $wsm_return = Db::name("sale_returninfo")->where(["returnCode"=>$info["returnCode"],"is_del"=>0])->select()->toArray();
+
+        $all_wsm_code = array_column($wsm_return, 'wsm_code');
+        $all_wsmcode_info = Db::name("warehouse_info")
+            ->where(["wsm_code" => $all_wsm_code])
+            ->column("name,supplierNo", 'wsm_code');
+
+        if (!isset($userCommon)) $userCommon = new \app\admin\common\User();
+        $all_supplier_name = $userCommon->handle('getCodeAndName', ['code' => array_unique(array_column($all_wsmcode_info, 'supplierNo'))]);
         $wsm=[];
         if(!empty($wsm_return)){
 
@@ -650,15 +670,15 @@ class Reorder extends Base
                 $value['wsm_supplier']="";
                 $value['wsm_supplierNo']="";
                 if($value['wsm_code']!=""){
-                    $wsmcode = Db::name("warehouse_info")
-                        ->alias("a")
-                        ->leftJoin("supplier b","a.supplierNo=b.code")
-                        ->where(["a.wsm_code"=>$value['wsm_code']])
-                        ->field("a.name as wsm_name,b.name,b.code")
-                        ->find();
-                    $value['wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
-                    $value['wsm_supplier'] =isset($wsmcode['name']) ? $wsmcode['name']:"";
-                    $value['wsm_supplierNo'] =isset($wsmcode['code']) ? $wsmcode['code']:"";
+//                    $wsmcode = Db::name("warehouse_info")
+//                        ->alias("a")
+////                        ->leftJoin("supplier b","a.supplierNo=b.code")
+//                        ->where(["a.wsm_code"=>$value['wsm_code']])
+//                        ->field("a.name as wsm_name,b.name,b.code")
+//                        ->find();
+                    $value['wsm_name'] = $all_wsmcode_info[$value['wsm_code']]['name'] ?? '';//isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
+                    $value['wsm_supplier'] = $all_wsmcode_info[$value['wsm_code']]['supplierNo'] ?? '';//isset($wsmcode['name']) ? $wsmcode['name']:"";
+                    $value['wsm_supplierNo'] = $all_supplier_name[$all_wsmcode_info[$value['wsm_code']]['supplierNo'] ?? ''] ?? '';//isset($wsmcode['code']) ? $wsmcode['code']:"";
                 }
                 $orderwsm = Db::name("sale_info")->where(["orderCode"=>$info["orderCode"],"wsm_code"=>$value["wsm_code"]])->find();
                 $value["wsm_total"] = isset($orderwsm["num"]) ? $orderwsm["num"]:0;
@@ -679,6 +699,7 @@ class Reorder extends Base
         $addrinfo=[];
         if(!empty($addr)){
 
+            if(!isset($userCommon)) $userCommon=new \app\admin\common\User();
             $customer_name = $userCommon->handle('getCodeAndName',['code'=>array_column($addr,'customer_code')]);
 
             foreach ( $addr as $value){
@@ -712,8 +733,7 @@ class Reorder extends Base
      * @throws \think\db\exception\ModelNotFoundException
      */
     public function delete(){
-        $code =  isset($this->post['returnCode']) && $this->post['returnCode'] !=="" ? trim($this->post['returnCode'])
-            :"";
+        $code =  isset($this->post['returnCode']) && $this->post['returnCode'] !=="" ? trim($this->post['returnCode']) :"";
         if($code==""){
             return error_show(1004,"参数returnCode不能为空");
         }
@@ -1322,6 +1342,15 @@ class Reorder extends Base
         if($order['wsend_num']<$num){
             return error_show(1002,"仓库未发货数量不足退货");
         }
+
+        if($order['order_type']==3) $goon = Db::name("good_zixun")->field('supplierNo')->where(["spuCode"=>$order['good_code'],"is_del"=>0])->findOrEmpty();
+        else  $goon = Db::name('good_basic')
+                ->where(['spuCode' => $order['good_code']])->findOrEmpty();
+        if(empty($goon)) return json_show(1004,'该商品不存在');
+
+        $userCommon = new \app\admin\common\User();
+        $names = $userCommon->handle('getCodeAndName',['code'=>[$order['supplierNo'],$order['customer_code'],$goon['supplierNo']]]);
+
         $returnCode=makeNo("RS");
         Db::startTrans();
         try{
@@ -1339,7 +1368,13 @@ class Reorder extends Base
                 "status"=>0,
                 "is_del"=>0,
                 "addtime"=>date("Y-m-d H:i:s"),
-                "updatetime"=>date("Y-m-d H:i:s")
+                "updatetime"=>date("Y-m-d H:i:s"),
+                'supplierNo' => $goon['supplierNo'],
+                'supplierName' => $names['data'][$goon['supplierNo']] ?? '',
+                'companyNo' => $order['supplierNo'],
+                'companyName' => $names['data'][$order['supplierNo']] ?? '',
+                'customer_code' => $order['customer_code'],
+                'customer_name' => $names['data'][$order['customer_code']] ?? '',
             ];
             $create = Db::name("sale_return")->insert($in,true);
             if($create>0) {
@@ -1456,6 +1491,11 @@ class Reorder extends Base
         if($order['is_stock']==0&&$cgd['send_status']!=1){
         	return error_show(1005, '采购单已发起入库');
         }
+
+        $userCommon = new \app\admin\common\User();
+        $names = $userCommon->handle('getCodeAndName',['code'=>[$order['supplierNo'],$order['customer_code']]]);
+
+
         $returnCode=makeNo("RN");
         Db::startTrans();
 		try{
@@ -1482,7 +1522,13 @@ class Reorder extends Base
                 "is_del"=>0,
                 "is_all"=>1,
                 "addtime"=>date("Y-m-d H:i:s"),
-                "updatetime"=>date("Y-m-d H:i:s")
+                "updatetime"=>date("Y-m-d H:i:s"),
+                  'supplierNo' => $supplier['code'],
+                  'supplierName' => $supplier['name'],
+                  'companyNo' => $order['supplierNo'],
+                  'companyName' => $names['data'][$order['supplierNo']] ?? '',
+                  'customer_code' => $order['customer_code'],
+                  'customer_name' => $names['data'][$order['customer_code']] ?? '',
             ];
             $create = Db::name("sale_return")->insert($in,true);
             if($create>0){
@@ -1722,8 +1768,11 @@ class Reorder extends Base
             'good_code'=>'',
             'skuCode'=>'',
             'relaComNo'=>'',
-            'supplierNo'=>'',
-            'company_name'=>'',
+            'order_source' => '',
+            'supplierNo' => '',
+            'customer_code' => '',
+            'companyNo' => '',
+            'company_name' => '',//部门名称
         ],'post','trim');
         $where = [['sr.is_del', "=", 0]];
         if (!empty($param['returnCode'])) $where[] = ['sr.returnCode', "in", $param['returnCode']];
@@ -1734,9 +1783,12 @@ class Reorder extends Base
         if ($param['end'] !== "") $where[] = ['sr.addtime', "<=", $param['end'] . ' 23:59:59'];
         if ($param['good_code'] != "")  $where[] = ['sr.good_code', "like", "%{$param['good_code']}%"]; //商品成本编码搜索
         if ($param['skuCode'] != "") $where[] = ['b.skuCode', "like", "%{$param['skuCode']}%"];//商品上线编码搜索
-        if ($param['relaComNo'] != "") $where[] = ['b.supplierNo', '=', $param['relaComNo']];
-        if ($param['supplierNo'] != "") $where[] = ['b.supplierNo', '=', $param['supplierNo']];
+        if ($param['relaComNo'] != "") $where[] = ['a.supplierNo', '=', $param['relaComNo']];
         if ($param['company_name'] !== "") $where[] = ["sr.apply_id", 'in', get_company_item_user_by_name($param['company_name'])];
+        if ($param['order_source'] !== "") $where[] = ["b.order_source", '=', $param['order_source']];
+        if ($param['supplierNo'] != "") $where[] = ['a.supplierNo', 'like', '%' . $param['supplierNo'] . '%'];
+        if ($param['customer_code'] != "") $where[] = ['a.customer_code', "like", '%' . $param['customer_code'] . '%'];//商品上线编码搜索
+        if ($param['companyNo'] != "") $where[] = ['a.companyNo', "like", '%' . $param['companyNo'] . '%'];//商品上线编码搜索
 
         $condition = [];
 

+ 8 - 4
app/admin/controller/Sale.php

@@ -3264,17 +3264,21 @@ class Sale extends Base
         if ($end != "") {
             $where[] = ["a.addtime", '<=', $end];
         }
-        $supplierNo = isset($this->post['supplierNo']) && $this->post['supplierNo'] !== "" ? trim($this->post['supplierNo']) : "";
-        if ($supplierNo != "") {
-            $where[] = ['a.companyNo', "like", "%$supplierNo%"];
+        $companyNo = isset($this->post['companyNo']) && $this->post['companyNo'] !== "" ? trim($this->post['companyNo']) : "";
+        if ($companyNo != "") {
+            $where[] = ['a.companyNo', "like", "%$companyNo%"];
         }
         $customer_code = isset($this->post['customer_code']) && $this->post['customer_code'] !== "" ? trim($this->post['customer_code']) : "";
         if ($customer_code != "") {
             $where[] = ['a.customerNo', "like", "%$customer_code%"];
         }
+        $supplierNo = isset($this->post['supplierNo']) && $this->post['supplierNo'] !== "" ? trim($this->post['supplierNo']) : "";
+        if ($supplierNo != "") {
+            $where[] = ['a.supplierNo', "like", "%$supplierNo%"];
+        }
         $relaComNo = trim($this->post['relaComNo'] ?? '');
         if ($relaComNo !== "") {
-            $where[] = ['c.supplierNo', "=", $relaComNo];
+            $where[] = ['a.companyNo', "=", $relaComNo];
         }
         $order_source = isset($this->post['order_source']) && $this->post['order_source'] != "" ? trim($this->post['order_source']) : "";
         if ($order_source !== "") {

+ 1 - 0
app/admin/route/app.php

@@ -395,6 +395,7 @@ Route::rule('businesssinfo', 'admin/Business/info');
 Route::rule('businesstitle', 'admin/Business/title');
 
 Route::rule('gooduplist', 'admin/Goodup/list');//商品列表
+Route::rule('goodup_list_copy', 'admin/Goodup/list_copy');//商品列表(复制,去除了数据权限控制)
 Route::rule('checkIsUpdate', 'admin/Goodup/checkIsUpdate');//判断是否允许修改成本信息和基础信息
 
 Route::rule('unitcreate', 'admin/Unit/create');