本文主要涉及如下过程的数据流动描述:创建AP发票 -> 付款 -> 导入日记账至GL
表结构如下:
1.创建发票(选择分配集,不匹配采购订单)
创建发票时将在发票头、行、分配表中建立记录
-- ap_invoices_all ai (发票主要信息:发票类型、来源、供应商、发票日期、发票币种、付款币种等)
-- ap_invoice_lines_all ail (发票明细信息:行类型、行来源、行金额等)
-- ap_invoice_distributions_all aid (发票分配信息:详细记录了发票行的金额被分配至哪些账户) 注意:发票验证后分配表才有值
2.验证发票
验证:检查发票的金额匹配、税、期间状态、税率、分配等信息,无论是否通过验证,都将在事务处理表中创建记录。
xla.xla_transaction_entities xte -- 事务处理表 ,此时: xte.entity_code = 'AP_INVOICES'
-- xte.source_id_int_1 = ai.invoice_id, xte.security_id_int_1 = ai.org_id (与发票关联)
3.创建会计科目并最终过账
3.1 AP模块创建会计分录
创建会计科目并过账时会先在AP模块创建会计分录,写入如下会计分录表:
-- xla.xla_ae_headers xah (关联事务处理表:xah.entity_id = xte.entity_id, xah.application_id = xte.application_id)
-- xah.event_type_code = 'INVOICE VALIDATED' xah.gl_transfer_status_code = 'Y' xah.je_category_name = 'Purchase Invoices'
-- xla.xla_ae_lines xal (关联会计分录头表:xal.ae_header_id = xah.ae_header_id , xal.application_id = xah.application_id)
相关字段:
--xal.entered_dr/cr, 输入币种的借/贷
--xal.accounted_dr/cr,本位币种的借/贷
--xal.accounting_class_code, --类型:资产、负债等 eg:ITEM EXPENSE,LIABILITY,NRTAX
--xal.code_combination_id 关联会计科目表:gl.gl_code_combinations gcc (xal.code_combination_id = gcc.code_combination_id)
--xal.gl_sl_link_id 关联导入参考信息表:gl.gl_import_references gir (xal.gl_sl_link_id = gir.gl_sl_link_id)
3.2 数据传入总账
知识梳理:子模块过账到总账流程
子模块过账至总账的分录(即xla_*表中数据)在"传送至总账"这个动作后会进入总账接口表(gl.gl_interface),在"导入日记账"完成后,总账中才会有相关凭证(日记账),同时自动删除接口表中传入的数据。同时,凡是由子模块导入的凭证在导入日记账后,都会在gl.gl_import_references表中插入相关的导入参考信息,总账的追溯功能就是通过这个表实现。
简要分析:
子模块数据传到总账但在未导入日记账时,数据在总账接口表中,表中的 status 表明该记录的传账状态,值为 NEW 表示尚未导入日记账或导入的日记账存在错误。当存在少量错误时,可以直接修正错误数据;存在较多错误时,删掉所有数据再重新导入。
总账中凭证保存有这几个表:gl_je_batches(日记账批)、gl_je_headers(日记账头)、gl_je_lines(日记账行)。在导入日记账后,在往这几张表插数据的同时,会在gl.gl_import_references插入记录,包含日记账几张表中的弹性域字段:je_batch_id, je_header_id, je_line_id,从而将凭证与参考表关联起来。但总账做的手工凭证、冲销凭证在参考表中不会有记录,这对于总账的对账、追溯十分关键。
-- gl.gl_import_references gir (xal.gl_sl_link_id = gir.gl_sl_link_id) -- AP 和 GL 关联起来
-- gl.gl_je_batches gjh(gjh.je_batch_id = gir.je_batch_id) 日记账批
-- gl.gl_je_headers gjh
-- gl.gl_je_lines gjl
头表和行表可以和批表关联也可以和参考信息表关联。
4.付款
根据AP发票进行付款,付款后将在如下表中产生记录:
-- 在发票付款表中创建记录
a--p.ap_invoice_payments_all aip(关联发票:aip.invoice_id = ai.invoice_id)
-- 在付款表中创建记录(记录付款金额、账户、供应商信息等)
--ap.ap_checks_all ac (关联发票付款表:ac.check_id = aip.check_id)
-- 同时在事务处理表中产生记录
--xla.xla_transaction_entities xte (xte.entity_code = 'AP_PAYMENTS' ) (关联付款表:xte.source_id_int_1 = ac.check_id, xte.security_id_int_1 = ac.org_id)
-- 创建会计分录
xla.xla_ae_headers xah (xah.event_type_code = 'PAYMENT CREATED')
行表不赘述
-- 同样会过账到总账