📄 cms303.sqc
字号:
/* Step One 主帐户处理 */ memset( acCcy, 0x00, sizeof( acCcy ) ); memset( acPrdCode, 0x00, sizeof( acPrdCode ) ); memset( acAcctSeqNo, 0x00, sizeof( acAcctSeqNo ) ); iRtn = nProcessAcctm( pstPubcom, stCmsCardInfo.cardno, acAcctNo, acSubAcct, acCustomId, stCmsCardInfo.cardkind, acCcy, acPrdCode, acAcctSeqNo ); if ( iRtn ) { ERRLOG goto Exit; } /* 检查币种是否为卡主帐户币种 API*/ iRtn = cmsApiChkIsSameCCY( &stCmsCardKind, acCcy ); if ( iRtn ) { ERRLOG goto Exit; } strcpy( g_acTrcMsg, "cmsApiChkIsSameCCY finish" ); TRCLOG3 /* 为修改卡片信息表做赋值准备 */ strcpy( stCmsCardInfo.acctno, acAcctNo ); strcpy( stCmsCardInfo.acctseqno, acAcctSeqNo ); strcpy( stCmsCardInfo.subacct, acSubAcct ); strcpy( stCmsCardInfo.issuebrc, pstPubcom->acBrc ); strcpy( stCmsCardInfo.teller, pstPubcom->acTeller ); strcpy( stCmsCardInfo.maincardno, stCmsCardInfo.cardno ); strcpy( stCmsCardInfo.usedate, pstPubcom->acTranDate ); strcpy( stCmsCardInfo.chgdate, pstPubcom->acTranDate ); strcpy( stCmsCardInfo.cardflg, acCardFlg ); strcpy( stCmsCardInfo.markflg, acMarkFlg ); strcpy( stCmsCardInfo.custno, acCustomId ); stCmsCardInfo.crdsts[ BIT1_LEN ] = CARDOKSTS; stCmsCardInfo.errnum = 0; stCmsCardInfo.errnumtot = 0; stCmsCardInfo.acdcnt = 0; stCmsCardInfo.acdlmt = 0.0; stCmsCardInfo.acduseamt = 0.0; stCmsCardInfo.empflg[ BIT1_LEN ] = COMMONCARD; stCmsCardInfo.yfeeflag[ BIT1_LEN ] = NOTAKEFEE; stCmsCardInfo.yfee = 0.0; stCmsCardInfo.yfeebal = 0.0; stCmsCardInfo.billway[0] = '0'; stCmsCardInfo.billaddtype[0] = '0'; stCmsCardInfo.madfeeflag[ BIT1_LEN ] = NOMADFEE; stCmsCardInfo.currbal = 0.0; stCmsCardInfo.availbal = 0.0; stCmsCardInfo.hasbankbook[ BIT1_LEN ] = BANKBOOK; /* 修改卡片信息标记录 */ pubInitCmscardinfo(); pubStoVCmscardinfo( &stCmsCardInfo ); /* for test AY */ sprintf( g_acTrcMsg,"cmscardinfo_custno=[%s]", cmscardinfo_custno); TRCLOG3 EXEC SQL UPDATE CMSCARDINFO SET ( U_CMSCARDINFO ) = ( W_CMSCARDINFO ) WHERE CURRENT OF Inf_l_cur; if ( SQLCODE ) { strcpy( g_acRspCode, "CMS114" ); /* 数据库更新错误 */ pubCrtRspInfo( "cmscardinfo",SQLCODE ); ERRLOG goto Exit; } setstring( "AcctSeqNo", acAcctSeqNo ); /* 帐户序号 */ /* Step Two 帐户处理 */ if ( strlen( acAcctNo1 ) ) { memset( acCcy, 0x00, sizeof( acCcy ) ); memset( acPrdCode, 0x00, sizeof( acPrdCode ) ); memset( acAcctSeqNo, 0x00, sizeof( acAcctSeqNo ) ); iRtn = nProcessAcctm( pstPubcom, stCmsCardInfo.cardno, acAcctNo1, acSubAcct1, acCustomId, stCmsCardInfo.cardkind, acCcy, acPrdCode, acAcctSeqNo ); if ( iRtn ) { ERRLOG goto Exit; } setstring( "AcctSeqNo1", acAcctSeqNo ); /* 帐户序号 */ } /* Step Three 帐户处理 */ if ( strlen( acAcctNo2 ) ) { memset( acCcy, 0x00, sizeof( acCcy ) ); memset( acPrdCode, 0x00, sizeof( acPrdCode ) ); memset( acAcctSeqNo, 0x00, sizeof( acAcctSeqNo ) ); iRtn = nProcessAcctm( pstPubcom, stCmsCardInfo.cardno, acAcctNo2, acSubAcct2, acCustomId, stCmsCardInfo.cardkind, acCcy, acPrdCode, acAcctSeqNo ); if ( iRtn ) { ERRLOG goto Exit; } setstring( "AcctSeqNo2", acAcctSeqNo ); /* 帐户序号 */ } /* Step Four 帐户处理 */ if ( strlen( acAcctNo3 ) ) { memset( acCcy, 0x00, sizeof( acCcy ) ); memset( acPrdCode, 0x00, sizeof( acPrdCode ) ); memset( acAcctSeqNo, 0x00, sizeof( acAcctSeqNo ) ); iRtn = nProcessAcctm( pstPubcom, stCmsCardInfo.cardno, acAcctNo3, acSubAcct3, acCustomId, stCmsCardInfo.cardkind, acCcy, acPrdCode, acAcctSeqNo ); if ( iRtn ) { ERRLOG goto Exit; } setstring( "AcctSeqNo3", acAcctSeqNo ); /* 帐户序号 */ } /* 登记账号索引表 */ iRtn = pubRegAcctNoIdx( stCmsCardInfo.cardno, STR_CMS ); if ( iRtn ) { ERRLOG goto Exit; } /* 子交易出口 */ setstring( "VouKind", stCmsCardInfo.voukind ); /* 凭证种类 */ setstring( "VouNo", stCmsCardInfo.vouno ); /* 凭证号码 */ setstring( "PreCharCode", stCmsCardInfo.precharcode ); /* 冠字号码 */ Exit: SQLCLOSECUR(Inf_l_cur,"Inf_l_cur") strcpy( g_acTrcMsg, "子交易: 主卡发卡结束.." ); TRCLOG4 if( !strcmp( g_acRspCode, RSP_OK ) ) return SUCCESS; else return FAILED ;}int nProcessAcctm( pstPub,pcCardNo,pcAcctNo,pcSubAcct,pcCustomId,pcCardKind, pcCcy, pcPrdCode, pcAcctSeqNo )PUBCOM *pstPub; /* 公共结构 */char *pcCardNo; /* 卡号 */char *pcAcctNo; /* 客户帐号 */char *pcSubAcct; /* 款项帐号 */char *pcCustomId; /* 客户号 */char *pcCardKind; /* 卡片种类 *//* 输出 */char *pcCcy; /* 币种 */char *pcPrdCode; /* 产品代码 */char *pcAcctSeqNo; /* 帐户序号 */{ struct cmsacctm stCmsAcctM; /* 卡帐户对照表 */ struct dpssaveaccdyninfo stDpsSaveDyn; /* 活期存款动态 */ struct ciscustaccinfo stCisCustAcc; /* 客户号帐号对照 */ int iRtn = 0; strcpy( g_acTrcMsg, "nProcessAcctm Begin " ); TRCLOG4 memset( &stCmsAcctM, 0x00, sizeof( struct cmsacctm ) ); memset( &stDpsSaveDyn, 0x00, sizeof( struct dpssaveaccdyninfo ) ); memset( &stCisCustAcc, 0x00, sizeof( struct ciscustaccinfo ) ); strcpy( stCisCustAcc.acctno, pcAcctNo ); /* 获取客户号帐号对照 */ iRtn = pubReadCiscustaccinfo( &stCisCustAcc ); if ( iRtn ) { ERRLOG goto Exit; } /* 检查是否为同一客户 */ if ( strcmp( stCisCustAcc.customid, pcCustomId ) ) { strcpy( g_acRspCode, "CMS1C0" ); pubCrtRspInfo( ); ERRLOG goto Exit; } /* 获取活期存款动态 */ strcpy( stDpsSaveDyn.subacct, pcSubAcct ); iRtn = pubReadDpssaveaccdyninfo( &stDpsSaveDyn ); if ( iRtn ) { ERRLOG goto Exit; } /* 检查卡内同币种同一产品代码的账户是否超限 */ iRtn = cmsApiChkCardAcctNumExceed( pcCardNo, pcCardKind, stDpsSaveDyn.ccy, stDpsSaveDyn.prdcode ); if ( iRtn ) { ERRLOG goto Exit; } /* 为增加卡账户对照表准备数据 */ strcpy( stCmsAcctM.cardno, pcCardNo ); strcpy( stCmsAcctM.acctno, pcAcctNo ); strcpy( stCmsAcctM.subacct, pcSubAcct ); strcpy( stCmsAcctM.custno, pcCustomId ); strcpy( stCmsAcctM.prdcod, stDpsSaveDyn.prdcode ); strcpy( stCmsAcctM.ccy, stDpsSaveDyn.ccy ); /* 生成卡内帐户序号 */ iRtn = cmsApiGetSeqNoInCard( pcCardNo, stCmsAcctM.acctseqno ); if ( iRtn ) { ERRLOG goto Exit; } /* 按产品代码获取业务种类 */ iRtn = cmsApiGetBussKindByPrdCod( stCmsAcctM.prdcod, stCmsAcctM.busskind ); if ( iRtn ) { ERRLOG goto Exit; } strcpy( stCmsAcctM.subsys, STR_DPS ); strcpy( stCmsAcctM.issuebrc, pstPub->acBrc ); strcpy( stCmsAcctM.issueteller, pstPub->acTeller ); strcpy( stCmsAcctM.issuedate, pstPub->acTranDate ); stCmsAcctM.accowner[ BIT1_LEN ] = BELONGMAINCARD; /* 属于主卡 */ stCmsAcctM.cardbookflag[ BIT1_LEN ] = ACCOPENFLG_BOOK; /* 有折 */ stCmsAcctM.status[ BIT1_LEN ] = NORMAL_STS; /* 正常 */ /* 插入卡账户对照表 */ iRtn = pubInstCmsacctm( &stCmsAcctM ); if ( iRtn ) { ERRLOG goto Exit; } /* 调用存款api修改静态文件 */ iRtn=dpsBooAddCarStaOper( pcAcctNo, "1", "", "", "", "", "", "", "", "0" ); if ( iRtn ) { ERRLOG goto Exit; } strcpy( pcCcy, stDpsSaveDyn.ccy ); strcpy( pcPrdCode, stDpsSaveDyn.prdcode ); strcpy( pcAcctSeqNo, stCmsAcctM.acctseqno );Exit: strcpy( g_acTrcMsg, "nProcessAcctm End " ); TRCLOG4 if( !strcmp( g_acRspCode, RSP_OK ) ) return SUCCESS; else return FAILED ;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -