Forráskód Böngészése

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

wufeng 2 éve
szülő
commit
c7ccabe4a3
1 módosított fájl, 121 hozzáadás és 10 törlés
  1. 121 10
      app/admin/controller/SaleReport.php

+ 121 - 10
app/admin/controller/SaleReport.php

@@ -1397,7 +1397,7 @@ class SaleReport extends Base
     {
     {
         $param = $this->request->only(['token', 'start_date' => '', 'end_date' => '', 'start_sendtime' => '', 'end_sendtime' => '', 'status' => '', 'apply_company' => '', 'page' => 1, 'size' => 15, 'order_type' => ''], 'post', 'trim');
         $param = $this->request->only(['token', 'start_date' => '', 'end_date' => '', 'start_sendtime' => '', 'end_sendtime' => '', 'status' => '', 'apply_company' => '', 'page' => 1, 'size' => 15, 'order_type' => ''], 'post', 'trim');
 
 
-        $where = [['b.is_del', '=', 0], ['b.send_type', '=', 2]];//send_type==2 延迟发货
+        $where = [['b.is_del', '=', 0], ['b.send_type', '=', 2], ['a.send_num', '>', 0]];//send_type==2 延迟发货
         if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['a.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
         if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['a.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
         if ($param['start_sendtime'] != '' && $param['end_sendtime'] != '') $where[] = ['a.sendtime', 'between', [$param['start_sendtime'] . ' 00:00:00', $param['end_sendtime'] . ' 23:59:59']];
         if ($param['start_sendtime'] != '' && $param['end_sendtime'] != '') $where[] = ['a.sendtime', 'between', [$param['start_sendtime'] . ' 00:00:00', $param['end_sendtime'] . ' 23:59:59']];
         if ($param['status'] != '') $where[] = ['a.status', '=', $param['status']];
         if ($param['status'] != '') $where[] = ['a.status', '=', $param['status']];
@@ -1470,7 +1470,7 @@ class SaleReport extends Base
 
 
         $param = $this->request->only(['token', 'start_date' => '', 'end_date' => '', 'start_sendtime' => '', 'end_sendtime' => '', 'status' => '', 'apply_company' => '', 'page' => 1, 'size' => 15, 'order_type' => ''], 'post', 'trim');
         $param = $this->request->only(['token', 'start_date' => '', 'end_date' => '', 'start_sendtime' => '', 'end_sendtime' => '', 'status' => '', 'apply_company' => '', 'page' => 1, 'size' => 15, 'order_type' => ''], 'post', 'trim');
 
 
-        $where = [['b.is_del', '=', 0], ['b.send_type', '=', 2]];//send_type==2 延迟发货
+        $where = [['b.is_del', '=', 0], ['b.send_type', '=', 2], ['a.send_num', '>', 0]];//send_type==2 延迟发货
         if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['a.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
         if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['a.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
         if ($param['start_sendtime'] != '' && $param['end_sendtime'] != '') $where[] = ['a.sendtime', 'between', [$param['start_sendtime'] . ' 00:00:00', $param['end_sendtime'] . ' 23:59:59']];
         if ($param['start_sendtime'] != '' && $param['end_sendtime'] != '') $where[] = ['a.sendtime', 'between', [$param['start_sendtime'] . ' 00:00:00', $param['end_sendtime'] . ' 23:59:59']];
         if ($param['status'] != '') $where[] = ['a.status', '=', $param['status']];
         if ($param['status'] != '') $where[] = ['a.status', '=', $param['status']];
@@ -1537,7 +1537,7 @@ class SaleReport extends Base
     {
     {
         $param = $this->request->only(['token', 'start_date' => '', 'end_date' => '', 'start_sendtime' => '', 'end_sendtime' => '', 'status' => '', 'apply_company' => '', 'page' => 1, 'size' => 15, 'order_type' => ''], 'post', 'trim');
         $param = $this->request->only(['token', 'start_date' => '', 'end_date' => '', 'start_sendtime' => '', 'end_sendtime' => '', 'status' => '', 'apply_company' => '', 'page' => 1, 'size' => 15, 'order_type' => ''], 'post', 'trim');
 
 
-        $where = [['b.send_type', '=', 1]];//send_type==1 直接发货
+        $where = [['b.send_type', '=', 1], ['a.send_num', '>', 0]];//send_type==1 直接发货
         if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['a.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
         if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['a.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
         if ($param['start_sendtime'] != '' && $param['end_sendtime'] != '') $where[] = ['a.sendtime', 'between', [$param['start_sendtime'] . ' 00:00:00', $param['end_sendtime'] . ' 23:59:59']];
         if ($param['start_sendtime'] != '' && $param['end_sendtime'] != '') $where[] = ['a.sendtime', 'between', [$param['start_sendtime'] . ' 00:00:00', $param['end_sendtime'] . ' 23:59:59']];
         if ($param['status'] != '') $where[] = ['a.status', '=', $param['status']];
         if ($param['status'] != '') $where[] = ['a.status', '=', $param['status']];
@@ -1599,7 +1599,7 @@ class SaleReport extends Base
     {
     {
         $param = $this->request->only(['token', 'start_date' => '', 'end_date' => '', 'start_sendtime' => '', 'end_sendtime' => '', 'status' => '', 'apply_company' => '', 'order_type' => ''], 'post', 'trim');
         $param = $this->request->only(['token', 'start_date' => '', 'end_date' => '', 'start_sendtime' => '', 'end_sendtime' => '', 'status' => '', 'apply_company' => '', 'order_type' => ''], 'post', 'trim');
 
 
-        $where = [['b.send_type', '=', 1]];//send_type==1 直接发货
+        $where = [['b.send_type', '=', 1], ['a.send_num', '>', 0]];//send_type==1 直接发货
         if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['a.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
         if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['a.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
         if ($param['start_sendtime'] != '' && $param['end_sendtime'] != '') $where[] = ['a.sendtime', 'between', [$param['start_sendtime'] . ' 00:00:00', $param['end_sendtime'] . ' 23:59:59']];
         if ($param['start_sendtime'] != '' && $param['end_sendtime'] != '') $where[] = ['a.sendtime', 'between', [$param['start_sendtime'] . ' 00:00:00', $param['end_sendtime'] . ' 23:59:59']];
         if ($param['status'] != '') $where[] = ['a.status', '=', $param['status']];
         if ($param['status'] != '') $where[] = ['a.status', '=', $param['status']];
@@ -1817,18 +1817,18 @@ class SaleReport extends Base
             ->whereMonth('a.addtime')
             ->whereMonth('a.addtime')
             ->cursor();
             ->cursor();
         $list = [];
         $list = [];
-        $total = ['部门' => '总计', '库存' => 0, '非库存' => 0, '咨询采反' => 0, '总计' => 0];
+        $total = ['部门' => '总计', '库存' => 0, '非库存' => 0, '咨询采反' => 0, '总计' => 0];
         foreach ($data as $k => $val) {
         foreach ($data as $k => $val) {
-            if (!isset($list[$val['itemid']])) $list[$val['itemid']] = ['部门' => $val['name'], '库存' => 0, '非库存' => 0, '咨询采反' => 0, '总计' => 0];
+            if (!isset($list[$val['itemid']])) $list[$val['itemid']] = ['部门' => $val['name'], '库存' => 0, '非库存' => 0, '咨询采反' => 0, '总计' => 0];
 
 
             switch ($val['order_type']) {
             switch ($val['order_type']) {
                 case 1:
                 case 1:
-                    $list[$val['itemid']]['库存']++;
-                    $total['库存']++;
+                    $list[$val['itemid']]['库存']++;
+                    $total['库存']++;
                     break;
                     break;
                 case 2:
                 case 2:
-                    $list[$val['itemid']]['非库存']++;
-                    $total['非库存']++;
+                    $list[$val['itemid']]['非库存']++;
+                    $total['非库存']++;
                     break;
                     break;
                 case 3:
                 case 3:
                     $list[$val['itemid']]['咨询采反']++;
                     $list[$val['itemid']]['咨询采反']++;
@@ -1848,5 +1848,116 @@ class SaleReport extends Base
 
 
     }
     }
 
 
+    //【十二、本月采购订单和库存品发货情况】
+    public function orderOutMonth()
+    {
+
+//        $param = $this->request->only(['token'], 'post', 'trim');
+
+        $where = [['a.is_del', '=', 0]];
+
+        $data = Db::name('order_out')
+            ->alias('a')
+            ->field('a.id,b.order_type,b.cat_id')
+            ->leftJoin("sale b", "b.orderCode=a.orderCode AND b.is_del=0")
+            ->where($where)
+            ->whereMonth('a.addtime')
+            ->cursor();
+        $list = [];
+        $total = ['cat_1' => '总计', 'cat_2' => '', 'cat_3' => '', 'tag_1' => 0, 'tag_2' => 0, 'tag_3' => 0, 'tag_total' => 0];
+        foreach ($data as $val) {
+
+            if (!isset($list[$val['cat_id']])) {
+                $cat = made($val['cat_id']);
+                $list[$val['cat_id']] = [
+                    'cat_1' => $cat[0]['name'] ?? '',
+                    'cat_2' => $cat[1]['name'] ?? '',
+                    'cat_3' => $cat[2]['name'] ?? '',
+                    'tag_1' => 0,
+                    'tag_2' => 0,
+                    'tag_3' => 0,
+                    'tag_total' => 0,
+                ];
+            }
+
+            $list[$val['cat_id']]['tag_' . $val['order_type']]++;
+            $list[$val['cat_id']]['tag_total']++;
+            $total['tag_' . $val['order_type']]++;
+            $total['tag_total']++;
+
+        }
+        $list = array_merge($list);//重置下标
+        $list[] = $total;
+        return app_show(0, '请求成功', $list);
+
+    }
+
+    //【十二、本月采购订单和库存品发货情况-导出】
+    public function orderOutMonthExport()
+    {
+//        $param = $this->request->only(['token'], 'post', 'trim');
+
+        $where = [['a.is_del', '=', 0]];
+
+        $data = Db::name('order_out')
+            ->alias('a')
+            ->field('a.id,b.order_type,b.cat_id')
+            ->leftJoin("sale b", "b.orderCode=a.orderCode AND b.is_del=0")
+            ->where($where)
+            ->whereMonth('a.addtime')
+            ->cursor();
+        $list = [];
+        $total = ['一级分类' => '总计', '二级分类' => '', '三级分类' => '', '库存品' => 0, '非库存品' => 0, '咨询采反' => 0, '总计' => 0];
+        foreach ($data as $val) {
+
+            if (!isset($list[$val['cat_id']])) {
+                $cat = made($val['cat_id']);
+                $list[$val['cat_id']] = [
+                    '一级分类' => $cat[0]['name'] ?? '',
+                    '二级分类' => $cat[1]['name'] ?? '',
+                    '三级分类' => $cat[2]['name'] ?? '',
+                    '库存品' => 0,
+                    '非库存品' => 0,
+                    '咨询采反' => 0,
+                    '总计' => 0,
+                ];
+            }
+
+
+            switch ($val['order_type']) {
+                case 1:
+                    $list[$val['cat_id']]['库存品']++;
+                    $total['库存品']++;
+                    break;
+                case 2:
+                    $list[$val['cat_id']]['非库存品']++;
+                    $total['非库存品']++;
+                    break;
+                case 3:
+                    $list[$val['cat_id']]['咨询采反']++;
+                    $total['咨询采反']++;
+                    break;
+            }
+
+            $list[$val['cat_id']]['总计']++;
+            $total['总计']++;
+
+        }
+        $list = array_merge($list);//重置下标
+        $list[] = $total;
+
+        if (empty($list)) $list[] = '没有相关可导出的数据';
+        excelSave('本月采购订单和库存品发货情况' . date('YmdHis'), array_keys($list[0]), $list);
+
+    }
+
+    //【十三、本月采购订单和库存品发货情况---(统计发货)供应商发货、负责人发货、物流岗发货】
+
+
+    //【十四、本月供应商采购订单情况】
+    public function purcheaseOrderMonth()
+    {
+
+    }
 
 
 }
 }