228 lines
9.9 KiB
XML
228 lines
9.9 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<Application name="lps" trace="yes">
|
|
<!-- 商户对账 -->
|
|
<Transaction code="2151020" log_switch="1" trace="yes" desc="商户对账">
|
|
<!-- 清分日期查 -->
|
|
<!-- 查询出所有分店基本信息记录 -->
|
|
<DynSentence name="QRY_SUBMERC_REC">
|
|
<Sentence>
|
|
SELECT DISTINCT MERC_ID,MERC_ABBR
|
|
FROM LPSTOFP
|
|
WHERE (CLR_MERC=? OR MERC_ID= ?) AND (AC_DT BETWEEN ? AND ? OR RFD_DT BETWEEN ? AND ?)
|
|
AND LP_ORD_STS IN ('N','R','A') AND PROC_RSL='00' AND CLR_STS='1'
|
|
ORDER BY MERC_ID ASC
|
|
</Sentence>
|
|
<Fields>CLR_MERC|CLR_MERC|BEG_DT|END_DT|BEG_DT|END_DT</Fields>
|
|
</DynSentence>
|
|
|
|
<!-- 查询消费记录 -->
|
|
<DynSentence name="QRY_CONSUME_REC">
|
|
<Sentence>
|
|
SELECT MERC_ID,SUM(FEE_AMT) AS CSM_FEE,SUM(TX_AMT) AS CSM_AMT,COUNT(ORD_NO) AS CSM_NUM
|
|
FROM LPSTOFP
|
|
WHERE (CLR_MERC=? OR MERC_ID= ?) AND AC_DT BETWEEN ? AND ?
|
|
AND LP_ORD_STS!='C' AND PROC_RSL='00' AND CLR_STS='1'
|
|
GROUP BY MERC_ID
|
|
ORDER BY MERC_ID ASC
|
|
</Sentence>
|
|
<Fields>CLR_MERC|CLR_MERC|BEG_DT|END_DT|</Fields>
|
|
</DynSentence>
|
|
|
|
<!-- 查询退货记录 -->
|
|
<DynSentence name="QRY_REVERT_REC">
|
|
<Sentence>
|
|
SELECT MERC_ID, SUM(TX_AMT) AS RVS_AMT,COUNT(JRN_NO) AS RVS_NUM,
|
|
SUM(
|
|
CASE RFD_FEE_PRC_MOD
|
|
WHEN '1' THEN 0
|
|
ELSE FEE_AMT END
|
|
) AS RVS_FEE
|
|
FROM LPSTRVS
|
|
WHERE (CLR_MERC=? OR MERC_ID= ?) AND AC_DT BETWEEN ? AND ?
|
|
AND BIL_STS='1' AND RVS_FLG='R'
|
|
GROUP BY MERC_ID
|
|
ORDER BY MERC_ID ASC
|
|
</Sentence>
|
|
<Fields>CLR_MERC|CLR_MERC|BEG_DT|END_DT|</Fields>
|
|
</DynSentence>
|
|
|
|
<!-- 交易日期查 -->
|
|
<!-- 查询出所有分店基本信息记录 -->
|
|
<DynSentence name="QRY_SUBMERC_REC_TX">
|
|
<Sentence>
|
|
SELECT DISTINCT MERC_ID,MERC_ABBR
|
|
FROM LPSTOFP
|
|
WHERE (CLR_MERC=? OR MERC_ID= ?) AND (TX_DT BETWEEN ? AND ? OR RFD_DT BETWEEN ? AND ?)
|
|
AND LP_ORD_STS IN ('N','R','A') AND PROC_RSL='00' AND CLR_STS='1'
|
|
ORDER BY MERC_ID ASC
|
|
</Sentence>
|
|
<Fields>CLR_MERC|CLR_MERC|BEG_DT|END_DT|BEG_DT|END_DT</Fields>
|
|
</DynSentence>
|
|
|
|
<!-- 查询消费记录 -->
|
|
<DynSentence name="QRY_CONSUME_REC_TX">
|
|
<Sentence>
|
|
SELECT MERC_ID,SUM(FEE_AMT) AS CSM_FEE,SUM(TX_AMT) AS CSM_AMT,COUNT(ORD_NO) AS CSM_NUM
|
|
FROM LPSTOFP
|
|
WHERE (CLR_MERC=? OR MERC_ID= ?) AND TX_DT BETWEEN ? AND ?
|
|
AND LP_ORD_STS!='C' AND PROC_RSL='00' AND CLR_STS='1'
|
|
GROUP BY MERC_ID
|
|
ORDER BY MERC_ID ASC
|
|
</Sentence>
|
|
<Fields>CLR_MERC|CLR_MERC|BEG_DT|END_DT|</Fields>
|
|
</DynSentence>
|
|
|
|
<!-- 查询退货记录 -->
|
|
<DynSentence name="QRY_REVERT_REC_TX">
|
|
<Sentence>
|
|
SELECT MERC_ID, SUM(TX_AMT) AS RVS_AMT,COUNT(JRN_NO) AS RVS_NUM,
|
|
SUM(
|
|
CASE RFD_FEE_PRC_MOD
|
|
WHEN '1' THEN 0
|
|
ELSE FEE_AMT END
|
|
) AS RVS_FEE
|
|
FROM LPSTRVS
|
|
WHERE (CLR_MERC=? OR MERC_ID= ?) AND TX_DT BETWEEN ? AND ?
|
|
AND BIL_STS='1' AND RVS_FLG='R'
|
|
GROUP BY MERC_ID
|
|
ORDER BY MERC_ID ASC
|
|
</Sentence>
|
|
<Fields>CLR_MERC|CLR_MERC|BEG_DT|END_DT|</Fields>
|
|
</DynSentence>
|
|
|
|
<FlowCtrl>
|
|
|
|
<!-- 清分日期查 -->
|
|
<If condition="IS_EQUAL_STRING($DT_TYP,A)">
|
|
<!-- 用翻页组件读取商户信息 -->
|
|
<Exec func="PUB:DBMultiQueryPage" >
|
|
<Arg name="PageNo" value="$PAG_NO"/>
|
|
<Arg name="SqlCmd" value="QRY_SUBMERC_REC"/>
|
|
<Arg name="RecNumPerPage" value="$PAG_NUM"/>
|
|
</Exec>
|
|
<!-- 按照分店分组,查询统计消费数据 -->
|
|
<Exec func="PUB:QueryInGroup">
|
|
<Arg name="SqlCmd" value="QRY_CONSUME_REC"/>
|
|
<Arg name="RecordName" value="SUB_MERC_CSM"/>
|
|
</Exec>
|
|
<!-- 按照分店分组,查询统计退货数据 -->
|
|
<Exec func="PUB:QueryInGroup">
|
|
<Arg name="SqlCmd" value="QRY_REVERT_REC"/>
|
|
<Arg name="RecordName" value="SUB_MERC_RVS"/>
|
|
</Exec>
|
|
</If>
|
|
<!-- 交易日期查 -->
|
|
<ElseIf condition="IS_EQUAL_STRING($DT_TYP,T)">
|
|
<!-- 用翻页组件读取商户信息 -->
|
|
<Exec func="PUB:DBMultiQueryPage" >
|
|
<Arg name="PageNo" value="$PAG_NO"/>
|
|
<Arg name="SqlCmd" value="QRY_SUBMERC_REC_TX"/>
|
|
<Arg name="RecNumPerPage" value="$PAG_NUM"/>
|
|
</Exec>
|
|
<!-- 按照分店分组,查询统计消费数据 -->
|
|
<Exec func="PUB:QueryInGroup">
|
|
<Arg name="SqlCmd" value="QRY_CONSUME_REC_TX"/>
|
|
<Arg name="RecordName" value="SUB_MERC_CSM"/>
|
|
</Exec>
|
|
<!-- 按照分店分组,查询统计退货数据 -->
|
|
<Exec func="PUB:QueryInGroup">
|
|
<Arg name="SqlCmd" value="QRY_REVERT_REC_TX"/>
|
|
<Arg name="RecordName" value="SUB_MERC_RVS"/>
|
|
</Exec>
|
|
</ElseIf>
|
|
|
|
<!-- 定义游标 -->
|
|
<Set>~MERC_INX=0</Set>
|
|
<Set>~MCSM_INX=0</Set>
|
|
<Set>~MRVS_INX=0</Set>
|
|
<Exec func="PUB:DumpETF"/>
|
|
<!-- 初始化数据为0 -->
|
|
<While condition="INTCMP(~MERC_INX,1,$TOT_REC_NUM)">
|
|
<Set>~MERC_INX=ADD(1,~MERC_INX)</Set>
|
|
<Set>REC[~MERC_INX].S_AMT=0</Set>
|
|
<Set>REC[~MERC_INX].S_FEE=0</Set>
|
|
<Set>REC[~MERC_INX].S_NUM=0</Set>
|
|
</While>
|
|
|
|
<!-- 消费数组为空 -->
|
|
<If condition="ISNULL($SUB_MERC_CSM_NUM)">
|
|
<Set>SUB_MERC_CSM_NUM=0</Set>
|
|
</If>
|
|
<!-- 退货数组为空 -->
|
|
<If condition="ISNULL($SUB_MERC_RVS_NUM)">
|
|
<Set>SUB_MERC_RVS_NUM=0</Set>
|
|
</If>
|
|
|
|
<!-- 将消费记录写入REC中 -->
|
|
<Set>~MERC_INX=1</Set>
|
|
<Set>~MCSM_INX=1</Set>
|
|
<While condition="INTCMP(~MERC_INX,2,$TOT_REC_NUM)">
|
|
<While condition="INTCMP(~MCSM_INX,2,$SUB_MERC_CSM_NUM)">
|
|
<Set>~CSM_MID=$SUB_MERC_CSM[~MCSM_INX].MERC_ID</Set>
|
|
<Set>~MERC_ID=$REC[~MERC_INX].MERC_ID</Set>
|
|
<If condition="IS_EQUAL_STRING(~CSM_MID,~MERC_ID)">
|
|
<Set>REC[~MERC_INX].S_AMT=$SUB_MERC_CSM[~MCSM_INX].CSM_AMT</Set>
|
|
<Set>REC[~MERC_INX].S_FEE=$SUB_MERC_CSM[~MCSM_INX].CSM_FEE</Set>
|
|
<Set>REC[~MERC_INX].S_NUM=$SUB_MERC_CSM[~MCSM_INX].CSM_NUM</Set>
|
|
<Break/>
|
|
</If>
|
|
<Else>
|
|
<Set>~MCSM_INX=ADD(1,~MCSM_INX)</Set>
|
|
</Else>
|
|
</While>
|
|
<Set>~MCSM_INX=1</Set>
|
|
<Set>~MERC_INX=ADD(1,~MERC_INX)</Set>
|
|
</While>
|
|
|
|
<!-- 将退货记录合并写入REC中 -->
|
|
<Set>~MERC_INX=1</Set>
|
|
<Set>~MRVS_INX=1</Set>
|
|
<While condition="INTCMP(~MERC_INX,2,$TOT_REC_NUM)">
|
|
<While condition="INTCMP(~MRVS_INX,2,$SUB_MERC_RVS_NUM)">
|
|
<Set>~RVS_MID=$SUB_MERC_RVS[~MRVS_INX].MERC_ID</Set>
|
|
<Set>~MERC_ID=$REC[~MERC_INX].MERC_ID</Set>
|
|
<If condition="IS_EQUAL_STRING(~RVS_MID,~MERC_ID)">
|
|
<Set>~TMP_RAMT=$SUB_MERC_RVS[~MRVS_INX].RVS_AMT</Set>
|
|
<Set>~TMP_RFEE=$SUB_MERC_RVS[~MRVS_INX].RVS_FEE</Set>
|
|
<Set>~TMP_RNUM=$SUB_MERC_RVS[~MRVS_INX].RVS_NUM</Set>
|
|
|
|
<Set>~TMP_SAMT=$REC[~MERC_INX].S_AMT</Set>
|
|
<Set>~TMP_SFEE=$REC[~MERC_INX].S_FEE</Set>
|
|
<Set>~TMP_SNUM=$REC[~MERC_INX].S_NUM</Set>
|
|
|
|
<Set>REC[~MERC_INX].S_AMT=FSUB(~TMP_SAMT,~TMP_RAMT,2)</Set>
|
|
<Set>REC[~MERC_INX].S_FEE=FSUB(~TMP_SFEE,~TMP_RFEE,2)</Set>
|
|
<Set>REC[~MERC_INX].S_NUM=ADD(~TMP_SNUM,~TMP_RNUM)</Set>
|
|
<Break/>
|
|
</If>
|
|
<Else>
|
|
<Set>~MRVS_INX=ADD(1,~MRVS_INX)</Set>
|
|
</Else>
|
|
</While>
|
|
<Set>~MRVS_INX=1</Set>
|
|
<Set>~MERC_INX=ADD(1,~MERC_INX)</Set>
|
|
</While>
|
|
|
|
<!-- 汇总统计 -->
|
|
<Set>~MERC_INX=0</Set>
|
|
<Set>TOTAL_AMTN=0</Set>
|
|
<Set>TOTAL_FEEN=0</Set>
|
|
<Set>TOTAL_NUMN=0</Set>
|
|
<While condition="INTCMP(~MERC_INX,1,$TOT_REC_NUM)">
|
|
<Set>~MERC_INX=ADD(~MERC_INX,1)</Set>
|
|
<Set>~TMP_SAMT=$REC[~MERC_INX].S_AMT</Set>
|
|
<Set>~TMP_SFEE=$REC[~MERC_INX].S_FEE</Set>
|
|
<Set>~TMP_SNUM=$REC[~MERC_INX].S_NUM</Set>
|
|
|
|
<Set>TOTAL_AMTN=FADD(~TMP_SAMT,$TOTAL_AMTN,2)</Set>
|
|
<Set>TOTAL_FEEN=FADD(~TMP_SFEE,$TOTAL_FEEN,2)</Set>
|
|
<Set>TOTAL_NUMN=ADD($TOTAL_NUMN,~TMP_SNUM)</Set>
|
|
</While>
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS00000" />
|
|
</Exec>
|
|
</FlowCtrl>
|
|
</Transaction>
|
|
|
|
</Application>
|