http://www.cnblogs.com/bruce_zhao/p/3809833.html
R12_专题知识总结提炼-AR模块
Posted on 2014-06-26 12:41 微笑的眼泪 阅读(2162) 评论(0) 编辑 收藏应收模块简介
应收模块是用来为企业提供应收款管理的模块。
当企业销售一笔商品或者发生其他影响收入和现金的业务的时候,需要在应收模块记账。
本文档以R12为例,11i可参考,只针对简单业务情况考虑,将应收可能产生的业务流程和相应会计分录进行整理,供参考。对于一些财务类报表,如三栏明细账等会有所帮助。
R12版本的应收模块可以从三方面取到会计分录:
1) 应收业务,例如应收发票的分配明细、应收收款的核销记录、收款历史等等,通过这里取得的数据是最为明细的。
2) 子模块帐,R12新增的特性,将各模块产生会计分录的逻辑集中到xla模块进行处理。在创建会计分录时会产生子模块的帐。可以关联到发票或收款编号,但是无法具体到发票分配行等特别明细的记录。
3) 总账,子模块传至总账的数据,无法具体到具体的业务,如需追溯只能通过gl_import_reference表来关联xla的表,进而追溯到发票和收款。
不管是应收业务还是子模块帐,各个帐户的期间发生额是可以与总账对账的。
应收发票
不管是OM导入应收发票还是手工录入应收发票,对企业来讲,大多数应收业务都是表示企业产生一笔应收款项,同时增加一笔收入。记账如下:
DR 应收款项-销售商品 XXX元 表示企业销售商品而产生一笔应收款尚未收到
CR 销项税 XXX元
CR 业务收入-销售商品 XXX元 表示企业因为销售商品当期增加了一笔收入
1) 录入应收发票;完成完成以后,我们可以通过sql查找到应收发票的分录信息(发票分配)。此为具体到发票行的分配信息。参考ar_trx_001.sql。
2) 创建会计分录;第二步我们可以在应收模块创建会计分录,R12中,此时将汇总业务模块的分录(发票分配)而产生应收子模块的分录。取数参考ar_trx_xla_001.sql(含发票分录和贷项通知单核销)。
3) 传送子模块分录至总账;如果第二步没有直接过账至总账,可以提交请求:将日记帐分录传送至 GL。
此时总账将生成来源为je_source=’Receivables’ and je_category=’Sales Invoices’、‘Debit Memos’或’Credit Memos‘的日记账分录。
贷项通知单和借项通知单
1) 借项通知单:
应收的借项通知单是用来增加应收的、相当于独立的发票。不可以核销。
例如当我们对应收发票收款以后发现收款有误,此时我们可以通过用借项通知单冲销收款的方式来实现。相当于重新通过借项通知单来向客户收款。
借项通知单分录与发票类似,增加应收款项、增加当期收入(参考ar_trx_001.sql及ar_trx_xla_001.sql):
DR 应收 XXX元
CR 收入 XXX元
2) 贷项通知单:
应收的贷项通知单是用来减少应收、冲原始发票的,常用来做销售退货业务。可以用来核销原始发票。
贷项通知单分录,正好冲减因为销售发票增加的应收和收入(参考ar_trx_001.sql及ar_trx_xla_001.sql):
DR 收入 XXX元
CR应收 XXX元
3) 贷项通知单核销
DR 贷项通知单的应收
CR 被核销发票的应收
可以通过sql查到核销的分录(分配信息)。参考ar_cmapp_001.sql。这里核销的时候oracle按照核销的总金额按比例分摊到被核销发票的每一行上,可以通过ar_distributions_all进行追溯。
1) 创建会计分录后,R12可以从xla查询到子模块的看会计分录。参考附件ar_trx_xla_001.sql。
2) 传送子模块分录至总账;如果第二步没有直接过账至总账,可以提交请求:将日记帐分录传送至 GL。
此时总账将生成来源为je_source=’Receivables’ and je_category=’Sales Invoices’、‘Debit Memos’或’Credit Memos‘的日记账分录。
贷项通知单和借项通知单
1) 借项通知单:
应收的借项通知单是用来增加应收的、相当于独立的发票。不可以核销。
例如当我们对应收发票收款以后发现收款有误,此时我们可以通过用借项通知单冲销收款的方式来实现。相当于重新通过借项通知单来向客户收款。
借项通知单分录与发票类似,增加应收款项、增加当期收入(参考ar_trx_001.sql及ar_trx_xla_001.sql):
DR 应收 XXX元
CR 收入 XXX元
2) 贷项通知单:
应收的贷项通知单是用来减少应收、冲原始发票的,常用来做销售退货业务。可以用来核销原始发票。
贷项通知单分录,正好冲减因为销售发票增加的应收和收入(参考ar_trx_001.sql及ar_trx_xla_001.sql):
DR 收入 XXX元
CR应收 XXX元
3) 贷项通知单核销
DR 贷项通知单的应收
CR 被核销发票的应收
可以通过sql查到核销的分录(分配信息)。参考ar_cmapp_001.sql。这里核销的时候oracle按照核销的总金额按比例分摊到被核销发票的每一行上,可以通过ar_distributions_all进行追溯。
1) 创建会计分录后,R12可以从xla查询到子模块的看会计分录。参考附件ar_trx_xla_001.sql。
2) 传至总账后将生成来源为je_source=’Receivables’ and je_category=’Credit Memos‘的日记账分录。、
应收发票调整
应收发票录入完成后可以通过菜单项:活动->调整进入应收发票调整界面。
主要用来税调整,坏账处理之类的动作。来相应增加减少应收款项。
如因为客户破产而无法全部追回应收款项则可以如下调整来减少应收:
DR 坏账
CR 应收款项
1) 录入调整后,可以通过sql查找到调整的业务模块的分录(分配信息)。参考ar_adj_001.sql。
2) 同样,R12版本创建分录后可以查找到子模块的分录信息。参考附件ar_adj_xla_001.sql。
3) 传至总账后将生成来源为je_source=’Receivables’ and je_category=’ Adjustment ‘的日记账分录。
收款和核销
1) 录入收款
收款录入表示企业收到客户现金(以银行存款为例,实际可能会有票据等其他收款方式),如果未核销表示尚未与具体的客户发票相关联。现金流量表需要在此做标识。此时的会计分录应为
DR 银行存款
CR 应收账款-未核销
这里的应收账款-未核销科目是一个中转科目。
2) 核销发票时的分录如下。
DR 应收款-未核销
CR 应收账款-发票
收款录入或者核销以后,可以通过sql查到收款的分录信息(相当于收款分配)。参考ar_rcpt_001.sql。
3) 创建会计分录以后,R12版本则可以汇总生成xla的信息,也就是子模块的收款的会计分录。可以通过以下sql查到。
4) 传至总账后将生成来源为je_source=’Receivables’ and je_category=’ Receipts ‘的日记账分录。
杂项收款
杂项收款不核销,只相当于计一笔收到现金的账,一般常用于记录银行利息等影响现金类科目的业务。
以银行利息为例,杂项收款的分录如下:
DR 银行存款
CR 财务费用-利息收入
表示收到一笔银行利息收入存入银行存款。
1) 杂项收款录入后可以通过以下sql查找到分录信息(分配)。参考:ar_mcd_001.sql
3) 创建会计分录后,R12版本可以通过sql查询到子模块创建的分录。参考上面的sql:ar_rcpt_xla_001.sql
4) 传至总账后将生成来源为je_source=’Receivables’ and je_category=’ Misc Receipts ‘的日记账分录。
应收模块总账追溯
将以上各种应收业务类型对应的取会计分录的sql,union all在一起即是所有应收模块产生的会计分录。
R12
1) 通过发票分配等从业务角度取到的会计分录,参考如下sql
2) 通过xla取到的应收模块会计分录,参考如下sql
3) 来自应收模块的总账日记账分录,参考如下sql
R12下总账追溯子模块,通过gl_import_reference表,如下sql:
11i
附上以前写的一个11i的总账追溯子模块的三栏明细账的sql:11i_gl_journal_drill.sql,11i下测试通过,可以参考。
附 :R12中子模块的帐是如何产生的。
1) 在FORM:ARXRWMAI 的按钮 SLACEXEC.OK_BP 触发器中有提交创建的代码:
arp_sla_submit.which_case;
2)包arp_sla_submit在pll文件ARSLAOLS.pll中。
3)在arp_sla_submit.which_case中执行以下过程,将FORM界面上的信息传入过程
submit_xla_accounting
4) submit_xla_accounting过程调用以下数据库package创建会计科目
XLA_ACCOUNTING_PUB_PKG.accounting_program_document
5)在XLA_ACCOUNTING_PUB_PKG中根据p_offline_flag的取值,分别调用
xla_accounting_pkg.accounting_program_document
或者调用创建会计科目的请求
6)在xla_accounting_pkg中调用下面过程
xla_accounting_pkg.accounting_program_events
7)在events_processor在调用handle_accounting_hook调根据application_id分别调用
CASE
WHEN p_application_id = 200 THEN
xla_ap_acct_hooks_pkg.main
WHEN p_application_id = 222 THEN
xla_ar_acct_hooks_pkg.main
WHEN p_application_id = 140 THEN
xla_fa_acct_hooks_pkg.main
WHEN p_application_id = 260 THEN
xla_ce_acct_hooks_pkg.main
WHEN p_application_id = 555 THEN
xla_gmf_acct_hooks_pkg.main
WHEN p_application_id = 801 THEN
xla_pay_acct_hooks_pkg.main
ELSE
END CASE;
其中event_name为extract。然后调用arp_xla_extract_main_pkg.extract 来取子模块的分配。其主要作用是将来自子模块的分配。AR的发票、调整、收款、核销等子模块的帐的分配插入ar_xla_lines_extract临时表,在这个package中可以看到xla是如何从业务模块数据取数的。