Jelajahi Sumber

Merge branch 'dev_wf' of wugg/phpstock into version1.5

wufeng 2 tahun lalu
induk
melakukan
3df1045385
2 mengubah file dengan 100 tambahan dan 9 penghapusan
  1. 98 9
      app/admin/controller/SaleReport.php
  2. 2 0
      app/admin/route/app.php

+ 98 - 9
app/admin/controller/SaleReport.php

@@ -1415,7 +1415,7 @@ class SaleReport extends Base
 
         $data = Db::name('order_out')
             ->alias('a')
-            ->field('a.addtime,a.orderCode,os.cgdNo,bus.company,a.apply_name,a.apply_id,a.status,a.send_num,b.good_code,b.good_name,v.companyName,b.wsend_num,b.skuCode,b.order_type')
+            ->field('a.addtime,a.orderCode,os.cgdNo,bus.company,a.apply_name,a.apply_id,b.status,a.send_num,b.good_code,b.good_name,v.companyName,b.wsend_num,b.skuCode,b.order_type,d.cgder')
             ->leftJoin("sale b", "b.orderCode=a.orderCode")
             ->leftJoin("customer_info v", "v.companyNo=b.customer_code")
             ->leftJoin("order_send os", "os.outCode=a.outCode")
@@ -1449,7 +1449,7 @@ class SaleReport extends Base
             $value['cat'] = implode('/', array_column(made($goon['cat_id']), 'name'));
             $value['send_date'] = date('Y-m-d H:i:s', strtotime($value['addtime']) + $goon['customized'] * 24 * 3600);
 
-            $value['status'] = isset($this->order_out_status[$value['status']]) ? $this->order_out_status[$value['status']] : '';
+            $value['status'] = isset($this->all_sale_status[$value['status']]) ? $this->all_sale_status[$value['status']] : '';
 
             $list[] = $value;
         }
@@ -1472,7 +1472,7 @@ class SaleReport extends Base
 
         $data = Db::name('order_out')
             ->alias('a')
-            ->field('a.addtime 下单时间,a.orderCode 订单编号,os.cgdNo 采购单编号,bus.company 公司名称,a.apply_name 申请人,"" 部门,a.apply_id,a.status 状态,a.send_num 出库总数,"" 商品分类,b.good_code 商品编码,b.good_name 商品名称,v.companyName 客户名称,b.wsend_num 未发货数量,"" 应发货日期,b.skuCode,b.order_type 订单类型')
+            ->field('a.addtime 下单时间,a.orderCode 订单编号,os.cgdNo 采购单编号,bus.company 公司名称,a.apply_name 申请人,"" 部门,a.apply_id,b.status 状态,a.send_num 出库总数,"" 商品分类,b.good_code 商品编码,b.good_name 商品名称,v.companyName 客户名称,b.wsend_num 未发货数量,"" 应发货日期,b.skuCode,b.order_type 订单类型')
             ->leftJoin("sale b", "b.orderCode=a.orderCode")
             ->leftJoin("customer_info v", "v.companyNo=b.customer_code")
             ->leftJoin("order_send os", "os.outCode=a.outCode")
@@ -1506,7 +1506,7 @@ class SaleReport extends Base
             $value['商品分类'] = implode('/', array_column(made($goon['cat_id']), 'name'));
             $value['应发货日期'] = date('Y-m-d H:i:s', strtotime($value['下单时间']) + $goon['customized'] * 24 * 3600);
 
-            $value['状态'] = isset($this->order_out_status[$value['状态']]) ? $this->order_out_status[$value['状态']] : '';
+            $value['状态'] = isset($this->all_sale_status[$value['状态']]) ? $this->all_sale_status[$value['状态']] : '';
             $value['订单类型'] = isset($this->all_order_type[$value['订单类型']]) ? $this->all_order_type[$value['订单类型']] : '';
 
             unset($value['apply_id']);
@@ -1546,7 +1546,7 @@ class SaleReport extends Base
 
         $data = Db::name('order_out')
             ->alias('a')
