⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cms522.sqc

📁 一整套完整的银行卡系统源代码
💻 SQC
字号:
/******************************************************************** **   源码文件名称 : cms522.SQC **   所属子系统   : CMS  **   当前文件版本 : 4.0.0.0 **   作者         : Feng **   版本创建日期 : 2004/09/21 **   功能描述     : 存折单移出卡处理子交易 **   修改记录     : **   修改人       修改日期     修改日期*********************************************************************/#include "code.h"#include "attrdef.h"#include "sysdef.h"#include "pubcom.h"#include "cmscode.h"#include "cmscardinfo.h"#include "cmsactiom.h"#include "cmsacctm.h"EXEC SQL INCLUDE SQLCA;int cmsActOutCardPro( PUBCOM *pstPubcom ){	/*定义局部变量*/	struct	cmscardinfo			stCmsCardInfo;		/* 卡片信息表		*/	struct	cmsacctm			stCmsAcctM;			/* 卡账户对照表		*/	struct	cmsactiom			stCmsActioM;		/* 移出移出登记簿	*/	int		iRtn;								/* 函数返回值		*/	strcpy( g_acTrcMsg, "子交易: 存折单移出卡处理开始.." );	TRCLOG4	/* 初始化 */	memset( &stCmsCardInfo,		0x00,	sizeof( struct cmscardinfo ) );	memset( &stCmsAcctM,		0x00,	sizeof( struct cmsacctm ) );	memset( &stCmsActioM,		0x00,	sizeof( struct cmsactiom ) );	/* 取数据字典值 */	getstring( "CardNo",	stCmsCardInfo.cardno	);		/* 获取卡片信息 */	iRtn = pubReadCmscardinfo( &stCmsCardInfo );	if ( iRtn )	{		if ( SQLCODE == SQLNOTFOUND )			sprintf( g_acRspMsg, "卡号[%s]不存在", stCmsCardInfo.cardno );		ERRLOG		return FAILED;	}	/* 从字典获取其他字段 */	getstring( "AcctSeqNo",	stCmsAcctM.acctseqno	);	getstring( "AcctNo1",	stCmsActioM.acctno	);	getstring( "IdType",	stCmsActioM.idtype		);	getstring( "IdNo",		stCmsActioM.idcode		);	getstring( "CustomName",stCmsActioM.custname	);	/* 获取卡账户对照表并锁住记录 */	strcpy( stCmsAcctM.cardno,		stCmsCardInfo.cardno		);	pubStoVCmsacctm( &stCmsAcctM );	EXEC SQL	DECLARE Acc_l_cur CURSOR FOR 				SELECT * FROM CMSACCTM				WHERE cardno = :cmsacctm_cardno				AND	acctseqno = :cmsacctm_acctseqno				FOR UPDATE;	/* 定义游标错误 */    if ( SQLCODE )	{		strcpy( g_acRspCode, "CMS110" );		pubCrtRspInfo( "cmsacctm", SQLCODE );		ERRLOG		return FAILED;	}	SQLOPENCUR(Acc_l_cur,"Acc_l_cur")	/* 打开游标错误 */	if ( SQLCODE )	{		strcpy( g_acRspCode, "CMS111" );		pubCrtRspInfo( "cmsacctm", SQLCODE );		ERRLOG		return FAILED;	}	pubInitCmsacctm();	EXEC SQL	FETCH Acc_l_cur INTO R_CMSACCTM ;	/* 取游标错误 */	if ( SQLCODE && SQLCODE != SQLNOTFOUND )	{		strcpy( g_acRspCode, "CMS112" );		pubCrtRspInfo( "cmsacctm", SQLCODE );		ERRLOG	SQLCLOSECUR(Acc_l_cur,"Acc_l_cur")		return FAILED;	}	/* 记录不存在 */	else if ( SQLCODE == SQLNOTFOUND )	{		strcpy( g_acRspCode, "CMS113" );		sprintf( g_acRspMsg, "卡号[%s]帐户序号[%s]不存在",						cmsacctm_cardno, cmsacctm_acctseqno );		ERRLOG	SQLCLOSECUR(Acc_l_cur,"Acc_l_cur")		return FAILED;	}	pubVtoSCmsacctm( &stCmsAcctM );	/* 为修改卡账户对照表准备数据 */	strcpy( stCmsAcctM.closebrc,	pstPubcom->acBrc			);	strcpy( stCmsAcctM.closeteller,	pstPubcom->acTeller			);	strcpy( stCmsAcctM.closedate,	pstPubcom->acTranDate		);	stCmsAcctM.status[ BIT1_LEN ] = MOVEOUT_STS;	/* 移出			*/	/* 修改卡账户对照表 */	pubInitCmsacctm();	pubStoVCmsacctm( &stCmsAcctM );	EXEC SQL	UPDATE CMSACCTM				SET		( U_CMSACCTM ) = ( W_CMSACCTM )				WHERE	CURRENT OF Acc_l_cur;	if ( SQLCODE )	{		strcpy( g_acRspCode, "CMS114" );		/* 数据库更新错误 */		pubCrtRspInfo( "cmsacctm",SQLCODE );		ERRLOG	SQLCLOSECUR(Acc_l_cur,"Acc_l_cur")		return FAILED;	};	SQLCLOSECUR(Acc_l_cur,"Acc_l_cur")	/* 为增加移出移出登记簿做赋值准备 */	getdouble( "Bal", 				&stCmsActioM.balance		);	strcpy( stCmsActioM.cardno,		stCmsCardInfo.cardno		);	strcpy( stCmsActioM.trandate,	pstPubcom->acTranDate		);	stCmsActioM.serseqno = pstPubcom->lSerSeqNo;	sprintf( stCmsActioM.vouchno,	"%s%0*ld", pstPubcom->acTranDate8, \					SERSEQNO_LEN,	 stCmsActioM.serseqno		);	strcpy( stCmsActioM.acctseqno,	stCmsAcctM.acctseqno	);	strcpy( stCmsActioM.busskind,	stCmsAcctM.busskind		);	strcpy( stCmsActioM.ccy,		stCmsAcctM.ccy		);	strcpy( stCmsActioM.prdcod,		stCmsAcctM.prdcod		);	strcpy( stCmsActioM.subacct,	stCmsAcctM.subacct		);	strcpy( stCmsActioM.issuebrc,	stCmsCardInfo.issuebrc	);	strcpy( stCmsActioM.brc,		pstPubcom->acBrc		);	strcpy( stCmsActioM.teller,		pstPubcom->acTeller		);	stCmsActioM.opflg[ BIT1_LEN ] = MOVEOUT;			/* 移出		*/	/* 插入账户移入移出登记簿 */	iRtn = pubInstCmsactiom( &stCmsActioM );	if ( iRtn )	{		ERRLOG		return FAILED;	}	/* 是否写子交易流水 */	iRtn = cmsApiInsTranLog( pstPubcom, &stCmsCardInfo, &stCmsAcctM, "移出", "存单折移出卡" );	if ( iRtn )	{		ERRLOG		return FAILED;	}	/* 子交易出口 */ 		strcpy( g_acTrcMsg, "子交易: 存折单移出卡处理结束.." );	TRCLOG4	strcpy( g_acRspCode,  RSP_OK );	return SUCCESS;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -