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

📄 cms011.sqc

📁 一整套完整的银行卡系统源代码
💻 SQC
字号:
/******************************************************************** **   源码文件名称 : cms011.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 "cmsacctm.h"#include "dpstermprdinfo.h"#include "dpssaveprdinfo.h"EXEC SQL INCLUDE SQLCA;int cmsActOutCardChkPro( PUBCOM *pstPubcom ){	/*定义局部变量*/	struct	cmscardinfo			stCmsCardInfo;	/* 卡片信息表		*/	struct	cmsacctm			stCmsAcctM;		/* 卡账户对照表		*/	struct	dpstermprdinfo		stDpsTermPrd;	/* 定期产品信息		*/	struct	dpssaveprdinfo		stDpsSavePrd;	/* 活期产品信息		*/	char	acCardStat[ BIT21_LEN ][BIT11_LEN];	/* 卡状态检查标志	*/	char	acPasswd[ PASSWD_LEN + 1 ];			/* 密码				*/	char	acFlag[ FLAG_LEN + 1 ];				/* 开户标志			*/	char	acCustomId[ CUSTNO_LEN + 1 ];		/* 卡客户号			*/	char	acVouKind[ VOUKIND_LEN + 1 ];		/* 凭证种类输入		*/	char	acVouKind1[ 10 + 1 ];		/* 凭证种类标准		*/	char	acVouKind2[ VOUKIND_LEN + 1 ];		/* 凭证种类标准		*/	char	acCustomId1[ CUSTNO_LEN + 1 ];		/* 账户客户号		*/	double	dTrsAmt=0.0;	int		iRtn;								/* 函数返回值		*/	int		iNumx;								/* 数组计数器		*/	int		iNumy;								/* 数组计数器		*/	strcpy( g_acTrcMsg, "子交易: 存单折移出卡检查处理开始.." );	TRCLOG4	/* 初始化 */	memset( &stCmsCardInfo,		0x00,	sizeof( struct cmscardinfo ) );	/* 卡检查状态数组全置未不检查 */	for ( iNumx = 0; iNumx < BIT21_LEN; iNumx ++ )		for ( iNumy = 0; iNumy < BIT11_LEN; iNumy ++ )			acCardStat[iNumx][iNumy] = CHECK_NO;	/* 取数据字典值 */	getstring( "CardNo",	stCmsCardInfo.cardno	);		/* 获取卡片信息表 */	iRtn = pubReadCmscardinfo( &stCmsCardInfo );	if ( iRtn )	{		if ( SQLCODE == SQLNOTFOUND )			sprintf( g_acRspMsg, "卡号[%s]不存在", stCmsCardInfo.cardno );		ERRLOG		return FAILED;	}	/* 从字典获取其他数据 */	memset( acPasswd,		0x00,	sizeof( acPasswd ) );	memset( acFlag,			0x00,	sizeof( acFlag ) );	memset( acCustomId1,	0x00,	sizeof( acCustomId1 ) );	memset( acCustomId,		0x00,	sizeof( acCustomId ) );	memset( acVouKind,		0x00,	sizeof( acVouKind ) );	memset( acVouKind1,		0x00,	sizeof( acVouKind1 ) );	memset( acVouKind2,		0x00,	sizeof( acVouKind2 ) );	getstring( "Passwd",		acPasswd				);	getstring( "AcctSeqNo",		stCmsAcctM.acctseqno	);	getstring( "Flag",			acFlag					);	getstring( "CustomId1",		acCustomId1				);	getstring( "CustomId",		acCustomId				);	getstring( "VouKind",		acVouKind				);	getdouble( "TrsAmt",		&dTrsAmt				);	/* 检查卡状态是否正常 */	acCardStat[ BIT1_LEN ][ BIT1_LEN ] = CHECK_YES;	/* 检查销卡		*/	acCardStat[ BIT2_LEN ][ BIT1_LEN ] = CHECK_YES;	/* 检查挂失		*/	acCardStat[ BIT3_LEN ][ BIT1_LEN ] = CHECK_YES;	/* 检查密挂		*/	acCardStat[ BIT5_LEN ][ BIT1_LEN ] = CHECK_YES;	/* 检查吞卡		*/	acCardStat[ BIT6_LEN ][ BIT1_LEN ] = CHECK_YES;	/* 检查拣拾		*/	acCardStat[ BIT8_LEN ][ BIT1_LEN ] = CHECK_YES;	/* 检查换卡		*/	acCardStat[ BIT9_LEN ][ BIT1_LEN ] = CHECK_YES;	/* 检查锁卡		*/	acCardStat[ BIT13_LEN ][ BIT1_LEN ] = CHECK_YES; /* 检查欠费	*/	acCardStat[ BIT14_LEN ][ BIT1_LEN ] = CHECK_YES; /* 换卡申请	*/	iRtn = cmsApiChkCardStatIsNormal( &stCmsCardInfo, acCardStat );	if ( iRtn )	{		ERRLOG		return FAILED;	}	/* 检查卡密码 */	iRtn = cmsApiChkCardPwd( &stCmsCardInfo, acPasswd, pstPubcom->acChannelId );	if ( iRtn )	{		ERRLOG		return FAILED;	}	/* 检查主账户不能移出 */	if ( !strcmp( stCmsAcctM.acctseqno, MAINACCTSEQNO ) )	{		strcpy( g_acRspCode, "CMS1A9" );		pubCrtRspInfo( );		ERRLOG		return FAILED;	}	/* 检查主帐户移出必须为卡内无其他账户 */	/*	if ( !strcmp( stCmsAcctM.acctseqno, MAINACCTSEQNO ) )	{		iRtn = cmsApiChkCardNoHasOtherAcct( stCmsCardInfo.cardno );		if ( iRtn )		{			ERRLOG			return FAILED;		}	}	*/	/* 获取卡账户对照表 */	strcpy( stCmsAcctM.cardno,	stCmsCardInfo.cardno );	iRtn = pubReadCmsacctm( &stCmsAcctM );	if ( iRtn )	{		if ( SQLCODE == SQLNOTFOUND )			sprintf( g_acRspMsg, "卡号[%s]账户序号[%s]不存在", stCmsCardInfo.cardno, stCmsAcctM.acctseqno  );		ERRLOG		return FAILED;	}	/* 检查卡帐户对照表状态是否正常 */	iRtn = cmsApiChkAcctStatusIsOK( &stCmsAcctM );	if ( iRtn )	{		ERRLOG		return FAILED;	}	/* 移出账户已经开户 */	if ( acFlag[ BIT1_LEN ] == '1' ) 	{		/* 比较客户号 */		strpack( acCustomId1 );		strpack( acCustomId );		if ( strcmp( acCustomId, acCustomId1 ) )		{			strcpy( g_acRspCode, "CMS1C3" );			pubCrtRspInfo( );			ERRLOG			return FAILED;		}	}	memset( &stDpsSavePrd, 0x00, sizeof( struct dpssaveprdinfo ) );	memset( &stDpsTermPrd, 0x00, sizeof( struct dpstermprdinfo ) );	strcpy( stDpsSavePrd.prdcode,	stCmsAcctM.prdcod );	iRtn = pubReadDpssaveprdinfo( &stDpsSavePrd );	if ( iRtn && SQLCODE != SQLNOTFOUND )	{		ERRLOG		return FAILED;	}	else if ( !iRtn )	{		strcpy( acVouKind1, stDpsSavePrd.opnvoukind );		strncpy( acVouKind2, stDpsSavePrd.opnvoukind, VOUKIND_LEN );		acVouKind2[VOUKIND_LEN]='\0';	}	else if ( iRtn && SQLCODE == SQLNOTFOUND )	{		strcpy( stDpsTermPrd.prdcode,	stCmsAcctM.prdcod );		iRtn = pubReadDpstermprdinfo( &stDpsTermPrd );		if ( iRtn )		{			ERRLOG			return FAILED;		}		else 		{			strcpy( acVouKind1, stDpsTermPrd.opnvoukind );			strncpy( acVouKind2, stDpsTermPrd.opnvoukind, VOUKIND_LEN );			acVouKind2[VOUKIND_LEN]='\0';		}	}	/* 检查移出凭证 */	iRtn = dpsFixVouCheck( stCmsAcctM.prdcod, acVouKind1, dTrsAmt, acVouKind2 );	if ( iRtn )	{		ERRLOG		return FAILED;	}	if ( !strlen( acVouKind2 ) )	{		strncpy( acVouKind2, acVouKind1, VOUKIND_LEN );		acVouKind2[VOUKIND_LEN]='\0';	}	if ( strcmp( acVouKind, acVouKind2 ) )	{		strcpy( g_acRspCode, "CMS1D8" );		pubCrtRspInfo( acVouKind, acVouKind2 );		ERRLOG		return FAILED;	}	/* 子交易出口 */ 		strcpy( g_acTrcMsg, "子交易: 存单折移出卡检查结束.." );	TRCLOG4	strcpy( g_acRspCode,  RSP_OK );	return SUCCESS;}

⌨️ 快捷键说明

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