📄 cms507.sqc
字号:
/******************************************************************** ** 源码文件名称 : cms507.SQC ** 所属子系统 : CMS ** 当前文件版本 : 1.0.0.0 ** 作者 : Feng ** 版本创建日期 : 2004/09/25 ** 功能描述 : 卡销毁交易 ** 修改记录 : ** 修改人 修改日期 修改说明 ** Feng 2006-01-16 增加废卡中凭证号码处理*********************************************************************/#include "code.h"#include "attrdef.h"#include "sysdef.h"#include "pubcom.h"#include "cmscode.h"#include "cmscardcancelt.h"#include "cmscardinfo.h"#include "cmscardkind.h"#include "cmsacctm.h"#include "dmsvoubal.h"EXEC SQL INCLUDE SQLCA;int cmsDesTroyCardPro( PUBCOM *pstPubcom ){ /*定义局部变量*/ struct cmscardcancelt stCmsCardCancelT; struct cmscardinfo stCmsCardInfo; struct cmscardkind stCmsCardKind; /* 卡片种类表 */ struct cmsacctm stCmsAcctM; char acFlag[ FLAG_LEN + 1 ]; /* 凭证状态 */ int iRtn=0 ; strcpy( g_acTrcMsg, "子交易: 卡销毁子交易开始....."); TRCLOG4 strcpy( g_acRspCode, RSP_OK ); memset( &stCmsCardCancelT, 0x00, sizeof ( struct cmscardcancelt ) ); memset( &stCmsCardInfo, 0x00, sizeof ( struct cmscardinfo ) ); memset( &stCmsCardKind, 0x00, sizeof( struct cmscardkind ) ); memset( &stCmsAcctM, 0x00, sizeof ( struct cmsacctm ) ); memset( acFlag, 0x00, sizeof ( acFlag ) ); /* 取数据字典值 */ getstring( "CardNo", stCmsCardCancelT.cardno ); /*卡号*/ getstring( "AcctSeqNo", stCmsCardCancelT.batchno ); /*批次号*/ /* Feng Add in 2006-01-16 Begin */ getstring( "VouNo", stCmsCardCancelT.vouno ); /*凭证号码*/ /* Feng Add in 2006-01-16 End */ sprintf( g_acTrcMsg, "cardno[%s]batchno[%s]",stCmsCardCancelT.cardno, stCmsCardCancelT.batchno ); TRCLOG3 /* Feng Add in 2006-01-16 Begin */ /* 获取卡片信息表 */ strcpy( stCmsCardInfo.cardno, stCmsCardCancelT.cardno ); if( pubReadCmscardinfo( &stCmsCardInfo ) ) { if ( SQLCODE == SQLNOTFOUND ) sprintf( g_acRspMsg, "卡号[%s]不存在", stCmsCardInfo.cardno ); ERRLOG goto Exit; } /* 获取卡片种类表 */ iRtn = cmsApiGetCmsCardKind( stCmsCardInfo.cardkind, &stCmsCardKind ); if ( iRtn ) { ERRLOG return FAILED; } /* 获取卡作废销毁登记簿*/ strcpy( stCmsCardCancelT.voukind, stCmsCardKind.blankvoukind ); strcpy( stCmsCardCancelT.precharcode, stCmsCardInfo.precharcode ); /* Feng Add in 2006-01-16 End */ if( pubReadCmscardcancelt( &stCmsCardCancelT ) ) { ERRLOG goto Exit; } /*检查记录状态*/ if(stCmsCardCancelT.flag[BIT1_LEN]==FLAG_DESTROY) { sprintf(g_acRspCode,"CMS1D7"); pubCrtRspInfo(stCmsCardCancelT.cardno); ERRLOG goto Exit; } /*修改记录为销毁*/ stCmsCardCancelT.flag[BIT1_LEN] = FLAG_DESTROY; strcpy( stCmsCardCancelT.destroydate, pstPubcom->acTranDate ); strcpy( stCmsCardCancelT.destroyteller, pstPubcom->acTeller ); strcpy( stCmsCardCancelT.destroybrc, pstPubcom->acBrc ); strcpy( stCmsCardCancelT.destroyauthteller, pstPubcom->acAteller ); /* 修改卡作废销毁登记簿*/ if( pubModiCmscardcancelt( &stCmsCardCancelT ) ) { ERRLOG goto Exit; } /* Feng Add in 2006-01-16 Begin 修改凭证种类、号码和冠字的赋值 */ /* 凭证付出 表外账减1 */ if ( dmsInVouOut( pstPubcom, stCmsCardCancelT.voukind, \ stCmsCardCancelT.vouno, stCmsCardCancelT.vouno, 1, \ stCmsCardCancelT.precharcode,acFlag ) ) { ERRLOG goto Exit; } /* 修改机构凭证库文件(出库) */ if ( dmsChgVouLibOut( pstPubcom->acBrc, pstPubcom->iBoxNo, \ stCmsCardCancelT.voukind, \ stCmsCardCancelT.precharcode, \ stCmsCardCancelT.vouno, \ stCmsCardCancelT.vouno, 1 ) ) { ERRLOG goto Exit; } /* 修改尾箱凭证余额文件 */ strcpy( dmsvoubal_brc, pstPubcom->acBrc ); strcpy( dmsvoubal_voukind, stCmsCardCancelT.voukind ); strcpy( dmsvoubal_precharcode, stCmsCardCancelT.precharcode ); dmsvoubal_number = 1; dmsvoubal_boxno = pstPubcom->iBoxNo ; /* 修改凭证余额 */ EXEC SQL update dmsvoubal set number = number - :dmsvoubal_number WHERE brc = :dmsvoubal_brc AND boxno = :dmsvoubal_boxno AND voukind = :dmsvoubal_voukind AND precharcode = :dmsvoubal_precharcode; if( SQLCODE ) { strcpy( g_acRspCode, "DMS992" ); pubCrtRspInfo("尾箱凭证余额文件",SQLCODE); ERRLOG goto Exit; } /* 调用登记凭证使用明细api */ if( dmsSumVouUseSts( pstPubcom, stCmsCardCancelT.voukind, \ stCmsCardCancelT.precharcode, \ stCmsCardCancelT.vouno,stCmsCardCancelT.vouno, \ 1, USERMODE_CANCEL, "" ) ) { ERRLOG goto Exit; } /* Feng Add in 2006-01-16 End 修改凭证种类、号码和冠字的赋值 */ /* 统计当日本批次号已处理数量 */ pubStoVCmscardcancelt( &stCmsCardCancelT ); EXEC SQL select count(*) into :dmsvoubal_number from cmscardcancelt where batchno=:cmscardcancelt_batchno and destroydate = :cmscardcancelt_destroydate and flag = :cmscardcancelt_flag; if( SQLCODE ) { strcpy( g_acRspCode, "999996" ); pubCrtRspInfo("cmscardcancelt",SQLCODE); ERRLOG goto Exit; } /*写子交易流水*/ if( cmsApiInsTranLog( pstPubcom, &stCmsCardInfo, &stCmsAcctM, "制卡", "预制卡申请删除" ) ) { ERRLOG goto Exit; } /* 子交易出口 */ setlong( "Num" , &dmsvoubal_number ); 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 + -