📄 cms003.sqc
字号:
/******************************************************************** ** 源码文件名称 : cms003.SQC ** 所属子系统 : CMS ** 当前文件版本 : 4.0.0.0 ** 作者 : Feng ** 版本创建日期 : 2004/09/21 ** 功能描述 : 根据卡号和账户序号获取账户客户信息子交易 ** 修改记录 : ** 修改人 修改日期 修改说明 ** Feng 2006-01-03 增加刷卡控制*********************************************************************/#include "code.h"#include "attrdef.h"#include "sysdef.h"#include "pubcom.h"#include "cmscode.h"#include "pubinq.h"#include "cmscardinfo.h"#include "cmscardkind.h"#include "cmsacctm.h"#include "ciscustomerinfo.h"#include "errlog.h"EXEC SQL INCLUDE SQLCA;int cmsGetAcctCustInfPro( PUBCOM *pstPubcom ){ /*定义局部变量*/ struct cmscardinfo stCmsCardInfo; /* 卡片信息表 */ struct cmsacctm stCmsAcctM; /* 卡账户对照表 */ struct cmscardkind stCmsCardKind; /* 卡片种类表 */ struct ciscustomerinfo stCisCustInfo; /* 客户基本信息表 */ BASESUBACCTINFO stBaseSubAcctInfo; int iRtn; /* 函数返回值 */ int iNum; /* 计数器 */ double dBal; /* 余额 */ double dUseBal; /* 可用余额 */ char acAcctFlag[ FLAG_LEN + 1 ]; /* 账户类型 */ char acCardStat[MEMO60_LEN + 1]; /* 卡状态中文信息 */ char acCardKind[CARDKIND_LEN + 1]; /* 卡片种类 */ /* Feng Add in 2006-01-03 Begin */ char acDataSrcFlag[FLAG_LEN+1]; /*卡号或帐号数据来源,刷磁/人工输入*/ char acChkMagFlag[FLAG_LEN+1]; /*卡号是否刷卡输入标志*/ char acCardSrcFlag[FLAG_LEN+1] ; /*卡号来源标志*/ /* Feng Add in 2006-01-03 End */ char acKey[5]; strcpy( g_acRspCode, RSP_OK ); strcpy( g_acTrcMsg, "子交易: 获取账户客户信息处理开始.." ); TRCLOG4 /* 初始化 */ memset( &stCmsCardInfo, 0x00, sizeof( struct cmscardinfo ) ); memset( &stCmsAcctM, 0x00, sizeof( struct cmsacctm ) ); memset( &stCisCustInfo, 0x00, sizeof( struct ciscustomerinfo ) ); memset( &stCmsCardKind, 0x00, sizeof( struct cmscardkind ) ); memset( &stBaseSubAcctInfo, 0x00, sizeof( BASESUBACCTINFO ) ); memset( acCardStat, 0x00, sizeof( acCardStat ) ); memset( acChkMagFlag, 0x00 , sizeof( acChkMagFlag ) ) ; memset( acCardSrcFlag, 0x00 , sizeof( acCardSrcFlag ) ) ; memset( acDataSrcFlag, 0x00 , sizeof( acDataSrcFlag ) ) ; /* 取数据字典值 */ getstring( "CardNo", stCmsCardInfo.cardno ); getstring( "AcctSeqNo", stCmsAcctM.acctseqno ); sprintf( g_acTrcMsg,"cardno[%s]acctseqno[%s]",stCmsCardInfo.cardno,stCmsAcctM.acctseqno); TRCLOG3 /* Feng Add in 2006-01-03 Begin */ /*卡号或帐号数据来源,刷磁/人工输入*/ getstring("DataSrcFlag", acDataSrcFlag) ; /*检查卡号是否刷卡输入标志*/ if( pubGetBaseInfo( "CHKCARDSRCFLAG" , acCardSrcFlag ) ) { ERRLOG return FAILED; } if( acCardSrcFlag[0] == NO ) acChkMagFlag[0] = NO ; else { /*检查卡号是否刷卡输入标志*/ getstring("ChkMagFlag", acChkMagFlag) ; /*如果前台未付值,付检查标志*/ if( !strlen( acChkMagFlag ) ) acChkMagFlag[0]= NO ; } if(!strlen( acChkMagFlag ) ) strcpy( acChkMagFlag,STR_NO ); if(!strlen( acDataSrcFlag ) ) strcpy( acDataSrcFlag , "0") ; /*手工输入*/ /* Feng Add in 2006-01-03 Edn */ /* 获取卡片信息 */ iRtn = pubReadCmscardinfo( &stCmsCardInfo ); if ( iRtn ) { if ( SQLCODE == SQLNOTFOUND ) sprintf( g_acRspMsg, "卡号[%s]不存在", stCmsCardInfo.cardno ); ERRLOG goto Exit; } sprintf( g_acTrcMsg,"Amt3[%lf]Amt4[%lf]",stCmsCardInfo.yfee,stCmsCardInfo.yfeebal); TRCLOG3 /* 获取卡账户对照表 */ strcpy( stCmsAcctM.cardno, stCmsCardInfo.cardno ); iRtn = pubReadCmsacctm( &stCmsAcctM ); if ( iRtn ) { if ( SQLCODE == SQLNOTFOUND ) sprintf( g_acRspMsg, "卡号[%s]帐户序号[%s]不存在", stCmsCardInfo.cardno, stCmsAcctM.acctseqno ); ERRLOG goto Exit; } /* 按客户账号和款项代码获取账户信息 DPS API */ sprintf( g_acTrcMsg,"stCmsAcctM.acctno[%s]stCmsAcctM.subacct[%s]stCmsAcctM.ccy[%s]",stCmsAcctM.acctno,stCmsAcctM.subacct,stCmsAcctM.ccy); TRCLOG3 iRtn = InqBaseSubAcct( pstPubcom, stCmsAcctM.acctno, stCmsAcctM.subacct, stCmsAcctM.ccy, "1100000000000000", acChkMagFlag,acDataSrcFlag, &stBaseSubAcctInfo); if (iRtn) { ERRLOG goto Exit; } ErrLog( 2000, "Feng TEST", RPT_TO_LOG, &stBaseSubAcctInfo, sizeof( stBaseSubAcctInfo )); sprintf( g_acTrcMsg,"Amt3[%lf]Amt4[%lf]",stCmsCardInfo.yfee,stCmsCardInfo.yfeebal); TRCLOG3 /* 按客户号获取客户信息 CIS API */ strcpy( stCisCustInfo.customid, stCmsCardInfo.custno ); iRtn = pubReadCiscustomerinfo( &stCisCustInfo ); if ( iRtn ) { if ( SQLCODE == SQLNOTFOUND ) sprintf( g_acRspMsg, "客户号[%s]不存在", stCmsCardInfo.custno ); ERRLOG goto Exit; } sprintf( g_acTrcMsg,"Amt3[%lf]Amt4[%lf]",stCmsCardInfo.yfee,stCmsCardInfo.yfeebal); TRCLOG3 /* 转换卡状态 */ strcpy( acCardStat, cmsConvertCardStat( stCmsCardInfo.cardstat ) ); strcpy( g_acTrcMsg, acCardStat ); TRCLOG3; sprintf( g_acTrcMsg,"Amt3[%lf]Amt4[%lf]",stCmsCardInfo.yfee,stCmsCardInfo.yfeebal); TRCLOG3 /*取卡片种类表*/ strcpy( acCardKind, stCmsCardInfo.cardkind ); if( cmsApiGetCmsCardKind( acCardKind, &stCmsCardKind ) ) { strcpy( g_acRspMsg, "取卡片种类表失败..." ); TRCLOG3; sprintf(g_acRspCode,"999996"); pubCrtRspInfo( "cmscardkind", SQLCODE ); ERRLOG goto Exit; } sprintf( g_acTrcMsg,"Amt3[%lf]Amt4[%lf]",stCmsCardInfo.yfee,stCmsCardInfo.yfeebal); TRCLOG3 /* 子交易出口 */ setstring( "CustomId", stCmsCardInfo.custno ); /* 客户号 */ setstring( "IdType1", stCisCustInfo.idtype ); /* 证件类型 */ setstring( "IdNo1", stCisCustInfo.idno ); /* 证件号码 */ setstring( "CustomName",stCisCustInfo.customname ); /* 客户姓名 */ setstring( "CustomType", stCisCustInfo.customtype ); /* 客户类型 */ setstring( "AcctNo", stCmsAcctM.acctno ); /* 客户账号 */ setstring( "SubAcct", stCmsAcctM.subacct ); /* 款项代码 */ setstring( "Ccy1", stCmsAcctM.ccy ); /* 币种 */ setstring( "PrdCode", stCmsAcctM.prdcod ); /* 产品代码 */ setstring( "VouNo", stCmsCardInfo.vouno ); /* 凭证号码 */ setstring( "VouKind", stCmsCardInfo.voukind ); /* 凭证种类 */ setdouble( "Bal", &stBaseSubAcctInfo.dBal ); /* 余额 */ setdouble( "UseBal", &stBaseSubAcctInfo.dAvailBal ); /* 可用余额 */ setstring( "YFeeFlag", stCmsCardInfo.yfeeflag); /* 是否要缴年费*/ setstring( "FeeYear", stCmsCardInfo.yfeeyear); /* 已收取年费的年份*/ setdouble( "Amt3", &stCmsCardInfo.yfee); /* 指定年费金额*/ setdouble( "Amt2", &stCmsCardInfo.acdlmt); /* 附卡交易限额*/ setdouble( "Amt1", &stCmsCardInfo.acduseamt); /* 附卡已用金额*/ setdouble( "Amt4", &stCmsCardInfo.yfeebal); /* 未交年费总计*/ setstring( "BillWay", stCmsCardInfo.billway); /* 对帐单处理方式*/ setstring( "AddressType",stCmsCardInfo.billaddtype); /*对帐单邮寄地址类型*/ setstring( "CardIdKind",stCmsCardKind.cardidkind ); /* 卡片识别种类*/ setstring( "CardIdKindComm",stCmsCardKind.cardidkindcomm ); /* 卡片识别种类说明*/ setstring( "CardKindComm",stCmsCardKind.cardkindcomm ); /* 卡片种类说明*/ setstring( "CardKind", stCmsCardInfo.cardkind ); /* 卡片种类*/ setstring( "CardObject", stCmsCardInfo.cardobject ); /* 发卡对象*/ setstring( "CardFlg", stCmsCardInfo.cardflg ); /* 卡标志*/ setstring( "CardAttr", stCmsCardInfo.cardattr ); /* 卡片属性代码*/ setstring( "CrdSts", stCmsCardInfo.crdsts); /* 卡片状态*/ setstring( "CardStat", acCardStat); /* 卡状态*/ setstring( "YFeeRank", stCmsCardInfo.yearfeerank); /* 年费级别 */ setstring( "Brc1", stCmsCardInfo.issuebrc ); /* 发卡机构码*/Exit: strcpy( g_acTrcMsg, "子交易: 获取账户客户信息结束.." ); TRCLOG4 if( !strcmp( g_acRspCode, RSP_OK ) ) return SUCCESS; else return FAILED ;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -