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

📄 cms610.sqc

📁 一整套完整的银行卡系统源代码
💻 SQC
字号:
/**********************************************************************   源码文件名称 : cms610.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 "cmsacctm.h"#include "cmsbussprd.h"#include "pubinq.h"EXEC SQL INCLUDE SQLCA;/*********************************************************   函数名称: cms216010**   功能描述:客户下卡号和各分帐号查询打印**   输入参数:**             acIdType   	----  证件类型**             acIdNo     	----  证件号码**             acCustName   ----  客户姓名**   输出参数:****             **   返回结果: 0: 签约  -1: 失败    1: 未签约**   作        者 : ZhouR**   版本创建日期 : 2004/09/20**   修改记录     :**   修改人       修改日期     修改位置*******************************************************/int cms216010( PUBCOM *pstPubcom ){	/* 定义宿主变量 */    EXEC SQL BEGIN DECLARE SECTION;        char    acPrdName[BIT41_LEN + 1];        char    acChName[BIT17_LEN + 1];    EXEC SQL END   DECLARE SECTION;	/*定义局部变量*/	struct  ciscustomerinfo  stCisCustomerInfo; /* 客户公用基本信息文件 */	struct  cmsacctm 		 stCmsAcctM; 		/* 卡帐户对照表 */	struct  cmsbussprd       stCmsBussPrd;       /* 业务品种与产品代码对照表*/	BASESUBACCTINFO   		 stDpsAccInfo; 		/* 静态表       */	char    acFileName[FILENAME_LEN + 1];       /* 文件名称     */	char    acTableName[PRDCODE_LEN + 1];       /* 表名称       */	char    acIdType[IDTYPE_LEN + 1]; 	     	/* 证件类型     */	char    acIdNo[IDNO_LEN + 1]; 			    /* 证件号码     */	char    acCustName[CUSTNAME_LEN + 1];       /* 客户姓名     */	int		iRtn;	double  dUseBal=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( acIdType,        	0x00,   sizeof( acIdType ) );	memset( acIdNo,        		0x00,   sizeof( acIdNo ) );	memset( acCustName,        	0x00,   sizeof( acCustName ) );	memset( acFileName,        	0x00,   sizeof( acFileName ) );	memset( acTableName,       	0x00,   sizeof( acTableName ) );	memset( acChName,       	0x00,   sizeof( acChName ) );	memset( acPrdName,       	0x00,   sizeof( acPrdName ) );    /* 取数据字典值 */	getstring( "IdType",           acIdType   );	getstring( "IdNo",    		   acIdNo    );	getstring( "CustName", 		   acCustName );	sprintf( g_acTrcMsg,"IdType[%s]IdNo[%s]CustName[%s]",		\						acIdType,acIdNo,acCustName );	TRCLOG3	strcpy( acTableName, "cms610" );	sprintf(acFileName, "%s%s%s", acTableName, pstPubcom->acBrc,								  pstPubcom->acTeller);	fp = (FILE *)BeginFile( pstPubcom, acFileName );	if ( fp == NULL )	{		ERRLOG	    goto Exit;	}	/*组织查询字典*/	if (GetInqDict( fp , "216010" ))	{		ERRLOG		goto Exit ;	}	/*将输入参数赋值*/	if ( strlen ( acIdType ) > 0 )	{		strcpy( stCisCustomerInfo.idtype, 	acIdType );	}	if ( strlen ( acIdNo ) > 0 )	{		strcpy( stCisCustomerInfo.idno, 	acIdNo   );	}	if ( strlen ( acCustName ) > 0 )	{		strcpy( stCisCustomerInfo.customname,	acCustName   );	}    /* 取客户号 */	pubStoVCiscustomerinfo( &stCisCustomerInfo );	EXEC SQL    SELECT customid INTO :ciscustomerinfo_customid				FROM ciscustomerinfo				WHERE idtype=:ciscustomerinfo_idtype								AND idno=:ciscustomerinfo_idno									AND customname=:ciscustomerinfo_customname;			sprintf( g_acTrcMsg,"CustNo[%s]",ciscustomerinfo_customid );	TRCLOG3	if( SQLCODE && SQLCODE != SQLNOTFOUND )	{		sprintf( g_acRspCode, "CMS112");		pubCrtRspInfo( "ciscustomerinfo",SQLCODE );		TRCLOG3		goto Exit ;	}	if( SQLCODE == SQLNOTFOUND )	{		sprintf( g_acRspCode, "CMS113");		pubCrtRspInfo( "ciscustomerinfo",SQLCODE );		TRCLOG3		goto Exit ;	}	/* 取卡号 */	pubStoVCmsacctm( &stCmsAcctM );	EXEC SQL    DECLARE acc_l_cur CURSOR FOR				SELECT * FROM CMSACCTM				WHERE custno=:ciscustomerinfo_customid				ORDER BY cardno,acctseqno;	strcpy (g_acTrcMsg, ciscustomerinfo_customid );	TRCLOG2	/* 定义游标出错 */	if ( SQLCODE )	{		strcpy( g_acRspCode, "CMS110" );		pubCrtRspInfo( "cmsacctm", SQLCODE );		TRCLOG3;		ERRLOG		goto Exit;	}	SQLOPENCUR(acc_l_cur,"acc_l_cur")	/* 打开游表出错 */	if ( SQLCODE )	{		strcpy( g_acRspCode, "CMS111" );		pubCrtRspInfo( "cmsacctm", SQLCODE );		TRCLOG3;		ERRLOG		goto Exit ;	}	while ( TRUE )	{		EXEC SQL    FETCH acc_l_cur INTO R_CMSACCTM ;		/* 取游表出错 */		if ( SQLCODE && SQLCODE != SQLNOTFOUND )		{			strcpy( g_acRspCode, "CMS112" );			pubCrtRspInfo( "cmsacctm", SQLCODE );			TRCLOG3;			ERRLOG	SQLCLOSECUR(acc_l_cur,"acc_l_cur")			goto Exit ;		}		/* 记录不存在 */		else if ( SQLCODE == SQLNOTFOUND )		break;		/* 记录存在 */		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(acc_l_cur,"acc_l_cur")			goto Exit;		}		pubVtoSCmsbussprd(&stCmsBussPrd);		/*根据币种代码取币种信息*/		pubInitPubcurrencyinfo();		EXEC SQL SELECT chname INTO :acChName				 FROM	pubcurrencyinfo				 WHERE	ccy = :cmsacctm_ccy;		if( SQLCODE && SQLCODE != SQLNOTFOUND )		{    		strcpy(g_acRspCode,"CMS112");   			pubCrtRspInfo("dpssaveprdinfo",SQLCODE);		    ERRLOG	SQLCLOSECUR(acc_l_cur,"acc_l_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(acc_l_cur,"acc_l_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(acc_l_cur,"acc_l_cur")                goto Exit;            }        }		/* 按客户账号和款项代码获取账户信息 DPS API */		sprintf( g_acTrcMsg,"stCmsAcctM.acctno[%s]stCmsAcctM.subacct[%s]"				"stCmsAcctM.ccy[%s]",stCmsAcctM.acctno,stCmsAcctM.subacct,				stCmsAcctM.ccy);		TRCLOG3		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 ( stCmsAcctM.status[0]=='2' || stCmsAcctM.status[0]=='1' )		{			stDpsAccInfo.dAvailBal=0.0;			stDpsAccInfo.dBal=0.0;		}		/* 拼写文件 */		fprintf( fp, "\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~"		     		 "\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~"					 "\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~\"%s\"~%.2lf~"					 "%.2lf~\"%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,      	/* 客户号 	        */							stCmsAcctM.issuedate,   	/* 开户/移入日期    */							stCmsAcctM.issuebrc,    	/* 开户/移入机构 	*/							stCmsAcctM.issueteller, 	/* 开户/移入交易柜员*/							stCmsAcctM.closedate,   	/* 销户/移出日期	*/							stCmsAcctM.closebrc,    	/* 销户/移出机构	*/							stCmsAcctM.closeteller, 	/* 销户/移出交易柜员*/							stCmsAcctM.cardbookflag,	/* 卡折标志     	*/							stCmsAcctM.status,			/* 帐户状态			*/						    stDpsAccInfo.acStopPayFlg, 	/* 止付状态 		*/						    stDpsAccInfo.acFrozenFlg, 	/* 冻结状态 		*/						    stDpsAccInfo.acMortFlg, 	/* 抵质押状态 		*/						    stDpsAccInfo.dAvailBal, 	/* 可用余额     	*/							stDpsAccInfo.dBal,			/* 余额				*/    						stDpsAccInfo.acIdType,		/* 证件类型 		*/    						stDpsAccInfo.acIdNo,		/* 证件号码			*/    						stDpsAccInfo.acCustomName); /* 客户名称			*/			iCount ++;	}	SQLCLOSECUR(acc_l_cur,"acc_l_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, "216010") ;		sprintf( g_acTrcMsg,"客户下卡号和各分帐号查询打印正常结束");		TRCLOG4		return SUCCESS;	}	else	{		sprintf( g_acTrcMsg,"客户下卡号和各分帐号查询打印失败");		TRCLOG4		return FAILED ;	}}

⌨️ 快捷键说明

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