大总账凭证导出至核心



通过此程序将大总帐凭证数据抽出,按照凭证明细的形式传送至核心系统。

 

 

 

 

开发列表

DEV083_大总账凭证导出至核心系统

 

 

CUX大总账凭证导出至核心系统

本节用于描述有关实现DEV-083《大总账凭证导出至核心系统》的相关设计细节。

主要表结构

      cux_gl_core_batches传输批次

字段名

类型

是否为空

描述

BATCH_ID

NUMBER

 

批次号

PERIOD_NAME

VARCHAR2(10)

 

期间

LAST_UPDATE_DATE

DATE

 

 

LAST_UPDATED_BY

NUMBER(15)

 

 

CREATION_DATE

DATE

 

 

CREATED_BY

NUMBER(15)

 

 

LAST_UPDATE_LOGIN

NUMBER(15)

Y

 

GL_DATE

DATE

 

记账日期

PROCESS_STATUS

VARCHAR2(1)

 

p-待传输 s-传输成功 e-传输失败

 

      cux_gl_core_details   

字段名

类型

是否为空

描述

BATCH_ID

NUMBER

Y

批次id

JE_HEADER_ID

NUMBER

Y

凭证头id

JE_LINE_NUM

NUMBER

Y

凭证行号

CURRENCY_CODE

VARCHAR2(3)

Y

币种

AMOUNT_DR

NUMBER

Y

借方金额

AMOUNT_CR

NUMBER

Y

贷方金额

SEGMENT1

VARCHAR2(20)

Y

 

SEGMENT2

VARCHAR2(20)

Y

 

SEGMENT3

VARCHAR2(20)

Y

 

SEGMENT4

VARCHAR2(20)

Y

 

SEGMENT5

VARCHAR2(20)

Y

 

SEGMENT6

VARCHAR2(20)

Y

 

SEGMENT7

VARCHAR2(20)

Y

 

SEGMENT8

VARCHAR2(20)

Y

 

SEGMENT9

VARCHAR2(20)

Y

 

LAST_UPDATE_DATE

DATE

 

 

LAST_UPDATED_BY

NUMBER(15)

 

 

CREATION_DATE

DATE

 

 

CREATED_BY

NUMBER(15)

 

 

LAST_UPDATE_LOGIN

NUMBER(15)

Y

 

AMOUNT_DR_BEQ

NUMBER

Y

本位币借方金额

AMOUNT_CR_BEQ

NUMBER

Y

本位币贷方金额

BATCH_ID

NUMBER

Y

批次id

 

 

 

 

 

                                                              cux_gl_core_headers

字段名

类型

是否为空

描述

BATCH_ID

NUMBER

Y

批次id

JE_HEADER_ID

NUMBER

Y

id

EXTERNAL_REFERENCE

VARCHAR2(80)

Y

凭证编号

 

                                                              cux_gl_core_summary

字段名

类型

是否为空

描述

BATCH_ID

NUMBER

Y

批次号

VOUCHER_ID

NUMBER

Y

传票组号

VOUCHER_NUM

NUMBER

Y

组内序号

BUSINESS_CODE

VARCHAR2(4)

Y

业务代号

ACCOUNT_SEQUENCE

VARCHAR2(5)

Y

账户序号

CURRENCY_CODE

VARCHAR2(3)

Y

币种

CURRENCY_NUM

VARCHAR2(2)

Y

币种编号

AMOUNT

NUMBER

Y

金额

TRADE_CODE

VARCHAR2(10)

Y

摘要代码

TRADE_CHANNEL

VARCHAR2(3)

Y

交易渠道

TRADE_USER

VARCHAR2(10)

Y

交易柜员

SEGMENT1

VARCHAR2(20)

Y

机构

SEGMENT3

VARCHAR2(20)

Y

科目

LAST_UPDATE_DATE

DATE

 

 

LAST_UPDATED_BY

NUMBER(15)

 

 

CREATION_DATE

DATE

 

 

CREATED_BY

NUMBER(15)

 

 

LAST_UPDATE_LOGIN

NUMBER(15)

Y

 

AMOUNT_BEQ

NUMBER

Y

本位币金额

DR_CR_FLAG

VARCHAR2(5)

Y

借贷方向 0- 1-

 

主要逻辑

 

         当提交请求时main会判断请求的种类,如果是白天的就会调用day_validate

进行校验,判断是否是在在日结、是否已经日结。然后会依次创建批次、创建头、创建明细、汇总、生成传输明细。

 

 

 

 

 

 

 

 

 

 

 

流程图

 

 