-            ->field('a.addtime,a.orderCode,a.sendtime,a.outCode,a.status,b.good_name,b.sale_price,a.send_num,a.apply_name,ci.name apply_company,po.cgder,a.post_name,a.post_code,oa.contactor,oa.mobile,oa.addr,oa.addr_code,a.remark,b.order_type')
+            ->field('a.addtime,a.orderCode,a.sendtime,a.outCode,b.status,b.good_name,b.sale_price,a.send_num,a.apply_name,ci.name apply_company,po.cgder,a.post_name,a.post_code,oa.contactor,oa.mobile,oa.addr,oa.addr_code,a.remark,b.order_type')
             ->leftJoin("sale b", "b.orderCode=a.orderCode")
             ->leftJoin("order_send os", "os.outCode=a.outCode")
             ->leftJoin("purchease_order po", "po.cgdNo=os.cgdNo")
@@ -1563,7 +1563,7 @@ class SaleReport extends Base
 
             $value['send_total_price'] = round($value['send_num'] * $value['sale_price'], 2);
 
-            $value['status'] = isset($this->order_out_status[$value['status']]) ? $this->order_out_status[$value['status']] : '';
+            $value['status'] = isset($this->all_sale_status[$value['status']]) ? $this->all_sale_status[$value['status']] : '';
 
             //拼接省市区
             if (!json_decode($value['addr_code'])) {
@@ -1580,7 +1580,7 @@ class SaleReport extends Base
 
     }
 
-    //【九、直接发货申请单统计 
+    //【九、直接发货申请单统计-导出
     public function orderOutAddrExport()
     {
         $param = $this->request->only(['token', 'start_date' => '', 'end_date' => '', 'start_sendtime' => '', 'end_sendtime' => '', 'status' => '', 'apply_company' => '', 'order_type' => ''], 'post', 'trim');
@@ -1594,7 +1594,7 @@ class SaleReport extends Base
 
         $data = Db::name('order_out')
             ->alias('a')
-            ->field('a.addtime 下单日期,a.orderCode 订单编号,a.sendtime 发货时间,a.outCode 发货申请单号,a.status 发货申请单状态,b.good_name 商品名称,b.sale_price 产品单价,a.send_num 发货数量,"" 发货申请单总价,a.apply_name 申请人,ci.name 部门,po.cgder 采购人,a.post_name 快递公司,a.post_code 快递单号,oa.contactor 收货人,oa.mobile 收货电话,oa.addr 收货地址,oa.addr_code,a.remark 备注,b.order_type 订单类型')
+            ->field('a.addtime 下单日期,a.orderCode 订单编号,a.sendtime 发货时间,a.outCode 发货申请单号,b.status 发货申请单状态,b.good_name 商品名称,b.sale_price 产品单价,a.send_num 发货数量,"" 发货申请单总价,a.apply_name 申请人,ci.name 部门,po.cgder 采购人,a.post_name 快递公司,a.post_code 快递单号,oa.contactor 收货人,oa.mobile 收货电话,oa.addr 收货地址,oa.addr_code,a.remark 备注,b.order_type 订单类型')
             ->leftJoin("sale b", "b.orderCode=a.orderCode")
             ->leftJoin("order_send os", "os.outCode=a.outCode")
             ->leftJoin("purchease_order po", "po.cgdNo=os.cgdNo")
@@ -1610,7 +1610,7 @@ class SaleReport extends Base
 
             $value['发货申请单总价'] = round($value['发货数量'] * $value['产品单价'], 2);
 
-            $value['发货申请单状态'] = isset($this->order_out_status[$value['发货申请单状态']]) ? $this->order_out_status[$value['发货申请单状态']] : '';
+            $value['发货申请单状态'] = isset($this->all_sale_status[$value['发货申请单状态']]) ? $this->all_sale_status[$value['发货申请单状态']] : '';
             $value['订单类型'] = isset($this->all_order_type[$value['订单类型']]) ? $this->all_order_type[$value['订单类型']] : '';
 
             //拼接省市区
@@ -1708,4 +1708,93 @@ class SaleReport extends Base
 
     }
 
