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