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

📄 cms607.sqc

📁 一整套完整的银行卡系统源代码
💻 SQC
字号:
/**********************************************************************   源码文件名称 : cms607.SQC**   所属子系统   : CMS**   当前文件版本 : 4.0.0.0**   作者         : ZhouR**   版本创建日期 : 2004/10/15**   功能描述     : 卡号内各分帐号查询打印**   修改记录     :**   修改人       修改日期     修改日期*********************************************************************/#include "code.h"#include "attrdef.h"#include "sysdef.h"#include "pubcom.h"#include "cmscode.h"#include <stdio.h>#include <fcntl.h>#include "ciscustomerinfo.h"#include "cmscardinfo.h"#include "cmsbussprd.h"#include "cmsacctm.h"#include "pubcurrencyinfo.h"#include "dpssaveprdinfo.h"#include "dpstermprdinfo.h"#include "pubinq.h"EXEC SQL INCLUDE SQLCA;int cms216007( PUBCOM *pstPubcom ){	/*定义局部变量*/	EXEC SQL BEGIN DECLARE SECTION;		char    acWhrStr[ 512 ];		char    acChName[ BIT17_LEN ];		char    acPrdName[ BIT40_LEN ];	EXEC SQL END   DECLARE SECTION;	struct  ciscustomerinfo  stCisCustomerInfo; /* 客户公用基本信息文件 */	struct  cmscardinfo   	 stCmsCardInfo;    	/* 卡片信息表   */ 	struct  cmsbussprd       stCmsBussPrd;      /* 业务品种与产品代码对照表*/ 	struct cmsacctm      	 stCmsAcctM;       	/* 卡帐户对照表 */	BASESUBACCTINFO   		 stDpsAccInfo; 		/* 静态表       */	char    acFileName[FILENAME_LEN + 1];       /* 文件名称     */	char    acTableName[PRDCODE_LEN + 1];       /* 表名称       */	char    acCardNo[CARDNO_LEN+1];             /*卡号*/         	char    acAcctseqno[ACCTSEQNO_LEN+1];       /*卡内账号序号*/ 	char    acCcy[CCY_LEN+1];                   /*币种*/         	char    acPrdcod[PRDCODE_LEN+1];            /*产品代码*/     	char    acStatus[FLAG_LEN+1];               /*帐户状态*/     	char    acAcctNo[ACCT_LEN+1];               /*帐号*/         	char    acSubAcct[ACCTT_LEN+1];             /*款项代码*/     	char    acBuffer[512]; 	char    acBuffer1[512];	char    acBussKind[BUSSKIND_LEN + 1];       /* 业务种类         */	char    acOpflg[BIT2_LEN + 1];              /* 操作方式         */	char    acSelStr[ 301 ];	char    pcPasswd[BIT17_LEN + 1];         	/* 卡密码   */	int		iRtn;	char  	acStopPayFlg[FLAG_LEN+1] ;     		/*止付状态*/   	char  	acFrozenFlg[FLAG_LEN+1] ;      		/*冻结状态*/   	char  	acMortFlg[FLAG_LEN+1] ;        		/*抵质押状态*/ 	double 	dAvailBal=0.00 ;                   	/*可用余额*/ 	double  dBal=0.00;                          /* 余额         */	int     iCount=0;                           /* 计数器       */	FILE    *fp;								/* 文件指针     */	strcpy( g_acRspMsg, "子交易: 卡号内各分帐号查询打印子交易开始..." );	TRCLOG4	/* 初始化 */	memset( &stCisCustomerInfo, 0x00,   sizeof( struct ciscustomerinfo ) );	memset( &stDpsAccInfo,      0x00,   sizeof( BASESUBACCTINFO ) );	memset( &stCmsAcctM, 		0x00,   sizeof( struct cmsacctm ) );	memset( &stCmsBussPrd,      0x00,   sizeof( struct cmsbussprd ) );	memset( acSelStr,      		0x00, 	sizeof( acSelStr )   );	memset( acWhrStr,      		0x00, 	sizeof( acWhrStr )   );	memset( acBussKind,      	0x00, 	sizeof( acBussKind )   );	memset( acOpflg,      		0x00, 	sizeof( acOpflg )   );	memset( acCardNo,     		0x00,	sizeof( acCardNo ) );    	memset( acAcctseqno,  		0x00,	sizeof( acAcctseqno ) ); 	memset( acCcy,        		0x00,	sizeof( acCcy ) );       	memset( acPrdcod,     		0x00,	sizeof( acPrdcod ) );    	memset( acStatus,     		0x00,	sizeof( acStatus ) );    	memset( pcPasswd,      		0x00, 	sizeof( pcPasswd ) );	memset( acFileName,        	0x00,   sizeof( acFileName ) );	memset( acTableName,       	0x00,   sizeof( acTableName ) );	memset( acChName,       	0x00,   sizeof( acChName ) );    /* 取数据字典值 */	getstring("CardNo",acCardNo);      	getstring("Acctseqno",acAcctseqno);	getstring("Ccy1",acCcy);           	getstring("PrdCode",acPrdcod);     	getstring("AcctStat",acStatus);    	getstring("AcctNo",acAcctNo);      	getstring("SubAcct",acSubAcct);    	getstring("Passwd1",pcPasswd );    	sprintf( g_acTrcMsg,"[%s],[%s],[%s],[%s],[%s],[%s],[%s],[%s]",	acCardNo,acAcctseqno,acCcy,acPrdcod,acStatus,acAcctNo,acSubAcct,pcPasswd );	TRCLOG3	strcpy( stCmsCardInfo.cardno, acCardNo );	sprintf( g_acTrcMsg,"CardNo[%s]", stCmsCardInfo.cardno );	TRCLOG4	/* 检查卡密码 */	if ( strlen(pcPasswd) && strlen( acCardNo ) )	{		iRtn = cmsApiChkCardPwd( &stCmsCardInfo, pcPasswd, pstPubcom->acChannelId );		if ( iRtn )		{			ERRLOG			goto Exit ;		}		strcpy( g_acTrcMsg, "cmsApiChkCardPwd finish " );		TRCLOG1	}	strcpy( g_acTrcMsg, "cmsApiChkCardPwd finish " );	TRCLOG2	strcpy( acTableName, "cms607" );	sprintf(acFileName, "%s%s%s", acTableName, pstPubcom->acBrc,								  pstPubcom->acTeller);	fp = (FILE *)BeginFile( pstPubcom, acFileName );	if ( fp == NULL )	{		ERRLOG	    goto Exit;	}	/*组织查询字典*/	if (GetInqDict( fp , "216007" ))	{		ERRLOG		goto Exit ;	}		sprintf(acWhrStr," select * from cmsacctm where 1=1 ");	if(strlen(acCardNo)>0)	{	sprintf(acWhrStr+strlen(acWhrStr)," and cardno='%s'",acCardNo);    }	if(strlen(acAcctseqno)>0)	{		sprintf(acWhrStr+strlen(acWhrStr)," and acctseqno='%s'",acAcctseqno);	}	if(strlen(acCcy)>0)	{		sprintf(acWhrStr+strlen(acWhrStr)," and ccy='%s'",acCcy);	}	if(strlen(acPrdcod)>0)	{		sprintf(acWhrStr+strlen(acWhrStr)," and prdcod='%s'",acPrdcod);	}	if(strlen(acStatus)>0)	{		sprintf(acWhrStr+strlen(acWhrStr)," and status='%s'",acStatus);	}	if(strlen(acAcctNo)>0)	{		sprintf(acWhrStr+strlen(acWhrStr)," and acctno='%s'",acAcctNo);	}	if(strlen(acSubAcct)>0)	{		sprintf(acWhrStr+strlen(acWhrStr)," and subacct='%s'",acSubAcct);	}	sprintf( acWhrStr+strlen(acWhrStr), " ORDER BY  cardno,acctseqno ASC" );	strcpy( g_acTrcMsg, acWhrStr );	TRCLOG4                        	EXEC SQL    PREPARE pre_1 FROM :acWhrStr;	if ( SQLCODE )                      	{                                   		strcpy( g_acRspCode, "CMS1A7" );		pubCrtRspInfo( SQLCODE );       		ERRLOG                          		goto Exit ;                  	}                                   	EXEC SQL    DECLARE actiom_cur CURSOR FOR pre_1;	if(SQLCODE)	{		sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);  		TRCLOG4		strcpy( g_acRspCode, "CMS110" );		pubCrtRspInfo("cmsacctm",SQLCODE );		ERRLOG		goto Exit ;	}	SQLOPENCUR(actiom_cur,"actiom_cur")	if(SQLCODE)	{		sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);  		TRCLOG4		strcpy( g_acRspCode, "CMS111" );		pubCrtRspInfo("cmsacctm",SQLCODE );		ERRLOG		goto Exit ;	}	for( ; ; )	{		EXEC SQL FETCH actiom_cur into R_CMSACCTM;		if( SQLCODE == SQLNOTFOUND )			    break ;		sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);  		TRCLOG4		if(SQLCODE)		{			sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);  			TRCLOG4			strcpy( g_acRspCode, "CMS112" );			pubCrtRspInfo( "cmsacctm",SQLCODE );	SQLCLOSECUR(actiom_cur,"actiom_cur")			ERRLOG			goto Exit ;		}		sprintf( g_acTrcMsg,"SQLCODE[%d]", SQLCODE);  		TRCLOG4		pubVtoSCmsacctm(&stCmsAcctM);		pubInitCmsbussprd();		EXEC SQL select description into :cmsbussprd_description 				from cmsbussprd 				where busskind=:cmsacctm_busskind;		if( SQLCODE && SQLCODE != SQLNOTFOUND )		{			strcpy(g_acRspCode,"CMS112");			pubCrtRspInfo("cmsacctm",SQLCODE);			ERRLOG	SQLCLOSECUR(actiom_cur,"actiom_cur")			goto Exit;		}		pubVtoSCmsbussprd(&stCmsBussPrd);		/*根据币种代码取币种信息*/		pubInitPubcurrencyinfo();		EXEC SQL SELECT chname INTO :acChName			 	 FROM	pubcurrencyinfo			 	 WHERE	ccy = :cmsacctm_ccy;		strcpy( g_acTrcMsg, cmsacctm_ccy);		TRCLOG2		strcpy( g_acTrcMsg, acChName);		TRCLOG2		if( SQLCODE && SQLCODE != SQLNOTFOUND )	    {			strcpy(g_acRspCode,"CMS112");			pubCrtRspInfo("dpssaveprdinfo",SQLCODE);			ERRLOG	SQLCLOSECUR(actiom_cur,"actiom_cur")			goto Exit;		}		/* 根据产品代码取产品名称 */		pubInitDpssaveprdinfo();		pubInitDpstermprdinfo();		EXEC SQL SELECT prdname INTO :acPrdName				 FROM   dpssaveprdinfo				 WHERE	prdcode = :cmsacctm_prdcod;		if( SQLCODE && SQLCODE != SQLNOTFOUND )		{			strcpy(g_acRspCode,"CMS112");			pubCrtRspInfo("dpssaveprdinfo",SQLCODE);			ERRLOG	SQLCLOSECUR(actiom_cur,"actiom_cur")			goto Exit;		}        if ( SQLCODE == SQLNOTFOUND )        {            EXEC SQL SELECT prdname INTO :acPrdName                     FROM   dpstermprdinfo                     WHERE  prdcode = :cmsacctm_prdcod;            if( SQLCODE && SQLCODE != SQLNOTFOUND )            {                strcpy(g_acRspCode,"CMS112");                pubCrtRspInfo("dpstermprdinfo",SQLCODE);                ERRLOG	SQLCLOSECUR(actiom_cur,"actiom_cur")                goto Exit;            }        }		sprintf( g_acTrcMsg,"SQLCODE[%s][%s][%s]", stCmsAcctM.acctno, stCmsAcctM.subacct, stCmsAcctM.ccy );  		TRCLOG4		/* 按客户账号和款项代码获取账户信息 DPS API */		memset( &stDpsAccInfo,      0x00,   sizeof( BASESUBACCTINFO ) );		iRtn = InqBaseSubAcct(  pstPubcom,								stCmsAcctM.acctno,								stCmsAcctM.subacct,								stCmsAcctM.ccy,								"1100000000000000", "0","0",								&stDpsAccInfo);		if (iRtn)		{			strcpy( g_acRspCode, RSP_OK );		}		if ( strlen (pcPasswd) )		{		}		else 		{			stDpsAccInfo.dAvailBal=0.0;			stDpsAccInfo.dBal=0.0;		}		/* 拼写文件 */		fprintf( fp, "\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~"		     		 "\"%s\"~\"%s\"~\"%s\"~\"%s\"~%.2lf~%.2lf~\"%s\"~\"%s\"~"					 "\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~"					 "\"%s\"~\"%s\"~\"%s\"~\"%s\"\n",							stCmsAcctM.cardno, 			/* 卡号 		*/							stCmsAcctM.acctseqno,   	/* 卡内帐户序号 */							stCmsAcctM.busskind,    	/* 业务种类     */							stCmsBussPrd.description,	/* 业务种类说明 */							stCmsAcctM.ccy,         	/* 币种         */							acChName,		         	/* 币种名称     */							stCmsAcctM.prdcod,      	/* 产品代码     */							acPrdName,                  /* 产品名称     */							stCmsAcctM.acctno,      	/* 帐号         */							stCmsAcctM.subacct,     	/* 款项代码     */							stCmsAcctM.accowner,     	/* 帐户属主 	*/							stCmsAcctM.custno,     		/* 客户号 		*/							stDpsAccInfo.dAvailBal, 	/* 可用余额 	*/							stDpsAccInfo.dBal,			/* 余额         */							stCmsAcctM.issuedate,     	/* 开户/移入日期*/							stCmsAcctM.issuebrc,     	/* 开户/移入机构*/							stCmsAcctM.issueteller,    	/* 开户/移入交易柜员 */							stCmsAcctM.closedate,     	/* 销户/移出日期*/							stCmsAcctM.closebrc,     	/* 销户/移出机构*/							stCmsAcctM.closeteller,    	/* 销户/移出交易柜员 */							stCmsAcctM.cardbookflag,   	/* 卡折标志 	*/							stCmsAcctM.status,     		/* 帐户状态 	*/							stDpsAccInfo.acStopPayFlg, 	/* 止付状态 	*/							stDpsAccInfo.acFrozenFlg, 	/* 冻结状态 	*/ 							stDpsAccInfo.acMortFlg, 	/* 抵质押状态 	*/ 							stDpsAccInfo.acIdType,		/* 证件类型    */							stDpsAccInfo.acIdNo,		/* 证件号码    */							stDpsAccInfo.acCustomName); /* 客户名称    */			iCount ++;	}	SQLCLOSECUR(actiom_cur,"actiom_cur")	EndFile( fp );	if (iCount == 0)	{		strcpy( g_acRspCode, "CMS1B7" );		pubCrtRspInfo( "卡号内各分帐号查询打印");		ERRLOG		return FAILED;	}	/* 出口赋值 */Exit:	EndFile( fp );	if( !strcmp( g_acRspCode, RSP_OK ) )	{		SetInqFormid(pstPubcom, "216007") ;		sprintf( g_acTrcMsg,"卡号内各分帐号查询打印正常结束");		TRCLOG4		return SUCCESS;	}	else	{		sprintf( g_acTrcMsg,"卡号内各分帐号查询打印失败");		TRCLOG4		return FAILED ;	}}

⌨️ 快捷键说明

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