|
@@ -909,4 +909,288 @@ class Report extends Base
|
|
|
|
|
|
}
|
|
|
|
|
|
+ //【六、退货流水报表】列表
|
|
|
+ public function SaleReturnList()
|
|
|
+ {
|
|
|
+ $param = $this->request->only([
|
|
|
+ 'token',
|
|
|
+ 'start_date' => '',
|
|
|
+ 'end_date' => '',
|
|
|
+ 'page' => 1,
|
|
|
+ 'size' => 15,
|
|
|
+ ], '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,on.send_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')
|
|
|
+ ->page($param['page'], $param['size'])
|
|
|
+ ->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 退货数量,on.send_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);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //【七、产品报表】1.产品上线报表_列表
|
|
|
+ public function GoodOnlineList()
|
|
|
+
|
|
|
+ {
|
|
|
+ $param = $this->request->only([
|
|
|
+ 'token',
|
|
|
+ 'creater' => '',
|
|
|
+ 'supplier_name' => '',
|
|
|
+ 'start_date' => '',
|
|
|
+ 'end_date' => '',
|
|
|
+ 'page' => 1,
|
|
|
+ 'size' => 15,
|
|
|
+ ], '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], ['gp.exam_status', '=', 6]]; //exam_status==6 上线成功
|
|
|
+ if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['gp.online_time', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];//当上面状态确定为exam_status==6时,上线时间也可以取 updatetime
|
|
|
+ if ($param['creater'] != '') $where[] = ['gb.creater', 'like', '%' . $param['creater'] . '%'];
|
|
|
+ if ($param['supplier_name'] != '') $where[] = ['s.name', 'like', '%' . $param['supplier_name'] . '%'];
|
|
|
+
|
|
|
+ $count = Db::name('good_platform')
|
|
|
+ ->alias('gp')
|
|
|
+ ->where($where)
|
|
|
+ ->leftJoin('good_basic gb', 'gb.spuCode=gp.spuCode AND gb.is_del=0')
|
|
|
+ ->leftJoin('brand b', 'b.id=gb.brand_id AND b.is_del=0')
|
|
|
+ ->leftJoin('supplier s', 's.code=gb.supplierNo AND s.is_del=0')
|
|
|
+ ->count('gp.id');
|
|
|
+
|
|
|
+ $list = Db::name('good_platform')
|
|
|
+ ->alias('gp')
|
|
|
+ ->field('gb.creater,gp.skuCode,gp.spuCode,gb.good_name,b.brand_name,"" good_model,s.name,gb.tax,gb.nake_price,gp.online_time')
|
|
|
+ ->where($where)
|
|
|
+ ->leftJoin('good_basic gb', 'gb.spuCode=gp.spuCode AND gb.is_del=0')
|
|
|
+ ->leftJoin('brand b', 'b.id=gb.brand_id AND b.is_del=0')
|
|
|
+ ->leftJoin('supplier s', 's.code=gb.supplierNo AND s.is_del=0')
|
|
|
+ ->withAttr('good_model', function ($val, $data) {
|
|
|
+ return Db::name('good_spec')
|
|
|
+ ->alias('gp')
|
|
|
+ ->field('')
|
|
|
+ ->leftJoin('specs s', 's.id=gp.spec_id AND s.is_del=0')
|
|
|
+ ->leftJoin('spec_value sv', 'sv.id=gp.spec_value_id AND s.is_del=0')
|
|
|
+ ->where([
|
|
|
+ 'gp.spuCode' => $data['spuCode'],
|
|
|
+ 'gp.is_del' => 0,
|
|
|
+ 's.spec_name' => '型号',
|
|
|
+ ])
|
|
|
+ ->value('sv.spec_value', '');
|
|
|
+ })
|
|
|
+ ->page($param['page'], $param['size'])
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+
|
|
|
+ return app_show(0, '请求成功', ['list' => $list, 'count' => $count]);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //【七、产品报表】1.产品上线报表_导出
|
|
|
+ public function GoodOnlineExport()
|
|
|
+ {
|
|
|
+ $param = $this->request->only([
|
|
|
+ 'token',
|
|
|
+ 'creater' => '',
|
|
|
+ 'supplier_name' => '',
|
|
|
+ '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], ['gp.exam_status', '=', 6]]; //exam_status==6 上线成功
|
|
|
+ if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['gp.online_time', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
|
|
|
+ if ($param['creater'] != '') $where[] = ['gb.creater', 'like', '%' . $param['creater'] . '%'];
|
|
|
+ if ($param['supplier_name'] != '') $where[] = ['s.name', 'like', '%' . $param['supplier_name'] . '%'];
|
|
|
+
|
|
|
+ $list = Db::name('good_platform')
|
|
|
+ ->alias('gp')
|
|
|
+ ->field('gb.creater 采购维护人,gp.skuCode 产品编号skuCode,gp.spuCode 产品编号spuCode,gb.good_name 产品名称,b.brand_name 品牌名称,"" 产品型号,s.name 供应商名称,gb.tax 税点,gb.nake_price 成本价合计,gp.online_time 上线时间')
|
|
|
+ ->where($where)
|
|
|
+ ->leftJoin('good_basic gb', 'gb.spuCode=gp.spuCode AND gb.is_del=0')
|
|
|
+ ->leftJoin('brand b', 'b.id=gb.brand_id AND b.is_del=0')
|
|
|
+ ->leftJoin('supplier s', 's.code=gb.supplierNo AND s.is_del=0')
|
|
|
+ ->withAttr('产品型号', function ($val, $data) {
|
|
|
+ return Db::name('good_spec')
|
|
|
+ ->alias('gp')
|
|
|
+ ->field('')
|
|
|
+ ->leftJoin('specs s', 's.id=gp.spec_id AND s.is_del=0')
|
|
|
+ ->leftJoin('spec_value sv', 'sv.id=gp.spec_value_id AND s.is_del=0')
|
|
|
+ ->where([
|
|
|
+ 'gp.spuCode' => $data['产品编号spuCode'],
|
|
|
+ 'gp.is_del' => 0,
|
|
|
+ 's.spec_name' => '型号',
|
|
|
+ ])
|
|
|
+ ->value('sv.spec_value', '');
|
|
|
+ })
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+ halt($list);
|
|
|
+ if (empty($list)) $list[] = '没有可供导出的数据';
|
|
|
+
|
|
|
+ $headerArr = array_keys($list[0]);
|
|
|
+ excelSave('产品上线报表' . date('YmdHis'), $headerArr, $list);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //【七、产品报表】2.产品下线报表_列表
|
|
|
+ public function GoodOfflineList()
|
|
|
+ {
|
|
|
+ $param = $this->request->only([
|
|
|
+ 'token',
|
|
|
+ 'creater' => '',
|
|
|
+ 'supplier_name' => '',
|
|
|
+ 'start_date' => '',
|
|
|
+ 'end_date' => '',
|
|
|
+ 'page' => 1,
|
|
|
+ 'size' => 15,
|
|
|
+ ], '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], ['gp.exam_status', '=', 8]]; //exam_status==8 下线成功
|
|
|
+ if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['gp.updatetime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
|
|
|
+ if ($param['creater'] != '') $where[] = ['gb.creater', 'like', '%' . $param['creater'] . '%'];
|
|
|
+ if ($param['supplier_name'] != '') $where[] = ['s.name', 'like', '%' . $param['supplier_name'] . '%'];
|
|
|
+
|
|
|
+ $count = Db::name('good_platform')
|
|
|
+ ->alias('gp')
|
|
|
+ ->where($where)
|
|
|
+ ->leftJoin('good_basic gb', 'gb.spuCode=gp.spuCode AND gb.is_del=0')
|
|
|
+ ->leftJoin('supplier s', 's.code=gb.supplierNo AND s.is_del=0')
|
|
|
+ ->count('gp.id');
|
|
|
+
|
|
|
+ $list = Db::name('good_platform')
|
|
|
+ ->alias('gp')
|
|
|
+ ->field('gp.updatetime,gb.creater,gp.skuCode,gp.spuCode,gb.good_name,s.name')
|
|
|
+ ->where($where)
|
|
|
+ ->leftJoin('good_basic gb', 'gb.spuCode=gp.spuCode AND gb.is_del=0')
|
|
|
+ ->leftJoin('supplier s', 's.code=gb.supplierNo AND s.is_del=0')
|
|
|
+ ->page($param['page'], $param['size'])
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+
|
|
|
+ return app_show(0, '请求成功', ['list' => $list, 'count' => $count]);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //【七、产品报表】2.产品下线报表_导出
|
|
|
+ public function GoodOfflineExport()
|
|
|
+ {
|
|
|
+ $param = $this->request->only([
|
|
|
+ 'token',
|
|
|
+ 'creater' => '',
|
|
|
+ 'supplier_name' => '',
|
|
|
+ '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], ['gp.exam_status', '=', 8]]; //exam_status==8 下线成功
|
|
|
+ if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['gp.updatetime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
|
|
|
+ if ($param['creater'] != '') $where[] = ['gb.creater', 'like', '%' . $param['creater'] . '%'];
|
|
|
+ if ($param['supplier_name'] != '') $where[] = ['s.name', 'like', '%' . $param['supplier_name'] . '%'];
|
|
|
+
|
|
|
+ $list = Db::name('good_platform')
|
|
|
+ ->alias('gp')
|
|
|
+ ->field('gp.updatetime 产品下线时间,gb.creater 采购维护人,gp.skuCode 产品编号skuCode,gp.spuCode 产品编号spuCode,gb.good_name 产品名称,s.name 供应商名称')
|
|
|
+ ->where($where)
|
|
|
+ ->leftJoin('good_basic gb', 'gb.spuCode=gp.spuCode AND gb.is_del=0')
|
|
|
+ ->leftJoin('supplier s', 's.code=gb.supplierNo AND s.is_del=0')
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+
|
|
|
+ if (empty($list)) $list[] = '没有可供导出的数据';
|
|
|
+
|
|
|
+ $headerArr = array_keys($list[0]);
|
|
|
+ excelSave('产品下线报表' . date('YmdHis'), $headerArr, $list);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|