Browse Source

采购单导出增加字段

wufeng 2 years ago
parent
commit
b29874f755
2 changed files with 84 additions and 21 deletions
  1. 20 7
      app/admin/controller/Purch.php
  2. 64 14
      app/admin/controller/Report.php

+ 20 - 7
app/admin/controller/Purch.php

@@ -955,11 +955,12 @@ class Purch extends Base
         $status = [0 => '待与供应商确认', 1 => '待入库', 2 => '部分入库', 3 => '入库完成', 4 => '已取消订单'];
         $list = Db::name("purchease_order")
             ->alias('po')
-            ->field('"" as 序号,po.addtime as 创建时间,po.cgdNo as 采购单编号,po.status as 采购单状态,po.cgder as 采购员,s.orderCode as 确认单号,s.addtime as 确认单时间,po.spuCode as 产品编号,po.good_name as 产品名称,"" as 规格,"" as 单位,po.supplier_name as 供应商名称,po.supplierNo as 供应商编号,po.nake_fee as 裸价,po.delivery_fee as 物流费,s.send_type as 发货方式,po.good_price as 采购单价,s.remark as 确认单备注,po.good_num as 采购数量,po.total_fee as 采购货款,b.company as 购买方公司,s.arrive_time as 到货时间,po.order_type')
+            ->field('"" as 序号,po.addtime as 创建时间,po.cgdNo as 采购单编号,po.status as 采购单状态,po.cgder as 采购员,s.orderCode as 确认单号,s.addtime as 确认单时间,po.spuCode as 产品编号,po.good_name as 产品名称,"" as 规格,"" as 单位,po.supplier_name as 供应商名称,po.supplierNo as 供应商编号,po.nake_fee as 裸价,po.delivery_fee as 物流费,s.send_type as 发货方式,po.good_price as 采购单价,s.remark as 确认单备注,po.good_num as 采购数量,po.total_fee as 采购货款,b.company as 购买方公司,s.arrive_time as 到货时间,"" 税率,oa.addr 收货地址,oa.mobile 电话,oa.contactor 联系人,oa.addr_code,po.order_type')
             ->whereIn('po.cgdNo', $cgdNos)
             ->leftJoin('order_num on', 'on.cgdNo=po.cgdNo')
-            ->leftJoin('sale s', 's.orderCode=on.orderCode')
-            ->leftJoin('business b', 'b.companyNo=s.supplierNo')
+            ->leftJoin('sale s', 's.orderCode=on.orderCode  AND s.is_del=0')
+            ->leftJoin('order_addr oa', 'oa.orderCode=on.orderCode AND oa.is_del=0')
+            ->leftJoin('business b', 'b.companyNo=s.supplierNo AND b.is_del=0')
             ->order("po.addtime desc")
             ->withAttr('序号', function () use (&$i) {
                 return $i++;
@@ -967,6 +968,8 @@ class Purch extends Base
                 return isset($status[$val]) ? $status[$val] : '';
             })->withAttr('发货方式', function ($val) use ($send_type) {
                 return isset($send_type[$val]) ? $send_type[$val] : '';
+            })->withAttr('发货方式', function ($val) use ($send_type) {
+                return isset($send_type[$val]) ? $send_type[$val] : '';
             })
             ->select()
             ->toArray();
@@ -976,7 +979,7 @@ class Purch extends Base
             if ($value['order_type'] == 3 || $value['order_type'] == 4) {
                 $temp = Db::name("good_zixun")
                     ->where(["spuCode" => $value['产品编号'], "is_del" => 0])
-                    ->field('id,specinfo,good_unit')
+                    ->field('id,specinfo,good_unit,tax')
                     ->find();
                 $good_unit = isset($temp['good_unit']) ? $temp['good_unit'] : 0;
                 $specinfo = isset($temp['specinfo']) ? json_decode($temp['specinfo'], true) : [];
@@ -985,10 +988,12 @@ class Purch extends Base
                 foreach ($specinfo as $val) {
                     $speclist[] = $val['spec_name'] . ':' . $val['spec_value_name'];
                 }
+                $value['税率'] = $temp['tax'] . '%';
             } else {
                 $good_unit = Db::name('good_basic')
+                    ->field('id,good_unit,tax')
                     ->where(['spuCode' => $value['产品编号']])
-                    ->value('good_unit', 0);
+                    ->find();
                 $spec = Db::name("good_spec")
                     ->field('id,spec_id,spec_value_id')
                     ->where(["spuCode" => $value['产品编号'], "is_del" => 0])
@@ -1001,15 +1006,23 @@ class Purch extends Base
 
                     }
                 }
+                $value['税率'] = isset($good_unit['tax']) ? $good_unit['tax'] . '%' : '';
             }
 
             $value['规格'] = empty($speclist) ? '' : implode(',', $speclist);;