+    //【十一、本月销售订单情况】
+    public function saleMonth()
+    {
+
+        $param = $this->request->only(['token', 'apply_company' => ''], 'post', 'trim');
+
+        $where = [['a.is_del', '=', 0]];
+        if ($param['apply_company'] != '') $where[] = ['ci.name', 'like', '%' . $param['apply_company'] . '%'];
+
+        $data = Db::name('sale')
+            ->alias('a')
+            ->field('a.id,a.order_type,u.itemid,ci.name')
+            ->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
+            ->leftJoin("company_item ci", "ci.id=u.itemid")
+            ->where($where)
+            ->whereMonth('a.addtime')
+            ->cursor();
+        $list = [];
+        $total = ['name' => '总计', 'tag_1' => 0, 'tag_2' => 0, 'tag_3' => 0, 'tag_total' => 0];
+        foreach ($data as $val) {
+            if (!isset($list[$val['itemid']])) $list[$val['itemid']] = [
+                'name' => $val['name'],
+                'tag_1' => 0,
+                'tag_2' => 0,
+                'tag_3' => 0,
+                'tag_total' => 0,
+            ];
+            $list[$val['itemid']]['tag_' . $val['order_type']]++;
+            $list[$val['itemid']]['tag_total']++;
+            $total['tag_' . $val['order_type']]++;
+            $total['tag_total']++;
+
+        }
+        $list = array_merge($list);//重置下标
+        $list[] = $total;
+        return app_show(0, '请求成功', $list);
+
+    }
+
+    //【十一、本月销售订单情况-导出】
+    public function saleMonthExport()
+    {
+
+        $param = $this->request->only(['token', 'apply_company' => ''], 'post', 'trim');
+
+        $where = [['a.is_del', '=', 0]];
+        if ($param['apply_company'] != '') $where[] = ['ci.name', 'like', '%' . $param['apply_company'] . '%'];
+
+        $data = Db::name('sale')
+            ->alias('a')
+            ->field('a.id,a.order_type,u.itemid,ci.name')
+            ->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
+            ->leftJoin("company_item ci", "ci.id=u.itemid")
+            ->where($where)
+            ->whereMonth('a.addtime')
+            ->cursor();
+        $list = [];
+        $total = ['部门' => '总计', '库存' => 0, '非库存' => 0, '咨询采反' => 0, '总计' => 0];
+        foreach ($data as $k => $val) {
+            if (!isset($list[$val['itemid']])) $list[$val['itemid']] = ['部门' => $val['name'], '库存' => 0, '非库存' => 0, '咨询采反' => 0, '总计' => 0];
+
+            switch ($val['order_type']) {
+                case 1:
+                    $list[$val['itemid']]['库存']++;
+                    $total['库存']++;
+                    break;
+                case 2:
+                    $list[$val['itemid']]['非库存']++;
+                    $total['非库存']++;
+                    break;
+                case 3:
+                    $list[$val['itemid']]['咨询采反']++;
+                    $total['咨询采反']++;
+                    break;
+            }
+
+            $list[$val['itemid']]['总计']++;
+            $total['总计']++;
+
+        }
+        $list = array_merge($list);//重置下标
+        $list[] = $total;
+
+        if (empty($list)) $list[] = '没有相关可导出的数据';
+        excelSave('本月销售订单情况' . date('YmdHis'), array_keys($list[0]), $list);
+
+    }
+
+
 }

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

@@ -597,6 +597,8 @@ Route::rule('seooae', 'admin/SaleReport/orderOutAddrExport');//直接发货申
 Route::rule('sna', 'admin/SaleReport/saleNotAddr');//无地址销售订单统计
 Route::rule('snae', 'admin/SaleReport/saleNotAddrExport');//无地址销售订单统计
 
+Route::rule('sm', 'admin/SaleReport/saleMonth');//本月销售订单情况统计
+Route::rule('sme', 'admin/SaleReport/saleMonthExport');//本月销售订单情况统计-导出
 Route::rule("catplatadd", "admin/CatPlat/add");
 Route::rule("catplatedit", "admin/CatPlat/edit");
 Route::rule("catplatlist", "admin/CatPlat/list");