1483 lines
65 KiB
XML
1483 lines
65 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<FrontTab>
|
|
|
|
<!--删除关键域避免重复-->
|
|
<Macro name="DeleCorgFields">
|
|
<Delete>CORG_NO</Delete>
|
|
<Delete>CORG_TYP</Delete>
|
|
<Delete>CORG_NM</Delete>
|
|
</Macro>
|
|
|
|
<!--计算机构交易金额及手续费-->
|
|
<Macro name="CalcCorgAmtFee">
|
|
|
|
<!--代付机构计算交易金额、手续费及交易净额-->
|
|
<Quote name="CalcPayCorgAmtFee"/>
|
|
<!--判断该合作机构的交易总金额是否为0-->
|
|
<If condition="DOUBLECMP($TO_CORG_AMT,4,0)">
|
|
<!--计算机构的代付的交易金额、手续费及交易净额-->
|
|
<Quote name="InsertCapStlAgt"/>
|
|
|
|
<!--判断手续费是否空-->
|
|
<If condition="IS_EQUAL_STRING($FEE_PERD_UNIT,NULL)">
|
|
<Delete>FEE_PERD_UNIT</Delete>
|
|
<Delete>FEE_PERD_NUM</Delete>
|
|
</If>
|
|
|
|
<!--计算机构的代收的交易金额及手续费-->
|
|
<Quote name="InsertCapAgtFee"/>
|
|
</If>
|
|
<!--删除关键域-->
|
|
<Delete>TO_CORG_AMT</Delete>
|
|
<Delete>TO_CORG_SUCC_CNT</Delete>
|
|
<Delete>TO_CORG_FEE_AMT</Delete>
|
|
<Delete>TO_CORG_STL_AMT</Delete>
|
|
|
|
<!--更新机构的下一个结算日期-->
|
|
<Quote name="UpdCorgNextStlDate"/>
|
|
|
|
</Macro>
|
|
<!--计算结算中心交易金额及手续费-->
|
|
<Macro name="CalcCorgSZFSAmtFee">
|
|
|
|
<!--代收结算中心计算交易金额、手续费及交易净额-->
|
|
<Quote name="CalcRecCorgSZFSAmtFee"/>
|
|
<!--判断该合作机构的交易总金额是否为0-->
|
|
<If condition="DOUBLECMP($TO_CORG_AMT,4,0)">
|
|
<!--计算机构的代收的交易金额、手续费及交易净额-->
|
|
<Quote name="InsertCapStlAgt"/>
|
|
|
|
<!--判断手续费是否空-->
|
|
<If condition="IS_EQUAL_STRING($FEE_PERD_UNIT,NULL)">
|
|
<Delete>FEE_PERD_UNIT</Delete>
|
|
<Delete>FEE_PERD_NUM</Delete>
|
|
</If>
|
|
|
|
<!--计算机构的代收的交易金额及手续费-->
|
|
<Quote name="InsertCapAgtFee"/>
|
|
</If>
|
|
<!--删除关键域-->
|
|
<Delete>TO_CORG_AMT</Delete>
|
|
<Delete>TO_CORG_SUCC_CNT</Delete>
|
|
<Delete>TO_CORG_FEE_AMT</Delete>
|
|
<Delete>TO_CORG_STL_AMT</Delete>
|
|
|
|
<!--代付机构计算交易金额、手续费及交易净额-->
|
|
<Quote name="CalcPayCorgSZFSAmtFee"/>
|
|
<!--判断该合作机构的交易总金额是否为0-->
|
|
<If condition="DOUBLECMP($TO_CORG_AMT,4,0)">
|
|
<!--计算机构的代付的交易金额、手续费及交易净额-->
|
|
<Quote name="InsertCapStlAgt"/>
|
|
|
|
<!--判断手续费是否空-->
|
|
<If condition="IS_EQUAL_STRING($FEE_PERD_UNIT,NULL)">
|
|
<Delete>FEE_PERD_UNIT</Delete>
|
|
<Delete>FEE_PERD_NUM</Delete>
|
|
</If>
|
|
|
|
<!--计算机构的代收的交易金额及手续费-->
|
|
<Quote name="InsertCapAgtFee"/>
|
|
</If>
|
|
<!--删除关键域-->
|
|
<Delete>TO_CORG_AMT</Delete>
|
|
<Delete>TO_CORG_SUCC_CNT</Delete>
|
|
<Delete>TO_CORG_FEE_AMT</Delete>
|
|
<Delete>TO_CORG_STL_AMT</Delete>
|
|
|
|
<!--更新机构的下一个结算日期-->
|
|
<Quote name="UpdCorgNextStlDate"/>
|
|
|
|
</Macro>
|
|
<!--净额代收机构计算交易金额、手续费及交易净额-->
|
|
<Macro name="CalcRecCorgAmtFee">
|
|
|
|
<!-- 支付类型 11:代收 -->
|
|
<Set>PAY_TYP=11</Set>
|
|
<!-- 订单类型 11:代收 -->
|
|
<Set>ORD_TYP=11</Set>
|
|
|
|
<!-- 计算代收的净额机构手续费 -->
|
|
<Call package="CORG" function="CAL_STLMOD_0_CORG_AMT_FEE_FUNC">
|
|
<Input>GWA|ORD_TYP|PAY_TYP|STL_DT|STL_MOD|STL_PERD|STL_DAY|STL_DAY_BIT|STL_TRF_DAYS|NEXT_STL_DT|CORG_NO|CORG_TYP|CORG_NM|</Input>
|
|
<Output>MSG_CD|STL_STT_DT|STL_END_DT|CORG_SUCC_CNT|CORG_AMT|CORG_FEE_AMT|CORG_STL_AMT|CORG_FEE_CAL_MTH|CORG_FEE_MOD|</Output>
|
|
</Call>
|
|
<!--记录不存在-->
|
|
<If condition="IS_EQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),22222)">
|
|
<!--清算开始日期-->
|
|
<Set>STL_STT_DT=@O.STL_STT_DT</Set>
|
|
<!--清算结束日期-->
|
|
<Set>STL_END_DT=@O.STL_END_DT</Set>
|
|
<!--代收机构成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代收机构交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代收机构手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<!--代收机构净额-->
|
|
<Set>TO_CORG_STL_AMT=@O.CORG_STL_AMT</Set>
|
|
<!--收费方式-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--计费方法-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<Set>Rsp_Cd=222222</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,代收机构清算明细表无数据,无需计算手续费)</Set>
|
|
</If>
|
|
<ElseIf condition="AND(IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),00000),IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),11111))">
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,机构对应的,$PAY_TYP,代收机构计算手续费失败)</Set>
|
|
<Continue/>
|
|
</ElseIf>
|
|
<ElseIf condition="IS_EQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),11111)">
|
|
<!--清算开始日期-->
|
|
<Set>STL_STT_DT=@O.STL_STT_DT</Set>
|
|
<!--清算结束日期-->
|
|
<Set>STL_END_DT=@O.STL_END_DT</Set>
|
|
<!--代收机构成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代收机构交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代收机构手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<!--代收机构净额-->
|
|
<Set>TO_CORG_STL_AMT=@O.CORG_STL_AMT</Set>
|
|
<!--收费方式-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--计费方法-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<Set>Rsp_Cd=111111</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,机构对应的,$PAY_TYP,代收机构在机构服务费费率表没有记录,无需计算手续费)</Set>
|
|
</ElseIf>
|
|
<Else>
|
|
<!--清算开始日期-->
|
|
<Set>STL_STT_DT=@O.STL_STT_DT</Set>
|
|
<!--清算结束日期-->
|
|
<Set>STL_END_DT=@O.STL_END_DT</Set>
|
|
<!--代收机构成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代收机构交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代收机构手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<!--代收机构净额-->
|
|
<Set>TO_CORG_STL_AMT=@O.CORG_STL_AMT</Set>
|
|
<!--收费方式-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--计费方法-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<Set>Rsp_Cd=000000</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,机构对应的,$PAY_TYP,代收机构计算手续费成功)</Set>
|
|
</Else>
|
|
</Macro>
|
|
|
|
<!--净额代收结算中心计算交易金额、手续费及交易净额-->
|
|
<Macro name="CalcRecCorgSZFSAmtFee">
|
|
|
|
<!-- 支付类型 11:代收 -->
|
|
<Set>PAY_TYP=11</Set>
|
|
<!-- 订单类型 11:代收 -->
|
|
<Set>ORD_TYP=11</Set>
|
|
|
|
<!-- 计算代收的净额机构手续费 -->
|
|
<Call package="CORG" function="CAL_STLMOD_0_CORG_SZFS_AMT_FEE_FUNC">
|
|
<Input>GWA|ORD_TYP|PAY_TYP|STL_DT|STL_MOD|STL_PERD|STL_DAY|STL_DAY_BIT|STL_TRF_DAYS|NEXT_STL_DT|CORG_NO|CORG_TYP|CORG_NM|STL_TXN_TYP|STL_ACC_TYP|STL_FEE_TYP|</Input>
|
|
<Output>MSG_CD|STL_STT_DT|STL_END_DT|CORG_SUCC_CNT|CORG_AMT|CORG_FEE_AMT|CORG_STL_AMT|CORG_FEE_CAL_MTH|CORG_FEE_MOD|</Output>
|
|
</Call>
|
|
<!--记录不存在-->
|
|
<If condition="IS_EQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),22222)">
|
|
<!--清算开始日期-->
|
|
<Set>STL_STT_DT=@O.STL_STT_DT</Set>
|
|
<!--清算结束日期-->
|
|
<Set>STL_END_DT=@O.STL_END_DT</Set>
|
|
<!--代收机构成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代收机构交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代收机构手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<!--代收机构净额-->
|
|
<Set>TO_CORG_STL_AMT=@O.CORG_STL_AMT</Set>
|
|
<!--收费方式-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--计费方法-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<Set>Rsp_Cd=222222</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,代收机构清算明细表无数据,无需计算手续费)</Set>
|
|
</If>
|
|
<ElseIf condition="AND(IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),00000),IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),11111))">
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,机构对应的,$PAY_TYP,代收机构计算手续费失败)</Set>
|
|
<Continue/>
|
|
</ElseIf>
|
|
<ElseIf condition="IS_EQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),11111)">
|
|
<!--清算开始日期-->
|
|
<Set>STL_STT_DT=@O.STL_STT_DT</Set>
|
|
<!--清算结束日期-->
|
|
<Set>STL_END_DT=@O.STL_END_DT</Set>
|
|
<!--代收机构成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代收机构交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代收机构手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<!--代收机构净额-->
|
|
<Set>TO_CORG_STL_AMT=@O.CORG_STL_AMT</Set>
|
|
<!--收费方式-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--计费方法-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<Set>Rsp_Cd=111111</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,机构对应的,$PAY_TYP,代收机构在机构服务费费率表没有记录,无需计算手续费)</Set>
|
|
</ElseIf>
|
|
<Else>
|
|
<!--清算开始日期-->
|
|
<Set>STL_STT_DT=@O.STL_STT_DT</Set>
|
|
<!--清算结束日期-->
|
|
<Set>STL_END_DT=@O.STL_END_DT</Set>
|
|
<!--代收机构成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代收机构交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代收机构手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<!--代收机构净额-->
|
|
<Set>TO_CORG_STL_AMT=@O.CORG_STL_AMT</Set>
|
|
<!--收费方式-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--计费方法-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<Set>Rsp_Cd=000000</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,机构对应的,$PAY_TYP,代收机构计算手续费成功)</Set>
|
|
</Else>
|
|
</Macro>
|
|
|
|
<!--净额代付机构计算交易金额、手续费及交易净额-->
|
|
<Macro name="CalcPayCorgAmtFee">
|
|
|
|
<!-- 支付类型 12:代付 -->
|
|
<Set>PAY_TYP=12</Set>
|
|
<!-- 订单类型 12:代付 -->
|
|
<Set>ORD_TYP=12</Set>
|
|
|
|
<!-- 计算代付的机构手续费 -->
|
|
<Call package="CORG" function="CAL_STLMOD_0_CORG_AMT_FEE_FUNC">
|
|
<Input>GWA|ORD_TYP|PAY_TYP|STL_DT|STL_MOD|STL_PERD|STL_DAY|STL_DAY_BIT|STL_TRF_DAYS|NEXT_STL_DT|CORG_NO|CORG_TYP|CORG_NM|</Input>
|
|
<Output>MSG_CD|STL_STT_DT|STL_END_DT|CORG_SUCC_CNT|CORG_AMT|CORG_FEE_AMT|CORG_STL_AMT|CORG_FEE_CAL_MTH|CORG_FEE_MOD|</Output>
|
|
</Call>
|
|
<!--记录不存在-->
|
|
<If condition="IS_EQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),22222)">
|
|
<!--清算开始日期-->
|
|
<Set>STL_STT_DT=@O.STL_STT_DT</Set>
|
|
<!--清算结束日期-->
|
|
<Set>STL_END_DT=@O.STL_END_DT</Set>
|
|
<!--代收机构成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代收机构交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代收机构手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<!--代收机构净额-->
|
|
<Set>TO_CORG_STL_AMT=@O.CORG_STL_AMT</Set>
|
|
<!--收费方式-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--计费方法-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<Set>Rsp_Cd=222222</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,代付机构清算明细表无数据,无需计算手续费)</Set>
|
|
</If>
|
|
<ElseIf condition="AND(IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),00000),IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),11111))">
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,机构对应的,$PAY_TYP,代付机构计算手续费失败)</Set>
|
|
<Continue/>
|
|
</ElseIf>
|
|
<ElseIf condition="IS_EQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),11111)">
|
|
<!--清算开始日期-->
|
|
<Set>STL_STT_DT=@O.STL_STT_DT</Set>
|
|
<!--清算结束日期-->
|
|
<Set>STL_END_DT=@O.STL_END_DT</Set>
|
|
<!--代收机构成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代收机构交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代收机构手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<!--代收机构净额-->
|
|
<Set>TO_CORG_STL_AMT=@O.CORG_STL_AMT</Set>
|
|
<!--收费方式-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--计费方法-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<Set>Rsp_Cd=111111</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,机构对应的,$PAY_TYP,代付机构在机构服务费费率表没有记录,无需计算手续费)</Set>
|
|
</ElseIf>
|
|
<Else>
|
|
<!--清算开始日期-->
|
|
<Set>STL_STT_DT=@O.STL_STT_DT</Set>
|
|
<!--清算结束日期-->
|
|
<Set>STL_END_DT=@O.STL_END_DT</Set>
|
|
<!--代收机构成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代收机构交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代收机构手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<!--代收机构净额-->
|
|
<Set>TO_CORG_STL_AMT=@O.CORG_STL_AMT</Set>
|
|
<!--收费方式-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--计费方法-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<Set>Rsp_Cd=000000</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,机构对应的,$PAY_TYP,代付机构计算手续费成功)</Set>
|
|
</Else>
|
|
</Macro>
|
|
|
|
<!--净额代付机构计算交易金额、手续费及交易净额-->
|
|
<Macro name="CalcPayCorgSZFSAmtFee">
|
|
|
|
<!-- 支付类型 12:代付 -->
|
|
<Set>PAY_TYP=12</Set>
|
|
<!-- 订单类型 12:代付 -->
|
|
<Set>ORD_TYP=12</Set>
|
|
|
|
<!-- 计算代付的结算中心手续费 -->
|
|
<Call package="CORG" function="CAL_STLMOD_0_CORG_SZFS_AMT_FEE_FUNC">
|
|
<Input>GWA|ORD_TYP|PAY_TYP|STL_DT|STL_MOD|STL_PERD|STL_DAY|STL_DAY_BIT|STL_TRF_DAYS|NEXT_STL_DT|CORG_NO|CORG_TYP|CORG_NM|STL_TXN_TYP|STL_ACC_TYP|STL_FEE_TYP|</Input>
|
|
<Output>MSG_CD|STL_STT_DT|STL_END_DT|CORG_SUCC_CNT|CORG_AMT|CORG_FEE_AMT|CORG_STL_AMT|CORG_FEE_CAL_MTH|CORG_FEE_MOD|</Output>
|
|
</Call>
|
|
<!--记录不存在-->
|
|
<If condition="IS_EQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),22222)">
|
|
<!--清算开始日期-->
|
|
<Set>STL_STT_DT=@O.STL_STT_DT</Set>
|
|
<!--清算结束日期-->
|
|
<Set>STL_END_DT=@O.STL_END_DT</Set>
|
|
<!--代收机构成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代收机构交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代收机构手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<!--代收机构净额-->
|
|
<Set>TO_CORG_STL_AMT=@O.CORG_STL_AMT</Set>
|
|
<!--收费方式-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--计费方法-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<Set>Rsp_Cd=222222</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,代付机构清算明细表无数据,无需计算手续费)</Set>
|
|
</If>
|
|
<ElseIf condition="AND(IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),00000),IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),11111))">
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,机构对应的,$PAY_TYP,代付机构计算手续费失败)</Set>
|
|
<Continue/>
|
|
</ElseIf>
|
|
<ElseIf condition="IS_EQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),11111)">
|
|
<!--清算开始日期-->
|
|
<Set>STL_STT_DT=@O.STL_STT_DT</Set>
|
|
<!--清算结束日期-->
|
|
<Set>STL_END_DT=@O.STL_END_DT</Set>
|
|
<!--代收机构成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代收机构交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代收机构手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<!--代收机构净额-->
|
|
<Set>TO_CORG_STL_AMT=@O.CORG_STL_AMT</Set>
|
|
<!--收费方式-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--计费方法-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<Set>Rsp_Cd=111111</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,机构对应的,$PAY_TYP,代付机构在机构服务费费率表没有记录,无需计算手续费)</Set>
|
|
</ElseIf>
|
|
<Else>
|
|
<!--清算开始日期-->
|
|
<Set>STL_STT_DT=@O.STL_STT_DT</Set>
|
|
<!--清算结束日期-->
|
|
<Set>STL_END_DT=@O.STL_END_DT</Set>
|
|
<!--代收机构成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代收机构交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代收机构手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<!--代收机构净额-->
|
|
<Set>TO_CORG_STL_AMT=@O.CORG_STL_AMT</Set>
|
|
<!--收费方式-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--计费方法-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<Set>Rsp_Cd=000000</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,机构对应的,$PAY_TYP,代付机构计算手续费成功)</Set>
|
|
</Else>
|
|
</Macro>
|
|
|
|
<!--计算机构的代收代付的交易金额、手续费及交易净额-->
|
|
<Macro name="InsertCapStlAgt">
|
|
<!--收支两条线,不插入手续费-->
|
|
<If condition="IS_EQUAL_STRING($STL_MOD,1)">
|
|
<!--商户手续费-->
|
|
<Set>TO_CORG_FEE_AMT=$TO_CORG_FEE_AMT</Set>
|
|
<Set>TO_CORG_FEE_AMT=0</Set>
|
|
</If>
|
|
|
|
<!--代收代付机构清算登记表-->
|
|
<Exec func="PUB:InsertRecord" error="IGNORE">
|
|
<Arg name="TblNam" value="CAPSTLAGT"/>
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,插入代收代付机构清算登记表CAPSTLREG表失败)</Set>
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="STL99999"/>
|
|
<Arg name="MsgDat" value="插入代收代付机构清算登记表CAPSTLREG表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
</Macro>
|
|
|
|
<!--更新机构下一个结算日期-->
|
|
<Macro name="UpdCorgNextStlDate">
|
|
|
|
<!-- 更新机构下一个结算日期 -->
|
|
<!-- 计算机构下一个结算日期 -->
|
|
<!--结算周期 0:日 1:周 2:旬 3:月 4:季 5:半年 6:年 7:指定日-->
|
|
<Set>INP_STL.STL_PERD=$STL_PERD</Set>
|
|
<!-- 结算日 -->
|
|
<Set>INP_STL.STL_DAY=$STL_DAY</Set>
|
|
<!--结算日标识位 -->
|
|
<Set>INP_STL.STL_DAT_FLG=$STL_DAY_BIT</Set>
|
|
<!-- 联机批量标识 Y:批量 -->
|
|
<Set>INP_STL.BAT_FLG=Y</Set>
|
|
<Exec func="URM:CalculateSTLDate"> <!-- 计算下一计算日 -->
|
|
<Arg name="_I_INP_DAT" value="INP_STL" />
|
|
<Arg name="_O_OUT_DAT" value="OUT_STL" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<!--@msg 计算机构结算日失败 -->
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=计算机构结算日失败</Set>
|
|
<Continue/>
|
|
</If>
|
|
<If condition='IS_SUCC(@O.MSG_CD)=0'>
|
|
<Set>MSG_CD=@O.MSG_CD</Set>
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=计算机构结算日失败</Set>
|
|
<Continue/>
|
|
</If>
|
|
<Set>NEXT_STL_DT=@O.OUT_STL.STL_DT</Set> <!-- 下一结算日 -->
|
|
<!-- 上一结算日 -->
|
|
<Set>LAST_STL_DT=$STL_DT</Set>
|
|
<!-- 更新机构结算信息-->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_CMMTMSTL" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>TBNM=CMMTMSTL</Set>
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=STRCAT($TBNM,更新失败)</Set>
|
|
<Continue/>
|
|
</If>
|
|
|
|
<Delete>NEXT_STL_DT</Delete>
|
|
|
|
</Macro>
|
|
|
|
<!--收支两条线代收代付手续费到期日计算-->
|
|
<Macro name="IsStlMod1CorgFeeStlDate">
|
|
|
|
<!--代收手续费到达手续费清算日-->
|
|
<Quote name="IsStlMod1RecCorgFeeStlDate"/>
|
|
|
|
<!--手续费收费周期单位,字段非空,需要计算收取的手续费-->
|
|
<If condition="IS_NOEQUAL_STRING($FEE_PERD_UNIT,NULL)">
|
|
|
|
<!--计算代收机构手续费-->
|
|
<Quote name="CalcStlMod1RecCorgFee"/>
|
|
|
|
<!--判断该合作机构的交易总金额是否为0-->
|
|
<If condition="DOUBLECMP($TO_CORG_AMT,4,0)">
|
|
<!--计算机构的代收的交易金额及手续费-->
|
|
<Quote name="InsertCapAgtFee"/>
|
|
</If>
|
|
<!--删除关键域-->
|
|
<Delete>TO_CORG_AMT</Delete>
|
|
<Delete>TO_CORG_SUCC_CNT</Delete>
|
|
<Delete>TO_CORG_FEE_AMT</Delete>
|
|
<Delete>TO_CORG_STL_AMT</Delete>
|
|
|
|
<!--更新代收机构下一个手续费结算日期-->
|
|
<!--Quote name="UpdStlMod1RecCorgNextFeeDate"/-->
|
|
|
|
</If>
|
|
<Else>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,手续费率为空或者清算数据无记录)</Set>
|
|
</Else>
|
|
|
|
<!--代付机构手续费到达手续费清算日-->
|
|
<Quote name="IsStlMod1PayCorgFeeStlDate"/>
|
|
|
|
<!--手续费收费周期单位 字段非空-->
|
|
<If condition="IS_NOEQUAL_STRING($FEE_PERD_UNIT,NULL)">
|
|
|
|
<!--计算代付机构手续费-->
|
|
<Quote name="CalcStlMod1PayCorgFee"/>
|
|
|
|
<!--判断该合作机构的交易总金额是否为0-->
|
|
<If condition="DOUBLECMP($TO_CORG_AMT,4,0)">
|
|
<!--计算机构的代收的交易金额及手续费-->
|
|
<Quote name="InsertCapAgtFee"/>
|
|
</If>
|
|
<!--删除关键域-->
|
|
<Delete>TO_CORG_AMT</Delete>
|
|
<Delete>TO_CORG_SUCC_CNT</Delete>
|
|
<Delete>TO_CORG_FEE_AMT</Delete>
|
|
<Delete>TO_CORG_STL_AMT</Delete>
|
|
|
|
<!--更新代付机构下一个手续费结算日期-->
|
|
<!--Quote name="UpdStlMod1PayCorgNextFeeDate"/-->
|
|
|
|
</If>
|
|
<Else>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,手续费率为空或者清算数据无记录)</Set>
|
|
</Else>
|
|
|
|
</Macro>
|
|
|
|
<!--收支两条线代收代付手续费到期日计算-->
|
|
<Macro name="IsStlMod1CorgSZFSFeeStlDate">
|
|
<!--代收成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT1=0</Set>
|
|
<!--代收交易金额-->
|
|
<Set>TO_CORG_AMT1=0</Set>
|
|
<!--代收手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT1=0</Set>
|
|
<!--批量代收手续费到达手续费清算日-->
|
|
<Set>STL_TXN_TYP=1</Set>
|
|
<Quote name="IsStlMod1RecCorgSZFSFeeStlDate"/>
|
|
|
|
<!--手续费收费周期单位,字段非空,需要计算收取的手续费-->
|
|
<If condition="IS_NOEQUAL_STRING($FEE_PERD_UNIT,NULL)">
|
|
|
|
<!--计算代收机构手续费-->
|
|
<Quote name="CalcStlMod1RecCorgSZFSFee"/>
|
|
|
|
<Set>TO_CORG_SUCC_CNT1=ADD($TO_CORG_SUCC_CNT1,$TO_CORG_SUCC_CNT)</Set>
|
|
<Set>TO_CORG_AMT1=FADD($TO_CORG_AMT1,$TO_CORG_AMT,2)</Set>
|
|
<Set>TO_CORG_FEE_AMT1=FADD($TO_CORG_FEE_AMT1,$TO_CORG_FEE_AMT,2)</Set>
|
|
|
|
<!--删除关键域-->
|
|
<Delete>TO_CORG_AMT</Delete>
|
|
<Delete>TO_CORG_SUCC_CNT</Delete>
|
|
<Delete>TO_CORG_FEE_AMT</Delete>
|
|
<Delete>TO_CORG_STL_AMT</Delete>
|
|
|
|
<!--更新代收机构下一个手续费结算日期-->
|
|
<!--Quote name="UpdStlMod1RecCorgNextFeeDate"/-->
|
|
|
|
</If>
|
|
<Else>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,批量代收手续费率为空或者清算数据无记录)</Set>
|
|
</Else>
|
|
<Delete>STL_TXN_TYP</Delete>
|
|
<Set>STL_TXN_TYP=2</Set>
|
|
<!--单笔代收手续费到达手续费清算日-->
|
|
<Quote name="IsStlMod1RecCorgSZFSFeeStlDate"/>
|
|
|
|
<!--手续费收费周期单位,字段非空,需要计算收取的手续费-->
|
|
<If condition="IS_NOEQUAL_STRING($FEE_PERD_UNIT,NULL)">
|
|
|
|
<!--计算代收机构手续费-->
|
|
<Quote name="CalcStlMod1RecCorgSZFSFee"/>
|
|
|
|
<Set>TO_CORG_SUCC_CNT1=ADD($TO_CORG_SUCC_CNT1,$TO_CORG_SUCC_CNT)</Set>
|
|
<Set>TO_CORG_AMT1=FADD($TO_CORG_AMT1,$TO_CORG_AMT,2)</Set>
|
|
<Set>TO_CORG_FEE_AMT1=FADD($TO_CORG_FEE_AMT1,$TO_CORG_FEE_AMT,2)</Set>
|
|
<!--删除关键域-->
|
|
<Delete>TO_CORG_AMT</Delete>
|
|
<Delete>TO_CORG_SUCC_CNT</Delete>
|
|
<Delete>TO_CORG_FEE_AMT</Delete>
|
|
<Delete>TO_CORG_STL_AMT</Delete>
|
|
<Set>TO_CORG_SUCC_CNT=$TO_CORG_SUCC_CNT1</Set>
|
|
<Set>TO_CORG_AMT=$TO_CORG_AMT1</Set>
|
|
<Set>TO_CORG_FEE_AMT=$TO_CORG_FEE_AMT1</Set>
|
|
<!--判断该合作机构的交易总金额是否为0-->
|
|
<If condition="DOUBLECMP($TO_CORG_AMT,4,0)">
|
|
<!--计算机构的代收的交易金额及手续费-->
|
|
<Quote name="InsertCapAgtFee"/>
|
|
</If>
|
|
<!--更新代收机构下一个手续费结算日期-->
|
|
<!--Quote name="UpdStlMod1RecCorgNextFeeDate"/-->
|
|
|
|
</If>
|
|
<Else>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,单笔代收手续费率为空或者清算数据无记录)</Set>
|
|
</Else>
|
|
<Delete>STL_TXN_TYP</Delete>
|
|
<!--Set>STL_TXN_TYP=3</Set-->
|
|
<!--代收身份校验手续费到达手续费清算日-->
|
|
<!--Quote name="IsStlMod1RecCorgSZFSFeeStlDate"/-->
|
|
|
|
<!--手续费收费周期单位,字段非空,需要计算收取的手续费-->
|
|
<!--If condition="IS_NOEQUAL_STRING($FEE_PERD_UNIT,NULL)"-->
|
|
|
|
<!--计算代收机构手续费-->
|
|
<!--Quote name="CalcStlMod1RecCorgSZFSFee"/>
|
|
<Set>TO_CORG_SUCC_CNT1=ADD($TO_CORG_SUCC_CNT1,$TO_CORG_SUCC_CNT)</Set>
|
|
<Set>TO_CORG_AMT1=FADD($TO_CORG_AMT1,$TO_CORG_AMT,2)</Set>
|
|
<Set>TO_CORG_FEE_AMT1=FADD($TO_CORG_FEE_AMT1,$TO_CORG_FEE_AMT,2)</Set-->
|
|
<!--删除关键域-->
|
|
<!--Delete>TO_CORG_AMT</Delete>
|
|
<Delete>TO_CORG_SUCC_CNT</Delete>
|
|
<Delete>TO_CORG_FEE_AMT</Delete>
|
|
<Delete>TO_CORG_STL_AMT</Delete>
|
|
<Set>TO_CORG_SUCC_CNT=$TO_CORG_SUCC_CNT1</Set>
|
|
<Set>TO_CORG_AMT=$TO_CORG_AMT1</Set>
|
|
<Set>TO_CORG_FEE_AMT=$TO_CORG_FEE_AMT1</Set-->
|
|
<!--判断该合作机构的交易总金额是否为0-->
|
|
<!--If condition="DOUBLECMP($TO_CORG_AMT,4,0)"-->
|
|
<!--计算机构的代收的交易金额及手续费-->
|
|
<!--Quote name="InsertCapAgtFee"/>
|
|
</If-->
|
|
<!--删除关键域-->
|
|
<!--Delete>TO_CORG_AMT</Delete>
|
|
<Delete>TO_CORG_SUCC_CNT</Delete>
|
|
<Delete>TO_CORG_FEE_AMT</Delete>
|
|
<Delete>TO_CORG_STL_AMT</Delete-->
|
|
|
|
<!--更新代收机构下一个手续费结算日期-->
|
|
<!--Quote name="UpdStlMod1RecCorgNextFeeDate"/-->
|
|
|
|
<!--/If>
|
|
<Else>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,单笔代收手续费率为空或者清算数据无记录)</Set>
|
|
</Else>
|
|
<Delete>STL_TXN_TYP</Delete-->
|
|
|
|
<!--代收成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT2=0</Set>
|
|
<!--代收交易金额-->
|
|
<Set>TO_CORG_AMT2=0</Set>
|
|
<!--代收手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT2=0</Set>
|
|
|
|
<!--批量代付机构手续费到达手续费清算日-->
|
|
<Set>STL_TXN_TYP=1</Set>
|
|
<Quote name="IsStlMod1PayCorgSZFSFeeStlDate"/>
|
|
|
|
<!--手续费收费周期单位 字段非空-->
|
|
<If condition="IS_NOEQUAL_STRING($FEE_PERD_UNIT,NULL)">
|
|
|
|
<!--计算代付机构手续费-->
|
|
<Quote name="CalcStlMod1PayCorgSZFSFee"/>
|
|
<Set>TO_CORG_SUCC_CNT2=ADD($TO_CORG_SUCC_CNT2,$TO_CORG_SUCC_CNT)</Set>
|
|
<Set>TO_CORG_AMT2=FADD($TO_CORG_AMT2,$TO_CORG_AMT,2)</Set>
|
|
<Set>TO_CORG_FEE_AMT2=FADD($TO_CORG_FEE_AMT2,$TO_CORG_FEE_AMT,2)</Set>
|
|
|
|
<!--删除关键域-->
|
|
<Delete>TO_CORG_AMT</Delete>
|
|
<Delete>TO_CORG_SUCC_CNT</Delete>
|
|
<Delete>TO_CORG_FEE_AMT</Delete>
|
|
<Delete>TO_CORG_STL_AMT</Delete>
|
|
|
|
<!--更新代付机构下一个手续费结算日期-->
|
|
<!--Quote name="UpdStlMod1PayCorgNextFeeDate"/-->
|
|
|
|
</If>
|
|
<Else>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,手续费率为空或者清算数据无记录)</Set>
|
|
</Else>
|
|
<Delete>STL_TXN_TYP</Delete>
|
|
|
|
<!--单笔代付机构手续费到达手续费清算日-->
|
|
<Set>STL_TXN_TYP=2</Set>
|
|
<Quote name="IsStlMod1PayCorgSZFSFeeStlDate"/>
|
|
|
|
<!--手续费收费周期单位 字段非空-->
|
|
<If condition="IS_NOEQUAL_STRING($FEE_PERD_UNIT,NULL)">
|
|
|
|
<!--计算代付机构手续费-->
|
|
<Quote name="CalcStlMod1PayCorgSZFSFee"/>
|
|
|
|
<Set>TO_CORG_SUCC_CNT2=ADD($TO_CORG_SUCC_CNT2,$TO_CORG_SUCC_CNT)</Set>
|
|
<Set>TO_CORG_AMT2=FADD($TO_CORG_AMT2,$TO_CORG_AMT,2)</Set>
|
|
<Set>TO_CORG_FEE_AMT2=FADD($TO_CORG_FEE_AMT2,$TO_CORG_FEE_AMT,2)</Set>
|
|
|
|
<!--删除关键域-->
|
|
<Delete>TO_CORG_AMT</Delete>
|
|
<Delete>TO_CORG_SUCC_CNT</Delete>
|
|
<Delete>TO_CORG_FEE_AMT</Delete>
|
|
<Delete>TO_CORG_STL_AMT</Delete>
|
|
|
|
<Set>TO_CORG_SUCC_CNT=$TO_CORG_SUCC_CNT2</Set>
|
|
<Set>TO_CORG_AMT=$TO_CORG_AMT2</Set>
|
|
<Set>TO_CORG_FEE_AMT=$TO_CORG_FEE_AMT2</Set>
|
|
<!--判断该合作机构的交易总金额是否为0-->
|
|
<If condition="DOUBLECMP($TO_CORG_AMT,4,0)">
|
|
<!--计算机构的代收的交易金额及手续费-->
|
|
<Quote name="InsertCapAgtFee"/>
|
|
</If>
|
|
<!--删除关键域-->
|
|
<Delete>TO_CORG_AMT</Delete>
|
|
<Delete>TO_CORG_SUCC_CNT</Delete>
|
|
<Delete>TO_CORG_FEE_AMT</Delete>
|
|
<Delete>TO_CORG_STL_AMT</Delete>
|
|
|
|
<!--更新代付机构下一个手续费结算日期-->
|
|
<!--Quote name="UpdStlMod1PayCorgNextFeeDate"/-->
|
|
|
|
</If>
|
|
<Else>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,手续费率为空或者清算数据无记录)</Set>
|
|
</Else>
|
|
<Delete>STL_TXN_TYP</Delete>
|
|
|
|
<!--代付机构身份验证手续费到达手续费清算日-->
|
|
<!--Set>STL_TXN_TYP=3</Set>
|
|
<Quote name="IsStlMod1PayCorgSZFSFeeStlDate"/-->
|
|
|
|
<!--手续费收费周期单位 字段非空-->
|
|
<!--If condition="IS_NOEQUAL_STRING($FEE_PERD_UNIT,NULL)"-->
|
|
|
|
<!--计算代付机构手续费-->
|
|
<!--Quote name="CalcStlMod1PayCorgSZFSFee"/>
|
|
<Set>TO_CORG_SUCC_CNT2=ADD($TO_CORG_SUCC_CNT2,$TO_CORG_SUCC_CNT)</Set>
|
|
<Set>TO_CORG_AMT2=FADD($TO_CORG_AMT2,$TO_CORG_AMT,2)</Set>
|
|
<Set>TO_CORG_FEE_AMT2=FADD($TO_CORG_FEE_AMT2,$TO_CORG_FEE_AMT,2)</Set-->
|
|
<!--删除关键域-->
|
|
<!--Delete>TO_CORG_AMT</Delete>
|
|
<Delete>TO_CORG_SUCC_CNT</Delete>
|
|
<Delete>TO_CORG_FEE_AMT</Delete>
|
|
<Delete>TO_CORG_STL_AMT</Delete>
|
|
|
|
<Set>TO_CORG_SUCC_CNT=$TO_CORG_SUCC_CNT2</Set>
|
|
<Set>TO_CORG_AMT=$TO_CORG_AMT2</Set>
|
|
<Set>TO_CORG_FEE_AMT=$TO_CORG_FEE_AMT2</Set-->
|
|
<!--判断该合作机构的交易总金额是否为0-->
|
|
<!--If condition="DOUBLECMP($TO_CORG_AMT,4,0)"-->
|
|
<!--计算机构的代收的交易金额及手续费-->
|
|
<!--Quote name="InsertCapAgtFee"/>
|
|
</If-->
|
|
<!--删除关键域-->
|
|
<!--Delete>TO_CORG_AMT</Delete>
|
|
<Delete>TO_CORG_SUCC_CNT</Delete>
|
|
<Delete>TO_CORG_FEE_AMT</Delete>
|
|
<Delete>TO_CORG_STL_AMT</Delete-->
|
|
|
|
<!--更新代付机构下一个手续费结算日期-->
|
|
<!--Quote name="UpdStlMod1PayCorgNextFeeDate"/-->
|
|
|
|
<!--/If>
|
|
<Else>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,手续费率为空或者清算数据无记录)</Set>
|
|
</Else>
|
|
<Delete>STL_TXN_TYP</Delete-->
|
|
</Macro>
|
|
|
|
|
|
|
|
<!--判断代收机构是否到达手续费结算日期-->
|
|
<Macro name="IsStlMod1RecCorgFeeStlDate">
|
|
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,判断代收手续费是否到了收费日期)</Set>
|
|
<!--判断代收机构是否到达手续费结算日期-->
|
|
<!--11 代收-->
|
|
<!-- 支付类型 11:代收 -->
|
|
<Set>PAY_TYP=11</Set>
|
|
<!-- 订单类型 11:代收 -->
|
|
<Set>ORD_TYP=11</Set>
|
|
|
|
<!--查询收支两条线对应机构费率-->
|
|
<Call package="CORG" function="IS_STLMOD_1_CORG_NEXT_FEE_DATE_FUNC">
|
|
<Input>GWA|ORD_TYP|PAY_TYP|STL_DT|STL_MOD|CORG_NO|CORG_TYP|CORG_NM|</Input>
|
|
<Output>MSG_CD|FEE_PERD_UNIT|FEE_PERD_NUM|CORG_FEE_MOD|CORG_FEE_CAL_MTH|NEXT_FEE_DT|</Output>
|
|
</Call>
|
|
<!--手续费到了结算日期-->
|
|
<If condition="IS_EQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),00000)">
|
|
<Set>Rsp_Cd=000000</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,代收的收支两条线已经到了收费日期)</Set>
|
|
<!--手续费收费周期单位 0: 年 1: 月 2: 日-->
|
|
<Set>FEE_PERD_UNIT=@O.FEE_PERD_UNIT</Set>
|
|
<!--手续费收费同期数量-->
|
|
<Set>FEE_PERD_NUM=@O.FEE_PERD_NUM</Set>
|
|
<!--代收收费方式 0:不收取 1:实时单笔收取 2:单笔计算、按周期收取 3:按周期汇总计算并收取-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--1:按固定金额收取 2:按金额固定百分比收取-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<!--手续费结算日-->
|
|
<Set>NEXT_FEE_DT=@O.NEXT_FEE_DT</Set>
|
|
</If>
|
|
<ElseIf condition="IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),11111)">
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,代收的收支两条线机构在机构服务费费率表没有记录)</Set>
|
|
<!--手续费收费周期单位 0: 年 1: 月 2: 日-->
|
|
<Set>FEE_PERD_UNIT=@O.FEE_PERD_UNIT</Set>
|
|
<!--手续费收费同期数量-->
|
|
<Set>FEE_PERD_NUM=@O.FEE_PERD_NUM</Set>
|
|
<!--代收收费方式 0:不收取 1:实时单笔收取 2:单笔计算、按周期收取 3:按周期汇总计算并收取-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--1:按固定金额收取 2:按金额固定百分比收取-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<!--手续费结算日-->
|
|
<Set>NEXT_FEE_DT=@O.NEXT_FEE_DT</Set>
|
|
<!--代收成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=0</Set>
|
|
<!--代收交易金额-->
|
|
<Set>TO_CORG_AMT=0</Set>
|
|
<!--代收手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=0</Set>
|
|
</ElseIf>
|
|
<ElseIf condition="IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),22222)">
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,代收的收支两条线机构没有到收费日期)</Set>
|
|
<!--手续费收费周期单位 0: 年 1: 月 2: 日-->
|
|
<Set>FEE_PERD_UNIT=@O.FEE_PERD_UNIT</Set>
|
|
<!--手续费收费同期数量-->
|
|
<Set>FEE_PERD_NUM=@O.FEE_PERD_NUM</Set>
|
|
<!--代收收费方式 0:不收取 1:实时单笔收取 2:单笔计算、按周期收取 3:按周期汇总计算并收取-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--1:按固定金额收取 2:按金额固定百分比收取-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<!--手续费结算日-->
|
|
<Set>NEXT_FEE_DT=@O.NEXT_FEE_DT</Set>
|
|
<!--代收成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=0</Set>
|
|
<!--代收交易金额-->
|
|
<Set>TO_CORG_AMT=0</Set>
|
|
<!--代收手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=0</Set>
|
|
</ElseIf>
|
|
<Else>
|
|
<Set>MSG=@O.MSG_CD</Set>
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=查询代收的收支两条线对应机构费率失败</Set>
|
|
<Continue/>
|
|
</Else>
|
|
|
|
</Macro>
|
|
<!--判断代收机构是否到达手续费结算日期-->
|
|
<Macro name="IsStlMod1RecCorgSZFSFeeStlDate">
|
|
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,判断批量代收手续费是否到了收费日期)</Set>
|
|
<!--判断代收机构是否到达手续费结算日期-->
|
|
<!--11 代收-->
|
|
<!-- 支付类型 11:代收 -->
|
|
<Set>PAY_TYP=11</Set>
|
|
<!-- 订单类型 11:代收 -->
|
|
<Set>ORD_TYP=11</Set>
|
|
<Set>STL_TXN_TYP=$STL_TXN_TYP</Set>
|
|
<!--查询收支两条线对应机构费率-->
|
|
<Call package="CORG" function="IS_STLMOD_1_CORG_SZFS_NEXT_FEE_DATE_FUNC">
|
|
<Input>GWA|ORD_TYP|PAY_TYP|STL_DT|STL_MOD|CORG_NO|CORG_TYP|CORG_NM|STL_TXN_TYP|</Input>
|
|
<Output>MSG_CD|FEE_PERD_UNIT|FEE_PERD_NUM|CORG_FEE_MOD|CORG_FEE_CAL_MTH|NEXT_FEE_DT|</Output>
|
|
</Call>
|
|
<!--手续费到了结算日期-->
|
|
<If condition="IS_EQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),00000)">
|
|
<Set>Rsp_Cd=000000</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,对应的业务类型, $STL_TXN_TYP,代收的收支两条线已经到了收费日期)</Set>
|
|
<!--手续费收费周期单位 0: 年 1: 月 2: 日-->
|
|
<Set>FEE_PERD_UNIT=@O.FEE_PERD_UNIT</Set>
|
|
<!--手续费收费同期数量-->
|
|
<Set>FEE_PERD_NUM=@O.FEE_PERD_NUM</Set>
|
|
<!--代收收费方式 0:不收取 1:实时单笔收取 2:单笔计算、按周期收取 3:按周期汇总计算并收取-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--1:按固定金额收取 2:按金额固定百分比收取-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<!--手续费结算日-->
|
|
<Set>NEXT_FEE_DT=@O.NEXT_FEE_DT</Set>
|
|
</If>
|
|
<ElseIf condition="IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),11111)">
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,对应的业务类型, $STL_TXN_TYP,代收的收支两条线机构在机构服务费费率表没有记录)</Set>
|
|
<!--手续费收费周期单位 0: 年 1: 月 2: 日-->
|
|
<Set>FEE_PERD_UNIT=@O.FEE_PERD_UNIT</Set>
|
|
<!--手续费收费同期数量-->
|
|
<Set>FEE_PERD_NUM=@O.FEE_PERD_NUM</Set>
|
|
<!--代收收费方式 0:不收取 1:实时单笔收取 2:单笔计算、按周期收取 3:按周期汇总计算并收取-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--1:按固定金额收取 2:按金额固定百分比收取-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<!--手续费结算日-->
|
|
<Set>NEXT_FEE_DT=@O.NEXT_FEE_DT</Set>
|
|
<!--代收成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=0</Set>
|
|
<!--代收交易金额-->
|
|
<Set>TO_CORG_AMT=0</Set>
|
|
<!--代收手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=0</Set>
|
|
</ElseIf>
|
|
<ElseIf condition="IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),22222)">
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,对应的业务类型, $STL_TXN_TYP,代收的收支两条线机构没有到收费日期)</Set>
|
|
<!--手续费收费周期单位 0: 年 1: 月 2: 日-->
|
|
<Set>FEE_PERD_UNIT=@O.FEE_PERD_UNIT</Set>
|
|
<!--手续费收费同期数量-->
|
|
<Set>FEE_PERD_NUM=@O.FEE_PERD_NUM</Set>
|
|
<!--代收收费方式 0:不收取 1:实时单笔收取 2:单笔计算、按周期收取 3:按周期汇总计算并收取-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--1:按固定金额收取 2:按金额固定百分比收取-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<!--手续费结算日-->
|
|
<Set>NEXT_FEE_DT=@O.NEXT_FEE_DT</Set>
|
|
<!--代收成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=0</Set>
|
|
<!--代收交易金额-->
|
|
<Set>TO_CORG_AMT=0</Set>
|
|
<Set>TO_CORG_FEE_AMT=0</Set>
|
|
</ElseIf>
|
|
<Else>
|
|
<Set>MSG=@O.MSG_CD</Set>
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=查询代收的收支两条线对应机构费率失败</Set>
|
|
<Continue/>
|
|
</Else>
|
|
|
|
</Macro>
|
|
|
|
<!--收支两条线代收机构计算手续费-->
|
|
<Macro name="CalcStlMod1RecCorgFee">
|
|
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,代收的收支两条线机构开始计算代收机构手续费)</Set>
|
|
|
|
<!-- 订单支付类型 11:代收 12:代付 -->
|
|
<Set>PAY_TYP=11</Set>
|
|
<!-- 订单类型 11:代收 12:代付 -->
|
|
<Set>ORD_TYP=11</Set>
|
|
<Set>CORG_FEE_MOD=$CORG_FEE_MOD</Set>
|
|
|
|
<!-- 计算代收的机构手续费 -->
|
|
<Call package="CORG" function="CAL_STLMOD_1_CORG_FEE_FUNC">
|
|
<Input>GWA|ORD_TYP|PAY_TYP|STL_DT|STL_MOD|NEXT_FEE_DT|CORG_NO|CORG_TYP|CORG_NM|CORG_FEE_MOD|</Input>
|
|
<Output>MSG_CD|CORG_SUCC_CNT|CORG_AMT|CORG_FEE_AMT|</Output>
|
|
</Call>
|
|
<!--记录不存在-->
|
|
<If condition="IS_EQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),22222)">
|
|
<!--代收成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代收交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代收手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<Set>Rsp_Cd=222222</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,代收机构清算明细表无数据,无需计算手续费)</Set>
|
|
</If>
|
|
<ElseIf condition="IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),00000)">
|
|
<Set>MSG=@O.MSG_CD</Set>
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=计算代收机构手续费失败</Set>
|
|
<Continue/>
|
|
</ElseIf>
|
|
<Else>
|
|
<!--代收成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代收交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代收手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,计算机构手续费成功)</Set>
|
|
</Else>
|
|
</Macro>
|
|
|
|
<!--收支两条线代收机构计算手续费-->
|
|
<Macro name="CalcStlMod1RecCorgSZFSFee">
|
|
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,代收的收支两条线机构开始计算代收机构手续费)</Set>
|
|
|
|
<!-- 订单支付类型 11:代收 12:代付 -->
|
|
<Set>PAY_TYP=11</Set>
|
|
<!-- 订单类型 11:代收 12:代付 -->
|
|
<Set>ORD_TYP=11</Set>
|
|
<Set>CORG_FEE_MOD=$CORG_FEE_MOD</Set>
|
|
<Set>STL_TXN_TYP=$STL_TXN_TYP</Set>
|
|
<!-- 计算代收的结算中心手续费 -->
|
|
<Call package="CORG" function="CAL_STLMOD_1_CORG_SZFS_FEE_FUNC">
|
|
<Input>GWA|ORD_TYP|PAY_TYP|STL_DT|STL_MOD|NEXT_FEE_DT|CORG_NO|CORG_TYP|CORG_NM|CORG_FEE_MOD|STL_TXN_TYP|STL_ACC_TYP|STL_FEE_TYP|</Input>
|
|
<Output>MSG_CD|CORG_SUCC_CNT|CORG_AMT|CORG_FEE_AMT|</Output>
|
|
</Call>
|
|
<!--记录不存在-->
|
|
<If condition="IS_EQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),22222)">
|
|
<!--代收成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代收交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代收手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<Set>Rsp_Cd=222222</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,对应的业务类型, $STL_TXN_TYP,代收机构清算明细表无数据,无需计算手续费)</Set>
|
|
</If>
|
|
<ElseIf condition="IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),00000)">
|
|
<Set>MSG=@O.MSG_CD</Set>
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=计算代收机构手续费失败</Set>
|
|
<Continue/>
|
|
</ElseIf>
|
|
<Else>
|
|
<!--代收成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代收交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代收手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,对应的业务类型, $STL_TXN_TYP,计算机构手续费成功)</Set>
|
|
</Else>
|
|
</Macro>
|
|
|
|
<!--更新代收机构下一个手续费结算日期-->
|
|
<Macro name="UpdStlMod1RecCorgNextFeeDate">
|
|
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,对应的业务类型, $STL_TXN_TYP,更新代收机构下一个手续费结算日期)</Set>
|
|
|
|
<!--计算手续费的下一个结算日,按日-->
|
|
<If condition="INTCMP($FEE_PERD_UNIT,3,2)">
|
|
<Set>NEXT_FEE_DT=CALCDATE($NEXT_FEE_DT,+,d,$FEE_PERD_NUM)</Set>
|
|
</If>
|
|
<!--计算手续费的下一个结算日,按月-->
|
|
<ElseIf condition="INTCMP($FEE_PERD_UNIT,3,2)">
|
|
<Set>NEXT_FEE_DT=CALCDATE($NEXT_FEE_DT,+,m,$FEE_PERD_NUM)</Set>
|
|
</ElseIf>
|
|
<!--计算手续费的下一个结算日,按年-->
|
|
<ElseIf condition="INTCMP($FEE_PERD_UNIT,3,2)">
|
|
<Set>NEXT_FEE_DT=CALCDATE($NEXT_FEE_DT,+,y,$FEE_PERD_NUM)</Set>
|
|
</ElseIf>
|
|
<Else>
|
|
<!--@msg 计算商户结算日失败 -->
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=计算代收手续费率下一个收费日期失败</Set>
|
|
<Continue/>
|
|
</Else>
|
|
|
|
<!-- 更新机构手续费率-->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_CMMTMFEE" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>TBNM=CMMTMFEE</Set>
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=$TBNM</Set>
|
|
<Continue/>
|
|
</If>
|
|
<Delete>NEXT_FEE_DT</Delete>
|
|
</Macro>
|
|
|
|
<!--判断代付机构是否到达手续费结算日期-->
|
|
<Macro name="IsStlMod1PayCorgFeeStlDate">
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,判断代付手续费是否到了收费日期)</Set>
|
|
<!-- 支付类型 12:代付 -->
|
|
<Set>PAY_TYP=12</Set>
|
|
<!-- 订单类型 12:代付 -->
|
|
<Set>ORD_TYP=12</Set>
|
|
|
|
<!--查询收支两条线对应机构费率-->
|
|
<Call package="CORG" function="IS_STLMOD_1_CORG_NEXT_FEE_DATE_FUNC">
|
|
<Input>GWA|ORD_TYP|PAY_TYP|STL_DT|STL_MOD|CORG_NO|CORG_TYP|CORG_NM|</Input>
|
|
<Output>MSG_CD|FEE_PERD_UNIT|FEE_PERD_NUM|CORG_FEE_MOD|CORG_FEE_CAL_MTH|NEXT_FEE_DT|</Output>
|
|
</Call>
|
|
<!--手续费到了结算日期-->
|
|
<If condition="IS_EQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),00000)">
|
|
<Set>Rsp_Cd=000000</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,代付的收支两条线已经到了收费日期)</Set>
|
|
<!--手续费收费周期单位 0: 年 1: 月 2: 日-->
|
|
<Set>FEE_PERD_UNIT=@O.FEE_PERD_UNIT</Set>
|
|
<!--手续费收费同期数量-->
|
|
<Set>FEE_PERD_NUM=@O.FEE_PERD_NUM</Set>
|
|
<!--代付收费方式 0:不收取 1:实时单笔收取 2:单笔计算、按周期收取 3:按周期汇总计算并收取-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--1:按固定金额收取 2:按金额固定百分比收取-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<!--手续费结算日-->
|
|
<Set>NEXT_FEE_DT=@O.NEXT_FEE_DT</Set>
|
|
</If>
|
|
<ElseIf condition="IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),11111)">
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,代付的收支两条线机构在机构服务费费率表没有记录)</Set>
|
|
<!--手续费收费周期单位 0: 年 1: 月 2: 日-->
|
|
<Set>FEE_PERD_UNIT=@O.FEE_PERD_UNIT</Set>
|
|
<!--手续费收费同期数量-->
|
|
<Set>FEE_PERD_NUM=@O.FEE_PERD_NUM</Set>
|
|
<!--代付收费方式 0:不收取 1:实时单笔收取 2:单笔计算、按周期收取 3:按周期汇总计算并收取-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--1:按固定金额收取 2:按金额固定百分比收取-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<!--手续费结算日-->
|
|
<Set>NEXT_FEE_DT=@O.NEXT_FEE_DT</Set>
|
|
<!--代付成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=0</Set>
|
|
<!--代付交易金额-->
|
|
<Set>TO_CORG_AMT=0</Set>
|
|
<!--代付手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=0</Set>
|
|
<!--代付机构净额-->
|
|
<Set>TO_CORG_STL_AMT=0</Set>
|
|
</ElseIf>
|
|
<ElseIf condition="IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),22222)">
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,代付的收支两条线机构没有到收费日期)</Set>
|
|
<!--手续费收费周期单位 0: 年 1: 月 2: 日-->
|
|
<Set>FEE_PERD_UNIT=@O.FEE_PERD_UNIT</Set>
|
|
<!--手续费收费同期数量-->
|
|
<Set>FEE_PERD_NUM=@O.FEE_PERD_NUM</Set>
|
|
<!--代付收费方式 0:不收取 1:实时单笔收取 2:单笔计算、按周期收取 3:按周期汇总计算并收取-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--1:按固定金额收取 2:按金额固定百分比收取-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<!--手续费结算日-->
|
|
<Set>NEXT_FEE_DT=@O.NEXT_FEE_DT</Set>
|
|
<!--代付成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=0</Set>
|
|
<!--代付交易金额-->
|
|
<Set>TO_CORG_AMT=0</Set>
|
|
<!--代付手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=0</Set>
|
|
<!--代付机构净额-->
|
|
<Set>TO_CORG_STL_AMT=0</Set>
|
|
</ElseIf>
|
|
<Else>
|
|
<Set>MSG=@O.MSG_CD</Set>
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=查询代付的收支两条线对应机构费率失败</Set>
|
|
<Continue/>
|
|
</Else>
|
|
|
|
</Macro>
|
|
|
|
<!--判断代付结算中心是否到达手续费结算日期-->
|
|
<Macro name="IsStlMod1PayCorgSZFSFeeStlDate">
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,判断代付手续费是否到了收费日期)</Set>
|
|
<!-- 支付类型 12:代付 -->
|
|
<Set>PAY_TYP=12</Set>
|
|
<!-- 订单类型 12:代付 -->
|
|
<Set>ORD_TYP=12</Set>
|
|
<Set>STL_TXN_TYP=$STL_TXN_TYP</Set>
|
|
<!--查询收支两条线对应机构费率-->
|
|
<Call package="CORG" function="IS_STLMOD_1_CORG_SZFS_NEXT_FEE_DATE_FUNC">
|
|
<Input>GWA|ORD_TYP|PAY_TYP|STL_DT|STL_MOD|CORG_NO|CORG_TYP|CORG_NM|STL_TXN_TYP|</Input>
|
|
<Output>MSG_CD|FEE_PERD_UNIT|FEE_PERD_NUM|CORG_FEE_MOD|CORG_FEE_CAL_MTH|NEXT_FEE_DT|</Output>
|
|
</Call>
|
|
<!--手续费到了结算日期-->
|
|
<If condition="IS_EQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),00000)">
|
|
<Set>Rsp_Cd=000000</Set>
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,对应的业务类型, $STL_TXN_TYP,代付的收支两条线已经到了收费日期)</Set>
|
|
<!--手续费收费周期单位 0: 年 1: 月 2: 日-->
|
|
<Set>FEE_PERD_UNIT=@O.FEE_PERD_UNIT</Set>
|
|
<!--手续费收费同期数量-->
|
|
<Set>FEE_PERD_NUM=@O.FEE_PERD_NUM</Set>
|
|
<!--代付收费方式 0:不收取 1:实时单笔收取 2:单笔计算、按周期收取 3:按周期汇总计算并收取-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--1:按固定金额收取 2:按金额固定百分比收取-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<!--手续费结算日-->
|
|
<Set>NEXT_FEE_DT=@O.NEXT_FEE_DT</Set>
|
|
</If>
|
|
<ElseIf condition="IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),11111)">
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,对应的业务类型, $STL_TXN_TYP,代付的收支两条线机构在机构服务费费率表没有记录)</Set>
|
|
<!--手续费收费周期单位 0: 年 1: 月 2: 日-->
|
|
<Set>FEE_PERD_UNIT=@O.FEE_PERD_UNIT</Set>
|
|
<!--手续费收费同期数量-->
|
|
<Set>FEE_PERD_NUM=@O.FEE_PERD_NUM</Set>
|
|
<!--代付收费方式 0:不收取 1:实时单笔收取 2:单笔计算、按周期收取 3:按周期汇总计算并收取-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--1:按固定金额收取 2:按金额固定百分比收取-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<!--手续费结算日-->
|
|
<Set>NEXT_FEE_DT=@O.NEXT_FEE_DT</Set>
|
|
<!--代付成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=0</Set>
|
|
<!--代付交易金额-->
|
|
<Set>TO_CORG_AMT=0</Set>
|
|
<!--代付手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=0</Set>
|
|
<!--代付机构净额-->
|
|
<Set>TO_CORG_STL_AMT=0</Set>
|
|
</ElseIf>
|
|
<ElseIf condition="IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),22222)">
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,对应的业务类型, $STL_TXN_TYP,代付的收支两条线机构没有到收费日期)</Set>
|
|
<!--手续费收费周期单位 0: 年 1: 月 2: 日-->
|
|
<Set>FEE_PERD_UNIT=@O.FEE_PERD_UNIT</Set>
|
|
<!--手续费收费同期数量-->
|
|
<Set>FEE_PERD_NUM=@O.FEE_PERD_NUM</Set>
|
|
<!--代付收费方式 0:不收取 1:实时单笔收取 2:单笔计算、按周期收取 3:按周期汇总计算并收取-->
|
|
<Set>CORG_FEE_MOD=@O.CORG_FEE_MOD</Set>
|
|
<!--1:按固定金额收取 2:按金额固定百分比收取-->
|
|
<Set>CORG_FEE_CAL_MTH=@O.CORG_FEE_CAL_MTH</Set>
|
|
<!--手续费结算日-->
|
|
<Set>NEXT_FEE_DT=@O.NEXT_FEE_DT</Set>
|
|
<!--代付成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=0</Set>
|
|
<!--代付交易金额-->
|
|
<Set>TO_CORG_AMT=0</Set>
|
|
<!--代付手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=0</Set>
|
|
<!--代付机构净额-->
|
|
<Set>TO_CORG_STL_AMT=0</Set>
|
|
</ElseIf>
|
|
<Else>
|
|
<Set>MSG=@O.MSG_CD</Set>
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=查询代付的收支两条线对应机构费率失败</Set>
|
|
<Continue/>
|
|
</Else>
|
|
|
|
</Macro>
|
|
|
|
<!--收支两条线代付机构计算手续费-->
|
|
<Macro name="CalcStlMod1PayCorgFee">
|
|
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,代付的收支两条线机构开始计算代收手续费)</Set>
|
|
<!-- 支付类型 12:代付 -->
|
|
<Set>PAY_TYP=12</Set>
|
|
<!-- 订单类型 12:代付 -->
|
|
<Set>ORD_TYP=12</Set>
|
|
<Set>CORG_FEE_MOD=$CORG_FEE_MOD</Set>
|
|
|
|
<!-- 计算代收的机构手续费 -->
|
|
<Call package="CORG" function="CAL_STLMOD_1_CORG_FEE_FUNC">
|
|
<Input>GWA|ORD_TYP|PAY_TYP|STL_DT|STL_MOD|NEXT_FEE_DT|CORG_NO|CORG_TYP|CORG_NM|CORG_FEE_MOD</Input>
|
|
<Output>MSG_CD|CORG_SUCC_CNT|CORG_AMT|CORG_FEE_AMT|</Output>
|
|
</Call>
|
|
<!--记录不存在-->
|
|
<If condition="IS_EQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),22222)">
|
|
<!--代付成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代付交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代付手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<Set>Rsp_Cd=222222</Set>
|
|
<Set>Rsp_Msg=代付机构清算明细表无数据,无需计算手续费</Set>
|
|
</If>
|
|
<ElseIf condition="IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),00000)">
|
|
<Set>MSG=@O.MSG_CD</Set>
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=计算代付机构手续费失败</Set>
|
|
<Continue/>
|
|
</ElseIf>
|
|
<Else>
|
|
<!--代付成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代付交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代付手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
</Else>
|
|
</Macro>
|
|
|
|
<!--收支两条线代付结算中心计算手续费-->
|
|
<Macro name="CalcStlMod1PayCorgSZFSFee">
|
|
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,对应的业务类型, $STL_TXN_TYP,代付的收支两条线机构开始计算代收手续费)</Set>
|
|
<!-- 支付类型 12:代付 -->
|
|
<Set>PAY_TYP=12</Set>
|
|
<!-- 订单类型 12:代付 -->
|
|
<Set>ORD_TYP=12</Set>
|
|
<Set>CORG_FEE_MOD=$CORG_FEE_MOD</Set>
|
|
<Set>STL_TXN_TYP=$STL_TXN_TYP</Set>
|
|
<!-- 计算代收的机构手续费 -->
|
|
<Call package="CORG" function="CAL_STLMOD_1_CORG_SZFS_FEE_FUNC">
|
|
<Input>GWA|ORD_TYP|PAY_TYP|STL_DT|STL_MOD|NEXT_FEE_DT|CORG_NO|CORG_TYP|CORG_NM|CORG_FEE_MOD|STL_TXN_TYP|STL_ACC_TYP|STL_FEE_TYP|</Input>
|
|
<Output>MSG_CD|CORG_SUCC_CNT|CORG_AMT|CORG_FEE_AMT|</Output>
|
|
</Call>
|
|
<!--记录不存在-->
|
|
<If condition="IS_EQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),22222)">
|
|
<!--代付成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代付交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代付手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
<Set>Rsp_Cd=222222</Set>
|
|
<Set>Rsp_Msg=代付机构清算明细表无数据,无需计算手续费</Set>
|
|
</If>
|
|
<ElseIf condition="IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),00000)">
|
|
<Set>MSG=@O.MSG_CD</Set>
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=计算代付机构手续费失败</Set>
|
|
<Continue/>
|
|
</ElseIf>
|
|
<Else>
|
|
<!--代付成功笔数-->
|
|
<Set>TO_CORG_SUCC_CNT=@O.CORG_SUCC_CNT</Set>
|
|
<!--代付交易金额-->
|
|
<Set>TO_CORG_AMT=@O.CORG_AMT</Set>
|
|
<!--代付手续费金额-->
|
|
<Set>TO_CORG_FEE_AMT=@O.CORG_FEE_AMT</Set>
|
|
</Else>
|
|
</Macro>
|
|
|
|
<!--更新代付机构下一个手续费结算日期-->
|
|
<Macro name="UpdStlMod1PayCorgNextFeeDate">
|
|
|
|
<Set>Rsp_Msg=STRCAT($CORG_NO,对应的收付类型, $PAY_TYP,更新代付机构下一个手续费结算日期)</Set>
|
|
<!--计算手续费的下一个结算日,按日-->
|
|
<If condition="INTCMP($FEE_PERD_UNIT,3,2)">
|
|
<Set>NEXT_FEE_DT=CALCDATE($NEXT_FEE_DT,+,d,$FEE_PERD_NUM)</Set>
|
|
</If>
|
|
<!--计算手续费的下一个结算日,按月-->
|
|
<ElseIf condition="INTCMP($FEE_PERD_UNIT,3,2)">
|
|
<Set>NEXT_FEE_DT=CALCDATE($NEXT_FEE_DT,+,m,$FEE_PERD_NUM)</Set>
|
|
</ElseIf>
|
|
<!--计算手续费的下一个结算日,按年-->
|
|
<ElseIf condition="INTCMP($FEE_PERD_UNIT,3,2)">
|
|
<Set>NEXT_FEE_DT=CALCDATE($NEXT_FEE_DT,+,y,$FEE_PERD_NUM)</Set>
|
|
</ElseIf>
|
|
<Else>
|
|
<!--@msg 计算商户结算日失败 -->
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=计算代收手续费率下一个收费日期失败</Set>
|
|
<Continue/>
|
|
</Else>
|
|
|
|
<!-- 更新机构手续费率-->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_CMMTMFEE" />
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Set>TBNM=CMMTMFEE</Set>
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=$TBNM</Set>
|
|
<Continue/>
|
|
</If>
|
|
<Delete>NEXT_FEE_DT</Delete>
|
|
</Macro>
|
|
|
|
<!--计算机构的代收代付的交易金额、手续费及交易净额-->
|
|
<Macro name="InsertCapAgtFee">
|
|
<Set>FEE_STL_DT=$STL_DT</Set>
|
|
|
|
<Exec func="PUB:InsertRecord" error="IGNORE">
|
|
<Arg name="TblNam" value="CAPAGTFEE"/>
|
|
</Exec>
|
|
<If condition="~RetCod=-1">
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=插入CAPAGTFEE表失败</Set>
|
|
<Exec func="PUB:CmpSetMsg">
|
|
<Arg name="MsgCd" value="STL99999"/>
|
|
<Arg name="MsgDat" value="插入CAPAGTFEE表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
</Macro>
|
|
|
|
<Macro name="UpdCorgCapDayCtl">
|
|
|
|
<Set>ORG_END_TM=GETDATETIME(HHMISS)</Set>
|
|
<!--更新系统清算控制表-->
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UPD_ORGSTS_CAPDAYCTL"/>
|
|
</Exec>
|
|
<If condition="~RetCod != 0">
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=更新系统清分控制表失败</Set>
|
|
<Return/>
|
|
</If>
|
|
<Else>
|
|
<Set>Rsp_Cd=000000</Set>
|
|
<Set>Rsp_Msg=更新系统清分控制表成功</Set>
|
|
<Exec func="PUB:GWAAddMsg">
|
|
<Arg name="MsgCd" value="STL00000" />
|
|
</Exec>
|
|
</Else>
|
|
</Macro>
|
|
|
|
<Macro name="CalcCorgAmtFee_BEN">
|
|
<Set>STL_STT_DT=$STL_DT</Set>
|
|
<!-- 计算协议付款日 = 当前会计日期 + 结算划款天数 -->
|
|
<Set>STL_END_DT=CALCDATE($STL_DT,+,d,$STL_TRF_DAYS)</Set>
|
|
|
|
<Delete>CORG_FEE_MOD</Delete>
|
|
<Delete>CORG_FEE_CAL_MTH</Delete>
|
|
|
|
<!-- 支付类型 11:代收 -->
|
|
<Set>PAY_TYP=11</Set>
|
|
<!-- 订单类型 11:代收 -->
|
|
<Set>ORD_TYP=11</Set>
|
|
<!--代收商户计算交易金额、手续费及交易净额-->
|
|
|
|
<!--根据对应订单类型查询代收代付商户清算明细表(手续费已清分)-->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QrySUMJnl_BEN"/>
|
|
</Exec>
|
|
<If condition="~RetCod=2">
|
|
<Set>TO_CORG_SUCC_CNT=0</Set> <!-- 交易成功笔数 -->
|
|
<Set>TO_CORG_AMT=0</Set> <!-- 合作机构总金额-->
|
|
<Set>TO_CORG_FEE_AMT=0</Set> <!-- 合作机构手续费 -->
|
|
<Set>TO_CORG_STL_AMT=0</Set> <!-- 合作机构结算金额 -->
|
|
</If>
|
|
<ElseIf condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=系统错误</Set>
|
|
<Return/>
|
|
</ElseIf>
|
|
<Else>
|
|
<Set>TO_CORG_STL_AMT=$TO_CORG_AMT</Set> <!-- 商户结算金额-->
|
|
<Set>CORG_CLR_FLG=1</Set>
|
|
<Set>CORG_CLR_DT=$GWA.AC_DT</Set>
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdSUMJnl_BEN"/>
|
|
</Exec>
|
|
<If condition="~RetCod = -1">
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=更新清分表失败</Set>
|
|
<Return/>
|
|
</If>
|
|
</Else>
|
|
|
|
<!--判断该合作机构的交易总金额是否为0-->
|
|
<If condition="DOUBLECMP($TO_CORG_AMT,4,0)">
|
|
<!--计算机构的代收的交易金额、手续费及交易净额-->
|
|
<Quote name="InsertCapStlAgt"/>
|
|
</If>
|
|
<!--删除关键域-->
|
|
<Delete>TO_CORG_AMT</Delete>
|
|
<Delete>TO_CORG_SUCC_CNT</Delete>
|
|
<Delete>TO_CORG_FEE_AMT</Delete>
|
|
<Delete>TO_CORG_STL_AMT</Delete>
|
|
|
|
<!-- 支付类型 11:代付 -->
|
|
<Set>PAY_TYP=12</Set>
|
|
<!-- 订单类型 11:代付 -->
|
|
<Set>ORD_TYP=12</Set>
|
|
<!--代收商户计算交易金额、手续费及交易净额-->
|
|
|
|
<!--根据对应订单类型查询代收代付商户清算明细表(手续费已清分)-->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QrySUMJnl_BEN"/>
|
|
</Exec>
|
|
<If condition="~RetCod=2">
|
|
<Set>TO_CORG_SUCC_CNT=0</Set> <!-- 交易成功笔数 -->
|
|
<Set>TO_CORG_AMT=0</Set> <!-- 合作机构总金额-->
|
|
<Set>TO_CORG_FEE_AMT=0</Set> <!-- 合作机构手续费 -->
|
|
<Set>TO_CORG_STL_AMT=0</Set> <!-- 合作机构结算金额 -->
|
|
</If>
|
|
<ElseIf condition="~RetCod!=0">
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=系统错误</Set>
|
|
<Return/>
|
|
</ElseIf>
|
|
<Else>
|
|
<Set>TO_CORG_STL_AMT=$TO_CORG_AMT</Set> <!-- 商户结算金额-->
|
|
<Set>CORG_CLR_FLG=1</Set>
|
|
<Set>CORG_CLR_DT=$GWA.AC_DT</Set>
|
|
<Exec func="PUB:ExecSql" error="IGNORE">
|
|
<Arg name="SqlCmd" value="UpdSUMJnl_BEN"/>
|
|
</Exec>
|
|
<If condition="~RetCod = -1">
|
|
<Set>Rsp_Cd=999999</Set>
|
|
<Set>Rsp_Msg=更新清分表失败</Set>
|
|
<Return/>
|
|
</If>
|
|
</Else>
|
|
|
|
<!--判断该合作机构的交易总金额是否为0-->
|
|
<If condition="DOUBLECMP($TO_CORG_AMT,4,0)">
|
|
<!--计算机构的代付的交易金额、手续费及交易净额-->
|
|
<Quote name="InsertCapStlAgt"/>
|
|
</If>
|
|
|
|
<!--删除关键域-->
|
|
<Delete>TO_CORG_AMT</Delete>
|
|
<Delete>TO_CORG_SUCC_CNT</Delete>
|
|
<Delete>TO_CORG_FEE_AMT</Delete>
|
|
<Delete>TO_CORG_STL_AMT</Delete>
|
|
|
|
<!--更新机构的下一个结算日期-->
|
|
<Quote name="UpdCorgNextStlDate"/>
|
|
</Macro>
|
|
|
|
</FrontTab>
|