Browse Source

退货流水报表

wufeng 2 years ago
parent
commit
06a86f792a
3 changed files with 83 additions and 3 deletions
  1. 0 3
      app/admin/controller/Data.php
  2. 81 0
      app/admin/controller/Report.php
  3. 2 0
      app/admin/route/app.php

+ 0 - 3
app/admin/controller/Data.php

@@ -363,7 +363,6 @@ class Data extends BaseController
         ];
 
         //部门销售指标
-        //数据在结算库invoice,连接配置信息待更新
         $sale_indicators = Db::name('depart_tips')
             ->field('id,total_tips,depart_item department')
             ->where(['year' => date('Y'), 'month' => date('n')])
@@ -373,13 +372,11 @@ class Data extends BaseController
         $da = [];
         //计算完成率
         foreach ($sale_indicators as $value) {
-
             if (isset($sales_volume[$value['department']]['sales_volume'])) {
                 $value['finish'] = $sales_volume[$value['department']]['sales_volume'];
                 $value['finish_rate'] = round(($value['finish'] / $value['total_tips']) * 100, 5);
                 $da[] = $value;
             } else continue;
-
         }
 
         //按照完成率排序

+ 81 - 0
app/admin/controller/Report.php

@@ -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);
+
+    }
+
 }

+ 2 - 0
app/admin/route/app.php

@@ -501,6 +501,8 @@ Route::rule('reportorderreturnlist','admin/Report/orderReturnList');//报表-售
 Route::rule('reportorderreturnlistexport','admin/Report/orderReturnListExport');//报表-售后报表_导出
 Route::rule('reportsupplierlist','admin/Report/supplierList');//报表-供应商报表_列表
 Route::rule('reportsupplierlistexport','admin/Report/supplierListExport');//报表-供应商报表_导出
+Route::rule('reportsalereturnlist','admin/Report/SaleReturnList');//报表-退货流水报表_列表
+Route::rule('reportsalereturnexport','admin/Report/SaleReturnExport');//报表-退货流水报表_导出
 
 //数据看板
 Route::rule('datatodaysalesvolume','admin/Data/todaySalesVolume');//1.今日销量