From 3d293d802a63e52c8979ea81e859ba64e376b48a Mon Sep 17 00:00:00 2001 From: lyt Date: Wed, 28 Mar 2018 18:31:54 +0800 Subject: [PATCH] =?UTF-8?q?ipaylinks=20excel=E5=AF=BC=E5=87=BA=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E4=BA=A4=E6=98=93=E5=8F=B7=E7=9A=84;=20HT=E4=B8=AD?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=B8=8D=E5=88=B0=E8=AE=B0=E5=BD=95=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webht/third_party/pay/controllers/report.php | 97 ++++++++++++++++++- webht/third_party/pay/models/Report_model.php | 72 ++++++++++++++ 2 files changed, 168 insertions(+), 1 deletion(-) diff --git a/webht/third_party/pay/controllers/report.php b/webht/third_party/pay/controllers/report.php index 95d8df37..6464075c 100644 --- a/webht/third_party/pay/controllers/report.php +++ b/webht/third_party/pay/controllers/report.php @@ -16,13 +16,108 @@ class Report extends CI_Controller } /*! - * 差集: 对账单 > HT收款记录 + * 差集: * @author LYT * @date 2018-03-26 * @param POST 时间区间 */ public function unstore_statement($begin_m=NULL, $end_m=NULL) { + /*! 对账单 > HT收款记录 */ + $ret = $this->Report_model->ipaylinks_abnormal_in_HT(); + $no_dealId = $this->Report_model->HT_no_dealId(); + if (empty($ret) && empty($no_dealId)) { + echo "Not Found records."; + return; + } + $this->load->library('PHPExcel'); + $objPHPExcel = new PHPExcel(); + $objPHPExcel->setActiveSheetIndex(0); + //set width + $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(5); + $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15); + $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15); + $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20); + $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15); + $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15); + $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(15); + $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(15); + $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(15); + $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(15); + $objPHPExcel->getActiveSheet()->getColumnDimension('k')->setWidth(30); + $objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(20); + // 对齐 + $objPHPExcel->getActiveSheet()->getStyle('F')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); + $objPHPExcel->getActiveSheet()->getStyle('G')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); + $objPHPExcel->getActiveSheet()->getStyle('I')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); + $objPHPExcel->getActiveSheet()->getStyle('J')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); + + /** HT中没有找到相应交易号的记录, 对账单中存在 */ + $objPHPExcel->getActiveSheet() + ->SetCellValue('A1', 'HT中没有找到相应交易号的记录, 对账单中存在'); + // 表标题行 + $objPHPExcel->getActiveSheet() + ->SetCellValue('A2', '#') + ->SetCellValue('B2', '渠道') + ->SetCellValue('C2', '对账类型') + ->SetCellValue('D2', '订单号') + ->SetCellValue('E2', '申请币种') + ->SetCellValue('F2', '申请金额') + ->SetCellValue('G2', '清算汇率') + ->SetCellValue('H2', '入账币种') + ->SetCellValue('I2', '入账金额') + ->SetCellValue('J2', '手续费') + ->SetCellValue('K2', '交易号') + ->SetCellValue('L2', '交易日期') + ->SetCellValue('M2', '备注'); + $rowCount = 3; + foreach ($ret as $key => $row) { + $objPHPExcel->getActiveSheet() + ->SetCellValue('A'.$rowCount, ($rowCount-1)) + ->setCellValueExplicit('B'.$rowCount, "iPaylinks",PHPExcel_Cell_DataType::TYPE_STRING) + ->setCellValueExplicit('C'.$rowCount, $row->PR_dealType,PHPExcel_Cell_DataType::TYPE_STRING) + ->setCellValueExplicit('D'.$rowCount, $row->PR_orderId,PHPExcel_Cell_DataType::TYPE_STRING) + ->setCellValueExplicit('E'.$rowCount, $row->PR_currency,PHPExcel_Cell_DataType::TYPE_STRING) + ->setCellValueExplicit('F'.$rowCount, number_format($row->PR_amount, 2, ".", ""),PHPExcel_Cell_DataType::TYPE_STRING) + ->setCellValueExplicit('G'.$rowCount, number_format($row->PR_rate, 2, ".", ""),PHPExcel_Cell_DataType::TYPE_STRING) + ->setCellValueExplicit('H'.$rowCount, $row->PR_entryCurrency,PHPExcel_Cell_DataType::TYPE_STRING) + ->setCellValueExplicit('I'.$rowCount, number_format($row->PR_entryAmount, 2, ".", ""),PHPExcel_Cell_DataType::TYPE_STRING) + ->setCellValueExplicit('J'.$rowCount, number_format($row->PR_fee, 2, ".", ""),PHPExcel_Cell_DataType::TYPE_STRING) + ->setCellValueExplicit('K'.$rowCount, $row->PR_AccreditNo,PHPExcel_Cell_DataType::TYPE_STRING) + ->SetCellValue('L'.$rowCount, $row->PR_paymentTime); + $rowCount++; + } + $rowCount++; // 隔一行 + + /** HT手动录入的 */ + $objPHPExcel->getActiveSheet() + ->SetCellValue('A'.$rowCount, 'HT系统中缺少交易号的,手动录入的') + ->SetCellValue('M'.$rowCount, '备注'); + $rowCount++; + foreach ($no_dealId as $key2 => $row2) { + $objPHPExcel->getActiveSheet() + ->SetCellValue('A'.$rowCount, ($key2+1)) + ->setCellValueExplicit('B'.$rowCount, "iPaylinks",PHPExcel_Cell_DataType::TYPE_STRING) + // ->setCellValueExplicit('C'.$rowCount, "",PHPExcel_Cell_DataType::TYPE_STRING) + ->setCellValueExplicit('D'.$rowCount, $row2->COLI_ID,PHPExcel_Cell_DataType::TYPE_STRING) + ->setCellValueExplicit('E'.$rowCount, $row2->GAI_SQJECurrency,PHPExcel_Cell_DataType::TYPE_STRING) + ->setCellValueExplicit('F'.$rowCount, number_format($row2->GAI_SQJE, 2, ".", ""),PHPExcel_Cell_DataType::TYPE_STRING) + // ->setCellValueExplicit('G'.$rowCount, number_format($row2->PR_rate, 2, ".", ""),PHPExcel_Cell_DataType::TYPE_STRING) + // ->setCellValueExplicit('H'.$rowCount, $row2->PR_entryCurrency,PHPExcel_Cell_DataType::TYPE_STRING) + // ->setCellValueExplicit('I'.$rowCount, number_format($row2->PR_entryAmount, 2, ".", ""),PHPExcel_Cell_DataType::TYPE_STRING) + // ->setCellValueExplicit('J'.$rowCount, number_format($row2->PR_fee, 2, ".", ""),PHPExcel_Cell_DataType::TYPE_STRING) + // ->setCellValueExplicit('K'.$rowCount, $row2->PR_AccreditNo,PHPExcel_Cell_DataType::TYPE_STRING) + ->SetCellValue('L'.$rowCount, $row2->GAI_AccountDate) + ->SetCellValue('M'.$rowCount, $row2->GAI_Memo); + $rowCount++; + } + + $filename = "export_ipaylinks_abnormal_" . date('Y-m-d'); + header('Content-Type: application/vnd.ms-excel'); + header('Content-Disposition: attachment;filename="' . $filename . '.xls"'); + header('Cache-Control: max-age=0'); + $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); + $objWriter->save('php://output'); } /*! diff --git a/webht/third_party/pay/models/Report_model.php b/webht/third_party/pay/models/Report_model.php index 6f221bfa..30efa3ad 100644 --- a/webht/third_party/pay/models/Report_model.php +++ b/webht/third_party/pay/models/Report_model.php @@ -58,4 +58,76 @@ class Report_model extends CI_Model { return $query; } + /*! + * 在ipaylinks对账单中, 未找到对应的HT订单记录 + * * 金额不相等(包括退款后金额不等) + * * HT中没有自动录入的收款记录, 收款记录被删除或没有成功录入(需要查询问题) + * @author LYT + * @date 2018-03-28 + * @return [type] [description] + */ + public function ipaylinks_abnormal_in_HT() + { + $sql = "SELECT PR.* + FROM [InfoManager].[dbo].[PaymentReports] pr + WHERE pr.PR_dealType='清算' and PR_payType='15018' + EXCEPT + SELECT PR.* + FROM [InfoManager].[dbo].[PaymentReports] pr + INNER JOIN Tourmanager.dbo.BIZ_GroupAccountInfo bgai ON bgai.GAI_COLI_ID=pr.PR_orderId + AND pr.PR_dealType='清算' + INNER JOIN Tourmanager.dbo.BIZ_ConfirmLineInfo bcoli ON bcoli.COLI_SN=bgai.GAI_COLI_SN + AND bcoli.COLI_Department = 16 WHERE PR_amount=bgai.GAI_SQJE and PR_payType='15018' + AND GAI_SQJECurrency=PR_currency + EXCEPT + SELECT PR.* + FROM Tourmanager.dbo.GroupAccountInfo gai + INNER JOIN Tourmanager.dbo.ConfirmLineInfo coli ON coli.COLI_SN=gai.GAI_COLI_SN + AND coli.COLI_Department <> 16 + INNER JOIN [InfoManager].[dbo].[PaymentReports] pr ON gai.GAI_AccreditNo=pr.PR_AccreditNo WHERE pr.PR_dealType='清算' + AND PR_amount = gai.GAI_SQJE and PR_payType='15018' + EXCEPT + SELECT PR.* + FROM Tourmanager.dbo.BIZ_GroupAccountInfo bgai + INNER JOIN Tourmanager.dbo.BIZ_ConfirmLineInfo bcoli ON bcoli.COLI_SN=bgai.GAI_COLI_SN + AND bcoli.COLI_Department <> 16 + INNER JOIN [InfoManager].[dbo].[PaymentReports] pr ON bgai.GAI_AccreditNo=pr.PR_AccreditNo WHERE pr.PR_dealType='清算' + AND PR_amount = bgai.GAI_SQJE and PR_payType='15018' + ORDER BY PR_paymentTime asc "; + $query = $this->INFO->query($sql); + return $query->result(); + } + + public function HT_no_dealId() + { + $sql = "SELECT GAI_Type,Bgai1.GAI_SQJECurrency,GAI_SQJE, + Bgai1.GAI_Memo , + '商务--B' AS orderType, + bcoli.COLI_SN, + bcoli.COLI_ID AS COLI_ID, + Bgai1.GAI_AccountDate + FROM Tourmanager.dbo.BIZ_GroupAccountInfo Bgai1 + INNER JOIN Tourmanager.dbo.BIZ_ConfirmLineInfo bcoli ON bgai1.GAI_COLI_SN=bcoli.COLI_SN + WHERE Bgai1.GAI_Type IN ('15018') + AND Bgai1.GAI_AccreditNo IS NULL + AND Bgai1.GAI_SQJE > 0 + AND bcoli.COLI_Department <> 16 + UNION + SELECT GAI_Type,gai1.GAI_SQJECurrency,GAI_SQJE, + gai1.GAI_Memo , + '传统--T' AS orderType, + coli.COLI_SN, + coli.COLI_ID AS COLI_ID, + gai1.GAI_AccountDate + FROM Tourmanager.dbo.GroupAccountInfo gai1 + INNER JOIN Tourmanager.dbo.ConfirmLineInfo coli ON gai1.GAI_COLI_SN=coli.COLI_SN + WHERE gai1.GAI_Type IN ('15018') + AND gai1.GAI_AccreditNo IS NULL + AND gai1.GAI_SQJE > 0 + AND coli.COLI_Department <> 16 + ORDER BY GAI_AccountDate "; + $query = $this->INFO->query($sql); + return $query->result(); + } + }