perf: 每月20号, 发送退款调账记录给财务; 修复PayPal重复

webht/payment
Lei OT 9 months ago
parent f226619289
commit 991d8d2e96

@ -429,36 +429,67 @@ class Online_payment_account_model extends CI_Model {
{
$ret = array();
$send_flag = "send-to-finance";
$paypal_sql = "SELECT 'paypal' as payment_type,
pn_sn note_sn,pn_txn_id transaction_id,
(select DEI_DepartmentName from OperatorInfo inner join DepartmentInfo on OPI_DEI_SN=DEI_SN
where OPI_SN=ISNULL(table_t.COLI_OPI_ID, isnull(table_b.COLI_OPI_ID,table_app.COLI_OPI_ID))
) as department,
case when ISNULL(table_t.COLI_GRI_SN,table_b.COLI_GRI_SN) is null
then isnull(table_app.COLI_GroupCode,table_app.COLI_ID)
else (select GRI_Name from GRoupInfo
where gri_sn=ISNULL(table_t.COLI_GRI_SN,table_b.COLI_GRI_SN)
) end as gri_name,
pn.pn_payment_date payment_date,
pn.pn_mc_gross amount,pn_mc_currency currency,
isnull(table_t.GAI_SSJE,isnull(table_b.GAI_SSJE,table_app.GAI_SSJE)) amount_CNY,
pn_payer payer,pn_payer_email payer_email
from paypal_note pn
left join (
select gai.GAI_SSJE,gai.GAI_AccreditNo ,coli.COLI_GRI_SN,coli.COLI_OPI_ID,coli.COLI_SN
from GroupAccountInfo gai inner join ConfirmLineInfo coli on coli.COLI_SN=gai.GAI_COLI_SN
) as table_t on table_t.GAI_AccreditNo=pn.pn_txn_id
left join (
select bgai.GAI_AccreditNo,bgai.GAI_SSJE ,bcoli.COLI_GRI_SN,bcoli.COLI_OPI_ID,bcoli.COLI_SN
from BIZ_GroupAccountInfo bgai inner join BIZ_ConfirmLineInfo bcoli on bcoli.COLI_SN=bgai.GAI_COLI_SN
) as table_b on table_b.GAI_AccreditNo=pn.pn_txn_id
left join (
select bgai.GAI_AccreditNo,bgai.GAI_SSJE,bgai.GAI_SQJE,bgai.GAI_SQJECurrency ,bcoli.COLI_GRI_SN,bcoli.COLI_OPI_ID,bcoli.COLI_SN ,bcoli.COLI_id ,bcoli.COLI_GroupCode
from BIZ_GroupAccountInfo bgai inner join BIZ_ConfirmLineInfo bcoli on bcoli.COLI_SN=bgai.GAI_COLI_SN
) as table_app on table_app.COLI_ID=REPLACE ( pn_invoice , '_B' , '' )
and pn.pn_mc_gross=table_app.GAI_SQJE and pn.pn_mc_currency=table_app.GAI_SQJECurrency
where pn_send='$send_flag'
order by department ";
$paypal_sql = "WITH pn
AS (
SELECT pn_txn_id,pn_invoice,pn_mc_gross,pn_mc_currency,pn_payer_email,pn_payer,pn_payment_date,pn_datetime,pn_sn
,ROW_NUMBER() OVER (
PARTITION BY pn_txn_id ORDER BY pn_payer_email DESC
) AS rn
FROM paypal_note p1
WHERE p1.pn_send = '$send_flag'
)
SELECT 'paypal' AS payment_type,pn_sn note_sn,pn_txn_id transaction_id
,(
SELECT DEI_DepartmentName
FROM OperatorInfo
INNER JOIN DepartmentInfo ON OPI_DEI_SN = DEI_SN
WHERE OPI_SN = ISNULL(table_t.COLI_OPI_ID, table_b.COLI_OPI_ID)
) AS department
,CASE
WHEN ISNULL(table_t.COLI_GRI_SN, table_b.COLI_GRI_SN) IS NULL
THEN ''
ELSE (
SELECT GRI_Name
FROM GRoupInfo
WHERE gri_sn = ISNULL(table_t.COLI_GRI_SN, table_b.COLI_GRI_SN)
)
END AS gri_name
,pn.pn_payment_date payment_date
,pn.pn_mc_gross amount
,pn_mc_currency currency
,isnull(table_t.GAI_SSJE, table_b.GAI_SSJE) amount_CNY
,pn_payer payer
,pn_payer_email payer_email
FROM pn
LEFT JOIN (
SELECT SUM( gai.GAI_SSJE) GAI_SSJE
,gai.GAI_AccreditNo
,coli.COLI_GRI_SN
,coli.COLI_OPI_ID
,coli.COLI_SN
FROM GroupAccountInfo gai
INNER JOIN ConfirmLineInfo coli ON coli.COLI_SN = gai.GAI_COLI_SN
GROUP BY gai.GAI_AccreditNo
,coli.COLI_GRI_SN
,coli.COLI_OPI_ID
,coli.COLI_SN
) AS table_t ON table_t.GAI_AccreditNo = pn.pn_txn_id
LEFT JOIN (
SELECT bgai.GAI_AccreditNo
,sum(bgai.GAI_SSJE) GAI_SSJE
,bcoli.COLI_GRI_SN
,bcoli.COLI_OPI_ID
,bcoli.COLI_SN
FROM BIZ_GroupAccountInfo bgai
INNER JOIN BIZ_ConfirmLineInfo bcoli ON bcoli.COLI_SN = bgai.GAI_COLI_SN
GROUP BY bgai.GAI_AccreditNo
,bcoli.COLI_GRI_SN
,bcoli.COLI_OPI_ID
,bcoli.COLI_SN
) AS table_b ON table_b.GAI_AccreditNo = pn.pn_txn_id
WHERE pn.rn = 1
ORDER BY department ASC
,pn.payment_date DESC";
$ret = $paypal_list = $this->HT->query($paypal_sql)->result_array();
$ipaylinks_sql = "SELECT 'ipaylinks' as 'payment_type', IPL_sn note_sn,IPL_dealId transaction_id,
(select DEI_DepartmentName from OperatorInfo inner join DepartmentInfo on OPI_DEI_SN=DEI_SN

Loading…
Cancel
Save