|
@@ -1030,45 +1030,91 @@ class SaleReport extends Base
|
|
|
//【五、退货明细表】
|
|
|
public function thData()
|
|
|
{
|
|
|
- $param = $this->request->only(['token', 'start_date' => '', 'end_date' => '', 'status' => '', 'page' => 1, 'size' => 15], 'post', 'trim');
|
|
|
+ $param = $this->request->only(['token', 'start_date' => '', 'end_date' => '', 'page' => 1, 'size' => 15], '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']];
|
|
|
|
|
|
$count = Db::name('th_data')
|
|
|
->alias('thd')
|
|
|
- ->leftJoin('order_out oo', 'oo.orderCode=thd.orderCode')
|
|
|
- ->leftJoin('order_addr oa', 'oa.id=oo.addrid')
|
|
|
- ->leftJoin('order_return or', 'or.returnCode=thd.thCode')
|
|
|
->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')
|
|
|
->count('thd.id');
|
|
|
|
|
|
$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 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 return_time,thd.thCode,"" outCode,"" status,"" apply_name,"" apply_company,thd.orderCode,s.addtime,c.companyName,s.good_name,s.sale_price,s.wsend_num,s.th_num,s.th_fee,"" contactor,"" mobile,"" addr,"" result')
|
|
|
->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)
|
|
|
- ->page($param['page'], $param['size'])
|
|
|
->order('thd.addtime', 'desc')
|
|
|
- ->cursor();
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+
|
|
|
+ $th_types = [];
|
|
|
+ foreach ($data as $value) {
|
|
|
+ $th_types[$value['th_type']][] = $value['thCode'];
|
|
|
+ }
|
|
|
+
|
|
|
+ $all_order_return = Db::name('order_return')
|
|
|
+ ->alias('or')
|
|
|
+ ->withAttr('status', function ($val) {
|
|
|
+ return isset($this->all_order_return_status[$val]) ? $this->all_order_return_status[$val] : '';
|
|
|
+ })
|
|
|
+ ->withAttr('apply_company', 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,"" apply_company,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('status', function ($val) {
|
|
|
+ return isset($this->order_back_status[$val]) ? $this->order_back_status[$val] : '';
|
|
|
+ })
|
|
|
+ ->withAttr('apply_company', 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,"" apply_company,oa.contactor,oa.mobile,oa.addr,ri.result,oa.addr_code', 'thNo');
|
|
|
|
|
|
$list = [];
|
|
|
|
|
|
foreach ($data as $value) {
|
|
|
- $value['status'] = isset($this->all_order_return_status[$value['status']]) ? $this->all_order_return_status[$value['status']] : '';
|
|
|
- $value['apply_company'] = get_company_name_by_uid($value['apply_id']);
|
|
|
+ if ($value['th_type'] == 2) {
|
|
|
+ $value['outCode'] = isset($all_order_return[$value['thCode']]['outCode']) ? $all_order_return[$value['thCode']]['outCode'] : '';
|
|
|
+ $value['status'] = isset($all_order_return[$value['thCode']]['status']) ? $all_order_return[$value['thCode']]['status'] : '';
|
|
|
+ $value['apply_name'] = isset($all_order_return[$value['thCode']]['apply_name']) ? $all_order_return[$value['thCode']]['apply_name'] : '';
|
|
|
+ $value['apply_company'] = isset($all_order_return[$value['thCode']]['apply_company']) ? $all_order_return[$value['thCode']]['apply_company'] : '';
|
|
|
+ $value['contactor'] = isset($all_order_return[$value['thCode']]['contactor']) ? $all_order_return[$value['thCode']]['contactor'] : '';
|
|
|
+ $value['mobile'] = isset($all_order_return[$value['thCode']]['mobile']) ? $all_order_return[$value['thCode']]['mobile'] : '';
|
|
|
+ $value['addr'] = isset($all_order_return[$value['thCode']]['addr']) ? $all_order_return[$value['thCode']]['addr'] : '';
|
|
|
+ $value['result'] = isset($all_order_return[$value['thCode']]['result']) ? $all_order_return[$value['thCode']]['result'] : '';
|
|
|
+ } elseif ($value['th_type'] == 3) {
|
|
|
+ $value['outCode'] = isset($all_order_back[$value['thCode']]['outCode']) ? $all_order_back[$value['thCode']]['outCode'] : '';
|
|
|
+ $value['status'] = isset($all_order_back[$value['thCode']]['status']) ? $all_order_back[$value['thCode']]['status'] : '';
|
|
|
+ $value['apply_name'] = isset($all_order_back[$value['thCode']]['apply_name']) ? $all_order_back[$value['thCode']]['apply_name'] : '';
|
|
|
+ $value['apply_company'] = isset($all_order_back[$value['thCode']]['apply_company']) ? $all_order_back[$value['thCode']]['apply_company'] : '';
|
|
|
+ $value['contactor'] = isset($all_order_back[$value['thCode']]['contactor']) ? $all_order_back[$value['thCode']]['contactor'] : '';
|
|
|
+ $value['mobile'] = isset($all_order_back[$value['thCode']]['mobile']) ? $all_order_back[$value['thCode']]['mobile'] : '';
|
|
|
+ $value['addr'] = isset($all_order_back[$value['thCode']]['addr']) ? $all_order_back[$value['thCode']]['addr'] : '';
|
|
|
+ $value['result'] = isset($all_order_back[$value['thCode']]['result']) ? $all_order_back[$value['thCode']]['result'] : '';
|
|
|
+ }
|
|
|
+
|
|
|
$list[] = $value;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
return app_show(0, '请求成功', ['list' => $list, 'count' => $count]);
|
|
|
|
|
|
}
|
|
@@ -1076,7 +1122,7 @@ class SaleReport extends Base
|
|
|
//【五、退货明细表】
|
|
|
public function thDataExport()
|
|
|
{
|
|
|
- $param = $this->request->only(['token', 'start_date' => '', 'end_date' => '', 'status' => ''], 'post', 'trim');
|
|
|
+ $param = $this->request->only(['token', 'start_date' => '', 'end_date' => ''], 'post', 'trim');
|
|
|
|
|
|
$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']];
|