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

144 lines
6.6 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Package>
<Function name="SIGN_AGREEMENT">
<Input>INP_DAT</Input>
<Output>OUT_DAT|MSG_CD</Output>
<Process>
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="URM00000"/>
</Exec>
<!-- 判断用户是否存在组件 -->
<Set>INP_DAT.MBLNO_OR_LOGID=$INP_DAT.AGR_MBL</Set>
<Call package="URM" function="CHK_USER_EXIST">
<Input>INP_DAT</Input>
<Output>OUT_DAT|MSG_CD</Output>
</Call>
<If condition="IS_SUCC(@O.MSG_CD)=0">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="@O.MSG_CD"/>
</Exec>
<Return/>
</If>
<!-- 调用公共代码查询组件 -->
<Set>QPC_INP.PUB_CD_TYP=AGRDF</Set> <!-- 代码类型 -->
<Set>QPC_INP.PUB_CD_VAL=$INP_DAT.AGR_TYP</Set> <!-- 代码值 -->
<Exec func="CMM:QueryPublicCode">
<Arg name="_I_INP_DAT" value="QPC_INP"/> <!-- 输入信息 -->
<Arg name="_O_OUT_DAT" value="QPC_OUT"/> <!-- 输出信息 -->
</Exec>
<If condition="IS_SUCC(@O.MSG_CD)=0">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="@O.MSG_CD"/>
</Exec>
<Return/>
</If>
<If condition="ISNULL($INP_DAT.EXP_DT)">
<Set>INP_DAT.EXP_DT=99991231</Set>
</If>
<!-- 检查失效日期是否小于等于当前会计日期 -->
<If condition="$INP_DAT.EXP_DT&lt;=$GWA.TX_DT">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="URM20164"/> <!-- 失效日期小于等于当前会计日期 -->
</Exec>
<Return/>
</If>
<!-- 检查生效日期是否大于失效日期 -->
<If condition="$INP_DAT.EXP_DT&lt;$INP_DAT.EFF_DT">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="URM20165"/> <!-- 生效日期大于失效日期 -->
</Exec>
<Return/>
</If>
<Exec func="PUB:DumpDs"/>
<If condition="ISNULL($INP_DAT.AGR_NO)">
<!-- 调用生成协议编号组件 -->
<Set>GAN_INP.AGR_TYP=$INP_DAT.AGR_TYP</Set> <!-- 代码类型 -->
<Exec func="CMM:GenerateAgreementNo">
<Arg name="_I_INP_DAT" value="GAN_INP"/>
<Arg name="_O_OUT_DAT" value="GAN_OUT"/>
</Exec>
<If condition="IS_SUCC(@O.MSG_CD)=0">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="@O.MSG_CD"/>
</Exec>
<Return/>
</If>
<Set>AGR_NO=@O.GAN_OUT.AGR_NO</Set>
</If>
<Else>
<Set>AGR_NO=$INP_DAT.AGR_NO</Set>
</Else>
<!-- 登记用户协议基本信息表 -->
<Set>AGR_TYP=$INP_DAT.AGR_TYP</Set>
<Set>AGR_CLS=$INP_DAT.AGR_CLS</Set>
<If condition="$INP_DAT.EFF_DT &lt;= $GWA.TX_DT">
<If condition="IS_EQUAL_STRING($INP_DAT.FUNC,0)"> <!-- 判断协议状态是否为已确认 -->
<Set>AGR_STS=3</Set>
</If>
<ElseIf condition="IS_EQUAL_STRING($INP_DAT.FUNC,2)"> <!-- 判断协议状态是否为录入后待处理 -->
<Set>AGR_STS=1</Set>
</ElseIf>
</If>
<Else>
<If condition="IS_EQUAL_STRING($INP_DAT.FUNC,0)"> <!-- 判断协议状态是否为已确认 -->
<Set>AGR_STS=2</Set>
</If>
<ElseIf condition="IS_EQUAL_STRING($INP_DAT.FUNC,2)"> <!-- 判断协议状态是否为录入后待处理 -->
<Set>AGR_STS=1</Set>
</ElseIf>
</Else>
<Set>EFF_DT=$INP_DAT.EFF_DT</Set>
<Set>EXP_DT=$INP_DAT.EXP_DT</Set>
<Set>USR_NO=@O.OUT_DAT.USR_NO</Set>
<Set>PSN_CRP_FLG=$INP_DAT.PSN_CRP_FLG</Set>
<Set>AGR_BUY_SAL_FLG=$INP_DAT.AGR_BUY_SAL_FLG</Set>
<Set>AGR_MBL=$INP_DAT.AGR_MBL</Set>
<Set>AGR_MERC=$INP_DAT.AGR_MERC</Set>
<Set>USR_AGR_PTY=$INP_DAT.USR_AGR_PTY</Set>
<Set>AGR_OPP_TYP=$INP_DAT.AGR_OPP_TYP</Set>
<Set>AGR_OPP_ID=$INP_DAT.AGR_OPP_ID</Set>
<Set>AGR_OPP_REF=$INP_DAT.AGR_OPP_REF</Set>
<Set>AGR_OPP_INF1=$INP_DAT.AGR_OPP_INF1</Set>
<Set>AGR_OPP_INF2=$INP_DAT.AGR_OPP_INF2</Set>
<Set>AGR_OPP_INF3=$INP_DAT.AGR_OPP_INF3</Set>
<Set>AGR_OPP_TYP2=$INP_DAT.AGR_OPP_TYP2</Set>
<Set>AGR_OPP_ID2=$INP_DAT.AGR_OPP_ID2</Set>
<Set>AGR_OPP_REF2=$INP_DAT.AGR_OPP_REF2</Set>
<Set>AGR_OPP_INF4=$INP_DAT.AGR_OPP_INF4</Set>
<Set>AGR_OPP_INF5=$INP_DAT.AGR_OPP_INF5</Set>
<Set>AGR_OPP_INF6=$INP_DAT.AGR_OPP_INF6</Set>
<Set>SIGN_PROV=$INP_DAT.SIGN_PROV</Set>
<Set>SIGN_CITY=$INP_DAT.SIGN_CITY</Set>
<Set>SIGN_DEPT=$INP_DAT.SIGN_DEPT</Set>
<Set>SIGN_DT=$INP_DAT.SIGN_DT</Set>
<Set>UPD_JRN=$GWA.JRN_NO</Set>
<Set>RMK=$INP_DAT.RMK</Set>
<Set>MOD_NAM=$INP_DAT.MOD_NAM</Set>
<Exec func="PUB:InsertRecord">
<Arg name="TblNam" value="URMTAGRI"/>
</Exec>
<If condition="~RetCod=1">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="URM20000"/>
</Exec>
<Return/>
</If>
<!-- 返回协议号-->
<Set>OUT_DAT.AGR_NO=$AGR_NO</Set>
</Process>
</Function>
</Package>