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

📄 cms005.sqc

📁 一整套完整的银行卡系统源代码
💻 SQC
字号:
/******************************************************************** **   源码文件名称 : cms005.SQC **   所属子系统   : CMS  **   当前文件版本 : 1.0.0.0 **   作者         : UCCB	ALEX **   版本创建日期 : 2004/10/09 **   功能描述     : 申请附卡检查子交易 **   修改记录     : **   修改人       修改日期     修改说明 **   Feng         2006-01-16   卡凭证信息的输出和选号发卡的检查*********************************************************************/#include "code.h"#include "attrdef.h"#include "sysdef.h"#include "pubcom.h"#include "cmscode.h"#include "cmscardinfo.h"#include "cmscardkind.h"#include "pubvouinfo.h"EXEC SQL INCLUDE SQLCA;int cmsOpenAcceCardChkPro( PUBCOM *pstPubcom ){	/*定义局部变量*/	char	acPassWd[PASSWD_LEN+1]	        ;	/*密码*/	char	acHappen[PASSWD_LEN+1]	        ;	/*业务发生地*/	char	acCheckFlag[BIT21_LEN][BIT11_LEN];	/*卡状态检查标志*/	char	acCustomId[ CUSTNO_LEN + 1 ];		/* 附卡客户号码	*/	char	acMarkFlg[ FLAG_LEN + 1 ];			/* 记名卡/非记名卡标志	*/	struct	cmscardinfo		stCardInfo;	struct	cmscardinfo		stFCardInfo;	struct	cmscardkind		stCardKind;	strcpy( g_acTrcMsg, "子交易: 附卡申请检查子交易..." );	TRCLOG4	memset( &stCardInfo, 0x00, sizeof ( struct cmscardinfo ) ); 	memset( &stFCardInfo, 0x00, sizeof ( struct cmscardinfo ) ); 	memset( &stCardKind, 0x00, sizeof ( struct cmscardkind ) ); 	memset( acCheckFlag, 0x00, sizeof ( acCheckFlag ) ); 	memset( acCustomId,			0x00,	sizeof( acCustomId ) );	memset( acMarkFlg,			0x00,	sizeof( acMarkFlg ) );	/* 取数据字典值 */	getstring("CardNo",	stCardInfo.cardno		); /*卡号  */	getstring("CustomId",acCustomId		); /*卡号  */	getstring("FCardNo",stFCardInfo.cardno		); /*卡号  */	getstring("PassWd", acPassWd         		); /*卡密码*/	getstring("MarkFlg", acMarkFlg         		); 	strcpy	 ( acHappen,pstPubcom->acChannelId	); /*业务发生地*/		/* 获取主卡片信息表 */ 	if( pubReadCmscardinfo( &stCardInfo ) ) 	{		if ( SQLCODE == SQLNOTFOUND )			sprintf( g_acRspMsg, "主卡号[%s]不存在", stCardInfo.cardno );		ERRLOG		goto Exit;	}		/* 获取卡片种类表 */ 	strcpy( stCardKind.cardkind,	stCardInfo.cardkind	);	if( pubReadCmscardkind( &stCardKind ) ) 	{		if ( SQLCODE == SQLNOTFOUND )			sprintf( g_acRspMsg, "卡片种类[%s]不存在", stCardInfo.cardkind );		ERRLOG		goto Exit;	}		/*检查是否为主卡*/	if( cmsApiChkCardNoIsMain( &stCardInfo ) )	{		ERRLOG;		goto Exit;	}	/*置卡状态检查标志*/	acCheckFlag[BIT1_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT2_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT3_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT4_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT5_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT6_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT7_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT8_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT9_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT11_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT13_LEN][BIT1_LEN]=CHECK_YES;	acCheckFlag[BIT14_LEN][BIT1_LEN]=CHECK_YES;	/*检查主卡状态是否正常*/	if( cmsApiChkCardStatIsNormal( &stCardInfo, acCheckFlag ) )	{		ERRLOG;		goto Exit;	}	strcpy( g_acTrcMsg, "cardstat end!" );	TRCLOG3	/*判断主卡密码是否正确*/	if( cmsApiChkCardPwd( &stCardInfo,acPassWd,acHappen ) )	{		ERRLOG		goto Exit;	}	/* 比较单位附卡的客户号和主卡客户号是否相同 */	if ( stCardInfo.cardobject[ BIT1_LEN ] == UNITCARD )	{		strpack( stCardInfo.custno );		strpack( acCustomId );		if ( strcmp( stCardInfo.custno, acCustomId ) )		{			strcpy( g_acRspCode, "CMS1E4" );			pubCrtRspInfo( );			ERRLOG			goto Exit;		}	}	/* 获取附卡片信息表 */ 	if( pubReadCmscardinfo( &stFCardInfo ) ) 	{		if ( SQLCODE == SQLNOTFOUND )			sprintf( g_acRspMsg, "附卡号[%s]不存在", stFCardInfo.cardno );		ERRLOG		goto Exit;	}	/* 获取卡片种类表 */ 	memset( &stCardKind, 0x00, sizeof ( struct cmscardkind ) ); 	strcpy( stCardKind.cardkind,	stFCardInfo.cardkind	);	if( pubReadCmscardkind( &stCardKind ) ) 	{		if ( SQLCODE == SQLNOTFOUND )			sprintf( g_acRspMsg, "卡片种类[%s]不存在", stFCardInfo.cardkind );		ERRLOG		goto Exit;	}	    /* 检查卡号是否为记名卡非记名卡 */    if ( stCardKind.markflg[ BIT1_LEN ] != ALLREGCARD )    {        if ( stCardKind.markflg[ BIT1_LEN ] != stFCardInfo.markflg[0] )        {            strcpy( g_acRspCode, "CMS1B4" );            pubCrtRspInfo( stCardKind.cardkind );            ERRLOG            return FAILED;        }    }	/*检查是否为待领卡状态*/	if( cmsApiChkCardStatIsReadyOpen( &stFCardInfo ) )	{		ERRLOG		goto Exit;	}	/* 检查主卡和附卡的发卡对象是否相同 */	if ( stFCardInfo.cardobject[ BIT1_LEN ] != stCardInfo.cardobject[ BIT1_LEN ] )	{		strcpy( g_acRspCode, "CMS1E9" );		pubCrtRspInfo( );		ERRLOG		goto Exit;	}	/*检查客户持附卡数是否超限 修改客户持附卡数*/	if(cmsApiChkCustCardNumLimit( acCustomId, &stCardKind,\			SUBMAIN_CARD, FLAG_NORMAL) )	{		ERRLOG		goto Exit;	}	/* Feng Add in 2006-01-16 Begin */	/* 检查单张选号卡需要核对客户号码 */	if ( stFCardInfo.cardstat[ BIT16_LEN ] == BIT16_CHOOSE )	{		/* 检查是否为同一客户 */		if ( strcmp( acCustomId, stFCardInfo.custno ) )		{			strcpy( g_acRspCode, "CMS1E7" );			sprintf( g_acRspMsg, "此卡为选号卡,不属于该客户" );			ERRLOG			goto Exit;		}	}	/* Feng Add in 2006-01-16 End */	/* 获取凭证名称 */	pubInitPubvouinfo();	strcpy( pubvouinfo_voukind, stFCardInfo.voukind );	EXEC SQL	SELECT	vouname 				INTO	:pubvouinfo_vouname				FROM	pubvouinfo				WHERE	voukind = :pubvouinfo_voukind;	if ( SQLCODE )	{		strcpy( g_acRspCode, "999996" );		/* 数据库读错误 */		pubCrtRspInfo( "pubvouinfo",SQLCODE );		ERRLOG		goto Exit;	}	strpack( pubvouinfo_vouname );	/* 子交易出口 */ 	setstring( "CardKind"	, stFCardInfo.cardkind		);	setstring( "VouKind"	, stFCardInfo.voukind		);	/* Feng Modify in 2006-01-16 Begin */	setstring( "VouNo"		, stFCardInfo.vouno    		);	setstring( "PreCharCode", stFCardInfo.precharcode );/* 冠字号码	*/	/* Feng Modify in 2006-01-16 Begin */	setstring( "VouName"	, pubvouinfo_vouname  		);	setstring( "AcctNo"		, stFCardInfo.acctno   		);		strcpy( g_acTrcMsg, "子交易: 附卡申请检查结束.." );	TRCLOG4Exit:	if( !strcmp( g_acRspCode, RSP_OK ) )		return SUCCESS;	else 		return FAILED ;	return 0;}

⌨️ 快捷键说明

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