-            $value['单位'] = $good_unit ? Db::name('unit')->where(['id' => $good_unit, 'is_del' => 0])->value('unit', '') : '';
+            $value['单位'] = isset($good_unit['good_unit']) ? Db::name('unit')->where(['id' => $good_unit['good_unit'], 'is_del' => 0])->value('unit', '') : '';
 
+            if (!empty($value['addr_code'])) {
+                $temp = explode(',', $value['addr_code']);
+                $temp_ = GetAddr(json_encode(['provice_code' => $temp[0], 'city_code' => $temp[1], 'area_code' => $temp[2]]));
+                $value['收货地址'] = $temp_ . $value['收货地址'];
+            }
+
+            unset($value['addr_code']);
             unset($value['order_type']);
 
         }
-
+   
         $headerArr = array_keys($list[0]);
         excelSave('采购单导出' . date('YmdHis'), $headerArr, $list);
     }

+ 64 - 14
app/admin/controller/Report.php

@@ -141,28 +141,41 @@ class Report extends Base
             'token',
             'start_date' => date('Y-m-d'),
             'end_date' => date('Y-m-d'),
+            'page' => 1,
+            'size' => 15,
         ], 'post', 'trim');
 
         $val_params = Validate::rule([
-            'start_date' => 'date|elt:end_date',
-            'end_date' => 'date',
+            'start_date' => 'require|date|elt:end_date',
+            'end_date' => 'require|date',
         ]);
 
         if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
 
-        $rs = Db::name('good_zixun')
+        $count = Db::name('good_zixun')
             ->alias('gz')
             ->field('count(gz.id) total,DATE_FORMAT(gz.addtime,"%Y-%m-%d") addtime,du.itemid,ci.name')
             ->leftJoin('depart_user du', 'du.uid=gz.createrid AND du.is_del=0')
             ->leftJoin('company_item ci', 'ci.id=du.itemid AND ci.is_del=0')
             ->where('gz.is_del', 0)
             ->group('addtime,du.itemid,ci.name')
+            ->whereBetween('gz.addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59'])
+            ->count();
+
+        $list = Db::name('good_zixun')
+            ->alias('gz')
+            ->field('count(gz.id) total,DATE_FORMAT(gz.addtime,"%Y-%m-%d") addtime,du.itemid,ci.name')
+            ->leftJoin('depart_user du', 'du.uid=gz.createrid AND du.is_del=0')
+            ->leftJoin('company_item ci', 'ci.id=du.itemid AND ci.is_del=0')
+            ->where('gz.is_del', 0)
+            ->group('addtime,du.itemid,ci.name')
+            ->whereBetween('gz.addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59'])
             ->order('addtime')
-//            ->whereBetween('gz.addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59'])
+            ->page($param['page'], $param['size'])
             ->select()
             ->toArray();
 
-        return app_show(0, '请求成功', $rs);
+        return app_show(0, '请求成功', ['list' => $list, 'count' => $count]);
 
     }
 
@@ -173,6 +186,8 @@ class Report extends Base
             'token',
             'start_date' => date('Y-m-d'),
             'end_date' => date('Y-m-d'),
+            'page' => 1,
+            'size' => 15,
         ], 'post', 'trim');
 
         $val_params = Validate::rule([
@@ -184,17 +199,27 @@ class Report extends Base
 
         $rs = Db::name('purchease_order')
             ->alias('po')
-            ->field('DATE_FORMAT(po.addtime,"%Y-%m-%d") addtime,SUM(po.total_fee) total_fee,SUM(po.good_num) good_num,po.status,du.itemid,ci.name,"" wait_total_fee,"" wait_good_num')
             ->leftJoin('depart_user du', 'du.uid=po.cgder_id AND du.is_del=0')
             ->leftJoin('company_item ci', 'ci.id=du.itemid AND ci.is_del=0')
             ->where('po.is_del', 0)
-            ->group('addtime,du.itemid,po.status')
             ->order('addtime,itemid')
-            ->whereBetween('po.addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59'])
+            ->whereBetween('po.addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']);
+
+        //统计条数的时候,不能按照status分组,否则下方列表不准
+        $count = $rs
+            ->field('DATE_FORMAT(po.addtime,"%Y-%m-%d") addtime,SUM(po.total_fee) total_fee,SUM(po.good_num) good_num,du.itemid,ci.name,"" wait_total_fee,"" wait_good_num')
+            ->group('addtime,du.itemid')
+            ->count();
+
+        $list = $rs
+            ->field('DATE_FORMAT(po.addtime,"%Y-%m-%d") addtime,SUM(po.total_fee) total_fee,SUM(po.good_num) good_num,po.status,du.itemid,ci.name,"" wait_total_fee,"" wait_good_num')
+            ->page($param['page'],$param['size'])
+            ->group('addtime,du.itemid,po.status')
             ->cursor();
 
         $data = [];
-        foreach ($rs as $value) {
+        foreach ($list as $value) {
+
             if (!isset($data[$value['addtime']][$value['itemid']])) {
                 $data[$value['addtime']][$value['itemid']] = [
                     'addtime' => $value['addtime'],
@@ -225,7 +250,7 @@ class Report extends Base
             }
         }
 
-        return app_show(0, '请求成功', $da);
+        return app_show(0, '请求成功', ['list' => $da, 'count' => $count]);
 
     }
 
@@ -236,6 +261,8 @@ class Report extends Base
             'token',
             'start_date' => date('Y-m-d'),
             'end_date' => date('Y-m-d'),
+            'page' => 1,
+            'size' => 15,
         ], 'post', 'trim');
 
         $val_params = Validate::rule([
@@ -245,22 +272,35 @@ class Report extends Base
 
         if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
 
-        $rs = Db::name('consult_bids')
+        $count = Db::name('consult_bids')
             ->alias('cb')
             ->field('DATE_FORMAT(cb.addtime,"%Y-%m-%d") addtime,du.itemid,cb.createrid,SUM(c.num) num,COUNT(cb.id) total,du.nickname,ci.name')
             ->leftJoin('consult c', 'c.zxNo=cb.zxNo AND c.is_del=0')
             ->leftJoin('depart_user du', 'du.uid=cb.createrid AND du.is_del=0')
             ->leftJoin('company_item ci', 'ci.id=du.itemid AND ci.is_del=0')
             ->where('cb.is_del', 0)
+            ->whereBetween('cb.addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59'])
             ->group('addtime,du.itemid,ci.name ,cb.createrid,du.nickname')
             ->order('addtime,du.itemid,ci.name ,cb.createrid,du.nickname')
+            ->count();
+
+        $list = Db::name('consult_bids')
+            ->alias('cb')
+            ->field('DATE_FORMAT(cb.addtime,"%Y-%m-%d") addtime,du.itemid,cb.createrid,SUM(c.num) num,COUNT(cb.id) total,du.nickname,ci.name')
+            ->leftJoin('consult c', 'c.zxNo=cb.zxNo AND c.is_del=0')
+            ->leftJoin('depart_user du', 'du.uid=cb.createrid AND du.is_del=0')
+            ->leftJoin('company_item ci', 'ci.id=du.itemid AND ci.is_del=0')
+            ->where('cb.is_del', 0)
             ->whereBetween('cb.addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59'])
+            ->group('addtime,du.itemid,ci.name ,cb.createrid,du.nickname')
+            ->order('addtime,du.itemid,ci.name ,cb.createrid,du.nickname')
+            ->page($param['page'],$param['size'])
             ->select()
             ->toArray();
 
-        $rs[] = ['addtime' => '汇总', 'itemid' => 0, 'createrid' => 0, 'num' => array_sum(array_column($rs, 'num')), 'total' => array_sum(array_column($rs, 'total')), 'nickname' => '', 'name' => ''];
+        $list[] = ['addtime' => '汇总', 'itemid' => 0, 'createrid' => 0, 'num' => array_sum(array_column($list, 'num')), 'total' => array_sum(array_column($list, 'total')), 'nickname' => '', 'name' => ''];
 
-        return app_show(0, '请求成功', array_merge($rs));
+        return app_show(0, '请求成功', ['list'=>$list,'count'=>$count]);
 
     }
 
@@ -271,6 +311,8 @@ class Report extends Base
             'token',
             'start_date' => date('Y-m-d'),
             'end_date' => date('Y-m-d'),
+            'page'=>1,
+            'size'=>15
         ], 'post', 'trim');
 
         $val_params = Validate::rule([
@@ -280,6 +322,14 @@ class Report extends Base
 
         if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
 
+        $count = Db::name('purchease_order')
+//            ->field('DATE_FORMAT(addtime, "%Y-%m-%d") addtime,cgder_id,cgder,SUM(total_fee) total_fee,SUM(good_num) good_num,0 wait_total_fee,0 wait_good_num')
+            ->where('is_del', 0)
+            ->group('addtime,cgder_id')
+            ->order('addtime,cgder_id')
+            ->whereBetween('addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59'])
+            ->count('id');
+
         $rs = Db::name('purchease_order')
             ->field('DATE_FORMAT(addtime, "%Y-%m-%d") addtime,cgder_id,cgder,SUM(total_fee) total_fee,SUM(good_num) good_num,status,0 wait_total_fee,0 wait_good_num')
             ->where('is_del', 0)
@@ -318,7 +368,7 @@ class Report extends Base
             }
         }
 
-        return app_show(0, '请求成功', $da);
+        return app_show(0, '请求成功', ['list'=>$da,'count'=>$count]);
 
     }