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

148 lines
6.1 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Package>
<!--更新商户使用营销工具汇总表(UpdMerSum)-->
<Function name="UpdMerSum">
<Input>BON_ID|MERC_ID|CUR_BON_AMT|GWA|</Input>
<Output>MSG_CD|MSG_DAT|</Output>
<!--查询红包信息-->
<DynSentence name="QRY_MKMTBON_INF">
<Sentence>
SELECT MKT_ID,ISS_ID,PRD_ID,CAP_ID_TYP,CAP_ID
FROM MKMTBON
WHERE BON_ID=?
</Sentence>
<Fields>BON_ID|</Fields>
</DynSentence>
<!--查询红包所属活动信息-->
<DynSentence name="QRY_MKMTACT_INF">
<Sentence>
SELECT CAP_TYP
FROM MKMTACT
WHERE MKT_ID=?
</Sentence>
<Fields>MKT_ID|</Fields>
</DynSentence>
<!--查询该商户该周期的记录信息-->
<DynSentence name="QRY_MKMTMSUM_REC">
<Sentence>
SELECT UPD_DT,LAST_AC_BAL,CUR_AC_BAL
FROM MKMTMSUM
WHERE MERC_ID=?
AND MKT_ID=?
AND CAP_TYP=?
AND CAP_ID_TYP=?
AND CAP_ID=?
AND IS_INV_FLG='Y'
AND PERD_END_DT=?
FOR UPDATE
</Sentence>
<Fields>MERC_ID|MKT_ID|CAP_TYP|CAP_ID_TYP|CAP_ID|CUR_LAST_DAY|</Fields>
</DynSentence>
<!--更新商户营销工具汇总表中上日余额、当前余额、交易总笔数、最后记账日期、最后交易流水号-->
<DynSentence name="UPD_MKMTMSUM_IN">
<Sentence>
UPDATE MKMTMSUM
SET LAST_AC_BAL=?,
CUR_AC_BAL=?,
TXN_TOT_CNT=TXN_TOT_CNT+1,
UPD_DT=?,
UPD_JRN=?
WHERE MERC_ID=?
AND MKT_ID=?
AND CAP_TYP=?
AND CAP_ID_TYP=?
AND CAP_ID=?
AND IS_INV_FLG='Y'
AND PERD_END_DT=?
</Sentence>
<Fields>NLAST_AC_BAL|NCUR_AC_BAL|CUR_DT|UPD_JRN|MERC_ID|MKT_ID|CAP_TYP|CAP_ID_TYP|CAP_ID|CUR_LAST_DAY|</Fields>
</DynSentence>
<!-- 查询商户归属省市信息 -->
<DynSentence name="QRY_URMTMINF_MER">
<Sentence>
SELECT MERC_CNM ,MERC_PROV,MERC_CITY,MERC_CITY_NM
FROM URMTMINF
WHERE MERC_ID=?
</Sentence>
<Fields>MERC_ID|</Fields>
</DynSentence>
<Process>
<!--计算月底日期-->
<Set>CUR_DT=$GWA.AC_DT</Set> <!-- 取会计日期 -->
<Set>CUR_MON_FIR=STRCAT(SUBSTR($CUR_DT,1,6),01)</Set>
<Set>CUR_NEXT_MON=CALCDATE($CUR_DT,+,m,1)</Set>
<Set>CUR_NEXT_FIR=STRCAT(SUBSTR($CUR_NEXT_MON,1,6),01)</Set>
<Set>CUR_LAST_DAY=CALCDATE($CUR_NEXT_FIR,-,d,1)</Set>
<!--查询该营销工具信息-->
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_MKMTBON_INF"/>
</Exec>
<!--查询营销工具所属活动信息-->
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_MKMTACT_INF"/>
</Exec>
<!--查询该商户该周期的汇总信息-->
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_MKMTMSUM_REC"/>
</Exec>
<!--记录已经存在,则更新上日余额,当前余额,交易总笔数,最后记帐日期,最后交易流水号-->
<If condition="~RetCod=0">
<If condition="IS_NOEQUAL_STRING($CUR_DT,$UPD_DT)">
<Set>NLAST_AC_BAL=$CUR_AC_BAL</Set>
</If>
<Else>
<Set>NLAST_AC_BAL=$LAST_AC_BAL</Set>
</Else>
<Set>NCUR_AC_BAL=ADDAMT($CUR_AC_BAL,$CUR_BON_AMT)</Set>
<Set>UPD_JRN=$GWA.JRN_NO</Set>
<!--更新商户营销工具汇总表中上日余额、当前余额、最后记账日期、最后交易流水号-->
<Exec func="PUB:ExecSql">
<Arg name="SqlCmd" value="UPD_MKMTMSUM_IN"/>
</Exec>
</If>
<!--记录不存在,则插入新记录-->
<ElseIf condition="~RetCod=2">
<Set>IS_INV_FLG=Y</Set>
<Set>PERD_BEG_DT=$CUR_MON_FIR</Set>
<Set>PERD_END_DT=$CUR_LAST_DAY</Set>
<!--调用组件查询出资方名称-->
<Set>MP_ID_TYP=$CAP_ID_TYP</Set>
<Set>MP_ID=$CAP_ID</Set>
<Call function="QueryMerProvName" package="MKM">
<Input>MP_ID_TYP|MP_ID|</Input>
<Output>MP_NM|MERC_PROV|MERC_CITY|MERC_CITY_NM|MSG_CD|MSG_DAT|</Output>
</Call>
<If condition="IS_SUCC(@O.MSG_CD)=0">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="@O.MSG_CD"/>
<Arg name="MsgDat" value="@O.MSG_DAT"/>
</Exec>
<Return/>
</If>
<Set>CAP_NM=@O.MP_NM</Set> <!--出资方名称-->
<!-- 查询商户归属省市信息 -->
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_URMTMINF_MER"/>
</Exec>
<Set>MERC_PROV=$MERC_PROV</Set> <!--商户归属省-->
<Set>MERC_CITY=$MERC_CITY</Set> <!--商户归属市-->
<Set>INV_STS=0</Set> <!--待确定 发票状态 0-正常 1-冻结 2-已结算-->
<Set>LAST_AC_BAL=0</Set> <!--上日余额-->
<Set>CUR_AC_BAL=$CUR_BON_AMT</Set> <!--当日余额-->
<Set>TXN_TOT_CNT=1</Set> <!--交易笔数-->
<Set>UPD_DT=$CUR_DT</Set> <!--记帐日期-->
<Set>UPD_JRN=$GWA.JRN_NO</Set> <!--最后交易流水号-->
<Exec func="PUB:InsertRecord">
<Arg name="TblNam" value="MKMTMSUM"/>
</Exec>
</ElseIf>
<Exec func="PUB:CmpSetMsg">
<!-- @msg交易成功 -->
<Arg name="MsgCd" value="MKM00000"/>
<Arg name="MsgDat" value="交易成功"/>
</Exec>
</Process>
</Function>
</Package>