wugg il y a 2 ans
Parent
commit
95700cfa51
3 fichiers modifiés avec 148 ajouts et 158 suppressions
  1. 143 156
      app/admin/controller/Export.php
  2. 2 1
      app/admin/controller/Payment.php
  3. 3 1
      app/command/Report.php

+ 143 - 156
app/admin/controller/Export.php

@@ -135,7 +135,9 @@ class Export extends BaseController
 		          a.inv_type 开票种类,
 		          a.open_type 开票方式,
 		          a.exam_remark 申请备注,
-		          a.remark 发票备注')
+		          a.remark 发票备注,
+		          if(f.cxCode="",f.sequenceNo,f.cxCode) 销售主单号,
+		          f.goodPrice 商品单价')
 		          ->leftJoin('invoice_pool_info b', 'a.invNo=b.invNo')
 		          ->leftJoin('invoice_ticket c', 'a.invNo=c.invNo AND c.type=0 AND c.status=1')
 		          ->leftJoin('invoice_good d', 'd.invNo=a.invNo')
@@ -181,68 +183,41 @@ class Export extends BaseController
 
         $invoiceType = config('invoiceType.invoiceName');//开票种类(发票类型)
 
-        $list = Db::name('pay_invoice')
-            ->alias('a')
-            ->leftJoin('pay b', 'a.payNo=b.payNo')
-            ->leftJoin('invoice_info c', 'c.hpNo=a.hpNo AND c.status=1')
-            ->field('"" 序号,a.payNo,a.hpNo,a.addtime,a.invoiceNumber,a.open_time,b.supplierName,a.invoiceType,a.status,a.updatetime,a.remark,c.item_list,c.total')
-            ->where($where)
-            ->order('a.addtime desc')
-            ->cursor();
+		$list = Db::name('pay_invoice')
+		          ->alias('a')
+		          ->leftJoin('pay b', 'a.payNo=b.payNo and b.status=2')
+		          ->leftJoin('invoice_info c', 'c.hpNo=a.hpNo AND c.status=1')
+		          ->field('"" 序号,
+		          a.payNo 对账编号,
+		          a.hpNo 回票申请编号,
+		          DATE_FORMAT(a.addtime,\'%Y\') 年,
+		          DATE_FORMAT(a.addtime,\'%m\') 月,
+		          a.invoiceNumber 发票号,
+		          c.total 总额,
+		          c.subtotal_amount 金额,
+		          c.subtotal_tax 税额,		          
+		          a.open_time 开票日期,
+		          b.supplierName 供应商,
+		          a.invoiceType 发票类型,
+		          "" as 业务类型,
+		          a.status 认证状态,
+		          a.updatetime 认证时间,
+		          a.remark 备注')
+		          ->where($where)
+		          ->order('a.addtime desc')
+		          ->cursor();
 
-        $data = [];
-        $i = 1;
-        foreach ($list as $item) {
-
-            if ($item['item_list']) {
-                $item_list = json_decode($item['item_list'], true);
-                foreach ($item_list as $val) {
-                    $tp = [
-                        '序号' => $i++,
-                        '回票申请编号' => $item['hpNo'],
-                        '对账编号' => $item['payNo'],
-                        '年' => date('Y', strtotime($item['addtime'])),
-                        '月' => date('m', strtotime($item['addtime'])),
-                        '发票号' => $item['invoiceNumber'],
-                        '开票日期' => $item['open_time'],
-                        '金额' => $val['amount'],
-                        '税额' => $val['tax'],
-                        '税率' => $val['tax_rate'],
-                        '总额' => $item['total'],
-                        '供应商' => $item['supplierName'],
-                        '业务类型' => '采购回票',
-                        '发票类型' => $invoiceType[$item['invoiceType']] ?? '',
-                        '认证状态' => $status[$item['status']] ?? '',
-                        '认证时间' => $item['updatetime'],
-                        '备注' => $item['remark'],
-                    ];
-
-                    yield  $tp;
-                }
-            } else {
-               $tp = [
-                    '序号' => $i++,
-                    '回票申请编号' => $item['hpNo'],
-                    '对账编号' => $item['payNo'],
-                    '年' => date('Y', strtotime($item['addtime'])),
-                    '月' => date('m', strtotime($item['addtime'])),
-                    '发票号' => $item['invoiceNumber'],
-                    '开票日期' => $item['open_time'],
-                    '金额' => '',
-                    '税额' => '',
-                    '税率' => '',
-                    '总额' => $item['total'],
-                    '供应商' => $item['supplierName'],
-                    '业务类型' => '采购回票',
-                    '发票类型' => $invoiceType[$item['invoiceType']] ?? '',
-                    '认证状态' => $status[$item['status']] ?? '',
-                    '认证时间' => $item['updatetime'],
-                    '备注' => $item['remark'],
-                ];
-                yield  $tp;
-            }
-        }
-    }
+		$i=1;
+		foreach ($list as $item) {
+				$item['序号'] = $i;
+				$item['业务类型'] = '采购回票';
+				$item['认证状态'] = $status[$item['认证状态']]??"";
+				$item['发票类型'] = $invoiceType[$item['发票类型']]??"";
+				$i++;
+				yield  $item;
+
+		}
+	}
 
     //资金认领导出
     public function orderPayExport()
@@ -331,19 +306,56 @@ class Export extends BaseController
         if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['a.check_time', 'between', [$param['start'] . ' 00:00:00', $param['end'] . ' 23:59:59']];
         if ($param['company'] != '') $where[] = ['b.companyNo', '=', $param['company']];
 
-        $data = Db::name('pay_invoice')
-            ->alias('a')
-            ->field('d.cgdTime 采购单下单日期,b.companyName 业务公司名称,b.companyNo 业务公司编号,a.hpNo 对账回票编号,a.payNo 对账单号,c.cgdNo 采购单编号,a.check_time 本次回票时间,a.invoiceNumber 发票号,a.inv_amount 本次回票金额,a.inv_subtotal_amount 不含税采购成本,
-            "" 税额,
-            "" 票面税率,
-            d.companyName 公司回票抬头,d.goodNo 商品编号,d.firstCat 一级分类,d.fundCode 核算码,d.goodName 商品名称,d.goodNum 商品数量,d.goodUnit 单位,d.cgdSource 采购单类型,d.ownerName 采购员,d.supplierName 供应商名称,d.supplierNo 供应商编号,d.goodType 商品类型,round(d.tax/100,2) 税率,d.packPrice 包装费,d.certPrice 证书费,d.markPrice 加标费,d.openPrice 开模费,d.costPrice 成本工艺费,d.deliveryPrice 物流费,d.barePrice 成本单价,d.diff_weight 工差,d.diff_fee 工差金额,d.goodPrice 单价,d.totalPrice 采购总货款,d.qrdCode 确认单编号,d.bkCode 备库编号,d.thNum 退货数量,d.th_fee 退货金额,e.item_list')
-            ->leftJoin('pay b', 'a.payNo=b.payNo')
-            ->leftJoin('pay_info c', 'c.payNo=a.payNo')
-            ->leftJoin('cgd_info d', 'd.sequenceNo=c.cgdNo')
-            ->leftJoin('invoice_info e', 'e.payNo=a.payNo')
-            ->where($where)
-            ->order(['a.id' => 'desc'])
-            ->cursor();
+		$data = Db::name('pay_invoice')
+		          ->alias('a')
+		          ->field('d.cgdTime 采购单下单日期,
+		          b.companyName 业务公司名称,
+		          b.companyNo 业务公司编号,
+		          a.hpNo 对账回票编号,
+		          a.payNo 对账单号,
+		          c.cgdNo 采购单编号,
+		          a.check_time 本次回票时间,
+		          a.invoiceNumber 发票号,
+		          a.inv_amount 本次回票金额,
+		          d.totalPrice 采购单回票金额,
+		          "" 不含税采购成本,
+	                "" 税额,
+                    d.companyName 公司回票抬头,
+                    d.goodNo 商品编号,
+                    d.firstCat 一级分类,
+                    d.fundCode 核算码,
+                    d.goodName 商品名称,
+                    d.goodNum 商品数量,
+                    d.goodUnit 单位,
+                    d.cgdSource 采购单类型,
+                    d.ownerName 采购员,
+                    d.supplierName 供应商名称,
+                    d.supplierNo 供应商编号,
+                    d.goodType 商品类型,
+                    round(d.tax/100,2) 税率,
+                    d.packPrice 包装费,
+                    d.certPrice 证书费,
+                    d.markPrice 加标费,
+                    d.openPrice 开模费,
+                    d.costPrice 成本工艺费,
+                    d.deliveryPrice 物流费,
+                    d.barePrice 成本单价,
+                    d.diff_weight 工差,
+                    d.diff_fee 工差金额,
+                    d.goodPrice 单价,
+                    d.totalPrice 采购总货款,
+                    d.qrdCode 确认单编号,
+                    d.bkCode 备库编号,
+                    d.thNum 退货数量,
+                    d.th_fee 退货金额,
+                    a.exam_remark 回票审核备注,
+                    a.remark 回票申请备注')
+		          ->leftJoin('pay b', 'a.payNo=b.payNo')
+		          ->leftJoin('pay_info c', 'c.payNo=a.payNo and c.status=1 and c.is_del=0')
+		          ->leftJoin('cgd_info d', 'd.sequenceNo=c.cgdNo')
+		          ->where($where)
+		          ->order(['a.id' => 'desc'])
+		          ->cursor();
 
         //采购单类型
         $cgdSource = [1 => '直接下单', 2 => '咨询', 3 => '项目', 4 => '平台', 5 => '有赞'];
@@ -352,30 +364,15 @@ class Export extends BaseController
 
 //        $list = [];
 
-        foreach ($data as $value) {
-            $value['采购单类型'] = $cgdSource[$value['采购单类型']] ?? '';
-            $value['商品类型'] = $goodType[$value['商品类型']] ?? '';
-
-            $item_list = json_decode($value['item_list'], true);
-
-            unset($value['item_list']);
-            foreach ($item_list as $item) {
-				$value['税额']= $item['tax'] ?? '';
-				$value['票面税率']= $item['tax_rate'] ?? '';
-//                $list = array_merge($value, [
-//                    '税额' => $item['tax'] ?? '',
-//                    '票面税率' => $item['tax_rate'] ?? '',
-//                ]);
-                yield $value;
-            }
-
-        }
-
-//        if (empty($list)) $list[] = ['导出数据为空' => ''];
-//
-//        excelExport('回票明细表', array_keys($list[0]), $list);
+		foreach ($data as $value) {
+			$value['采购单类型'] = $cgdSource[$value['采购单类型']] ?? '';
+			$value['商品类型'] = $goodType[$value['商品类型']] ?? '';
+			$value['不含税采购成本'] = round($value['采购总货款']/(1+$value['税率']),2) ;
+			$value['税额'] = round($value['不含税采购成本']*$value['税率'],2) ;
 
-    }
+			yield $value;
+		}
+	}
 
     //经营分析报表
     public function analysisExport()
@@ -398,9 +395,10 @@ class Export extends BaseController
             a.department 销售部门,
             a.ownerName 销售员,
             a.qrdSource 订单来源,
+            a.pay_source 支付来源,
             "" 活动类型,
             a.sequenceNo 确认单编号,
-            a.cxCode 销售订单号,
+            if(a.cxCode="",a.sequenceNo,a.cxCode) 销售订单号,
             b.bkCode 备库单编号,
             b.sequenceNo 采购单单号,
             a.platName 平台类型,
@@ -416,7 +414,7 @@ class Export extends BaseController
             a.goodUnit 单位,
             a.goodNum 下单数量,
             a.goodPrice 销售单价,
-            a.totalPrice 销售总额,
+            (a.totalPrice+a.th_fee) 销售总额,
             round(a.tax/100,2) 税点,
             b.ownerName 采购员,
             b.goodPrice 采购裸价,
@@ -427,7 +425,7 @@ class Export extends BaseController
             b.costPrice 工艺费,
             b.deliveryPrice 物流费,
             b.goodPrice 采购单价合计,
-            ifnull(b.totalPrice,a.total_origin_price) 采购总货款,
+            (ifnull(b.totalPrice,a.total_origin_price)+ifnull(b.th_fee,0)) 采购总货款,
             (a.totalPrice -ifnull(b.totalPrice,a.total_origin_price))  毛利润,
             round((a.totalPrice -ifnull(b.totalPrice,a.total_origin_price))/a.totalPrice,2) 毛利率,
             round(b.tax/100,2) 采购税点,
@@ -437,32 +435,24 @@ class Export extends BaseController
             b.sendType 发货方式,
             a.thNum 退货数量,
             a.fundCode 财务核算编码')
-            ->leftJoin('cgd_info b', 'b.qrdCode=a.sequenceNo and b.is_del=0')
-            ->where($where)
-            ->order(['a.id' => 'desc'])
-            ->cursor();
-
-        $list = [];
-
-        foreach ($data as $value) {
-            $value['订单来源'] = $this->qrdSource[$value['订单来源']] ?? '';
-            $value['库存性质'] = $this->qrdType[$value['库存性质']] ?? '';
-//            $value['开票状态'] = $this->inv_status[$value['开票状态']] ?? '';
-//            $value['回款状态'] = $this->pay_status[$value['回款状态']] ?? '';
-            $value['发货方式'] = $this->sendType[$value['发货方式']] ?? '';
-
-            $value['毛利润'] = round(bcsub($value['销售总额'], $value['采购总货款'], 3), 2);
-            $value['毛利率'] = $value['销售总额'] == 0 ? 0 : round(bcmul(bcsub(1, bcdiv($value['采购总货款'], $value['销售总额'], 5), 5), 100), 2) . '%';
-            $value['不含税采购成本'] = round(bcdiv($value['采购总货款'], bcadd(1,$value['采购税点']), 3), 2);
+		          ->leftJoin('cgd_info b', 'b.sequenceNo=a.cgdNo and b.is_del=0')
+		          ->where($where)
+		          ->order(['a.id' => 'desc'])
+		          ->cursor();
 
-           yield $value;
-        }
+		$list = [];
 
-//        if (empty($list)) $list[] = ['导出数据为空' => ''];
-//
-//        excelExport('经营分析报表', array_keys($list[0]), $list);
+		foreach ($data as $value) {
+			$value['订单来源'] = $this->qrdSource[$value['订单来源']] ?? '';
+			$value['库存性质'] = $this->qrdType[$value['库存性质']] ?? '';
+			$value['发货方式'] = $this->sendType[$value['发货方式']] ?? '';
+			$value['毛利润'] = round(bcsub($value['销售总额'], $value['采购总货款'], 3), 2);
+			$value['毛利率'] = $value['销售总额'] == 0 ? 0 : round(bcmul(bcsub(1, bcdiv($value['采购总货款'], $value['销售总额'], 5), 5), 100), 2) . '%';
+			$value['不含税采购成本'] = round(bcdiv($value['采购总货款'], bcadd(1,$value['采购税点']), 3), 2);
 
-    }
+			yield $value;
+		}
+	}
 
     //收入成本明细表
     public function orderInvExport()
