Files
2021-01-12 22:04:24 +08:00

146 lines
5.8 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Application name="lps" trace="yes">
<!-- 结算进度 -->
<Transaction code="2150601" log_switch="1" trace="yes" desc="结算进度详情">
<!-- 查主账户号 -->
<DynSentence name="QRY_URMTMINF_ACNO">
<Sentence>
SELECT CLR_AC FROM URMTMINF WHERE MERC_ID=?
</Sentence>
<Fields>CLR_MERC|</Fields>
</DynSentence>
<!-- 全部详情 -->
<DynSentence name="QRY_CLR_DETAIL">
<Sentence>
SELECT AC_DT AS CLR_DT,SYS_DT AS TX_DT,SYS_TM AS TX_TM,'' AS POS_BAT_NO,
'' AS POS_JRN,'' AS POS_TRM,
CASE
WHEN TX_TYP='30' AND BUS_TYP='0222' THEN 'H'
ELSE TX_TYP END
AS TX_TYP,
CASE
WHEN TX_TYP='30' AND BUS_TYP='0222' THEN HOLD_AMT
ELSE DR_AMT END
AS RVS_AMT,CR_AMT AS TX_AMT,FEE_AMT,'' AS SUB_AC,' ' AS RFD_FEE_PRC_MOD
FROM ACMTCDDT
WHERE AC_NO=? AND AC_DT BETWEEN ? AND ?
AND (TX_TYP!='20' AND TX_TYP!='02' AND TX_TYP!='31' AND TX_TYP!='34'
AND TX_TYP!='22' OR (TX_TYP='43' AND BUS_TYP!='0242'))
UNION ALL
SELECT CLR_DT,TX_DT,TX_TM,POS_BAT_NO,POS_JRN,POS_TRM,
'N' AS TX_TYP, 0 AS RVS_AMT,TX_AMT,FEE_AMT,
SUBSTR(SUB_AC,0,6)||'**********'||SUBSTR(SUB_AC,17,4) AS SUB_AC,' ' AS RFD_FEE_PRC_MOD
FROM LPSTOFP
WHERE CLR_MERC=? AND AC_DT BETWEEN ? AND ? AND LP_ORD_STS!='C' and PROC_RSL='00' AND CLR_STS='1'
UNION ALL
SELECT AC_DT AS CLR_DT,TX_DT,TX_TM,'' AS POS_BAT_NO, POS_JRN, POS_TRM, 'R' AS TX_TYP, TX_AMT AS RVS_AMT,0 AS TX_AMT, FEE_AMT,
SUBSTR(SUB_AC,0,6)||'**********'||SUBSTR(SUB_AC,17,4) AS SUB_AC, RFD_FEE_PRC_MOD
FROM LPSTRVS
WHERE CLR_MERC=? AND AC_DT BETWEEN ? AND ? AND RVS_FLG!='C' AND BIL_STS='1'
ORDER BY TX_TYP, CLR_DT,POS_BAT_NO,POS_JRN DESC
</Sentence>
<Fields>CLR_AC|START_DT|LAST_DT|CLR_MERC|START_DT|LAST_DT|CLR_MERC|START_DT|LAST_DT</Fields>
</DynSentence>
<!-- 统计汇总 -->
<!-- 统计收支明细表 -->
<DynSentence name="QRY_ACMTCDDT_SUM">
<Sentence>
SELECT SUM(DR_AMT) AS CLR_AMT1,SUM(CR_AMT) AS CLR_AMT2,SUM(FEE_AMT) AS CLR_FEE,COUNT(JRN_NO) AS DCR_NUM
FROM ACMTCDDT
WHERE AC_NO=? AND AC_DT BETWEEN ? AND ?
AND (TX_TYP!='20' AND TX_TYP!='02' AND TX_TYP!='22' AND TX_TYP!='34' AND TX_TYP!='31'
OR (TX_TYP='43' AND BUS_TYP!='0242'))
</Sentence>
<Fields>CLR_AC|START_DT|LAST_DT|</Fields>
</DynSentence>
<!-- 统计消费 -->
<DynSentence name="QRY_LPSTOFP_SUM">
<Sentence>
SELECT SUM(TX_AMT) AS CSM_AMT,SUM(FEE_AMT) AS CSM_FEE,COUNT(ORD_NO) AS CSM_NUM
FROM LPSTOFP
WHERE CLR_MERC=? AND AC_DT BETWEEN ? AND ? AND PROC_RSL='00' AND LP_ORD_STS!='C' AND CLR_STS='1'
</Sentence>
<Fields>CLR_MERC|START_DT|LAST_DT|</Fields>
</DynSentence>
<!-- 统计退货 -->
<DynSentence name="QRY_LPSTRVS_SUM">
<Sentence>
SELECT SUM(TX_AMT) AS RVS_AMT,
SUM(
CASE RFD_FEE_PRC_MOD
WHEN '1' THEN 0
ELSE FEE_AMT END
) AS RVS_FEE,COUNT(JRN_NO) AS RVS_NUM
FROM LPSTRVS
WHERE CLR_MERC=? AND AC_DT BETWEEN ? AND ? AND RVS_FLG!='C' AND BIL_STS='1'
</Sentence>
<Fields>CLR_MERC|START_DT|LAST_DT|</Fields>
</DynSentence>
<FlowCtrl>
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_URMTMINF_ACNO" />
</Exec>
<Exec func="PUB:DBMultiQueryPage">
<Arg name="PageNo" value="$PAG_NO"/>
<Arg name="SqlCmd" value="QRY_CLR_DETAIL"/>
<Arg name="RecNumPerPage" value="$PAG_NUM"/>
</Exec>
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_ACMTCDDT_SUM" />
</Exec>
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_LPSTOFP_SUM" />
</Exec>
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_LPSTRVS_SUM" />
</Exec>
<!-- 处理计算汇总 -->
<If condition="ISNULL($CLR_AMT1)">
<Set>CLR_AMT1=0</Set>
</If>
<If condition="ISNULL($CLR_AMT2)">
<Set>CLR_AMT2=0</Set>
</If>
<If condition="ISNULL($CSM_AMT)">
<Set>CSM_AMT=0</Set>
</If>
<If condition="ISNULL($RVS_AMT)">
<Set>RVS_AMT=0</Set>
</If>
<If condition="ISNULL($RVS_FEE)">
<Set>RVS_FEE=0</Set>
</If>
<If condition="ISNULL($CSM_FEE)">
<Set>CSM_FEE=0</Set>
</If>
<If condition="ISNULL($CLR_FEE)">
<Set>CLR_FEE=0</Set>
</If>
<Set>S_AMT=FSUB($CLR_AMT2,$CLR_AMT1,2)</Set> <!-- 消费和退货以外的不考虑手续费金额 -->
<Set>E_AMT=FSUB($CSM_AMT,$RVS_AMT,2)</Set> <!-- 消费和退货金额 -->
<Set>S_RAMT=$RVS_AMT</Set>
<Set>S_FEE=FADD($CSM_FEE,$CLR_FEE,2)</Set>
<Set>T_FEE=FSUB($S_FEE,$RVS_FEE,2)</Set> <!-- 应结手续费 -->
<Set>S_AMT=FADD($S_AMT,$E_AMT,2)</Set> <!-- 不考虑手续费的总金额 -->
<Set>T_AMT=FSUB($S_AMT,$T_FEE,2)</Set> <!-- 应结金额 -->
<Set>TOTAL_NUM=ADD($CSM_NUM,$RVS_NUM)</Set> <!-- 总笔数 -->
<Set>TOTAL_NUM=ADD($TOTAL_NUM,$DCR_NUM)</Set>
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00000"/>
</Exec>
</FlowCtrl>
</Transaction>
</Application>