📄 cms541.sqc
字号:
/******************************************************************** ** 源码文件名称 : cms541.SQC ** 所属子系统 : CMS ** 当前文件版本 : 1.0.0.0 ** 作者 : UCCB ALEX ** 版本创建日期 : 2004/10/13 ** 功能描述 : 客户止付子交易 ** 修改记录 : ** 修改人 修改日期 修改日期*********************************************************************/#include "code.h"#include "attrdef.h"#include "sysdef.h"#include "pubcom.h"#include "cmscode.h"#include "cmscardinfo.h"#include "cmscuststopm.h"#include "cmsacctm.h"EXEC SQL INCLUDE SQLCA;int cmsCustStopPaylPro( PUBCOM *pstPubcom ){ /*定义局部变量*/ char acPassWd[PASSWD_LEN+1] ; /*密码*/ char acHappen[PASSWD_LEN+1] ; /*业务发生地*/ char acCheckFlag[BIT21_LEN][BIT11_LEN]; /*卡状态检查标志*/ char acFlag[ FLAG_LEN+1]; /* 挂失标志 */ int iRtn; struct cmscardinfo stCardInfo; struct cmscardinfo stFCardInfo; struct cmscuststopm stCustStopM; struct cmsacctm stCmsAcctM; /* 卡账户对照表 */ strcpy( g_acTrcMsg, "子交易: 客户止付子交易开始..." ); TRCLOG4; memset( &stCardInfo, 0x00, sizeof ( struct cmscardinfo ) ); memset( &stFCardInfo, 0x00, sizeof ( struct cmscardinfo ) ); memset( &stCustStopM, 0x00, sizeof ( struct cmscuststopm ) ); memset( acCheckFlag, 0x00, sizeof ( acCheckFlag ) ); memset( &stCmsAcctM, 0x00, sizeof( struct cmsacctm ) ); memset( acFlag, 0x00, sizeof( acFlag ) ); /* 取数据字典值 */ getstring( "CardNo", stCardInfo.cardno ); /*卡号 */ getstring( "CardNo1", stFCardInfo.cardno ); /*卡号 */ getstring( "Passwd", acPassWd ); /*卡密码*/ getstring( "IdType" , stCustStopM.idtype ); getstring( "IdNo" , stCustStopM.idcode ); getstring( "CustomName" , stCustStopM.custname ); getstring( "Memo" , stCustStopM.stopreason ); getstring( "Flag1" , acFlag ); strcpy( acHappen , pstPubcom->acChannelId );/*业务发生地*/ /* 获取主卡片信息表 */ if( pubReadCmscardinfo( &stCardInfo ) ) { if ( SQLCODE == SQLNOTFOUND ) sprintf( g_acRspMsg, "主卡号[%s]不存在", stCardInfo.cardno ); ERRLOG goto Exit; } /*检查是否为主卡*/ if( cmsApiChkCardNoIsMain( &stCardInfo ) ) { ERRLOG; goto Exit; } /*置卡状态检查标志*/ acCheckFlag[BIT1_LEN][BIT1_LEN]=CHECK_YES; sprintf( g_acTrcMsg, "Flag[%s][%c]", acFlag, YES ); TRCLOG2 if ( acFlag[ BIT1_LEN ] == YES ) { acCheckFlag[BIT2_LEN][BIT2_LEN]=CHECK_YES; acCheckFlag[BIT2_LEN][BIT3_LEN]=CHECK_YES; } else acCheckFlag[BIT2_LEN][BIT1_LEN]=CHECK_YES; acCheckFlag[BIT3_LEN][BIT1_LEN]=CHECK_YES; acCheckFlag[BIT4_LEN][BIT1_LEN]=CHECK_YES; acCheckFlag[BIT5_LEN][BIT1_LEN]=CHECK_YES; acCheckFlag[BIT6_LEN][BIT1_LEN]=CHECK_YES; acCheckFlag[BIT7_LEN][BIT1_LEN]=CHECK_YES; acCheckFlag[BIT8_LEN][BIT1_LEN]=CHECK_YES; acCheckFlag[BIT9_LEN][BIT1_LEN]=CHECK_YES; acCheckFlag[BIT11_LEN][BIT1_LEN]=CHECK_YES; acCheckFlag[BIT12_LEN][BIT1_LEN]=CHECK_YES; acCheckFlag[BIT13_LEN][BIT1_LEN]=CHECK_YES; acCheckFlag[BIT14_LEN][BIT1_LEN]=CHECK_YES; /*检查主卡状态是否正常*/ if( cmsApiChkCardStatIsNormal( &stCardInfo, acCheckFlag ) ) { ERRLOG; goto Exit; } /*判断主卡密码是否正确*/ if( cmsApiChkCardPwd( &stCardInfo,acPassWd,acHappen ) ) { ERRLOG goto Exit; } /* 获取附卡片信息表 */ if( pubReadCmscardinfo( &stFCardInfo ) ) { if ( SQLCODE == SQLNOTFOUND ) sprintf( g_acRspMsg, "附卡号[%s]不存在", stFCardInfo.cardno ); ERRLOG goto Exit; } /*检查是否为附卡*/ if( cmsApiChkCardNoIsAcce( &stFCardInfo ) ) { ERRLOG goto Exit; } /*检查附卡状态是否正常*/ acCheckFlag[BIT2_LEN][BIT2_LEN]=CHECK_NO; acCheckFlag[BIT2_LEN][BIT3_LEN]=CHECK_NO; if( cmsApiChkCardStatIsNormal( &stFCardInfo, acCheckFlag ) ) { ERRLOG; goto Exit; } /*检查主附卡关系 */ if( cmsApiChkMainAndAcceCardRelation( stCardInfo.cardno, &stFCardInfo ) ) { ERRLOG goto Exit; } /*修改附卡卡片信息*/ stFCardInfo.cardstat[BIT12_LEN]=BIT12_CUSTSTOPPAY; strcpy( stFCardInfo.chgdate, pstPubcom->acTranDate ); if( pubModiCmscardinfo( &stFCardInfo ) ) { ERRLOG goto Exit; } /*登记客户支付登记簿赋值*/ strcpy( stCustStopM.maincardno , stCardInfo.cardno ); strcpy( stCustStopM.accecardno , stFCardInfo.cardno ); strcpy( stCustStopM.stopdate , pstPubcom->acTranDate ); stCustStopM.stopserseqno=pstPubcom->lSerSeqNo; sprintf( stCustStopM.vouchno,"%s%08d",pstPubcom->acTranDate8,pstPubcom->lSerSeqNo ); strcpy( stCustStopM.stopteller , pstPubcom->acTeller ); strcpy( stCustStopM.authteller , pstPubcom->acAteller ); strcpy( stCustStopM.stopbrc , pstPubcom->acBrc ); stCustStopM.stoptype[BIT1_LEN]=CUST_STOP; stCustStopM.stopstat[BIT1_LEN]=STOP_STAT; /*登记客户止付登记簿*/ if( pubInstCmscuststopm( &stCustStopM ) ) { ERRLOG goto Exit; } /* 子交易出口 */ iRtn = cmsApiInsTranLog( pstPubcom, &stCardInfo, &stCmsAcctM, "止付", "客户止付" ); if ( iRtn ) { ERRLOG return FAILED; } strcpy( g_acTrcMsg, "子交易: 客户止付结束.." ); TRCLOG4;Exit: if( !strcmp( g_acRspCode, RSP_OK ) ) return SUCCESS; else return FAILED ;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -