📄 cms542.sqc
字号:
/******************************************************************** ** 源码文件名称 : cms542.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 cmsCustCanStopPaylPro( 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( &stCmsAcctM, 0x00, sizeof( struct cmsacctm ) ); memset( acCheckFlag, 0x00, sizeof ( acCheckFlag ) ); memset( acFlag, 0x00, sizeof( acFlag ) ); /* 取数据字典值 */ getstring( "CardNo", stCardInfo.cardno ); /*卡号 */ getstring( "CardNo1", stFCardInfo.cardno ); /*卡号 */ getstring( "Passwd1", acPassWd ); /*卡密码*/ strcpy( acHappen , pstPubcom->acChannelId );/*业务发生地*/ getstring( "AplyDate" , stCustStopM.stopdate ); getlong( "AcqSerStan" , &stCustStopM.stopserseqno ); getstring( "Memo" , stCustStopM.cnclreason ); getstring( "Flag1" , acFlag ); /* 获取主卡片信息表 */ 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; 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; } /*检查主附卡关系 */ if( cmsApiChkMainAndAcceCardRelation( stCardInfo.cardno, &stFCardInfo ) ) { ERRLOG goto Exit; } /*获取客户止付登记簿信息*/ strcpy( stCustStopM.maincardno , stCardInfo.cardno ); strcpy( stCustStopM.accecardno , stFCardInfo.cardno ); if( pubReadCmscuststopm( &stCustStopM ) ) { ERRLOG goto Exit; } /*检查客户止付状态*/ if( cmsApiChkTypeIsCustInitiative( &stCustStopM ) ) { ERRLOG goto Exit; } /*检查止付机构和解付机构是否相同*/ if( cmsApiChkIsSameBranch( stCustStopM.stopbrc, pstPubcom->acBrc ) ) { ERRLOG goto Exit; } /*修改附卡卡片信息*/ stFCardInfo.cardstat[BIT12_LEN]=BIT12_CARDOK; strcpy( stFCardInfo.chgdate, pstPubcom->acTranDate ); if( pubModiCmscardinfo( &stFCardInfo ) ) { ERRLOG goto Exit; } /*修改客户支付登记簿赋值*/ strcpy( stCustStopM.cncldate , pstPubcom->acTranDate ); stCustStopM.cnclserseqno=pstPubcom->lSerSeqNo; strcpy( stCustStopM.cnclteller , pstPubcom->acTeller ); strcpy( stCustStopM.cnclauthteller , pstPubcom->acAteller ); strcpy( stCustStopM.cnclbrc , pstPubcom->acBrc ); stCustStopM.stopstat[BIT1_LEN]=UNSTOP_STAT; /*修改客户止付登记簿*/ if( pubModiCmscuststopm( &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 ; return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -