对公业务对公活期存款详细设计.docx
- 文档编号:27427542
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:47
- 大小:35.29KB
对公业务对公活期存款详细设计.docx
《对公业务对公活期存款详细设计.docx》由会员分享,可在线阅读,更多相关《对公业务对公活期存款详细设计.docx(47页珍藏版)》请在冰豆网上搜索。
对公业务对公活期存款详细设计
对公活期存款详细设计
作者:
陈丞
日期:
2011-04-19
长天集团专业技术开发机构
地址:
北京海淀区学院路40号大唐电信研八楼2层
邮编:
100083
电话:
(010)62304911
传真:
(010)62304992
维护日期
维护人
维护内容
2011-02-25
陈丞
创建此文档,编写4001交易详设
2011-04-25
阎金金
编写4201到4303的详设
1引言
2相关交易
对公活期存款开户(4001)
对公活期存款续存(4201)
对公活期存款支取(4202)
对公活期存款销户(4101)
对公活期存款存折挂失销户(7119)
补登数据移植未登记支票
对公活期存款结息(4103)
对公活期存款帐户维护(4303)
对公活期授权取现(4329)
对公活期取款挂待销帐
对公帐户科目调整
3功能概述
用于对公活期存款帐户开户
4名词解释
1、基本存款帐户。
它是存款人办理日常转帐结算和现金收付的主要的帐户。
有关现金的支取和发放工资只能在基本帐户办理。
按人民银行的规定,每一单位只能向银行开立一个基本帐户。
2、一般存款帐户。
它是存款人在基本帐户以外的其他银行办理转帐结算、借款转存和现金缴存的帐户。
它可以是存款人不在同一地点的附属非独立核算单位开立的帐户或因贷款需要而开立的。
该帐户不能支取现金。
3、临时存款帐户。
它是存款人因临时经营活动需要而开立的帐户。
它一般是存款人在外地开立的,该帐户可以办理转帐结算和办理现金收付。
4、专用存款帐户。
它是存款人因特殊资金用途而需要开立的帐户。
比如基本建设资金户,用于专项存储基本建设项目的投资费用,固定资产更新改造资金户,用于技术改造设备更新的专项支出。
5、代销帐。
6、组合交易。
7、挂失止付。
8、挂失解止付。
5新增交易
5.14001对公活期存款开户
5.1.1功能描述
5.1.2业务与权限
5.1.3输入接口
O40011:
录入项
字段
类型
必输
说明
CUNO
客户号
char(10)
是
ITCD
业务代号
char(3)
是
CYNO
货币代号
char
(2)
是
CTFG
钞汇标志
char
(1)
是
FTTP
浮动类型
char
(1)
是
FTVA
浮动值
char(9)
是
BAFG
基本帐户标记
char
(1)
是
THFG
通存通兑标识
char
(1)
是
STAC
统计代码
char(8)
否
DERP
存款联系人
char(8)
否
EVNO
借据号
char(16)
否
BSTY
业务类型(帐户用途)
char
(1)
是
IDDT
资格有效期
char(8)
否
EFDT
生效日期
char(8)
否
5.1.4输出接口
O40012:
录入项
字段
类型
必输
说明
ACNO
帐号
char(20)
CUNM
客户中文名
char(62)
STIN
基准利率
char(9)
PFIR
优惠利率
char(9)
IFNM
业务代号名
char(62)
TLSQ
柜员流水号
char(12)
BAFG
基本帐户标记
char
(1)
O40013:
录入项
字段
类型
必输
说明
CUNO
客户号
Char(10
ACNO
帐号
Char(20)
CUNM
客户中文名
Char(62)
5.1.5流程逻辑
5.1.5.1.1前台
5.1.5.1.2后台
1.获取公共数据(机构,日期,交易日期,柜员)
2.如果为sBAFG为临时存款户,对输入的有效期stIn.sIDDT进行合法性检查
如果有效日期为空或者为“18991231”,
则报错返回。
如果有效期比当前交易日期大于两年,
则报错返回。
如果有效期小于交易日期,
则报错返回。
3.业务代号检查
a)如果账户用途sBSTY为验资专户转基本户时,并且业务代号sITCD为949
报错返回。
4.检查客户号是否存在及状态是否正常
查询客户信息表
strcpy(CDCIA_CUNO,stIn.sCUNO);
iResult=FDBSelCDCIAI3();
如果客户信息记录状态不正常,
则报错返回
5.检查选择账户类型是否符合开户条件
(基本户只能有一个;同一机构不允许同时开设一般户和基本户)
●如果输入stIn.sBAFG选择开基本户,
查询主文件中是否已有状态正常的基本户记录,有则报错。
strncpy(ESMCA_BAFG,stIn.sBAFG,BAFG_LEN);
FDBSelESMCAsI6(1,MAXRECNUM,0,"",stEsmca,MAXRECNUM*sizeof(TBL_ESMCA),&iRecNum);
如果记录数iRecNum>0,报错返回。
●如果输入stIn.sBAFG选择开基本户,
查询主文件中是否有状态正常且在同一机构的一般户,有则报错。
strcpy(ESMCA_BAFG,"1");
FDBSelESMCAsI6();
循环取查询返回记录的机构,如果与当前机构同,
则计数器iNUM+1
如果计数器iNUM>0
报错返回。
6.检查输入的业务代号
●查询业务代号表,检查业务代号
strncpy(GDIFA_ITCD,stIn.sITCD,ITCD_LEN);
FDBSelGDIFAI1();
如果业务代号科目存储GDIFA_ITAT非对公“C”
则报错“业务代号[%s]科目属性不正确”,返回。
如果业务代号开户标志GDIFA_SAFG不为“1”
则报错“业务代号[%s]不能开户”,返回。
●如果输入业务代号为258
查询交易机构表,检查机构级别
如果机构级别不为分行即“1”
则报错“仅分行可以开设258科目帐户”,返回。
●查询活期主文件中该客户在当前机构开的的258专户记录数。
EXECSQLselectcount(*)into:
iCountfromesmcawhereitcd="258"andcuno=:
sCUNOandcyno=:
sCYNOandsbno=:
sSBNOandstcd="0";
如果有记录(即iCount!
=0),则报错返回。
7.检查货币代号及机构开设币种权限
●查询币种代号表
strncpy(GDCYA_CYNO,stIn.sCYNO,CYNO_LEN);
FDBSelGDCYAI1();
不存在则报错返回。
●检查机构是否可以开设该种币种
strncpy(GDSYA_CYNO,stIn.sCYNO,CYNO_LEN);
strncpy(GDSYA_SBNO,sSBNO,SBNO_LEN);
FDBSelGDSYAI2()
不存在则报错返回。
8.检查币种和账户标志是否相符
●如果开户币种为人民币
如果开户类型不为‘0’,‘1’,‘2’,‘3’,则报错。
●否则(开户币种为外币)
如果开户类型为为‘0’,‘1’,‘2’,‘3’,则报错。
9.生成帐号
生成帐号序号
sprintf(str,"SACSQ%s%s%s",sSBNO,stIn.sCYNO,stIn.sITCD);
FMIMakSEQU(str,&lSEQU)
生成帐号
sprintf(sACSQ,"%0*ld",ACSQ_LEN,lSEQU);
PutDDU("ACSQ",&sACSQ);
PutDDU("SBNO",&sSBNO);
PutDDU("UTNO",&sUTNO);
PutDDU("CYNO",&stIn.sCYNO);
PutDDU("ITCD",&stIn.sITCD);
PutDDU("ITAT",GDIFA_ITAT);
BACMakAcno()
GetDDU("ACNO",sACNO);
10.产生柜员流水号
if(FAIL==FKNGetTlsq())returnFAIL;
GetPDA("TLSQ",&sTLSQ);
11.如果货币为人民币,则钞汇标志为钞户
if(0==strcmp(stIn.sCYNO,"01")){
strcpy(stIn.sCTFG,"0");
}
12.登记开销户登记薄
strncpy(ESOCA_CUNO,stIn.sCUNO,CUNO_LEN);
strncpy(ESOCA_ACNO,sACNO,ACNO_LEN);
strncpy(ESOCA_SBNO,sSBNO,SBNO_LEN);
strncpy(ESOCA_CYNO,stIn.sCYNO,CYNO_LEN);
strncpy(ESOCA_ITCD,stIn.sITCD,ITCD_LEN);
strncpy(ESOCA_STCD,"0",STCD_LEN);
if(FAIL==FDBInsESOCA()){
returnFAIL;
}
13.插入分户账主文件
strncpy(ESMCA_ACNO,sACNO,ACNO_LEN);
strncpy(ESMCA_SBNO,sSBNO,SBNO_LEN);
strncpy(ESMCA_UTNO,sUTNO,UTNO_LEN);
strncpy(ESMCA_CYNO,stIn.sCYNO,CYNO_LEN);
。
。
。
。
确定执行利率
如果是计息业务代号,
FMIGetGDRT(stGDRT_IN,&stGDRT_OUT)
根据输入利率浮动方式,计算输出利率
if(FAIL==FDBInsESMCA()){
returnFAIL;
}
14.登记对公活期辅表ESHCH
strncpy(ESMCH_ACNO,sACNO,ACNO_LEN);
strncpy(ESMCH_STCD,"0",STCD_LEN);
strncpy(ESMCH_BSTY,stIn.sBSTY,BSTY_LEN);
strncpy(ESMCH_TRDT,sTRDT,TRDT_LEN);
if(FAIL==FDBInsESMCH()){
returnFAIL;
}
15.登记非账务日志
memset(&stNFTJA,0,sizeof(stNFTJA));
strcpy(NFTJA_CATY,"0");
strcpy(NFTJA_ACNO,sACNO);
strcpy(NFTJA_TRCD,"4001");
strcpy(NFTJA_USID,sUSID);
strcpy(NFTJA_TLSQ,sTLSQ);
strcpy(NFTJA_TRDT,sTRDT);
strcpy(NFTJA_TBNM,"esmca");
NFTJA_RCNM=1;
strcpy(NFTJA_OPFG,"I");
strcpy(NFTJA_STCD,"Z");
if(FAIL==FDBInsNFTJA()){
returnFAIL;
}
16.外币登记账户附加信息表
如果开户币种为外币,登记帐户附加信息表
strncpy(EAIFA_ACNO,sACNO,ACNO_LEN);
strncpy(EAIFA_EVNO,stIn.sEVNO,EVNO_LEN);
strncpy(EAIFA_UPDT,sTRDT,TRDT_LEN);
strcpy(EAIFA_BAFG,stIn.sBAFG);
strcpy(EAIFA_STCD,"0");
if(FAIL==FDBInsEAIFA()){
returnFAIL;
}
17.组织输出
5.1.6涉及库表及其关系
对公开销户登记簿ESOCAINSERT
对公活期主文件ESMCAINSERT
对公活期辅表ESMCHINSERT
非帐务日志NFTJAINSERT
账户附加信息表EAIFAINSERT
货币代号表GDCYASELECT
业务科目对照表GDIFASELECT
机构币种表GDSYASELECT
5.1.7打印说明
5.1.8注意事项
5.1.9可能的错误代码和信息
5.1.10会计分录
5.24201对公活期存款存入
5.2.1功能描述
用于对公活期存款帐户存入
5.2.2业务与权限
5.2.3输入接口
O42011:
录入项
字段
类型
必输
说明
ACNO
账号
char(20)
是
CYNO
币种
char
(2)
是
CETY
凭证种类
char
(2)
是
TRAM
交易金额
pointer
是
SMCD
摘要
char(22)
否
MNSC
资金来源
char
(1)
是
CICD
现金项目业务代号
char(10)
否
5.2.4输出接口
O42012:
录入项
字段
类型
必输
说明
ACNO
帐号
char(20)
CUNM
客户中文名
char(62)
CYNO
币种
char
(2)
TRAM
交易金额
pointer
ACBL
余额
pointer
TLSQ
柜员流水号
char(12)
5.2.5流程逻辑
5.2.5.1.1前台
5.2.5.1.2后台
18.获取公共数据(机构,日期,交易日期,柜员)
19.拼出完整的凭证号:
凭证种类(CETY)+00000000000;
20.如果不是组合交易,对存取款金额检查
如果存入金额为0,
则报错返回。
21.对资金来源进行检查
如果资金来源不是现金、代销账、组合交易
则报错返回。
22.检查帐号及帐号机构(同一清算中心才能通存)
如果账号数据放入数据单元出错,
则报错返回。
如果查询帐号解析信息失败,
则报错返回。
如果获取数据单元数据失败,
则报错返回。
如果科目存储不是对公活期或内部帐
则报错返回
如果根据营业机构号和账号营业机构查询出的清算中心号不相同且营业机构号不为0001
则报错返回。
23.调用记帐核心记帐
FKNInitMst(&stSchMain);
FKNinitApp(&stInputApp);/
Ø现金
if(0==strcmp(stIn.sMNSC,"0")){
strcpy(stSchMain.mnsc,"0");
strcpy(stSchMain.acif.acno,stIn.sACNO);
stSchMain.tram[0]=stIn.dTRAM;
strcpy(stInputApp.stSchApp[0].acno,stIn.sACNO);
strcpy(stInputApp.stSchApp[0].psfg,"10000000");
strcpy(stInputApp.stSchApp[0].trkd,"");/*对方会计分录*/
strcpy(stInputApp.stSchApp[0].mnsc,"0");/*对方会计分录*/
strcpy(stInputApp.stSchApp[0].mndn,"");/*对方会计分录*/
stInputApp.stSchApp[0].vino=1;/*对方会计分录*/
strcpy(stInputApp.stSchApp[0].trfg,"1");/*1-分录表取对方信息(内部帐拼帐户)*/
strcpy(stInputApp.stSchApp[0].oaty,"9");/*对方账户种类*/
stInputApp.iNum=1;
}
Ø代销帐
if(0==strcmp(stIn.sMNSC,"2")){
strcpy(stSchMain.mnsc,"2");
strcpy(stSchMain.acif.acno,stIn.sACNO);
strcpy(stSchMain.dasq,stIn.sDASQ);
stSchMain.tram[0]=stIn.dTRAM;
strcpy(stInputApp.stSchApp[0].acno,stIn.sACNO);
strcpy(stInputApp.stSchApp[0].psfg,"10000000");
strcpy(stInputApp.stSchApp[0].dasq,stIn.sDASQ);/*对方帐户*/
strcpy(stInputApp.stSchApp[0].trfg,"3");/*通过帐号取相应信息*/
strcpy(stInputApp.stSchApp[0].oaty,"0");/*对方账户种类*/
stInputApp.iNum=1;
}
Ø组合交易
if(0==strcmp(stIn.sMNSC,"9")){
strcpy(stSchMain.mnsc,"9");
strcpy(stSchMain.acif.acno,stIn.sACNO);
if(stIn.dTRAM==0.0){
GetPDA("VLAM",&stIn.dTRAM);
}
stSchMain.tram[0]=stIn.dTRAM;
}
strcpy(stSchMain.cicd,stIn.sCICD);
strcpy(stSchMain.smcd,stIn.sSMCD);
strcpy(stSchMain.ccno,sCCNO);
if(FAIL==BKNSchMainAPP(&stSchMain,&stInputApp))returnFAIL;if(FAIL==funcZeroIncome(stIn.sACNO,stIn.dTRAM)){
returnFAIL;
24.组织输出
5.2.6涉及库表及其关系
对公活期主文件ESMCAUPDATE
对公活期当日明细文件ESDCAINSERT
传票文件ADSVAINSERT
机构表GDSBASELECT
凭证信息文件EVI0ASELECT
5.2.7打印说明
5.2.8注意事项
5.2.9可能的错误代码和信息
5.2.10会计分录
借现金、待销帐;
贷客户帐;
5.34202对公活期存款支取
5.3.1功能描述
用于对公活期存款帐户、折户现金支取
5.3.2业务与权限
5.3.3输入接口
O42021:
录入项
字段
类型
必输
说明
ACNO
账号
char(20)
是
CETY
凭证种类
char
(2)
是
CEBN
凭证批号
char
(1)
是
CCSQ
凭证序号
char(8)
是
TRAM
交易金额
decimal(13,2)
是
SMCD
摘要
char(22)
否
MNDN
资金去向
char
(1)
是
CICD
现金项目业务代号
char(10)
否
5.3.4输出接口
O42022:
录入项
字段
类型
必输
说明
CUNM
客户名
char(62)
ACNO
帐号
char(20)
BAFG
基本帐户标记
char
(1)
CYNO
币种
char
(2)
TRAM
交易金额
decimal(13,2)
ACBL
余额
decimal(13,2)
TLSQ
柜员流水号
char(12)
5.3.5流程逻辑
5.3.5.1.1前台
5.3.5.1.2后台
25.获取公共数据(机构,日期,交易日期,柜员)
26.帐号检查
Ø如果不是对公活期或者内部帐,
则报错退出。
Ø如果是对公活期账号,但是账号未找到,
则报错退出;
否则获取客户中文名、货币代号、基本账号标志。
Ø如果是内部账号,但是账号未找到,
则报错退出;
否则获取帐户中文名、货币代号。
27.根据营业机构号和账户营业机构查询清算中心代号
a)如果清算中心不同
i.如果营业机构号不是总行
1.如果凭证不是一票通
a)则报错退出。
b)否则如果资金去向是现金并且不通兑并且营业机构号不符
i.则报错退出。
28.凭证为一票通
a)查询CCVSI库表并进行合法性检查,若有错,
i.则报错退出。
29.资金来源检查
a)如果资金来源不是现金、内部帐、组合交易
i.则报错退出。
30.存款金额检查
a)如果存款金额小于零
i.则报错退出。
31.资金去向是现金,账户为对公活期,判断交易能否继续进行(通存通兑额度是否足够)
a)查询机构表并进行合法性检测,若出错
i.则报错退出。
b)查询机构通存通兑限额表,若出错
i.则报错退出。
c)如果机构通存通兑限额表无纪律则查找上级行记录
i.若查找GDSBA机构表失败或记录状态不正常
1.则报错退出。
32.查询ESDPA,获得当日的取现金额,取现笔数
a)如果查询ESDPA出错
i.则报错退出。
b)如果找到记录并且交易日期匹配
i.则获取本CCPC小额支付业务收费金额和挂帐核销退汇汇总笔数
33.如果取现额度和最大笔数超过限定数值
a)则报错退出。
34.拼凭证号码----凭证号码=凭证种类+分行代码+凭证批号+凭证序号
a)sprintf(sCCNO,"%2s%2s%1s%8s",stIn.sCETY,stIn.sFHID,stIn.sCEBN,stIn.sCCSQ);
35.检查凭证是否使用,调用凭证核心
a)对重要空白凭证调用客户凭证存款合法性检查底层构件,若出错
i.则报错返回。
b)判断支付条件是否为凭密码支付,若是,
i.则将验证支付密码输入输出参数初始化。
c)凭证合法性检测,若出错
i.则报错退出。
36.调用核心记账程序
a)现金
i.if(0==strcmp(stIn.sMNDN,"0")){
ii.FKNInitMst(&stSchMain);
iii.strcpy(stSchMain.mndn,stIn.sMNDN);
iv.strcpy(stS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 业务 活期存款 详细 设计