@@ -474,21 +464,22 @@ class Export extends BaseController
         if (($param['start'] != '') && ($param['end'] != '')) $where[] = ['a.addtime', 'between', [$param['start'] . ' 00:00:00', $param['end'] . ' 23:59:59']];
         if ($param['company'] != '') $where[] = ['a.inv_out', '=', $param['company']];
 
-        $data = Db::name('invoice_pool')
-            ->alias('a')
-            ->field('
+		$data = Db::name('invoice_pool')
+		          ->alias('a')
+		          ->field('
             a.invNo 发票申请编号,
-            d.orderCode 确认单编号,
-            e.cxCode 销售主单编号,
+            m.orderCode 确认单编号,
+            if(e.cxCode="",m.orderCode,e.cxCode) 销售主单编号,
             e.qrdSource 销售来源,
             b.seller_title 销售方抬头,
             e.department 业务部门,
             e.ownerName 业务人员,
-           ifnull((SELECT goodNum from cfp_invoice_good w where w.invNo =a.invNo and w.orderCode=e.sequenceNo),"") 本次开票数量,
-            d.cancel_fee 本次开票金额,
+            m.goodNum 本次开票数量,
+            m.totalPrice 本次开票金额,
+            e.goodPrice 销售单价,
             c.open_date 本次开票时间,
             c.inv_number 发票号,
-            round(e.tax/100,2) 开票税点,
+            m.tax 开票税点,
             a.status 开票状态,
             e.customerName 客户名称,
             e.fundCode 财务核算码,
@@ -520,32 +511,28 @@ class Export extends BaseController
             f.thNum 退货数量,
             f.th_fee 退货金额            
             ')
-            ->leftJoin('invoice_pool_info b', 'b.invNo=a.invNo')
-            ->leftJoin('invoice_ticket c', 'c.invNo=a.invNo and c.type=0 and c.status=1')
-            ->leftJoin('assoc d', 'd.viceCode=a.invNo and d.type=1')
-            ->leftJoin('qrd_info e', 'e.sequenceNo=d.orderCode')
-            ->leftJoin('cgd_info f', 'f.qrdCode=d.orderCode')
-            ->leftJoin('invoice_return g', 'g.invNo=a.invNo and g.status=2')
-            ->where($where)
-            ->order(['a.id' => 'desc'])
-            ->cursor();
-
-        $list = [];
-
-        foreach ($data as $value) {
-            $value['开票状态'] = $this->invoice_pool_status[$value['开票状态']] ?? '';
-            $value['发货方式'] = $this->sendType[$value['发货方式']] ?? '';
-            $value['商品类型'] = $this->qrdType[$value['商品类型']] ?? '';
-            $value['退票状态'] = $this->invoice_return_status[$value['退票状态']] ?? '';
-            $value['销售来源'] = $this->qrdSource[$value['销售来源']] ?? '';
-            yield $value;
-        }
+		          ->leftJoin('invoice_pool_info b', 'b.invNo=a.invNo')
+		          ->leftJoin('invoice_ticket c', 'c.invNo=a.invNo and c.type=0 and c.status in (0,1,2,3)')
+		          ->leftJoin("invoice_good m","m.invNo=a.invNo and m.invtype=0 and m.is_del=0")
+//		          ->leftJoin('assoc d', 'd.viceCode=a.invNo and d.type=1')
+		          ->leftJoin('qrd_info e', 'e.sequenceNo=m.orderCode')
+		          ->leftJoin('cgd_info f', 'f.sequenceNo=e.cgdNo')
+		          ->leftJoin('invoice_return g', 'g.invNo=a.invNo and g.status=2')
+		          ->where($where)
+		          ->order(['a.id' => 'desc'])
+		          ->cursor();
 
-//        if (empty($list)) $list[] = ['导出数据为空' => ''];
-//
-//        excelExport('收入成本明细表', array_keys($list[0]), $list);
+		$list = [];
 
-    }
+		foreach ($data as $value) {
+			$value['开票状态'] = $this->invoice_pool_status[$value['开票状态']] ?? '';
+			$value['发货方式'] = $this->sendType[$value['发货方式']] ?? '';
+			$value['商品类型'] = $this->qrdType[$value['商品类型']] ?? '';
+			$value['退票状态'] = $this->invoice_return_status[$value['退票状态']] ?? '';
+			$value['销售来源'] = $this->qrdSource[$value['销售来源']] ?? '';
+			yield $value;
+		}
+	}
 
     //应收台账表
     public function standingBookExport()

+ 2 - 1
app/admin/controller/Payment.php

@@ -1384,12 +1384,13 @@ class Payment extends BaseController
         $list = Db::name("pay_invoice")
             ->alias("a")
             ->leftJoin("pay b", "a.payNo=b.payNo")
-            ->field("a.*")
+            ->field("a.*,b.supplierNo,b.supplierName,b.companyName,b.companyNo")
             ->where($condition)
             ->page($page, $size)
             ->order("addtime desc")
             ->select()
             ->toArray();
+
         foreach ($list as &$value){
             $invoinfo =Db::name("invoice_info")->where(["hpNo"=>$value['hpNo'],"status"=>1])->find();
             $value['buyer_name'] = $invoinfo['buyer_name']??"";

+ 3 - 1
app/command/Report.php

@@ -184,7 +184,9 @@ class Report extends Command
 		          a.inv_type 开票种类,
 		          a.open_type 开票方式,
 		          a.exam_remark 申请备注,
-		          a.remark 发票备注')
+		          a.remark 发票备注,
+		          if(f.cxCode="",f.sequenceNo,f.cxCode) 销售主单号,
+		          f.goodPrice 商品单价')
 		          ->leftJoin('invoice_pool_info b', 'a.invNo=b.invNo')
 		          ->leftJoin('invoice_ticket c', 'a.invNo=c.invNo AND c.type=0 AND c.status=1')
 		          ->leftJoin('invoice_good d', 'd.invNo=a.invNo')