📄 cms610.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 + -