You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
information-system/webht/third_party/pay/models/Report_model.php

134 lines
5.2 KiB
PHP

<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Report_model extends CI_Model {
function __construct() {
parent::__construct();
$this->INFO = $this->load->database('INFO', TRUE);
}
/** 插入对账单记录 */
public function new_report($warrant_arr = array())
{
$sql = "INSERT INTO PaymentReports
(
PR_payType
,PR_orderType
,PR_COLI_SN
,PR_orderId
,PR_dealType
,PR_AccreditNo
,PR_currency
,PR_amount
,PR_rate
,PR_entryCurrency
,PR_entryAmount
,PR_fee
,PR_status
,PR_buyerName
,PR_buyerEmail
,PR_paymentTime
,PR_time
)
VALUES
(?,?,?,?,N?,?,?,?,?,?,?,?,N?,N?,N?,?
,GETDATE()
)";
$query = $this->INFO->query($sql,array(
$warrant_arr["PR_payType"]
,$warrant_arr["PR_orderType"]
,$warrant_arr["PR_COLI_SN"]
,$warrant_arr["PR_orderId"]
,$warrant_arr["PR_dealType"]
,$warrant_arr["PR_AccreditNo"]
,$warrant_arr["PR_currency"]
,$warrant_arr["PR_amount"]
,$warrant_arr["PR_rate"]
,$warrant_arr["PR_entryCurrency"]
,$warrant_arr["PR_entryAmount"]
,$warrant_arr["PR_fee"]
,$warrant_arr["PR_status"]
,$warrant_arr["PR_buyerName"]
,$warrant_arr["PR_buyerEmail"]
,$warrant_arr["PR_paymentTime"]
));
return $query;
}
/*!
* 在ipaylinks对账单中, 未找到对应的HT订单记录
* * 金额不相等(包括退款后金额不等)
* * HT中没有自动录入的收款记录, 收款记录被删除或没有成功录入(需要查询问题)
* @author LYT <lyt@hainatravel.com>
* @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();
}
}