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

📄 cms037.sqc

📁 一整套完整的银行卡系统源代码
💻 SQC
字号:
/******************************************************************** **   源码文件名称 : cms037.SQC **   所属子系统   : CMS  **   当前文件版本 : 1.0.0.0 **   作者         : guoyun **   版本创建日期 : 2004/10/28 **   功能描述     : 挂失补卡申请(记名卡)处理子交易 **   修改记录     : **   修改人       修改日期     修改日期*********************************************************************/#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 "cmscardkind.h"#include "cmsacctm.h"EXEC SQL INCLUDE SQLCA;int cmsLostNameCardAplyPro( PUBCOM *pstPubcom ){	/*定义局部变量*/    int     iRtn;                                   /* 函数返回值       */    int     iNumx;                                  /* 数组计数器       */    int     iNumy;                                  /* 数组计数器       */    char    acCardNo[ CARDNO_LEN + 1 ];             /* 卡号         	*/    char    acCardStat[ BIT21_LEN ][BIT11_LEN];     /* 卡状态检查标志   */    char    acCheckFlag[ BIT8_LEN + 1 ];            /* 检查卡片种类标志 */    char    acBuf[ CONDITION_LEN + 1 ];             /* 临时存储区   */	char	acPasswd[ PASSWD_LEN+1 ];				/* 密码				*/	struct	cmspcdreg  		stPcdReg	;			/* 预制卡申请登记表 */	struct	cmscardinfo		stCmsCardInfo;			/* 卡片信息表 		*/    struct  cmscardkind     stCmsCardKind;      	/* 卡片种类表       */    struct  cmsacctm        stCmsAcctM;          	/* 卡账户对照表     */	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( acCardNo,           0x00,   sizeof( acCardNo ) );    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;        }	/* 取数据字典值 */	getstring( "CardNo",			stCmsCardInfo.cardno );		getstring( "Passwd",	acPasswd	);	getstring( "CustomName", stPcdReg.custname );				/* 名称 */	    /* 获取卡片信息 */    iRtn = pubReadCmscardinfo( &stCmsCardInfo );    if ( iRtn )    {		if ( SQLCODE == SQLNOTFOUND )			sprintf( g_acRspMsg, "卡号[%s]不存在", stCmsCardInfo.cardno );        ERRLOG        return FAILED;    }	/* 检查卡片状态是否为正式挂失,并且其他状态是否正常 */	acCardStat[BIT2_LEN][BIT1_LEN] = CHECK_NO;	acCardStat[BIT2_LEN][BIT2_LEN] = CHECK_NO;	acCardStat[BIT2_LEN][BIT3_LEN] = CHECK_YES;    /* 检查卡状态是否正常 */    iRtn = cmsApiChkCardStatIsNormal( &stCmsCardInfo, acCardStat );    if ( iRtn )    {        ERRLOG        return FAILED;    }    /* 获取卡片种类表 */    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_YES;       	/* 检查发卡对象 个	 	*/    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;    }    /* 检查卡片是否为记名卡 */    iRtn = cmsApiChkIsNameCard( &stCmsCardInfo );    if ( iRtn )    {        ERRLOG        return FAILED;    }    /* 检查卡片是否为个人卡 */    iRtn = cmsApiChkIsPersonCard( &stCmsCardInfo );    if ( iRtn )    {        ERRLOG        return FAILED;    }	/*  修改卡片信息表卡片状态为挂失补卡申请 */    strcpy( stCmsCardInfo.chgdate, pstPubcom->acTranDate );    stCmsCardInfo.cardstat[BIT14_LEN] = BIT14_CARDLOSTCHGAPLY;    iRtn = pubModiCmscardinfo( &stCmsCardInfo );    if ( iRtn )    {        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]=NAMELOSTCARDAPLY;		/* 挂失补卡申请	*/	stPcdReg.applflg[BIT1_LEN]=APPLYREG;				/* 状态标志	*/	stPcdReg.processflg[BIT1_LEN]=MKFILE_UNDONE;		/* 处理标志	*/	if( pubInstCmspcdreg( &stPcdReg ) )	{		ERRLOG		return FAILED;	}	/*写子交易流水*/	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 + -