355 lines
16 KiB
XML
355 lines
16 KiB
XML
<?xml version="1.0" encoding='UTF-8'?>
|
|
<Root>
|
|
<!--手工调账确认/撤销-->
|
|
<Transaction code="BUI0100007" log_switch="1">
|
|
<!-- 根据流水号来查找综合记账流水信息 -->
|
|
<DynSentence name="QRY_ACMTACLG_MAINAC">
|
|
<Sentence>
|
|
SELECT JRN_NO,AC_TYP,SUB_AC,CAP_TYP,DC_FLG,TX_AMT,RMK,AC_DT
|
|
FROM ACMTACLG
|
|
WHERE JRN_NO=?
|
|
</Sentence>
|
|
<Fields>JRN_NO|</Fields>
|
|
</DynSentence>
|
|
|
|
<!--确认流水号下的未确认流水-->
|
|
<DynSentence name="UPD_ACMTACLG_CMT">
|
|
<Sentence>
|
|
UPDATE ACMTACLG
|
|
SET AC_TX_STS='0',CHK_OPR=?,CHK_TM=?
|
|
WHERE JRN_NO=?
|
|
</Sentence>
|
|
<Fields>CHK_OPR|CHK_TM|JRN_NO|</Fields>
|
|
</DynSentence>
|
|
|
|
<!--撤销流水号下的未确认流水-->
|
|
<DynSentence name="UPD_ACMTACLG_RVS">
|
|
<Sentence>
|
|
UPDATE ACMTACLG
|
|
SET AC_TX_STS='2',CHK_OPR=?,CHK_TM=?
|
|
WHERE JRN_NO=?
|
|
</Sentence>
|
|
<Fields>CHK_OPR|CHK_TM|JRN_NO|</Fields>
|
|
</DynSentence>
|
|
|
|
<FlowCtrl>
|
|
<Set>CONFIRM=conf</Set>
|
|
<Set>UPDO=updo</Set>
|
|
<Set>CHK_OPR=$CUR_OPR_ID</Set>
|
|
<Set>CHK_TM=$GWA.TX_TM</Set>
|
|
|
|
<If condition="IS_EQUAL_STRING($PARAM,$CONFIRM)"> <!--确认-->
|
|
<!--检查借贷平衡关系-->
|
|
<Exec func="PUB:QueryInGroup" >
|
|
<Arg name="SqlCmd" value="QRY_ACMTACLG_MAINAC"></Arg>
|
|
<Arg name="RecordName" value="REC"></Arg>
|
|
<Arg name="Limit" value="50"></Arg>
|
|
</Exec>
|
|
<If condition="~RetCod=2">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<!-- @msg {1}不存在-->
|
|
<Arg name="MsgCd" value="ACM30002"/>
|
|
<Arg name="MsgDat" value="待确认的综合记账流水号"></Arg>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Set>CAL_DR_TOT_AMT=0</Set>
|
|
<Set>CAL_CR_TOT_AMT=0</Set>
|
|
<Set>NUM=0</Set>
|
|
<While condition="INTCMP($NUM,1,$REC_NUM)">
|
|
<Set>NUM=ADD($NUM,1)</Set>
|
|
<Set>DC_FLG=REC[$NUM].DC_FLG</Set>
|
|
<Set>TX_AMT=REC[$NUM].TX_AMT</Set>
|
|
<If condition="$DC_FLG=C"> <!--计算贷方总金额-->
|
|
<Set>CAL_CR_TOT_AMT=ADDAMT($CAL_CR_TOT_AMT,$TX_AMT)</Set>
|
|
</If>
|
|
<ElseIf condition="$DC_FLG=D"> <!--计算借记总金额-->
|
|
<Set>CAL_DR_TOT_AMT=ADDAMT($CAL_DR_TOT_AMT,$TX_AMT)</Set>
|
|
</ElseIf>
|
|
<Else>
|
|
<Exec func="PUB:GWASetMsg">
|
|
<!-- @msg 借贷标志有误-->
|
|
<Arg name="MsgCd" value="ACM30005"/>
|
|
</Exec>
|
|
<Return/>
|
|
</Else>
|
|
</While>
|
|
<Set>RSP_AMT=AMTCMP($CAL_DR_TOT_AMT,$CAL_CR_TOT_AMT)</Set>
|
|
<If condition="$RSP_AMT!=0">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<!-- @msg 手工调账借贷不平衡-->
|
|
<Arg name="MsgCd" value="ACM20021"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<Set>RSP_AMT=</Set> <!-- 置空 -->
|
|
|
|
<!--逐笔处理手工调账明细-->
|
|
|
|
<Set>NUM=0</Set>
|
|
<While condition="INTCMP($NUM,1,$REC_NUM)">
|
|
<Set>NUM=ADD($NUM,1)</Set>
|
|
<Set>AC_DT=REC[$NUM].AC_DT</Set>
|
|
<Set>AC_DT_QRY=$GWA.AC_DT</Set>
|
|
<If condition="IS_NOEQUAL_STRING($AC_DT,$AC_DT_QRY)">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<!-- @msg 操作日期不符-->
|
|
<Arg name="MsgCd" value="ACM30010"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<Set>AC_NO=REC[$NUM].SUB_AC</Set>
|
|
<Set>CAP_TYP=REC[$NUM].CAP_TYP</Set>
|
|
<Set>AC_TYP=REC[$NUM].AC_TYP</Set>
|
|
<Set>TX_AMT=REC[$NUM].TX_AMT</Set>
|
|
<Set>DC_FLG=REC[$NUM].DC_FLG</Set>
|
|
<Set>RMK=REC[$NUM].RMK</Set>
|
|
<Switch expression="$AC_TYP">
|
|
<Case value="100"/> <!--主账户-->
|
|
<Case value="800"> <!--商户账户-->
|
|
<If condition="$AC_TYP=100">
|
|
<!-- 根据账号查询手机号与户名 -->
|
|
<Set>MAIN_AC_IN.AC_NO=$AC_NO</Set>
|
|
<Set>MAIN_AC_IN.AC_TYP=$AC_TYP</Set>
|
|
<Exec func="ACM1:QueryAcNoByMblNo" >
|
|
<Arg name="_I_INP_DAT" value="MAIN_AC_IN" />
|
|
<Arg name="_I_GWA" value="GWA"/>
|
|
<Arg name="_O_OUT_DAT" value="MAIN_AC_OUT" />
|
|
</Exec>
|
|
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<Set>MBL_NO=@O.MAIN_AC_OUT.MBL_NO</Set>
|
|
|
|
</If>
|
|
<If condition="$AC_TYP=800">
|
|
<!-- 根据账号查询手机号与户名 -->
|
|
<Set>MAIN_AC_IN.AC_NO=$AC_NO</Set>
|
|
<Set>MAIN_AC_IN.AC_TYP=$AC_TYP</Set>
|
|
<Exec func="ACM1:QueryAcNoByMblNo" >
|
|
<Arg name="_I_INP_DAT" value="MAIN_AC_IN" />
|
|
<Arg name="_I_GWA" value="GWA"/>
|
|
<Arg name="_O_OUT_DAT" value="MAIN_AC_OUT" />
|
|
</Exec>
|
|
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<Set>MERC_ID=@O.MAIN_AC_OUT.MERC_ID</Set>
|
|
|
|
</If>
|
|
<!--调账处理-->
|
|
<Set>MAIN_ACC.AC_NO=$AC_NO</Set>
|
|
<Set>MAIN_ACC.CAP_TYP=$CAP_TYP</Set>
|
|
<Set>MAIN_ACC.AC_TYP=$AC_TYP</Set>
|
|
<Set>MAIN_ACC.AMT=$TX_AMT</Set>
|
|
<Set>MAIN_ACC.TX_TYP=35</Set>
|
|
<Set>MAIN_ACC.BUS_TYP=0900</Set>
|
|
<Set>MAIN_ACC.ORD_TYP =12</Set>
|
|
<Set>MAIN_ACC.ORD_NO =$JRN_NO</Set>
|
|
<Set>MAIN_ACC.TX_DT=$GWA.TX_DT</Set>
|
|
<Set>MAIN_ACC.TX_TM=$GWA.TX_TM</Set>
|
|
<Set>MAIN_ACC.TX_CD=$GWA.TX_CD</Set>
|
|
<Set>MAIN_ACC.RMK=$RMK</Set>
|
|
|
|
<If condition="IS_EQUAL_STRING($DC_FLG,D)"> <!--借记调账-->
|
|
<Set>MAIN_ACC.BAL_OD_FLG=Y</Set>
|
|
<!--组件:主账户支取-->
|
|
<Exec func="ACM:MainAccountWithdraw">
|
|
<Arg name="_I_INP_DAT" value="MAIN_ACC"/> <!-- 输入信息 -->
|
|
<Arg name="_O_OUT_DAT" value="MAIN_AMT"/> <!-- 输出信息 -->
|
|
</Exec>
|
|
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
</If>
|
|
<ElseIf condition="IS_EQUAL_STRING($DC_FLG,C)"> <!--贷记调账-->
|
|
<!--组件:主账户存入-->
|
|
<Exec func="ACM:MainAccountDeposit">
|
|
<Arg name="_I_INP_DAT" value="MAIN_ACC"/> <!-- 输入信息 -->
|
|
<Arg name="_O_OUT_DAT" value="MAIN_AMT"/> <!-- 输出信息 -->
|
|
</Exec>
|
|
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
</ElseIf>
|
|
<Else>
|
|
<Exec func="PUB:GWASetMsg">
|
|
<!-- @msg 借贷标志有误 -->
|
|
<Arg name="MsgCd" value="ACM30005"/>
|
|
</Exec>
|
|
<Return/>
|
|
</Else>
|
|
<Break/>
|
|
</Case>
|
|
|
|
<Case value="101"> <!--钱包账户-->
|
|
|
|
<!--调账处理-->
|
|
<Set>PURSE_ACC.APP_SEQ_NO=$AC_NO</Set>
|
|
<Set>PURSE_ACC.AC_TYP=$AC_TYP</Set>
|
|
<Set>PURSE_ACC.CAP_TYP=$CAP_TYP</Set>
|
|
<Set>PURSE_ACC.AMT=$TX_AMT</Set>
|
|
<Set>PURSE_ACC.TX_TYP=35</Set>
|
|
<Set>PURSE_ACC.BUS_TYP=0900</Set>
|
|
<Set>PURSE_ACC.ORD_TYP=12</Set>
|
|
<Set>PURSE_ACC.ORD_NO=$JRN_NO</Set>
|
|
<Set>PURSE_ACC.TX_DT=$GWA.TX_DT</Set>
|
|
<Set>PURSE_ACC.TX_TM=$GWA.TX_TM</Set>
|
|
<Set>PURSE_ACC.TX_CD=$GWA.TX_CD</Set>
|
|
<Set>PURSE_ACC.RMK=$RMK</Set>
|
|
|
|
<If condition="IS_EQUAL_STRING($DC_FLG,D)"> <!--借记调账-->
|
|
<!--组件:钱包账户支取-->
|
|
<Exec func="ACM:PurseAccountWithdraw">
|
|
<Arg name="_I_INP_DAT" value="PURSE_ACC"/> <!-- 输入信息 -->
|
|
<Arg name="_O_OUT_DAT" value="PURSE_AMT"/> <!-- 输出信息 -->
|
|
</Exec>
|
|
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
</If>
|
|
<ElseIf condition="IS_EQUAL_STRING($DC_FLG,C)"> <!--贷记调账-->
|
|
<!--组件:钱包账户存入-->
|
|
<Exec func="ACM:PurseAccountDeposit">
|
|
<Arg name="_I_INP_DAT" value="PURSE_ACC"/> <!-- 输入信息 -->
|
|
<Arg name="_O_OUT_DAT" value="PURSE_AMT"/> <!-- 输出信息 -->
|
|
</Exec>
|
|
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
</ElseIf>
|
|
<Else>
|
|
<Exec func="PUB:GWASetMsg">
|
|
<!-- @msg 借贷标志有误 -->
|
|
<Arg name="MsgCd" value="ACM30005"/>
|
|
</Exec>
|
|
<Return/>
|
|
</Else>
|
|
<Break/>
|
|
</Case>
|
|
<Default> <!-- 内部账户 -->
|
|
|
|
<!--调账处理-->
|
|
<Set>INNER_ACC.AC_CD=SUBSTR($AC_NO,4,SUB(STRLEN($AC_NO),3))</Set>
|
|
<Set>INNER_ACC.AC_TYP=$AC_TYP</Set>
|
|
<Set>INNER_ACC.CAP_TYP=$CAP_TYP</Set>
|
|
<Set>INNER_ACC.AMT=$TX_AMT</Set>
|
|
<Set>INNER_ACC.TX_TYP=35</Set>
|
|
<Set>INNER_ACC.BUS_TYP=0900</Set>
|
|
<Set>INNER_ACC.ORD_TYP =12</Set>
|
|
<Set>INNER_ACC.ORD_NO =$JRN_NO</Set>
|
|
<Set>INNER_ACC.TX_DT=$GWA.TX_DT</Set>
|
|
<Set>INNER_ACC.TX_TM=$GWA.TX_TM</Set>
|
|
<Set>INNER_ACC.TX_CD=$GWA.TX_CD</Set>
|
|
<Set>INNER_ACC.RMK=$RMK</Set>
|
|
<Set>INNER_ACC.RVS_CLS=N</Set>
|
|
|
|
<If condition="IS_EQUAL_STRING($AC_TYP,999)"> <!-- 内部户 -->
|
|
<Set>INNER_ACC.AC_TYP=SUBSTR($AC_NO,1,3)</Set>
|
|
</If>
|
|
<If condition="IS_EQUAL_STRING($DC_FLG,D)"> <!--借记调账-->
|
|
<!--组件:内部账户支取-->
|
|
<Exec func="ACM:InnerAccountWithdraw">
|
|
<Arg name="_I_INP_DAT" value="INNER_ACC"/> <!-- 输入信息 -->
|
|
<Arg name="_O_OUT_DAT" value="INNER_AMT"/> <!-- 输出信息 -->
|
|
</Exec>
|
|
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
</If>
|
|
<ElseIf condition="IS_EQUAL_STRING($DC_FLG,C)"> <!--贷记调账-->
|
|
<!--组件:内部账户存入-->
|
|
<Exec func="ACM:InnerAccountDeposit">
|
|
<Arg name="_I_INP_DAT" value="INNER_ACC"/> <!-- 输入信息 -->
|
|
<Arg name="_O_OUT_DAT" value="INNER_AMT"/> <!-- 输出信息 -->
|
|
</Exec>
|
|
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
</ElseIf>
|
|
<Else>
|
|
<Exec func="PUB:GWASetMsg">
|
|
<!-- @msg 借贷标志有误 -->
|
|
<Arg name="MsgCd" value="ACM30005"/>
|
|
</Exec>
|
|
<Return/>
|
|
</Else>
|
|
<Break/>
|
|
</Default>
|
|
</Switch>
|
|
<!-- 会计日期置空 -->
|
|
<Set>AC_DT_QRY=</Set>
|
|
</While>
|
|
|
|
<!--确认该笔未确认流水-->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_ACMTACLG_CMT"/>
|
|
</Exec>
|
|
<If condition="~RetCod=2">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<!-- @msg {1}不存在 -->
|
|
<Arg name="MsgCd" value="ACM30002"/>
|
|
<Arg name="MsgDat" value="待确认的综合记账流水号"></Arg>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<Set>GWA.MSG_INF=确认成功</Set>
|
|
</If>
|
|
<ElseIf condition="IS_EQUAL_STRING($PARAM,$UPDO)"> <!--撤销-->
|
|
|
|
<!--撤销该流水号下的未确认流水-->
|
|
<Exec func="PUB:ExecSql">
|
|
<Arg name="SqlCmd" value="UPD_ACMTACLG_RVS"/>
|
|
</Exec>
|
|
<If condition="~RetCod=2">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<!-- @msg {1}不存在 -->
|
|
<Arg name="MsgCd" value="ACM30002"/>
|
|
<Arg name="MsgDat" value="待确认的综合记账流水号"></Arg>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<Set>GWA.MSG_INF=撤销成功</Set>
|
|
</ElseIf>
|
|
<Else>
|
|
<Exec func="PUB:GWASetMsg">
|
|
<!-- @msg 确认/撤销标志非法 -->
|
|
<Arg name="MsgCd" value="ACM30006"/>
|
|
</Exec>
|
|
<Return/>
|
|
</Else>
|
|
|
|
<Exec func="PUB:GWASetMsg">
|
|
<!-- @msg 交易成功 -->
|
|
<Arg name="MsgCd" value="ACM00000"/>
|
|
</Exec>
|
|
|
|
</FlowCtrl>
|
|
</Transaction>
|
|
</Root>
|