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

656 lines
28 KiB
XML

<?xml version="1.0" encoding='UTF-8'?>
<!--
==============================================================
修改时间 PLOG 修改人 备注
2010.12.22 xu_zhh 限制:每个活动只能有一个触发条件为 “省平台发红包”的券别
2011.7.5 MOT-CR-N00064 wujinyan 增加对优惠券判断
==============================================================
-->
<Root>
<!-- 券别增加 -->
<Transaction code="BUI0302050" log_switch="1">
<!-- 检查活动是否可以发放积分红包 -->
<DynSentence name="QRY_MKMTACT_FLG">
<Sentence>
SELECT X.* FROM
(
SELECT (CASE WHEN A1.MKT_ID IS NULL THEN A.MKT_ID ELSE A1.MKT_ID END) MKT_ID,--活动编号
(CASE WHEN A1.MKT_BON_FLG IS NULL THEN A.MKT_BON_FLG ELSE A1.MKT_BON_FLG END) MKT_BON_FLG--积分红包
FROM MKMTACT A FULL OUTER JOIN MKMTACTCHK A1 ON A.MKT_ID = A1.MKT_ID
) X
WHERE MKT_ID=?
</Sentence>
<Fields>MKT_ID|</Fields>
</DynSentence>
<!-- 检查活动的审批状态 -->
<DynSentence name="CHK_MKMTACT_STS">
<Sentence>
SELECT MKT_STS FROM MKMTACT
WHERE MKT_ID = ?
</Sentence>
<Fields>MKT_ID|</Fields>
</DynSentence>
<!-- 查询全局参数表的到期通知天数 -->
<DynSentence name="QRY_MKMTPUBPRA_INF">
<Sentence>
SELECT NTF_DAY FROM MKMTPUBPRA
</Sentence>
<Fields>|</Fields>
</DynSentence>
<!-- 修改复核表券别 -->
<DynSentence name="UPD_MKMTPINFCHK_INF">
<Sentence>
MKT_ID = ? AND ISS_ID = ? AND PRD_ID = ?
</Sentence>
<Fields>MKT_ID|ISS_ID|PRD_ID|</Fields>
</DynSentence>
<!-- 将活动信息复制到复核表中 -->
<DynSentence name="CPY_MKMTACTCHK_INF">
<Sentence>
INSERT INTO MKMTACTCHK(MKT_ID, CAP_ID_TYP, MKT_NM, MKT_ABBR, CAP_TYP, MKT_STS, ISS_TOT_AMT, MKT_BON_FLG, CHK_FLG, OPR_FLG)
SELECT MKT_ID, CAP_ID_TYP, MKT_NM, MKT_ABBR, CAP_TYP, MKT_STS, ISS_TOT_AMT, MKT_BON_FLG, '0', 'A' FROM MKMTACT
WHERE MKT_ID = ?
</Sentence>
<Fields>MKT_ID|</Fields>
</DynSentence>
<!-- 更新活动表为待复核 -->
<DynSentence name="UPD_MKMTACTCHK_FLG">
<Sentence>
UPDATE MKMTACTCHK SET CHK_FLG='0'
WHERE MKT_ID=?
</Sentence>
<Fields>MKT_ID|</Fields>
</DynSentence>
<!-- 查询券别复核表中同名券别 -->
<DynSentence name="QRY_MKMTPINFCHK_NM">
<Sentence>
SELECT COUNT(0) NM_NUM FROM
(
SELECT (CASE WHEN A1.MKT_ID IS NULL THEN A.MKT_ID ELSE A1.MKT_ID END) MKT_ID,--活动编号
(CASE WHEN A1.ISS_ID IS NULL THEN A.ISS_ID ELSE A1.ISS_ID END) ISS_ID, --发行方编号
(CASE WHEN A1.PRD_NM IS NULL THEN A.PRD_NM ELSE A1.PRD_NM END) PRD_NM --券别名称
FROM MKMTPINF A FULL OUTER JOIN MKMTPINFCHK A1 ON A.PRD_ID = A1.PRD_ID
) X
WHERE PRD_NM = ? AND MKT_ID = ? AND ISS_ID = ?
</Sentence>
<Fields>PRD_NM|MKT_ID|ISS_ID|</Fields>
</DynSentence>
<!-- 查询发行方的发行总额 -->
<DynSentence name="QRY_MKMTISS_AMT">
<Sentence>
SELECT X.ISS_TOT_AMT FROM
(
SELECT (CASE WHEN A1.MKT_ID IS NULL THEN A.MKT_ID ELSE A1.MKT_ID END) MKT_ID,--活动编号
(CASE WHEN A1.ISS_ID IS NULL THEN A.ISS_ID ELSE A1.ISS_ID END) ISS_ID,--发行方编号
(CASE WHEN A1.ISS_TOT_AMT IS NULL THEN A.ISS_TOT_AMT ELSE A1.ISS_TOT_AMT END) ISS_TOT_AMT--发行方发行总额
FROM MKMTISS A FULL OUTER JOIN MKMTISSCHK A1 ON A.MKT_ID = A1.MKT_ID AND A.ISS_ID = A1.ISS_ID
) X
WHERE X.MKT_ID = ? AND X.ISS_ID = ?
</Sentence>
<Fields>MKT_ID|ISS_ID</Fields>
</DynSentence>
<!-- 查询发行方的发放截止日期 -->
<DynSentence name="QRY_MKMTISS_EDT">
<Sentence>
SELECT X.* FROM
(
SELECT (CASE WHEN A1.MKT_ID IS NULL THEN A.MKT_ID ELSE A1.MKT_ID END) MKT_ID, --活动编号
(CASE WHEN A1.ISS_ID IS NULL THEN A.ISS_ID ELSE A1.ISS_ID END) ISS_ID, --发行方编号
(CASE WHEN A1.ISS_EXP_DT IS NULL THEN A.ISS_EXP_DT ELSE A1.ISS_EXP_DT END) ISS_EXP_DT --发行方发放结束日期
FROM MKMTISS A FULL OUTER JOIN MKMTISSCHK A1 ON A.MKT_ID = A1.MKT_ID AND A.ISS_ID = A1.ISS_ID
) X
WHERE X.MKT_ID = ? AND X.ISS_ID = ?
</Sentence>
<Fields>MKT_ID|ISS_ID</Fields>
</DynSentence>
<!-- 查询活动券别种类 -->
<DynSentence name="QRY_MKMTACT_CAPTYP">
<Sentence>
SELECT X.CAP_TYP FROM
(
SELECT (CASE WHEN A1.MKT_ID IS NULL THEN A.MKT_ID ELSE A1.MKT_ID END) MKT_ID, --活动编号
(CASE WHEN A1.CAP_TYP IS NULL THEN A.CAP_TYP ELSE A1.CAP_TYP END) CAP_TYP --活动券别种类
FROM MKMTACT A FULL OUTER JOIN MKMTACTCHK A1 ON A.MKT_ID = A1.MKT_ID
) X
WHERE X.MKT_ID = ?
</Sentence>
<Fields>MKT_ID|</Fields>
</DynSentence>
<!-- 限制每个活动下的所有券别只能有一个是省平台发红包 -->
<DynSentence name="QRY_MKMTPINFH_NUM">
<Sentence>
SELECT COUNT(0) NUM FROM
(
SELECT (CASE WHEN A1.MKT_ID IS NULL THEN A.MKT_ID ELSE A1.MKT_ID END) MKT_ID, --活动编号
(CASE WHEN A1.TX_CD IS NULL THEN A.TX_CD ELSE A1.TX_CD END) TX_CD, --交易码
(CASE WHEN A1.ISS_BUS_TYP IS NULL THEN A.ISS_BUS_TYP ELSE A1.ISS_BUS_TYP END) ISS_BUS_TYP --业务类型
FROM MKMTPINF A FULL OUTER JOIN MKMTPINFCHK A1 ON A.PRD_ID = A1.PRD_ID
) X
WHERE X.MKT_ID = ? AND X.TX_CD = '0301025' AND X.ISS_BUS_TYP = '9500' -- 该活动下的省平台发红包
</Sentence>
<Fields>MKT_ID|</Fields>
</DynSentence>
<!-- 对复制添加券别的使用商户进行绑定 -->
<DynSentence name="UPD_MKMTMERCCHK_PRD">
<Sentence>
UPDATE MKMTMERCCHK
SET PRD_ID = ?,
TM_SMP = TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')
WHERE MKT_ID = ?
AND ISS_ID = ?
AND PRD_ID = ?
</Sentence>
<Fields>PRD_ID|USE_MERC_MKT_ID|USE_MERC_ISS_ID|USE_MERC_PRD_ID|</Fields>
</DynSentence>
<FlowCtrl>
<If condition="ISNULL($MKT_ID)">
<!-- @msg 请输入活动编号 -->
<Set>GWA.MSG_CD=MKM20501</Set>
<Set>GWA.MSG_INF=请输入活动编号</Set>
<Return/>
</If>
<Set>PRD_IMG_NM=$PRD_IMG_NM</Set>
<If condition="ISNULL($ISS_ID)">
<!-- @msg 请输入发行方编号 -->
<Set>GWA.MSG_CD=MKM20502</Set>
<Set>GWA.MSG_INF=请输入发行方编号</Set>
<Return/>
</If>
<If condition="ISNULL($ISS_ID_TYP)">
<!-- @msg 请输入发行方类型 -->
<Set>GWA.MSG_CD=MKM20503</Set>
<Set>GWA.MSG_INF=请输入发行方类型</Set>
<Return/>
</If>
<If condition="ISNULL($PRD_NM)">
<!-- @msg 请输入券别名称 -->
<Set>GWA.MSG_CD=MKM20504</Set>
<Set>GWA.MSG_INF=请输入券别名称</Set>
<Return/>
</If>
<!-- 查询发行方发行总额 -->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_MKMTISS_AMT"/>
</Exec>
<If condition="~RetCod!=0">
<Set>GWA.MSG_CD=MKM31062</Set>
<Set>GWA.MSG_INF=查询发行方发行总额失败</Set>
<Return/>
</If>
<If condition="ISNULL($PRD_DESC)">
<!-- @msg 请输入券别描述 -->
<Set>GWA.MSG_CD=MKM20505</Set>
<Set>GWA.MSG_INF=请输入券别描述</Set>
<Return/>
</If>
<!-- 查询活动的券别种类 -->
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_MKMTACT_CAPTYP"/>
</Exec>
<If condition="~RetCod!=0">
<!-- @msg 查询活动的券别种类失败 -->
<Set>GWA.MSG_CD=MKM31087</Set>
<Set>GWA.MSG_INF=查询活动的券别种类失败</Set>
<Return/>
</If>
<If condition="$CAP_TYP=3"> <!-- 红包 -->
<Set>PRD_TYP=0</Set>
</If>
<ElseIf condition="$CAP_TYP=5"> <!-- 代金券 -->
<Set>PRD_TYP=1</Set>
</ElseIf>
<If condition="ISNULL($TX_CD)">
<!-- @msg 请输入券别领用交易类型 -->
<Set>GWA.MSG_CD=MKM20507</Set>
<Set>GWA.MSG_INF=请输入券别领用交易类型</Set>
<Return/>
</If>
<If condition="STRGETCOUNT($ISS_BILL_AMT,.) &gt; 1">
<!-- @msg 请重新输入券别面额! -->
<Set>GWA.MSG_CD=MKM31074</Set>
<Set>GWA.MSG_INF=请重新输入券别面额!</Set>
<Return/>
</If>
<If condition="STRGETCOUNT($BEG_REF_AMT,.) &gt; 1">
<!-- @msg 请重新输入领用订单金额范围! -->
<Set>GWA.MSG_CD=MKM31075</Set>
<Set>GWA.MSG_INF=请重新输入领用订单金额范围!</Set>
<Return/>
</If>
<If condition="STRGETCOUNT($END_REF_AMT,.) &gt; 1">
<!-- @msg 请重新输入领用订单金额范围! -->
<Set>GWA.MSG_CD=MKM31075</Set>
<Set>GWA.MSG_INF=请重新输入领用订单金额范围!</Set>
<Return/>
</If>
<If condition="STRGETCOUNT($DLY_TX_LMT,.) &gt; 1">
<!-- @msg 请重新输入当日商户订单总额限制! -->
<Set>GWA.MSG_CD=MKM31076</Set>
<Set>GWA.MSG_INF=请重新输入当日商户订单总额限制!</Set>
<Return/>
</If>
<If condition="STRGETCOUNT($USE_BEG_REF_AMT,.) &gt; 1">
<!-- @msg 请重新输入使用订单金额范围! -->
<Set>GWA.MSG_CD=MKM31077</Set>
<Set>GWA.MSG_INF=请重新输入使用订单金额范围!</Set>
<Return/>
</If>
<If condition="STRGETCOUNT($USE_END_REF_AMT,.) &gt; 1">
<!-- @msg 请重新输入使用订单金额范围! -->
<Set>GWA.MSG_CD=MKM31077</Set>
<Set>GWA.MSG_INF=请重新输入使用订单金额范围!</Set>
<Return/>
</If>
<!-- 如果活动是积分红包形式,则触发条件只能选择积分兑换或省平台发红包 -->
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_MKMTACT_FLG"/>
</Exec>
<!-- 积分红包 -->
<If condition="IS_EQUAL_STRING($ISS_BUS_TYP,9600)">
<If condition="IS_NOEQUAL_STRING($MKT_BON_FLG,1)">
<!-- @msg 该活动发放红包形式非积分红包 -->
<Set>GWA.MSG_CD=MKM25004</Set>
<Set>GWA.MSG_INF=该活动发放红包形式非积分红包</Set>
<Return/>
</If>
</If>
<Else>
<If condition="IS_EQUAL_STRING($PRD_TYP,1)">
<If condition="AND(IS_EQUAL_STRING($MKT_BON_FLG,2),)">
<If condition="IS_NOEQUAL_STRING($ISS_BUS_TYP,9700)">
<!-- @msg 该活动发放优惠券形式为无价券 -->
<Set>GWA.MSG_CD=MKM80010</Set>
<Set>GWA.MSG_INF=该活动发放优惠券形式为无价券</Set>
<Return/>
</If>
</If>
<ElseIf condition="IS_EQUAL_STRING($MKT_BON_FLG,3)">
<If condition="IS_NOEQUAL_STRING($ISS_BUS_TYP,9710)">
<!-- @msg 该活动发放优惠券形式为无价券 -->
<Set>GWA.MSG_CD=MKM80011</Set>
<Set>GWA.MSG_INF=该活动发放优惠券形式为有价券</Set>
<Return/>
</If>
</ElseIf>
</If>
<ElseIf condition="IS_EQUAL_STRING($PRD_TYP,0)">
<If condition="IS_EQUAL_STRING($MKT_BON_FLG,1)">
<If condition="IS_NOEQUAL_STRING($ISS_BUS_TYP,9500,9200)">
<!-- @msg 该活动发放红包形式为积分红包 -->
<Set>GWA.MSG_CD=MKM25005</Set>
<Set>GWA.MSG_INF=该活动发放红包形式为积分红包</Set>
<Return/>
</If>
</If>
<ElseIf condition="IS_EQUAL_STRING($MKT_BON_FLG,2)">
<If condition="OR(ISNULL($ISS_PCT),IS_NOEQUAL_STRING($ISS_PCT,6,7,8,9,9.5))">
<Set>GWA.MSG_CD=MKM25005</Set>
<Set>GWA.MSG_INF=电子券发行折扣有误</Set>
<Return/>
</If>
</ElseIf>
</ElseIf>
</Else>
<If condition="ISNULL(DELBOTHSPACE($ULT_CLR_DT))">
<!-- @msg 请输入券别整体失效日期 -->
<Set>GWA.MSG_CD=MKM26001</Set>
<Set>GWA.MSG_INF=请输入券别整体失效日期</Set>
<Return/>
</If>
<!--
<If condition="$ISS_EFF_DT &gt; $ISS_EXP_DT">
@msg 生效日期不能大于失效日期
<Set>GWA.MSG_CD=MKM2020I</Set>
<Set>GWA.MSG_INF=生效日期不能大于失效日期</Set>
<Return/>
</If> -->
<!-- 查询发行方的发放失效日期 -->
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_MKMTISS_EDT"/>
</Exec>
<If condition="~RetCod!=0">
<!-- @msg 查询发行方的发放失效日期失败 -->
<Set>GWA.MSG_CD=MKM31059</Set>
<Set>GWA.MSG_INF=查询发行方的发放失效日期失败</Set>
<Return/>
</If>
<If condition="$ULT_CLR_DT &lt; $ISS_EXP_DT">
<!-- @msg 券别整体失效日期不能小于发行方的发放失效日期 -->
<Set>GWA.MSG_CD=MKM31058</Set>
<Set>GWA.MSG_INF=券别整体失效日期不能小于发行方的发放失效日期</Set>
<Return/>
</If>
<If condition="ISNULL($BEG_REF_AMT)">
<Set>BEG_REF_AMT=0.00</Set>
</If>
<If condition="ISNULL($END_REF_AMT)">
<Set>END_REF_AMT=0.00</Set>
</If>
<If condition="ISNULL($DLY_TX_LMT)">
<Set>DLY_TX_LMT=0.00</Set>
</If>
<If condition="OR(INTCMP($PRD_TYP,3,0), INTCMP($PRD_TYP,3,1))"> <!-- 红包、代金券 -->
<If condition="ISNULL($ISS_BILL_AMT)">
<!-- @msg 请输入券别面额 -->
<Set>GWA.MSG_CD=MKM20508</Set>
<Set>GWA.MSG_INF=请输入券别面额</Set>
<Return/>
</If>
<Set>USE_AMT=$ISS_BILL_AMT</Set>
</If>
<If condition="INTCMP($PRD_TYP,3,2)">
<If condition="ISNULL($ISS_PCT)">
<!-- @msg 请输入发行折扣 -->
<Set>GWA.MSG_CD=MKM20509</Set>
<Set>GWA.MSG_INF=请输入发行折扣</Set>
<Return/>
</If>
<Set>USE_PCT=$ISS_PCT</Set>
</If>
<If condition="$PRD_TYP = 1"> <!-- 代金券输入发行数量 -->
<If condition="ISNULL($ISS_MAX_CNT)">
<!-- @msg 请输入发行数量 -->
<Set>GWA.MSG_CD=MKM2050A</Set>
<Set>GWA.MSG_INF=请输入发行数量</Set>
<Return/>
</If>
<Set>PRD_TOT_AMT=FMUL($ISS_BILL_AMT,$ISS_MAX_CNT,2)</Set> <!-- 券别发行总额 :发放总张数限制-->
<If condition="DOUBLECMP($PRD_TOT_AMT,6,$ISS_TOT_AMT)">
<!-- @msg 券别的发行总额不能大于发行方的发行总额 -->
<Set>GWA.MSG_CD=MKM31061</Set>
<Set>GWA.MSG_INF=券别的发行总额不能大于发行方的发行总额</Set>
<Return/>
</If>
</If>
<Set>PRD_TOT_AMT=FMUL($ISS_BILL_AMT,$ISS_DLY_LMT,2)</Set> <!-- 券别发行总额:每日发放数量限制 -->
<If condition="DOUBLECMP($PRD_TOT_AMT,6,$ISS_TOT_AMT)">
<!-- @msg 券别的发行总额不能大于发行方的发行总额 -->
<Set>GWA.MSG_CD=MKM31061</Set>
<Set>GWA.MSG_INF=券别的发行总额不能大于发行方的发行总额</Set>
<Return/>
</If>
<Set>PRD_TOT_AMT=FMUL($ISS_BILL_AMT,$OMBL_MAX_CNT,2)</Set> <!-- 券别发行总额 :周期内限领次数-->
<If condition="DOUBLECMP($PRD_TOT_AMT,6,$ISS_TOT_AMT)">
<!-- @msg 券别的发行总额不能大于发行方的发行总额 -->
<Set>GWA.MSG_CD=MKM31061</Set>
<Set>GWA.MSG_INF=券别的发行总额不能大于发行方的发行总额</Set>
<Return/>
</If>
<!-- 检查券别日期配置 -->
<Set>CUR_DT=$GWA.TX_DT</Set>
<If condition="ISNULL($EFF_DT_CNT)">
<Set>EFF_DT_CNT=0</Set>
</If>
<If condition="ISNULL($CLR_TYP)">
<Set>CLR_TYP=0</Set>
</If>
<Set>EFF_DTT=CALCDATE($CUR_DT,+,d,$EFF_DT_CNT)</Set>
<If condition="STRCMP($EFF_DTT,$ULT_CLR_DT) &gt; 0">
<!-- @msg 失效日期与领用后生效天数配置不匹配 -->
<Set>GWA.MSG_CD=MKM26002</Set>
<Set>GWA.MSG_INF=失效日期与领用后生效天数配置不匹配</Set>
<Return/>
</If>
<If condition="ISNULL($USE_BEG_REF_AMT)">
<Set>USE_BEG_REF_AMT=0.00</Set>
</If>
<If condition="ISNULL($USE_END_REF_AMT)">
<Set>USE_END_REF_AMT=0.00</Set>
</If>
<!-- 到期通知天数 -->
<If condition="ISNULL($EXP_NTY_DAY)">
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_MKMTPUBPRA_INF"/>
</Exec>
<If condition="~RetCod!=0">
<Set>GWA.MSG_CD=MKM99999</Set>
<Set>GWA.MSG_INF=系统错误!</Set>
<Return/>
</If>
<Set>EXP_NTY_DAY=$NTF_DAY</Set>
</If>
<!-- 登记操作员 -->
<Set>CRT_DT=$GWA.TX_DT</Set>
<Set>CRT_TM=$GWA.TX_TM</Set>
<Set>CRT_OPR_TYP=1</Set> <!-- 内部操作员 -->
<Set>CRT_USR_OPR=$CURUID</Set>
<Set>SEQ_NM=PRD_ID</Set>
<Set>SEQ_CND=STRCAT($MKT_ID,PRD_ID)</Set>
<Exec func="PUB:GetPubSeqNo" error="IGNORE">
<Arg name="SeqNam" value="$SEQ_NM"/>
<Arg name="Len" value="2"/>
<Arg name="SeqCnd" value="$SEQ_CND"/>
</Exec>
<If condition="~RetCod!=0">
<!-- @msg 获取序号失败 -->
<Set>GWA.MSG_CD=MKM2050B</Set>
<Set>GWA.MSG_INF=获取序号失败</Set>
<Return/>
</If>
<Set>PRD_ID=STRCAT($MKT_ID,$SEL_VAL)</Set>
<If condition="NOT(ISNULL($ISS_SMS_TMP))">
<!--<Set>SMS_SEQ_NM=ISS_TMP_ID</Set>-->
<!--<Set>SMS_SEQ_CND=STRCAT($MKM,ISS_TMP_ID)</Set>-->
<Exec func="PUB:GetPubSeqNo" error="IGNORE">
<Arg name="SeqNam" value="SMS_SEQ_NM"/> <!-- 领用短信和到期短信都用这个字段 -->
<Arg name="Len" value="7"/>
<Arg name="SeqCnd" value="SMS_SEQ_NM"/> <!-- 领用短信和到期短信都用这个字段 -->
</Exec>
<If condition="~RetCod!=0">
<!-- @msg 获取序号失败 -->
<Set>GWA.MSG_CD=MKM2050C</Set>
<Set>GWA.MSG_INF=获取序号失败</Set>
<Return/>
</If>
<Set>ISS_SMS_ID=STRCAT(MKM,$SEL_VAL)</Set>
</If>
<!-- 到期短信模板 -->
<If condition="NOT(ISNULL($EXP_SMS_TMP))">
<!--<Set>EXP_SEQ_NM=EXP_TMP_ID</Set>-->
<!--<Set>EXP_SEQ_CND=STRCAT($MKM,EXP_TMP_ID)</Set>-->
<Exec func="PUB:GetPubSeqNo" error="IGNORE">
<Arg name="SeqNam" value="SMS_SEQ_NM"/> <!-- 领用短信和到期短信都用这个字段 -->
<Arg name="Len" value="7"/>
<Arg name="SeqCnd" value="SMS_SEQ_NM"/> <!-- 领用短信和到期短信都用这个字段 -->
</Exec>
<If condition="~RetCod!=0">
<!-- @msg 获取序号失败 -->
<Set>GWA.MSG_CD=MKM2050D</Set>
<Set>GWA.MSG_INF=获取序号失败</Set>
<Return/>
</If>
<Set>EXP_SMS_ID=STRCAT(MKM,$SEL_VAL)</Set>
</If>
<!-- 检查是否已经复核或者审批通过 -->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="CHK_MKMTACT_STS"/>
</Exec>
<If condition="~RetCod=-1">
<Set>GWA.MSG_CD=MKM99999</Set>
<Set>GWA.MSG_INF=系统错误!</Set>
<Return/>
</If>
<ElseIf condition="~RetCod=2">
<!-- 不做处理 -->
</ElseIf>
<Else>
<If condition="$MKT_STS = E">
<!-- @msg 活动已过期 -->
<Set>GWA.MSG_CD=MKM2050F</Set>
<Set>GWA.MSG_INF=活动已过期!</Set>
<Return/>
</If>
<If condition="$MKT_STS = R">
<!-- @msg 活动已拒绝 -->
<Set>GWA.MSG_CD=MKM40308</Set>
<Set>GWA.MSG_INF=活动已拒绝!</Set>
<Return/>
</If>
</Else>
<!-- 新建下发短信模板-->
<If condition="NOT(ISNULL($ISS_SMS_ID))">
<Set>SMS_CD=$ISS_SMS_ID</Set>
<Set>INP_DAT.SMS_TMP=$ISS_SMS_TMP</Set>
<Set>INP_DAT.REP_FLD=$ISS_REP_FLD</Set>
<Set>INP_DAT.SMS_CD=$SMS_CD</Set>
<Call function="INS_SMSTTMPS_INF" package="MKM">
<Input>INP_DAT|</Input>
<Output>OUT_DAT|MSG_CD|MSG_DAT|</Output>
</Call>
<If condition="@O.MSG_CD!=MKM00000">
<!-- @msg [{1}] -->
<Set>GWA.MSG_CD=@O.MSG_CD</Set>
<Set>GWA.MSG_INF=@O.MSG_DAT</Set>
<Return/>
</If>
</If>
<!-- 新建到期短信模板 -->
<If condition="NOT(ISNULL($EXP_SMS_ID))">
<Set>SMS_CD=$EXP_SMS_ID</Set>
<Set>INP_DAT.SMS_TMP=$EXP_SMS_TMP</Set>
<Set>INP_DAT.REP_FLD=$EXP_REP_FLD</Set>
<Set>INP_DAT.SMS_CD=$SMS_CD</Set>
<Call function="INS_SMSTTMPS_INF" package="MKM">
<Input>INP_DAT|</Input>
<Output>OUT_DAT|MSG_CD|MSG_DAT|</Output>
</Call>
<If condition="@O.MSG_CD!=MKM00000">
<!-- @msg [{1}] -->
<Set>GWA.MSG_CD=@O.MSG_CD</Set>
<Set>GWA.MSG_INF=@O.MSG_DAT</Set>
<Return/>
</If>
</If>
<!-- 短信模板字段为空的话,置"|" -->
<If condition="ISNULL($ISS_REP_FLD)">
<Set>ISS_REP_FLD=|</Set>
</If>
<If condition="ISNULL($EXP_REP_FLD)">
<Set>EXP_REP_FLD=|</Set>
</If>
<!-- 插入复核表 -->
<Set>OPR_FLG=A</Set>
<Set>CHK_FLG=0</Set>
<Exec func="PUB:DumpETF"/>
<Exec func="PUB:InsertRecord" error="IGNORE">
<Arg name="TblNam" value="MKMTPINFCHK" />
</Exec>
<If condition="~RetCod=1">
<Set>OPR_FLG=M</Set>
<Exec func="PUB:UpdateRecord" error="IGNORE">
<Arg name="TblNam" value="MKMTPINFCHK"/>
<Arg name="CndSts" value="UPD_MKMTPINFCHK_INF" />
</Exec>
<If condition="~RetCod!=0">
<!-- @msg 更新券别复核表失败 -->
<Set>GWA.MSG_CD=MKM2050K</Set>
<Set>GWA.MSG_INF=更新券别复核表失败</Set>
<Return/>
</If>
</If>
<ElseIf condition="~RetCod=-1">
<!-- @msg 新建券别失败-->
<Set>GWA.MSG_CD=MKM2050G</Set>
<Set>GWA.MSG_INF=新建券别失败</Set>
<Return/>
</ElseIf>
<!-- 绑定复制添加券别时的使用商户 -->
<Exec func="PUB:ExecSql">
<Arg name="SqlCmd" value="UPD_MKMTMERCCHK_PRD" />
</Exec>
<If condition="~RetCod!=0">
<Set>OPR_FLG=M</Set>
<Exec func="PUB:UpdateRecord" error="IGNORE">
<Arg name="TblNam" value="MKMTPINFCHK"/>
<Arg name="CndSts" value="UPD_MKMTPINFCHK_INF" />
</Exec>
<If condition="~RetCod!=0">
<!-- @msg 更新券别复核表失败 -->
<Set>GWA.MSG_CD=MKM41310</Set>
<Set>GWA.MSG_INF=复制添加使用商户失败</Set>
<Return/>
</If>
</If>
<!-- 限制每个活动下的所有券别只能有一个是省平台发红包的触发条件 -->
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_MKMTPINFH_NUM"/>
</Exec>
<If condition="$NUM &gt; 1"> <!-- 触发条件为省平台发红包的券别超过一个 -->
<!-- @msg 每个活动只能有一个触发条件为 “省平台发红包”的券别-->
<Set>GWA.MSG_CD=MKM31091</Set>
<Set>GWA.MSG_INF=每个活动只能有一个触发条件为 “省平台发红包”的券别</Set>
<Return/>
</If>
<!-- 将活动信息复制到复核表中 -->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="CPY_MKMTACTCHK_INF"/>
</Exec>
<If condition="~RetCod=-1">
<!-- @msg 将活动信息复制到复核表中失败 -->
<Set>GWA.MSG_CD=MKM31050</Set>
<Set>GWA.MSG_INF=将活动信息复制到复核表中失败</Set>
<Return/>
</If>
<!-- 更新MKMTACT状态为待复核 -->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UPD_MKMTACTCHK_FLG"/>
</Exec>
<If condition="~RetCod!=0">
<!-- @msg 更新活动失败 -->
<Set>GWA.MSG_CD=MKM2050L</Set>
<Set>GWA.MSG_INF=更新活动失败</Set>
<Return/>
</If>
<Set>GWA.MSG_CD=MKM00000</Set>
<Set>GWA.MSG_INF=更新成功,请复核</Set>
</FlowCtrl>
</Transaction>
</Root>