流程解释:
 1、开始:调用请求程序传入参数时间、请求类型
 2、是否是日间:判断请求类型。日间的凭证来源为手工、自动和电子表格
 3、日间验证(A):如果请求类型是日间,就调用日间请求校验程序
 3.1、是否正在日结:判断是否正在日结或日结已完成, 查询cux_dc_system_status表判断open_flag  = 'N'的条数
 3.4、是否在日期指针下:查询cux_gl_daily_pointer的日期指针
 5、传输准备:调用 cux_public_interface_pkg.create_upload_schedule
 程序
 6、创建批次:生成一个当前传输的批次,默认传输状态为P(待传输)
 7、更新传输头表:
 INSERT INTO cux_gl_core_headers ch
      (batch_id, je_header_id, doc_sequence_value)
      SELECT l_batch_id, gjh.je_header_id, gjh.doc_sequence_value
        FROM gl_je_headers gjh
       WHERE gjh.period_name = p_period_name
         AND gjh.status = 'P'
         AND gjh.ledger_id = g_ledger_id
         AND NOT EXISTS
       (SELECT 1 FROM cux_gl_core_headers cgh WHERE gjh.je_header_id =  cgh.je_header_id)
         AND gjh.created_by <> l_xn_user_id -- 1.来源为核心的并且createby是指定虚拟柜员的数据不导入
         AND (p_transfer_type = 'N' OR
             (p_transfer_type = 'D' AND gjh.je_source IN ('Manual',  'AutoCopy', 'Spreadsheet'))) --2.日间和晚上跑批的数据区分
       ;
 8、根据批次、传输头表生成传输凭证明细:
 Select *
 FROM gl_je_lines gjl, gl_code_combinations gcc, gl_je_headers gh
       WHERE gjl.code_combination_id = gcc.code_combination_id
         AND gjl.je_header_id = gh.je_header_id
         AND gh.status = 'P' --已过帐
         AND gjl.je_header_id IN
             (SELECT gch.je_header_id FROM cux_gl_core_headers gch WHERE  gch.batch_id = l_batch_id)
 9、验证科目所对应的业务代号、账户序号是否正确:校验科目所对应的业务代号是否存在,
 校验业务代号对应的账户序号是否存在
 11、删除错误数据所对应的传输明细表和传输头表 
 12、生出传输和汇总表:SELECT *
                  FROM cux_gl_core_summary
                 WHERE batch_id = p_batch_id
                   AND amount > 0
                 ORDER BY voucher_id, voucher_num

 


 

 

 

 

 

 

 

 

传输字段排列说明

序号

字段名称

字段说明

类型

是否必输

 

 

 

 

 

1

传票组号

用来标识一组传票,例:12,3顺序使用

NUMBER(10,0)

2

组内序号

行序号,自动流水码

NUMBER(10,0)

3

机构代码

凭证行账户的平衡段值

VARCHAR2(4)

 

4

业务代号  

依据凭证行账户的自然账户段值取值

VARCHAR2(5)

 

5

账户序号

依据业务代号进行取值

VARCHAR2(5)

 

6

币种

依据币种代码转换

VARCHAR22

 

7

借贷标志

0 -

1 -

VARCHAR2(32)

8

交易金额

按照机构,业务代号,账户序号,币种,借贷方向汇总输入金

NUMBER(17,2)

9

摘要代码

留空

VARCHAR2(30)

 

10

交易渠道

默认05,代表ERP财务系统

VARCHAR23

 

11

交易柜员

由核心分配的虚拟柜员

VARCHAR2(6)

暂定为FD_hexin

1)传票组号:在同一个批量文件中按照机构汇成汇总凭证,不同机构的凭证区分为不同传票,自动从1开始流水。

2)组内序号:在同一组传票下,自动从1开始流水,同一传票下按照业务代号升序排列,同一业务代号按照账户序号升序排列,同一账户序号下按照借贷标志升序排列

3)业务代号:依据科目取值自客户化form“核心系统业务代号维护”

                                                       4)账户序号:依据业务代号取自客户化form“核心系统内部账户序号列表”

主要SQL

 

                                                           创建批次

--创建一个批次 

SELECT cux_gl_core_batches_s.nextval INTO l_batch_id FROM dual;

x_batch_id := l_batch_id;

 

INSERT INTO cux_gl_core_batches cb

 (cb.batch_id,

  cb.period_name,

  cb.last_update_date,

  cb.last_updated_by,

  cb.creation_date,

  cb.created_by,

  cb.last_update_login,

  cb.gl_date,

  cb.process_status)

VALUES

 (l_batch_id, p_period_name,SYSDATE, g_user_id, SYSDATE, g_user_id, g_login_id, SYSDATE, 'P');

    

 

 

                                                           更新头

--将数据插入header

INSERT INTO cux_gl_core_headers ch

 (batch_id, je_header_id,external_reference)

 SELECT l_batch_id,gjh.je_header_id, gjh.external_reference

   FROM gl_je_headers gjh

  WHERE gjh.period_name =p_period_name

    AND gjh.status = 'P'

    AND gjh.ledger_id =g_ledger_id

    AND NOT EXISTS

  (SELECT 1 FROMcux_gl_core_headers cgh WHERE gjh.je_header_id = cgh.je_header_id)

    AND gjh.created_by<> l_xn_user_id --1.来源为核心的并且createby是指定虚拟柜员的数据不导入

    AND (p_transfer_type ='N' OR (p_transfer_type = 'D' AND

        gjh.je_source IN ('Manual','Manual (Copied)', 'Spreadsheet'))) --2.日间和晚上跑批的数据区分

 

                                                           更新传输明细


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值