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

📄 cms035.sqc

📁 一整套完整的银行卡系统源代码
💻 SQC
字号:
/******************************************************************** **   源码文件名称 : cms035.SQC **   所属子系统   : CMS  **   当前文件版本 : 1.0.0.0 **   作者         : guoyun **   版本创建日期 : 2004/10/28 **   功能描述     : 保号换记名卡申请处理子交易 **   修改记录     : **   修改人       修改日期     修改说明 **   Feng         2006-01-16   增加废卡登记簿处理*********************************************************************/#include "code.h"#include "attrdef.h"#include "sysdef.h"#include "pubcom.h"#include <stdio.h>#include <stdlib.h>#include <math.h>#include "cmscode.h"#include "cmspcdreg.h"#include "cmscardinfo.h"#include "cmsacctm.h"#include "cmscardkind.h"#include "cmscardcancelt.h"#include "ciscustomerinfo.h"EXEC SQL INCLUDE SQLCA;int cmsChgNameCardAplyPro( PUBCOM *pstPubcom ){	/*定义局部变量*/    int     iRtn;                                   /* 函数返回值       */    int     iNumx;                                  /* 数组计数器       */    int     iNumy;                                  /* 数组计数器       */    char    acCardStat[ BIT21_LEN ][BIT11_LEN];     /* 卡状态检查标志   */    char    acCheckFlag[ BIT8_LEN + 1 ];            /* 检查卡片种类标志 */    char    acBuf[ CONDITION_LEN + 1 ];             /* 临时存储区   */	char	acPasswd[ PASSWD_LEN+1 ];				/* 密码				*/	char	acFlag[ FLAG_LEN + 1 ];					/* 换卡类型			*/											/* 0: 记名卡保号换记名卡	*/											/* 1: 非记名卡保号换记名卡	*/	struct	cmspcdreg  		stPcdReg	;			/* 预制卡申请登记表 */	struct	cmscardinfo		stCmsCardInfo;			/* 卡片信息表 		*/    struct  cmscardkind     stCmsCardKind;      	/* 卡片种类表       */    struct  cmsacctm        stCmsAcctM;      		/* 卡账户对照表     */	struct	cmscardcancelt		stCmsCant;			/* 作废销毁登记簿	*/	struct	ciscustomerinfo     stCustomInfo;		/* 客户信息			*/	strcpy( g_acTrcMsg, "子交易: 保号换记名卡申请处理子交易开始.." );	TRCLOG4	memset( &stPcdReg  , 0x00, sizeof ( struct cmspcdreg   ) ); 	memset( &stCmsCardInfo, 0x00, sizeof ( struct cmscardinfo ) );     memset( &stCmsCardKind, 0x00, sizeof( struct cmscardkind ) );    memset( &stCmsAcctM, 0x00, sizeof( struct cmsacctm ) );    memset( acCheckFlag,        0x00,   sizeof( acCheckFlag ) );    memset( acCardStat,         0x00,   sizeof( acCardStat ) );	memset( acPasswd,			0x00,	sizeof( acPasswd ) );    /* 卡检查状态数组中第一维中的第一个字符全置为'1',则检查卡片状态是否正常 */    for ( iNumx = 0; iNumx < BIT21_LEN; iNumx ++ )        for ( iNumy = 0; iNumy < BIT11_LEN; iNumy ++ )        {            if ( iNumy == 0 )                acCardStat[iNumx][iNumy] = CHECK_YES;            else                acCardStat[iNumx][iNumy] = CHECK_NO;        }    acCardStat[BIT15_LEN][BIT2_LEN] = CHECK_YES;	/* 取数据字典值 */	getstring("CardNo",			stCmsCardInfo.cardno );		getstring("Flag1",			acFlag );		/* 获取卡片信息表 */	iRtn = pubReadCmscardinfo( &stCmsCardInfo );	if ( iRtn )	{		if ( SQLCODE == SQLNOTFOUND )			sprintf( g_acRspMsg, "卡号[%s]不存在", stCmsCardInfo.cardno );		ERRLOG		return FAILED;	}    /* 检查卡状态是否正常 */    iRtn = cmsApiChkCardStatIsNormal( &stCmsCardInfo, acCardStat );    if ( iRtn )    {        ERRLOG        return FAILED;    }	/* 从字典获取其他数据 */	getstring( "Passwd",	acPasswd	);	getstring( "CustomName", stPcdReg.custname );				/* 名称 */    /* 获取卡片种类表 */    iRtn = cmsApiGetCmsCardKind( stCmsCardInfo.cardkind, &stCmsCardKind );    if ( iRtn )    {        ERRLOG        return FAILED;    }	/* 检查卡密码 */	iRtn = cmsApiChkCardPwd( &stCmsCardInfo, acPasswd, pstPubcom->acChannelId );	if ( iRtn )	{		ERRLOG		return FAILED;	}    /* 检查卡片种类(全部属性)API是否为启用标志、检查卡种交易类型 */ 	/* 检查业务发生地、是否是记名卡 */    acCheckFlag[ BIT1_LEN ] = CHECK_YES;        /* 检查启用标志         */    acCheckFlag[ BIT2_LEN ] = CHECK_YES;        /* 检查卡种交易类型     */    acCheckFlag[ BIT3_LEN ] = CHECK_YES;        /* 检查业务发生地       */    acCheckFlag[ BIT4_LEN ] = CHECK_NO;        	/* 检查发卡对象 单/个 	*/    acCheckFlag[ BIT5_LEN ] = CHECK_YES;        /* 检查记名标志       	*/    acCheckFlag[ BIT6_LEN ] = CHECK_NO;         /* 不检查挂失标志       */    iRtn = cmsApiChkCardKind( &stCmsCardKind, acCheckFlag, LOGOTHER, pstPubcom->acChannelId, PERSONALCARD, REGNAMECARD, CZEROS, "" );    if ( iRtn )    {        ERRLOG        return FAILED;    }	if ( acFlag[ BIT1_LEN ] == '0' ) /* 记名卡保号换记名卡 */	{		/* 检查卡片是否为记名卡 */		iRtn = cmsApiChkIsNameCard( &stCmsCardInfo );		if ( iRtn )		{			ERRLOG			return FAILED;		}	}	else if ( acFlag[ BIT1_LEN ] == '1' ) /* 非记名卡保号换记名卡 */	{		/* 检查卡是否为非记名卡 */		iRtn = cmsApiChkIsUnnameCard( &stCmsCardInfo );		if ( iRtn )		{			ERRLOG			return FAILED;		}	}    /* 检查卡片是否为个人卡 */    iRtn = cmsApiChkIsPersonCard( &stCmsCardInfo );    if ( iRtn )    {        ERRLOG        return FAILED;    }	/*  修改卡片信息表卡片状态为正常换卡申请 */    strcpy( stCmsCardInfo.chgdate, pstPubcom->acTranDate );    stCmsCardInfo.cardstat[BIT14_LEN] = BIT14_CARDCHGAPLY;	pubStoVCmscardinfo( &stCmsCardInfo );	/* 修改卡帐户对照表记录 */	EXEC SQL	UPDATE CMSCARDINFO				SET	cardstat = :cmscardinfo_cardstat,					chgdate = :cmscardinfo_chgdate				WHERE cardno = :cmscardinfo_cardno;	/* 修改出错 */	if ( SQLCODE )	{		strcpy( g_acRspCode, "CMS114" );		pubCrtRspInfo( "cmscardinfo", SQLCODE );		ERRLOG		return FAILED;	}	/*写预制卡登记簿    */	stPcdReg.serseqno = pstPubcom->lSerSeqNo;			/* 流水号	*/	sprintf( stPcdReg.vouchno,"%s%08ld",pstPubcom->acTranDate8,stPcdReg.serseqno);	strcpy( stPcdReg.wishdate,	pstPubcom->acTranDate );/* 希望制卡日期	*/	strcpy( stPcdReg.aplydate,	pstPubcom->acTranDate );	/* 申请日期	*/	strcpy( stPcdReg.aplybrc,	pstPubcom->acBrc );			/* 申请机构	*/	strcpy( stPcdReg.aplyteller,pstPubcom->acTeller );		/* 申请柜员	*/	strcpy( stPcdReg.authteller,pstPubcom->acAteller );		/* 授权柜员	*/	strcpy ( stPcdReg.cardkind,	stCmsCardKind.cardkind );	/* 卡片种类 */	stPcdReg.aplynum = 1;									/* 申请数量 */	strcpy ( stPcdReg.voukind,	stCmsCardKind.voukind );	/* 凭证种类 */	strcpy( stPcdReg.custno, stCmsCardInfo.custno);			/* 客户号	*/	stPcdReg.aplyflg[BIT1_LEN]=NAMECHGCARDAPLY;			/* 正常换卡申请 */	stPcdReg.applflg[BIT1_LEN]=APPLYREG;					/* 状态标志	*/	stPcdReg.processflg[BIT1_LEN]=MKFILE_UNDONE;			/* 处理标志	*/	if( pubInstCmspcdreg( &stPcdReg ) )	{		ERRLOG		return FAILED;	}	memset( &stCustomInfo, 0x00, sizeof( stCustomInfo ) );	strcpy( stCustomInfo.customid ,stCmsCardInfo.custno );	if ( pubReadCiscustomerinfo( &stCustomInfo ) )	{		ERRLOG		return FAILED;	}	/* Feng Add in 2006-01-16 Begin */	/* 插入卡作废销毁登记簿 */	memset( &stCmsCant,	0x00,	sizeof( struct cmscardcancelt ) );	strcpy( stCmsCant.canceldate,      pstPubcom->acTranDate   );	stCmsCant.serseqno = pstPubcom->lSerSeqNo;	strcpy( stCmsCant.cardno,    stCmsCardInfo.cardno    );	strcpy( stCmsCant.cardkind,    stCmsCardInfo.cardkind    );	strcpy( stCmsCant.voukind,    stCmsCardKind.blankvoukind    );	strcpy( stCmsCant.precharcode,    stCmsCardInfo.precharcode    );	strcpy( stCmsCant.vouno,    stCmsCardInfo.vouno    );	sprintf( stCmsCant.vouchno, "%s%0*ld", pstPubcom->acTranDate8, \							SERSEQNO_LEN, stCmsCant.serseqno );	stCmsCant.flag[ BIT1_LEN ] = FLAG_INVALID;	stCmsCant.cardflg[ BIT1_LEN ] = stCmsCardInfo.cardflg[ BIT1_LEN ];	strcpy( stCmsCant.custname, stCustomInfo.customname );	strcpy( stCmsCant.idtype,	stCustomInfo.idtype	);	strcpy( stCmsCant.idcode,	stCustomInfo.idno	);	strcpy( stCmsCant.cancelbrc,	pstPubcom->acBrc	);	strcpy( stCmsCant.cancelteller,pstPubcom->acTeller	);	iRtn = pubInstCmscardcancelt( &stCmsCant );	if ( iRtn )	{		ERRLOG		return FAILED;	}	/* Feng Add in 2006-01-16 End */	/*写子交易流水*/	iRtn = cmsApiInsTranLog( pstPubcom, &stCmsCardInfo, &stCmsAcctM, "换卡", "保号换记名卡申请" );	if ( iRtn )	{		ERRLOG		return FAILED;	}	/* 子交易出口 */     setstring( "VouchNo", stPcdReg.vouchno ); /* 登记簿编号 */	setstring( "VouKind",		stCmsCardInfo.voukind );	/* 凭证种类		*/	setstring( "VouNo",			stCmsCardInfo.vouno );		/* 凭证号码		*/		strcpy( g_acTrcMsg, "子交易: 保号换记名卡申请处理子交易结束.." );	TRCLOG4	strcpy( g_acRspCode, RSP_OK );	return SUCCESS;}

⌨️ 快捷键说明

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