Files
ctg-app-ui/mkm/etc/pkg/QueryMercBon_PKG.XML
2021-01-12 22:04:24 +08:00

98 lines
4.5 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Package>
<!--商户待清算金额查询(QueryMercBon)-->
<Function name="QueryMercBon">
<Input>INP_DAT|</Input>
<Output>OUT_DAT|MSG_CD|MSG_DAT|</Output>
<!--查询商户已清算红包金额-->
<DynSentence name="QRY_STL_BON">
<Sentence>
SELECT TO_CHAR(NVL(SUM(CASE WHEN CLR_FLG='0' AND STL_PERD_FLG='0' AND PERD_BEG_DT BETWEEN ? AND ? AND PERD_END_DT BETWEEN ? AND ? THEN CUR_AC_BAL ELSE 0 END),0),'9999999999990.99') AS MON_RED_BAL,
TO_CHAR(NVL(SUM(CASE WHEN CLR_FLG='1' AND STL_PERD_FLG='1' THEN CUR_AC_BAL ELSE 0 END),0),'9999999999990.99') AS DAY_RED_BAL,
TO_CHAR(NVL(SUM(CASE WHEN PERD_BEG_DT BETWEEN ? AND ? AND PERD_END_DT BETWEEN ? AND ? AND STL_PERD_FLG='0' THEN CUR_AC_BAL ELSE 0 END),0),'9999999999990.99') AS RED_BAL
FROM MKMTMSUM
WHERE MERC_ID = ?
AND CAP_TYP IN ('3', '4')
</Sentence>
<Fields>CUR_FIR_DT|CUR_END_DT|CUR_FIR_DT|CUR_END_DT|CUR_FIR_DT|CUR_END_DT|CUR_FIR_DT|CUR_END_DT|MERC_ID|</Fields>
</DynSentence>
<!-- 查询商户待清算红包金额 -->
<DynSentence name="QRY_UNSTL_BON">
<Sentence>
SELECT NVL(SUM(Y.USL_RED_BAL),0) AS USL_RED_BAL FROM
(SELECT DISTINCT A.MKT_ID FROM MKMTMERC A,MKMTMERCRL B WHERE A.STL_PERD_FLG='0'
AND ((A.IS_GRP = '0' AND A.MERC_ID = B.MERC_ID AND B.MERC_GRP = '0') OR (A.IS_GRP = '1' AND A.MERC_ID = B.MERC_GRP AND B.MERC_GRP &lt;&gt; '0'))
AND B.MERC_ID = ?) X
LEFT JOIN
(SELECT A.MKT_ID,NVL(SUM(CASE WHEN A.TX_STS = 'S' AND A.USE_TYP = '1' THEN A.DR_AMT ELSE 0 END),0)
-NVL(SUM(CASE WHEN A.TX_STS = 'S' AND A.USE_TYP = '3' THEN A.RT_AMT ELSE 0 END),0) AS USL_RED_BAL
FROM MKMTJNL A,MKMTACT B
WHERE A.TX_ACC_DT = ?
AND A.MERC_ID=?
AND A.PRD_TYP = '0'
AND A.MKT_ID=B.MKT_ID
GROUP BY A.MKT_ID) Y
ON X.MKT_ID=Y.MKT_ID
</Sentence>
<Fields>MERC_ID|CUR_DT|MERC_ID|</Fields>
</DynSentence>
<Process>
<Set>MERC_ID=DELBOTHSPACE($INP_DAT.MERC_ID)</Set>
<Set>CUR_DT=$GWA.AC_DT</Set>
<!--必输项检查-->
<If condition="ISNULL($MERC_ID)">
<Exec func="PUB:CmpSetMsg">
<!-- @msg 商户编号不能为空 -->
<Arg name="MsgCd" value="MKM20200"/>
<Arg name="MsgDat" value="商户编号不能为空"/>
</Exec>
<Return/>
</If>
<!--计算该月首日-->
<Set>CUR_FIR_DT=STRCAT(SUBSTR($CUR_DT,1,6),01)</Set>
<!-- 计算月末 -->
<Set>CUR_NEXT_MON=CALCDATE($CUR_FIR_DT,+,m,1)</Set>
<Set>CUR_END_DT=CALCDATE($CUR_NEXT_MON,-,d,1)</Set>
<!--查询商户当天待清算红包金额-->
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_UNSTL_BON"/>
</Exec>
<If condition="~RetCod=-1">
<Exec func="PUB:CmpSetMsg">
<!-- @msg 查询商户待清算红包金额失效 -->
<Arg name="MsgCd" value="MKM20212"/>
<Arg name="MsgDat" value="查询商户待清算红包金额失败"/>
</Exec>
<Return/>
</If>
<!--查询商户该月已清算红包金额-->
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_STL_BON"/>
</Exec>
<If condition="~RetCod=-1">
<Exec func="PUB:CmpSetMsg">
<!-- @msg 查询商户已清算金额失败 -->
<Arg name="MsgCd" value="MKM41262"/>
<Arg name="MsgDat" value="查询商户已清算红包金额失败"/>
</Exec>
<Return/>
</If>
<!--查询商户待清算积分金额,暂时没有-->
<Set>OUT_DAT.RED_BAL=$RED_BAL</Set>
<Set>OUT_DAT.DAY_RED_BAL=$DAY_RED_BAL</Set>
<Set>OUT_DAT.MON_RED_BAL=$MON_RED_BAL</Set>
<Set>OUT_DAT.USL_RED_BAL=$USL_RED_BAL</Set>
<Exec func="PUB:CmpSetMsg">
<!-- @msg 交易成功 -->
<Arg name="MsgCd" value="MKM00000"/>
<Arg name="MsgDat" value="交易成功"/>
</Exec>
<Exec func="PUB:DumpETF"/>
</Process>
</Function>
</Package>