Files
2021-01-12 23:30:48 +08:00

135 lines
4.3 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Tran>
<Transaction code="204034" log_switch="1" desc="结算中心清算汇总">
<Quote name="CORG_DYN_SQLSENTENCE" />
<FlowCtrl>
<Set>AC_DT=$GWA.AC_DT</Set>
<Exec func="PUB:IsExistNode" error="IGNORE">
<Arg name="FieldName" value="STL_DT" />
</Exec>
<!--存在 -->
<If condition="~RetCod=1">
<Set>STL_DT=$STL_DT</Set>
</If>
<Else>
<Set>STL_DT=$AC_DT</Set>
</Else>
<Set>CORG_NO=$CORG_NO</Set>
<Set>STL_MOD=$STL_MOD</Set>
<Set>NEXT_STL_DT=$NEXT_STL_DT</Set>
<!--判断该机构结算方式 -->
<!--STL_MOD 0:净额结算 1收支两条线 -->
<!--0:净额结算 -->
<If condition="INTCMP($STL_MOD,3,0)">
<Set>Rsp_Msg=STRCAT($CORG_NO,机构是净额结算类型机构)</Set>
<!--判断该机构是否到结算日 -->
<!--机构并没有到达结算日 -->
<If condition="INTCMP($STL_DT,1,$NEXT_STL_DT)">
<Set>Rsp_Cd=222222</Set>
<Set>Rsp_Msg=STRCAT($CORG_NO,该机构还没有到达清算日)</Set>
<!--删除关键域避免重复 -->
<Quote name="DeleCorgFields" />
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="STL22222" />
</Exec>
<Return />
</If>
<Else>
<Set>Rsp_Msg=STRCAT($CORG_NO,该机构已经到达了清算日)</Set>
<!--计算机构交易金额及手续费 -->
<!--代收机构计算交易金额、手续费及交易净额 -->
<Quote name="CalcCorgSZFSAmtFee" />
<!--判断该合作机构的交易总金额是否为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="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" />
<!--删除关键域避免重复 -->
<Quote name="DeleCorgFields" />
</Else>
</If>
<!--1 收支两条线结算 -->
<ElseIf condition="INTCMP($STL_MOD,3,1)">
<Set>Rsp_Msg=STRCAT($CORG_NO,机构是收支两条线类型机构)</Set>
<!--判断该机构是否到结算日 -->
<!--机构并没有到达结算日 -->
<If condition="INTCMP($STL_DT,1,$NEXT_STL_DT)">
<Set>Rsp_Msg=STRCAT($CORG_NO,该机构还没有到达清算日)</Set>
<!--代收代付手续费到期日判断 -->
<Quote name="IsStlMod1CorgSZFSFeeStlDate" />
<!--删除关键域避免重复 -->
<Quote name="DeleCorgFields" />
</If>
<!--机构到达结算日 -->
<Else>
<!--合作机构计算手续费及金额 -->
<Quote name="CalcCorgAmtFee_BEN" />
<!--代收代付手续费到期日判断 -->
<Quote name="IsStlMod1CorgSZFSFeeStlDate" />
<!--删除关键域避免重复 -->
<Quote name="DeleCorgFields" />
</Else>
</ElseIf>
<Set>Rsp_Cd=000000</Set>
<Set>Rsp_Msg=交易成功</Set>
<Exec func="PUB:GWAAddMsg">
<Arg name="MsgCd" value="STL00000" />
</Exec>
</FlowCtrl>
</Transaction>
</Tran>