Ver código fonte

Merge branch 'dev_wf' of wugg/phpstock into version1.5

wufeng 2 anos atrás
pai
commit
8367eeaf97
2 arquivos alterados com 100 adições e 19 exclusões
  1. 32 1
      app/admin/controller/Goodup.php
  2. 68 18
      app/admin/controller/SaleReport.php

+ 32 - 1
app/admin/controller/Goodup.php

@@ -1415,7 +1415,7 @@ class Goodup extends Base
             }
             $issale=Db::name("sale")->where(["skuCode"=>$platform['skuCode'],"status"=>[0,1,2]])->find();
             if($issale!=false &&$platform['plat_code']!=$good_code){
-                return error_show(1004,"商品已下单,平台订单号不允许修改");
+                return error_show(1004,"商品已下单,平台商品编码不允许修改");
             }
             $is_exit = Db::name("good_platform")
                 ->where(["plat_code" => $good_code, "platform_code" => $platform['platform_code'], "is_del" => 0, 'exam_status' => 6])//exam_status==6已上线
@@ -2678,6 +2678,7 @@ class Goodup extends Base
                 ->column('exam_status,skuCode', 'skuCode');
             if (empty($skuCodeS)) throw new \Exception('记录不存在');
 
+            //商品平台
             Db::name("good_platform")
                 ->where(['spuCode' => $param['spuCode'], 'is_del' => 0])
                 ->save([
@@ -2685,6 +2686,7 @@ class Goodup extends Base
                     'updatetime' => date('Y-m-d H:i:s'),
                 ]);
 
+            //商品下线记录
             $good_offline_log_id = Db::name("good_offline_log")->insertGetId([
                 'spuCode' => $param['spuCode'],
                 'skuCodes' => implode(',', array_keys($skuCodeS)),
@@ -2723,8 +2725,37 @@ class Goodup extends Base
                 ]);
             }
 
+            //变动记录
             Db::name("good_exam")->insertAll($insert_good_exam_data);
 
+            //根据权限查询应该接收商品下线通知的人员
+            $all_uid_name = Db::name('role_action')
+                ->whereFindInSet('action_conllect','872')
+                ->field('role_id')
+                ->buildSql();
+
+            $all_user = Db::name('user_role')
+                ->alias('ur')
+                ->where('ur.roleid IN '.$all_uid_name)
+                ->leftJoin('depart_user du','du.uid = ur.uid AND du.is_del=0')
+                ->column('ur.uid,du.nickName');
+
+            $insert_order_msg_data=[];
+            foreach ($all_user as $itemitem) {
+                $insert_order_msg_data[] = [
+                    'content' => '商品下线:' . $param['spuCode'] . '由' . $creater . '操作下线',
+                    'orderCode' => $param['spuCode'],
+                    'order_type' => 'GOL',
+                    'uid' => $itemitem['uid'],
+                    'uname' => $itemitem['nickName'],
+                    'is_read' => 0,
+                    'addtime' => date('Y-m-d H:i:s'),
+                    'updatetime' => date('Y-m-d H:i:s'),
+                ];
+            }
+            //消息表
+            Db::name('order_msg')->insertAll($insert_order_msg_data);
+
             Db::commit();
             return app_show(0, "同一个成本商品编号下的商品下线成功");
 

+ 68 - 18
app/admin/controller/SaleReport.php

@@ -24,6 +24,7 @@ class SaleReport extends Base
     private $bargain_order_status = [1 => '待主管审批', 2 => '待财务专员审批', 3 => '待财务主管审批', 4 => '审批通过', 5 => '主管驳回', 6 => '财务主管驳回', 7 => '已取消议价'];
     private $order_out_status = [0 => '待发货', 1 => '待库管发货', 2 => '已发货待收货', 3 => '已收货', 4 => '已全部退货'];
     private $except_code = [0 => [1 => '退货', 2 => '补发'], 1 => [1 => '退货', 2 => '换货'],];//期望意愿
+    private $order_back_status = [0 => '待申请', 1 => '待验收', 2 => '待验收审核', 3 => '待业务审核', 4 => '完成退货'];
 
 
     //【一、管理报表】1.日报_列表
@@ -1048,7 +1049,7 @@ class SaleReport extends Base
 
         $data = Db::name('th_data')
             ->alias('thd')
-            ->field('thd.addtime return_time,thd.thCode,oo.outCode,or.status,thd.apply_name,thd.apply_id,thd.orderCode,s.addtime,c.companyName,s.good_name,s.sale_price,s.wsend_num,s.th_num,s.th_fee,oa.contactor,oa.mobile,oa.addr,oa.addr_code,ri.result_desc')
+            ->field('thd.addtime return_time,thd.thCode,oo.outCode,or.status,thd.apply_name,thd.apply_id,thd.orderCode,s.addtime,c.companyName,s.good_name,s.sale_price,s.wsend_num,s.th_num,s.th_fee,oa.contactor,oa.mobile,oa.addr,oa.addr_code,ri.result result_desc')
             ->leftJoin('order_out oo', 'oo.orderCode=thd.orderCode')
             ->leftJoin('order_addr oa', 'oa.id=oo.addrid')
             ->leftJoin('order_return or', 'or.returnCode=thd.thCode')
@@ -1077,32 +1078,81 @@ class SaleReport extends Base
     {
         $param = $this->request->only(['token', 'start_date' => '', 'end_date' => '', 'status' => ''], 'post', 'trim');
 
-        $where = [['thd.is_del', '=', 0]];
+        $where = [['thd.is_del', '=', 0], ['thd.th_type', 'in', [2, 3]]];
         if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['thd.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
-        if ($param['status'] != '') $where[] = ['or.status', '=', $param['status']];
 
         $data = Db::name('th_data')
             ->alias('thd')
-            ->field('thd.addtime 退货时间,thd.thCode 退货单号,oo.outCode 发货申请单编码,or.status 退货单状态,thd.apply_name 创建人,thd.apply_id,"" 部门,thd.orderCode 确认单编号,s.addtime 下单日期,c.companyName 客户名称,s.good_name 产品名称,s.sale_price 单价,s.wsend_num 未发货数量,s.th_num 退货数量,s.th_fee 退货销售货款,oa.contactor 发货单联系人,oa.mobile 发货单联系人电话,oa.addr 发货单地址,oa.addr_code,ri.result_desc 退货原因')
-            ->leftJoin('order_out oo', 'oo.orderCode=thd.orderCode')
-            ->leftJoin('order_addr oa', 'oa.id=oo.addrid')
-            ->leftJoin('order_return or', 'or.returnCode=thd.thCode')
+            ->field('thd.id,thd.th_type,thd.addtime 退货时间,thd.thCode 退货单号,"" 发货申请单编码,"" 退货单状态,"" 创建人,"" 部门,thd.orderCode 确认单编号,s.addtime 下单日期,c.companyName 客户名称,s.good_name 产品名称,s.sale_price 单价,s.wsend_num 未发货数量,s.th_num 退货数量,s.th_fee 退货销售货款,"" 发货单联系人,"" 发货单联系人电话,"" 发货单地址,"" 退货原因')
             ->leftJoin('sale s', 's.orderCode=thd.orderCode')
             ->leftJoin('customer_info c', 'c.companyNo=s.customer_code')
-            ->leftJoin('result_info ri', 'ri.result_code=or.error_code')
             ->where($where)
             ->order('thd.addtime', 'desc')
-            ->cursor();
+            ->select()
+            ->toArray();
+
+        $th_types = [];
+        foreach ($data as $value) {
+            $th_types[$value['th_type']][] = $value['退货单号'];
+        }
+
+        $all_order_return = Db::name('order_return')
+            ->alias('or')
+            ->withAttr('退货单状态', function ($val) {
+                return isset($this->all_order_return_status[$val]) ? $this->all_order_return_status[$val] : '';
+            })
+            ->withAttr('部门', function ($val, $da) {
+                return get_company_name_by_uid($da['apply_id']);
+            })
+            ->leftJoin('order_out oo', 'oo.outCode=or.outCode')
+            ->leftJoin('order_addr oa', 'oa.id=oo.addrid')
+            ->leftJoin('result_info ri', 'ri.result_code=or.error_code')
+            ->where('or.is_del', 0)
+            ->whereIn('or.returnCode', $th_types[2])
+            ->column('or.id,or.outCode 发货申请单编码,or.status 退货单状态,or.apply_id,or.apply_name 创建人,"" 部门,oa.contactor 发货单联系人,oa.mobile 发货单联系人电话,oa.addr 发货单地址,ri.result 退货原因,oa.addr_code', 'or.returnCode');
+
+
+        $all_order_back = Db::name('order_back')
+            ->alias('ob')
+            ->where('ob.is_del', 0)
+            ->whereIn('ob.thNo', $th_types[3])
+            ->withAttr('退货单状态', function ($val) {
+                return isset($this->order_back_status[$val]) ? $this->order_back_status[$val] : '';
+            })
+            ->withAttr('部门', function ($val, $da) {
+                return get_company_name_by_uid($da['apply_id']);
+            })
+            ->leftJoin('order_out oo', 'oo.outCode=ob.outCode')
+            ->leftJoin('order_addr oa', 'oa.id=oo.addrid')
+            ->leftJoin('result_info ri', 'ri.result_code=ob.return_code')
+            ->column('ob.id,ob.outCode 发货申请单编码,ob.status 退货单状态,ob.apply_id,ob.apply_name 创建人,"" 部门,oa.contactor 发货单联系人,oa.mobile 发货单联系人电话,oa.addr 发货单地址,ri.result 退货原因,oa.addr_code', 'thNo');
 
         $list = [];
 
         foreach ($data as $value) {
+            if ($value['th_type'] == 2) {
+                $value['发货申请单编码'] = isset($all_order_return[$value['退货单号']]['发货申请单编码']) ? $all_order_return[$value['退货单号']]['发货申请单编码'] : '';
+                $value['退货单状态'] = isset($all_order_return[$value['退货单号']]['退货单状态']) ? $all_order_return[$value['退货单号']]['退货单状态'] : '';
+                $value['创建人'] = isset($all_order_return[$value['退货单号']]['创建人']) ? $all_order_return[$value['退货单号']]['创建人'] : '';
+                $value['部门'] = isset($all_order_return[$value['退货单号']]['部门']) ? $all_order_return[$value['退货单号']]['部门'] : '';
+                $value['发货单联系人'] = isset($all_order_return[$value['退货单号']]['发货单联系人']) ? $all_order_return[$value['退货单号']]['发货单联系人'] : '';
+                $value['发货单联系人电话'] = isset($all_order_return[$value['退货单号']]['发货单联系人电话']) ? $all_order_return[$value['退货单号']]['发货单联系人电话'] : '';
+                $value['发货单地址'] = isset($all_order_return[$value['退货单号']]['发货单地址']) ? $all_order_return[$value['退货单号']]['发货单地址'] : '';
+                $value['退货原因'] = isset($all_order_return[$value['退货单号']]['退货原因']) ? $all_order_return[$value['退货单号']]['退货原因'] : '';
+            } elseif ($value['th_type'] == 3) {
+                $value['发货申请单编码'] = isset($all_order_back[$value['退货单号']]['发货申请单编码']) ? $all_order_back[$value['退货单号']]['发货申请单编码'] : '';
+                $value['退货单状态'] = isset($all_order_back[$value['退货单号']]['退货单状态']) ? $all_order_back[$value['退货单号']]['退货单状态'] : '';
+                $value['创建人'] = isset($all_order_back[$value['退货单号']]['创建人']) ? $all_order_back[$value['退货单号']]['创建人'] : '';
+                $value['部门'] = isset($all_order_back[$value['退货单号']]['部门']) ? $all_order_back[$value['退货单号']]['部门'] : '';
+                $value['发货单联系人'] = isset($all_order_back[$value['退货单号']]['发货单联系人']) ? $all_order_back[$value['退货单号']]['发货单联系人'] : '';
+                $value['发货单联系人电话'] = isset($all_order_back[$value['退货单号']]['发货单联系人电话']) ? $all_order_back[$value['退货单号']]['发货单联系人电话'] : '';
+                $value['发货单地址'] = isset($all_order_back[$value['退货单号']]['发货单地址']) ? $all_order_back[$value['退货单号']]['发货单地址'] : '';
+                $value['退货原因'] = isset($all_order_back[$value['退货单号']]['退货原因']) ? $all_order_back[$value['退货单号']]['退货原因'] : '';
+            }
 
-            $value['退货单状态'] = isset($this->all_order_return_status[$value['退货单状态']]) ? $this->all_order_return_status[$value['退货单状态']] : '';
-            $value['部门'] = get_company_name_by_uid($value['apply_id']);
-            //addr_code//要转编码吗?
-            unset($value['apply_id']);
-            unset($value['addr_code']);
+
+            unset($value['id']);
+            unset($value['th_type']);
 
             $list[] = $value;
         }
@@ -1132,7 +1182,7 @@ class SaleReport extends Base
 
         $data = Db::name('order_return')
             ->alias('or')
-            ->field('or.addtime,or.returnCode,or.apply_name,or.apply_id,or.outCode,or.total_num,or.status,or.orderCode,c.companyName,or.good_name,s.sale_price,or.is_receive,or.error_num,ri.result_desc,or.error_remark,or.except_code,c.itemid')
+            ->field('or.addtime,or.returnCode,or.apply_name,or.apply_id,or.outCode,or.total_num,or.status,or.orderCode,c.companyName,or.good_name,s.sale_price,or.is_receive,or.error_num,ri.result result_desc,or.error_remark,or.except_code,c.itemid')
             ->leftJoin('customer_info c', 'c.companyNo=or.customer_code')
             ->leftJoin('sale s', 's.orderCode=or.orderCode')
             ->leftJoin('result_info ri', 'ri.result_code=or.error_code')
@@ -1175,7 +1225,7 @@ class SaleReport extends Base
 
         $data = Db::name('order_return')
             ->alias('or')
-            ->field('or.addtime 售后时间,or.returnCode 售后申请编号,or.apply_name 申请人,or.apply_id,"" 部门,or.outCode 发货申请编号,or.total_num 发货数量,or.status 处理状态,or.orderCode 订单号,"" 一级组织,"" 二级组织,c.companyName 客户名称,or.good_name 商品名称,s.sale_price 销售单价,"" 异常金额,or.is_receive 收货情况,or.error_num 异常数量,ri.result_desc 异常原因,or.error_remark 异常备注,or.except_code 期望意愿,c.itemid')
+            ->field('or.addtime 售后时间,or.returnCode 售后申请编号,or.apply_name 申请人,or.apply_id,"" 部门,or.outCode 发货申请编号,or.total_num 发货数量,or.status 处理状态,or.orderCode 订单号,"" 一级组织,"" 二级组织,c.companyName 客户名称,or.good_name 商品名称,s.sale_price 销售单价,"" 异常金额,or.is_receive 收货情况,or.error_num 异常数量,ri.result 异常原因,or.error_remark 异常备注,or.except_code 期望意愿,c.itemid')
             ->leftJoin('customer_info c', 'c.companyNo=or.customer_code')
             ->leftJoin('sale s', 's.orderCode=or.orderCode')
             ->leftJoin('result_info ri', 'ri.result_code=or.error_code')
@@ -1230,7 +1280,7 @@ class SaleReport extends Base
 
         $data = Db::name('bargain_order')
             ->alias('bo')
-            ->field('bo.addtime,bo.bargainNo,bo.infoNo,bo.status,bo.bidsNo,csi.companyName,ci.good_name,bo.creater,bo.createrid,bo.sale_price,bo.after_price,ri.result_desc,bo.bargain_remark')
+            ->field('bo.addtime,bo.bargainNo,bo.infoNo,bo.status,bo.bidsNo,csi.companyName,ci.good_name,bo.creater,bo.createrid,bo.sale_price,bo.after_price,ri.result result_desc,bo.bargain_remark')
             ->leftJoin('consult_info ci', 'ci.infoNo=bo.infoNo')
             ->leftJoin('consult_order co', 'co.zxNo=ci.zxNo')
             ->leftJoin('customer_info csi', 'csi.companyNo=co.khNo')
@@ -1264,7 +1314,7 @@ class SaleReport extends Base
 
         $data = Db::name('bargain_order')
             ->alias('bo')
-            ->field('bo.addtime 议价时间,bo.bargainNo 议价编号,bo.infoNo 咨询单编号,bo.status 议价单状态,bo.bidsNo 采返商品编号,csi.companyName 客户名称,ci.good_name 商品名称,bo.creater 申请人,"" 部门,bo.createrid,bo.sale_price 议价前售价,bo.after_price 期望售价,ri.result_desc 议价原因,bo.bargain_remark 议价备注')
+            ->field('bo.addtime 议价时间,bo.bargainNo 议价编号,bo.infoNo 咨询单编号,bo.status 议价单状态,bo.bidsNo 采返商品编号,csi.companyName 客户名称,ci.good_name 商品名称,bo.creater 申请人,"" 部门,bo.createrid,bo.sale_price 议价前售价,bo.after_price 期望售价,ri.result 议价原因,bo.bargain_remark 议价备注')
             ->leftJoin('consult_info ci', 'ci.infoNo=bo.infoNo')
             ->leftJoin('consult_order co', 'co.zxNo=ci.zxNo')
             ->leftJoin('customer_info csi', 'csi.companyNo=co.khNo')