📄 cardnum.sqc
字号:
/******************************************************* ** 源码文件名称 : cardnum.SQC ** 所属子系统 : 卡管理 ** 功能描述 : 对客户持卡数的检查处理 ** 当前文件版本 : 4.0.0.0 ** 作 者 : UCCB ALex ** 版本创建日期 : 2004/09/17 ** 修改记录 : ** 修改人 修改日期 修改位置*******************************************************/#include "sysdefine.h"#include "code.h"#include "attrdef.h"#include "pubcom.h"#include "cmscode.h"#include "cmscardkind.h"#include "cmscuscdnum.h"EXEC SQL INCLUDE sqlca;/******************************************************* ** 函数名称:cmsApiChkCustCardNumLimit ** 功能描述: 按卡片种类表同一客户主附卡最大持卡数, ** 与客户持卡数表中的客户主附卡数量比较是否超限 ** 输入参数: ** pcCustNo --- 客户号 ** pstCmsCardKind --- 卡片种类表 ** cCardFlg --- 卡标志 ** '8' 主卡 ** '6' 附卡 ** cFlg --- 交易处理标志 ** '0' 正常交易 ** '1' 抹账交易 ** 输出参数: ** ** 涉及库表: ** cmscardkind --- 卡片种类表 ** cmscuscdnum --- 客户持卡数表 ** 返回结果: int 0 成功 -1 失败 ** 作 者 : UCCB ALex ** 版本创建日期 : 2004/09/17 ** 修改记录 : ** 修改人 修改日期 修改位置*******************************************************/int cmsApiChkCustCardNumLimit( pcCustNo,pstCmsCardKind,cCardFlg,cFlg )char *pcCustNo; /*客户号 */struct cmscardkind *pstCmsCardKind; /*卡片种类表 */char cCardFlg; /*卡标志 */char cFlg; /*交易处理标志*/{ /*定义 局部变量*/ struct cmscuscdnum stCmsCusCdNum; sprintf( g_acTrcMsg, "cmsApiChkCustCardNumLimit begin " ); TRCLOG2 /*初始化结构*/ memset(&stCmsCusCdNum, 0x00 ,sizeof( struct cmscuscdnum ) ); /*将输入参数赋值给结构*/ strcpy( stCmsCusCdNum.cardkind, pstCmsCardKind->cardkind ); strcpy( stCmsCusCdNum.custno, pcCustNo ); sprintf( g_acTrcMsg,"cardflg[%c]",cCardFlg ); TRCLOG1 sprintf( stCmsCusCdNum.cardflg,"%c",cCardFlg ); strcpy( g_acTrcMsg ,stCmsCusCdNum.cardflg ); TRCLOG1 strcpy( g_acTrcMsg ,pcCustNo ); TRCLOG1 /*取客户持卡数表记录*/ pubStoVCmscuscdnum( &stCmsCusCdNum ); EXEC SQL DECLARE Cuscdnum_1_cur CURSOR FOR SELECT * FROM CMSCUSCDNUM WHERE custno=:cmscuscdnum_custno AND cardkind=:cmscuscdnum_cardkind AND cardflg=:cmscuscdnum_cardflg FOR UPDATE; SQLOPENCUR(Cuscdnum_1_cur,"Cuscdnum_1_cur") if ( SQLCODE ) { sprintf(g_acRspCode,"CMS111"); pubCrtRspInfo("cmscuscdnum",SQLCODE); ERRLOG; return FAILED; } pubInitCmscuscdnum(); EXEC SQL FETCH Cuscdnum_1_cur INTO R_CMSCUSCDNUM; if( SQLCODE && SQLCODE != SQLNOTFOUND ) { sprintf(g_acRspCode,"CMS112"); pubCrtRspInfo("cmscuscdnum",SQLCODE); ERRLOG; SQLCLOSECUR(Cuscdnum_1_cur,"Cuscdnum_1_cur") return FAILED; } sprintf( g_acTrcMsg ,"cFlg[%c]",cFlg ); TRCLOG2 /*根据输入参数cFlg判断为何种处理*/ switch( cFlg ) { case FLAG_NORMAL: /*正常交易*/ if(SQLCODE==SQLNOTFOUND) { /*给结构宿组赋值*/ cmscuscdnum_crdnum=1; strcpy( cmscuscdnum_custno, pcCustNo ); strcpy( cmscuscdnum_cardkind, pstCmsCardKind->cardkind ); sprintf( cmscuscdnum_cardflg,"%c\0",cCardFlg ); /*给客户持卡数表增加一条记录*/ EXEC SQL INSERT INTO cmscuscdnum VALUES( R_CMSCUSCDNUM ); if ( SQLCODE ) { sprintf(g_acRspCode,"999998"); pubCrtRspInfo("cmscuscdnum", SQLCODE); ERRLOG; SQLCLOSECUR(Cuscdnum_1_cur,"Cuscdnum_1_cur") return FAILED; } SQLCLOSECUR(Cuscdnum_1_cur,"Cuscdnum_1_cur") return SUCCESS; } /*判断主附卡*/ switch( cCardFlg ) { case MAIN_CARD: /*主卡*/ /*判断持主卡数是否限制*/ if( pstCmsCardKind->maxnum == ZEROS ) /*不限制*/ { break; } /*判断客户持主卡数是否小客户最大持卡数*/ if( pstCmsCardKind->maxnum <= cmscuscdnum_crdnum ) {/*客户持卡数大*/ sprintf(g_acRspCode,"CMS204"); pubCrtRspInfo(cmscuscdnum_crdnum,pstCmsCardKind->maxnum); ERRLOG; SQLCLOSECUR(Cuscdnum_1_cur,"Cuscdnum_1_cur") return FAILED; } break; case SUBMAIN_CARD: /*附卡*/ /*判断持附卡数是否限制*/ if( pstCmsCardKind->fmaxnum == ZEROS ) { break; } /*判断客户持附卡数是否小客户最大持卡数*/ if( pstCmsCardKind->fmaxnum <= cmscuscdnum_crdnum ) {/*客户持卡数大*/ sprintf(g_acRspCode,"CMS205"); pubCrtRspInfo(cmscuscdnum_crdnum,pstCmsCardKind->fmaxnum); ERRLOG; SQLCLOSECUR(Cuscdnum_1_cur,"Cuscdnum_1_cur") return FAILED; } break; default: sprintf(g_acRspCode,"999999"); sprintf(g_acRspMsg,"卡种类错[%c]",cCardFlg); ERRLOG; SQLCLOSECUR(Cuscdnum_1_cur,"Cuscdnum_1_cur") return FAILED; } /*累计客户持卡数*/ cmscuscdnum_crdnum=cmscuscdnum_crdnum+1; break; case FLAG_REVERSE: /*抹账、冲正交易*/ if(SQLCODE==SQLNOTFOUND) { /* sprintf(g_acRspCode,"CMS113"); sprintf(g_acTrcMsg,"客户持卡数表客户号为[%s]",pcCustNo); pubCrtRspInfo(g_acTrcMsg,SQLCODE); ERRLOG; SQLCLOSECUR(Cuscdnum_1_cur,"Cuscdnum_1_cur") return FAILED; */ sprintf(g_acTrcMsg,"客户持卡数表客户号为[%s]",pcCustNo); TRCLOG2 SQLCLOSECUR(Cuscdnum_1_cur,"Cuscdnum_1_cur") return SUCCESS; } /*减少客户持卡数*/ cmscuscdnum_crdnum=cmscuscdnum_crdnum-1; if( cmscuscdnum_crdnum < ZEROS ) { sprintf(g_acRspCode,"999999"); sprintf(g_acRspMsg,"客户持卡数错,客户号[%s]",pcCustNo); ERRLOG; SQLCLOSECUR(Cuscdnum_1_cur,"Cuscdnum_1_cur") return FAILED; } break; default: sprintf(g_acRspCode,"999999"); sprintf(g_acRspMsg,"交易种类错[%c]",cFlg); ERRLOG; SQLCLOSECUR(Cuscdnum_1_cur,"Cuscdnum_1_cur") return FAILED; } /*更新记录*/ EXEC SQL UPDATE cmscuscdnum SET crdnum=:cmscuscdnum_crdnum WHERE CURRENT OF Cuscdnum_1_cur; if ( SQLCODE ) { sprintf(g_acRspCode,"999997"); pubCrtRspInfo("cmscuscdnum", SQLCODE); ERRLOG; SQLCLOSECUR(Cuscdnum_1_cur,"Cuscdnum_1_cur") return FAILED; } SQLCLOSECUR(Cuscdnum_1_cur,"Cuscdnum_1_cur") sprintf( g_acTrcMsg, "cmsApiChkCustCardNumLimit end " ); TRCLOG2 return SUCCESS;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -