|
@@ -909,4 +909,85 @@ class Report extends Base
|
|
|
|
|
|
}
|
|
|
|
|
|
+ //【六、退货流水报表】列表
|
|
|
+ public function SaleReturnList()
|
|
|
+ {
|
|
|
+ $param = $this->request->only([
|
|
|
+ 'token',
|
|
|
+ 'start_date' => '',
|
|
|
+ 'end_date' => ''
|
|
|
+ ], 'post', 'trim');
|
|
|
+
|
|
|
+ $val_params = Validate::rule([
|
|
|
+ 'start_date' => 'date|elt:end_date',
|
|
|
+ 'end_date' => 'date'
|
|
|
+ ]);
|
|
|
+
|
|
|
+ if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
|
|
|
+
|
|
|
+ $where = [['s.is_del', '=', 0]];
|
|
|
+ if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['s.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
|
|
|
+
|
|
|
+ $count = Db::name('sale_return')
|
|
|
+ ->alias('s')
|
|
|
+ ->where($where)
|
|
|
+ ->leftJoin('order_num on', 'on.orderCode=s.orderCode')
|
|
|
+ ->leftJoin('purchease_order po', 'po.cgdNo=on.cgdNo AND po.is_del=0')
|
|
|
+ ->leftJoin('result_info ri', 'ri.result_code=s.error_code AND ri.is_del=0')
|
|
|
+ ->count('s.id');
|
|
|
+
|
|
|
+ $list = Db::name('sale_return')
|
|
|
+ ->alias('s')
|
|
|
+ ->field('s.returnCode,s.addtime,po.cgdNo,po.supplier_name,po.good_name,po.good_num,po.cgder,s.num,ri.result,s.is_th')
|
|
|
+ ->where($where)
|
|
|
+ ->leftJoin('order_num on', 'on.orderCode=s.orderCode')
|
|
|
+ ->leftJoin('purchease_order po', 'po.cgdNo=on.cgdNo AND po.is_del=0')
|
|
|
+ ->leftJoin('result_info ri', 'ri.result_code=s.error_code AND ri.is_del=0')
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+
|
|
|
+ return app_show(0, '请求成功', ['list' => $list, 'count' => $count]);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //【六、退货流水报表】导出
|
|
|
+ public function SaleReturnExport()
|
|
|
+ {
|
|
|
+ $param = $this->request->only([
|
|
|
+ 'token',
|
|
|
+ 'start_date' => '',
|
|
|
+ 'end_date' => ''
|
|
|
+ ], 'post', 'trim');
|
|
|
+
|
|
|
+ $val_params = Validate::rule([
|
|
|
+ 'start_date' => 'date|elt:end_date',
|
|
|
+ 'end_date' => 'date'
|
|
|
+ ]);
|
|
|
+
|
|
|
+ if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
|
|
|
+
|
|
|
+ $where = [['s.is_del', '=', 0]];
|
|
|
+ if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['s.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
|
|
|
+
|
|
|
+ $all_is_th = [0 => '不可以', 1 => '可以'];
|
|
|
+ $list = Db::name('sale_return')
|
|
|
+ ->alias('s')
|
|
|
+ ->field('s.returnCode 退货单号,s.addtime 退货时间,po.cgdNo 采购单编号,po.supplier_name 供应商名称,po.good_name 产品名称,po.good_num 购买数量,po.cgder 采购员,s.num 退货数量,ri.result 退货原因,s.is_th 供应商是否可以退货')
|
|
|
+ ->where($where)
|
|
|
+ ->leftJoin('order_num on', 'on.orderCode=s.orderCode')
|
|
|
+ ->leftJoin('purchease_order po', 'po.cgdNo=on.cgdNo AND po.is_del=0')
|
|
|
+ ->leftJoin('result_info ri', 'ri.result_code=s.error_code AND ri.is_del=0')
|
|
|
+ ->withAttr('供应商是否可以退货', function ($val) use ($all_is_th) {
|
|
|
+ return isset($all_is_th[$val]) ? $all_is_th[$val] : '';
|
|
|
+ })
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+
|
|
|
+ if (empty($list)) $list[] = '没有可供导出的数据';
|
|
|
+
|
|
|
+ $headerArr = array_keys($list[0]);
|
|
|
+ excelSave('退货流水报表' . date('YmdHis'), $headerArr, $list);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|