📄 cms513.sqc
字号:
/******************************************************************** ** 源码文件名称 : cms513.SQC ** 所属子系统 : CMS ** 当前文件版本 : 1.0.0.0 ** 作者 : UCCB ALEX ** 版本创建日期 : 2004/09/22 ** 功能描述 : 保号换卡申请子交易 ** 修改记录 : ** 修改人 修改日期 修改说明 ** Feng 2006-01-16 卡凭证信息的输出和作废销毁登记簿的处理*********************************************************************/#include "code.h"#include "attrdef.h"#include "sysdef.h"#include "pubcom.h"#include "cmscode.h"#include "cmspcdreg.h"#include "cmscardinfo.h"#include "cmscardkind.h"#include "cmscardcancelt.h"#include "cmsacctm.h"#include "ciscustomerinfo.h"EXEC SQL INCLUDE SQLCA;int cmsKeepCardNoChgReqPro( PUBCOM *pstPubcom ){ /*定义局部变量*/ char acBankTitle[PARAMVALUE_LEN+1]; /*银行标识*/ char acCustInf[CUSTNAME_LEN+1]; /*客户信息*/ char acTranDate8[DATE8_LEN+1]; /*交易日期*/ char acVouNo[VOUNO_LEN+1]; /*凭证号码*/ char acMethod[ PARAMVALUE_LEN+1 ]; /* 凭证号码方式 */ long lMinNum,lMaxNum; long lNum; char acChgFlg[ FLAG_LEN + 1 ]; /* 换卡标志 */ int iRtn ; struct cmscardinfo stCardInfo; /*卡片信息表*/ struct cmscardcancelt stCmsCant; /* 作废销毁登记簿 */ struct cmsacctm stAcctM; /*卡帐号对账表*/ struct cmspcdreg stPcdReg; /*预制卡登记簿*/ struct ciscustomerinfo stCisInfo; /*客户基本信息*/ struct cmscardkind stCmsCardKind; /* 卡片种类表 */ strcpy( g_acTrcMsg, "子交易: 保号换卡申请开始.." ); TRCLOG4; strcpy( g_acRspCode, RSP_OK ); memset( &stCardInfo, 0x00, sizeof ( struct cmscardinfo ) ); memset( &stCmsCardKind, 0x00, sizeof( struct cmscardkind ) ); memset( &stAcctM, 0x00, sizeof ( struct cmsacctm ) ); memset( &stPcdReg, 0x00, sizeof ( struct cmspcdreg ) ); memset( &stCisInfo, 0x00, sizeof ( struct ciscustomerinfo ) ); memset( acMethod, 0x00, sizeof( acMethod ) ); memset( acChgFlg, 0x00, sizeof( acChgFlg ) ); memset( acVouNo, 0x00, sizeof( acVouNo ) ); /* 取数据字典值 */ getstring("CardNo", stCardInfo.cardno); getstring( "ChgFlag", acChgFlg ); /* 获取卡片信息表 */ if( pubReadCmscardinfo( &stCardInfo ) ) { if ( SQLCODE == SQLNOTFOUND ) sprintf( g_acRspMsg, "卡号[%s]不存在", stCardInfo.cardno ); ERRLOG goto Exit; } /* Feng Add in 2006-01-16 Begin */ /* 获取卡片种类表 */ iRtn = cmsApiGetCmsCardKind( stCardInfo.cardkind, &stCmsCardKind ); if ( iRtn ) { ERRLOG return FAILED; } /* Feng Add in 2006-01-16 End */ /* 获取凭证号码生成方式 */ if ( cmsApiGetVouMethod( acMethod ) ) { ERRLOG return FAILED; } /* 凭证号码获取方式为大排序 */ if ( acMethod [ BIT1_LEN ] == METHOD_SINGLESEQ ) { /* 获取卡凭证号码 */ lNum = 1 ; if( cmsApiGetCardVouNo( stCardInfo.voukind,stCardInfo.precharcode, &lNum,&lMinNum,&lMaxNum ) ) { ERRLOG goto Exit; } sprintf( acVouNo,"%0*ld", MAX_VOUSEQNOLEN, lMaxNum); strpack( acVouNo ); } /*修改卡片信息表 */ strcpy(cmscardinfo_cardno,stCardInfo.cardno); cmscardinfo_cardstat[BIT14_LEN]=BIT14_CARDBHAPLY; cmscardinfo_crdsts[BIT1_LEN]=CARDKCSTS; EXEC SQL UPDATE cmscardinfo SET cardstat=:cmscardinfo_cardstat, crdsts =:cmscardinfo_crdsts WHERE cardno=:cmscardinfo_cardno; if( SQLCODE ) { sprintf(g_acRspMsg,"UPDATE 卡片信息表错SQLCODE[%d]cardno[%s]", SQLCODE,cmscardinfo_cardno); ERRLOG; sprintf(g_acRspCode,"999997"); pubCrtRspInfo( "cmscardinfo", SQLCODE ); ERRLOG; goto Exit; } strcpy( stCisInfo.customid, stCardInfo.custno ); iRtn = pubReadCiscustomerinfo( &stCisInfo ); if ( iRtn ) { ERRLOG goto Exit; } switch ( acChgFlg[ BIT1_LEN ] ) { case FLAG_COMCARDTOCOMCARD: case FLAG_NAMCARDTOCOMCARD: stPcdReg.aplyflg[BIT1_LEN]=HOLDCARDAPLY; /* 申请标志 */ break; case FLAG_COMCARDTONAMCARD: case FLAG_NAMCARDTONAMCARD: stPcdReg.aplyflg[BIT1_LEN]=NAMEHOLDCARDAPLY; /* 申请标志 */ strcpy( stPcdReg.custno, stCardInfo.custno ); /* 客户号 */ strpack( stCisInfo.custengname ); if ( !strlen( stCisInfo.custengname ) ) { strcpy(g_acRspCode,"CMS1F0"); pubCrtRspInfo( stCardInfo.custno ); ERRLOG goto Exit; } strcpy( stPcdReg.custname, stCisInfo.custengname );/* 客户拼音 */ break; } /*写预制卡登记簿 */ strcpy( stPcdReg.scardno, stCardInfo.cardno ); strcpy( stPcdReg.ecardno, stCardInfo.cardno ); stPcdReg.serseqno = pstPubcom->lSerSeqNo; /* 流水号 */ stPcdReg.aplynum = 1; /* 申请数量*/ sprintf( stPcdReg.vouchno,"%s%08ld",pstPubcom->acTranDate8,stPcdReg.serseqno); strcpy( stPcdReg.aplydate, pstPubcom->acTranDate );/* 申请日期 */ strcpy( stPcdReg.wishdate, pstPubcom->acTranDate );/* 希望日期 */ strcpy( stPcdReg.aplybrc, pstPubcom->acBrc ); /* 申请机构 */ strcpy( stPcdReg.aplyteller,pstPubcom->acTeller ); /* 申请柜员 */ strcpy( stPcdReg.authteller,pstPubcom->acAteller ); /* 授权柜员 */ strcpy ( stPcdReg.cardkind, stCardInfo.cardkind ); /* 卡片种类 */ strcpy ( stPcdReg.voukind, stCardInfo.voukind ); /* 卡片种类 */ strcpy ( stPcdReg.svouno, acVouNo ); /* 凭证号码 */ strcpy ( stPcdReg.evouno, acVouNo ); /* 凭证号码 */ stPcdReg.applflg[BIT1_LEN]=APPLYREG; /* 状态标志 */ stPcdReg.processflg[BIT1_LEN]=MKFILE_UNDONE; /* 处理标志 */ if( pubInstCmspcdreg( &stPcdReg ) ) { ERRLOG goto Exit; } /* Feng Add in 2006-01-16 Begin */ /* 凭证号码获取方式为大排序 */ if ( acMethod [ BIT1_LEN ] == METHOD_SINGLESEQ ) { memset( &stCmsCant, 0x00, sizeof( struct cmscardcancelt ) ); strcpy( stCmsCant.canceldate, pstPubcom->acTranDate ); stCmsCant.serseqno = pstPubcom->lSerSeqNo; strcpy( stCmsCant.cardno, stCardInfo.cardno ); strcpy( stCmsCant.cardkind, stCardInfo.cardkind ); strcpy( stCmsCant.voukind, stCmsCardKind.blankvoukind ); strcpy( stCmsCant.precharcode, stCardInfo.precharcode ); strcpy( stCmsCant.vouno, stCardInfo.vouno ); sprintf( stCmsCant.vouchno, "%s%0*ld", pstPubcom->acTranDate8, \ SERSEQNO_LEN, stCmsCant.serseqno ); stCmsCant.flag[ BIT1_LEN ] = FLAG_INVALID; stCmsCant.cardflg[ BIT1_LEN ] = stCardInfo.cardflg[ BIT1_LEN ]; strcpy( stCmsCant.custname, stCisInfo.customname ); strcpy( stCmsCant.idtype, stCisInfo.idtype ); strcpy( stCmsCant.idcode, stCisInfo.idno ); strcpy( stCmsCant.cancelbrc, pstPubcom->acBrc ); strcpy( stCmsCant.cancelteller,pstPubcom->acTeller ); /* 插入卡作废销毁登记簿 */ iRtn = pubInstCmscardcancelt( &stCmsCant ); if ( iRtn ) { ERRLOG return FAILED; } } /* Feng Add in 2006-01-16 End */ /*写子交易流水*/ if( cmsApiInsTranLog( pstPubcom, &stCardInfo, &stAcctM, "换卡", "保号换卡申请" ) ) { ERRLOG goto Exit; } /* 子交易出口 */ setstring( "Flag", acMethod ); /* 凭证号生成方式 */ setstring( "PreCharCode", stCardInfo.precharcode ); /* 冠字号码 */ setstring( "VouKind" , stCmsCardKind.blankvoukind ); /* 废卡凭证种类 */ setstring( "VouNo" , stCardInfo.vouno ); /* 废卡凭证号码 */ 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 + -