|
@@ -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')
|