Browse Source

复制一个商品成本列表的即可,其他细节优化

wufeng 2 years ago
parent
commit
37d684a617

+ 4 - 2
app/admin/controller/Consult.php

@@ -2417,6 +2417,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);
@@ -2424,9 +2425,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=[];
@@ -2444,7 +2446,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']):"";

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

@@ -210,9 +210,9 @@ 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'] = $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 +957,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")

+ 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');