应付模块业务操作流程
供应商管理
供应商概述
在您使用 Oracle Purchasing 之前,需要定义供应商、供应商site,以及供应商联系人, 供应商主数据(SUPPLIER MASTER DATA,简称SMD)是指供应商的基本信息,是企业和供 应商进行业务往来、交易付款等必须的基础数据,主要包括两类信息:
A 采购数据 ——例如,供应商名称、联系人、地址、沟通方法等;
B 付款数据 ——例如,付款条款、银行帐号、税号等。
应付发票管理
应付发票基本流程
应付发票分类
标准发票: 指由于采购货物或接受劳务,从供应商处取得的发票(标准发票,既可以和订单匹 配 ,也可以不匹配)。
贷项通知单: 指供应商对已开发票的货物或劳务,所开的红冲发票。
借项通知单: 指供应商未开红冲发票,而由自已录入的红冲发票。
费用报表: 指与雇员相关费用的发票。
PO缺省: 指和采购订单匹配的发票。输入PO号码后,Oracle应付自动地提供供应商信息。
预付: 指为供应商或雇员支付预付款的一种发票(视为发票)。
预扣税: 为代扣代缴税生成的发票。
混合发票: 指既可以和采购订单又可以和发票匹配的发票。(既可以输入正数,也可以输入负数)。
应付发票与采购订单匹配方式
二维匹配:应付发票与采购订单的数量、单价的匹配;
三维匹配:应付发票与采购订单、接收单的数量、单价的匹配;
四维匹配:应付发票与采购订单、接收单、入库单的数量、单价的匹配;
系统自动采用 2-way matching与采购订单匹配.在 Purchasing Options 窗口可选择附加使用 3-way或 4-way matching. 可以在供应商、供应商地点更改 invoice match option。
如果发票和采购订单在您定义的数量和价格容限内不匹配,“审批”将在发票上标记匹配挂起。必须在支付发票之前释放挂起。
应付发票分配类型
项目: 记录向供应商购货或劳务收费金额
税: 记录购买商品或劳务而产生的税额
运费: 记录供应商的运输费用
杂项费用: 记录一张发票的各项杂项费用
应付发票 录入及会计分录信息
应付发票可以手工录入或通过接口导入。与采购有关的发票需要通过匹配采购订单生成应付发票。 根据采购项目的税信息,会自动或手工产生税行。
发票录入界面(R12):
如果收到的发票价格为10。税码为VAT17。
采购匹配的应付发票会计分录为:
应付帐款-应付暂估 DR 10¥
进项税 DR 10*0.17¥
应付帐款-发票款 CR 11.7
科目的余额变化如下:
科目 初 发生 余额
应付帐款-应付暂估 10 -10 0¥
进项税 0 -1.7 -1.7¥(应交税费属于负债类科目)
应付帐款-发票款 0 +11.7 11.7¥
中转科目应付帐款-应付暂估科目的余额已结平为0。因此我们实际的应付账款为10+10*0.17。
会计分录信息:
(1).录入发票
AP发票的分配记录了所有应付暂估和预付款核销的科目,再加上应付发票本身的应付账款科目,分录查询SQL为:
SELECT ai.invoice_num,
ai.gl_date,
fnd_flex_ext.get_segs('SQLGL',
'GL#',
50348,
ai.accts_pay_code_combination_id) acct,
gl_flexfields_pkg.Get_Concat_Description(50348, ai.accts_pay_code_combination_id) acct_desc,
0 dr,
ai.invoice_amount cr
FROM ap_invoices_all ai
WHERE ai.invoice_id = &p_invoice_id
UNION ALL
--由于预付核销产生的应付账款借项
SELECT ai.invoice_num,
aid.accounting_date,
fnd_flex_ext.get_segs('SQLGL',
'GL#',
50348,
ai.accts_pay_code_combination_id) acct,
gl_flexfields_pkg.Get_Concat_Description(50348, ai.accts_pay_code_combination_id) acct_desc,
-1 * aid.amount dr,
0 cr
FROM ap_invoices_all ai, ap_invoice_distributions_all aid
WHERE ai.invoice_id = aid.invoice_id
AND aid.line_type_lookup_code = 'PREPAY'
AND ai.invoice_id = &p_invoice_id
UNION ALL
-- 应付发票分配(借项)
SELECT ai.invoice_num,
aid.accounting_date,
fnd_flex_ext.get_segs('SQLGL',
'GL#',
50348,
aid.dist_code_combination_id) acct,
gl_flexfields_pkg.Get_Concat_Description(50348, aid.dist_code_combination_id) acct_desc,
aid.amount dr,
0 cr
FROM ap_invoices_all ai, ap_invoice_distributions_all aid
WHERE ai.invoice_id = aid.invoice_id
AND ai.invoice_id = &p_invoice_id
(2).创建会计分录
有两种方式可以创建会计分录,R12创建会计科目有三个选项可选(Draft:建立草稿,不能传送到总帐,Final:完成会计科目创建,可传送到总帐,Final Post:完成会计科目创建,并传送到总帐)
1.为单笔事务处理或事务处理批创建会计分录,单笔事务处理可通过Action创建会计分录来完成
2.可以通过提交请求(“Create Accounting”),来创建成批的AP分录;
创建会计分录后,会在xla中产生分录信息(与11i有所不同,同11i不同点将在文档后面介绍),可以通过如下sql查询:
--发票产生的分录信息
SELECT gcc.segment3,
fnd_flex_ext.get_segs('SQLGL',
'GL#',
50348,
gcc.code_combination_id) acct,
gl_flexfields_pkg.Get_Concat_Description(50348,
gcc.code_combination_id) acct_desc,
l.accounted_dr,
l.accounted_cr
FROM xla.xla_transaction_entities te,
xla_events e,
xla_ae_headers h,
xla_ae_lines l,
gl_code_combinations gcc
WHERE te.entity_code = 'AP_INVOICES'
AND te.application_id = 200
AND nvl(te.source_id_int_1, (-99)) = &invoice_id --Invoice_id
AND te.entity_id = h.entity_id
AND te.application_id = h.application_id
AND e.event_id = h.event_id
AND e.application_id = h.application_id
AND h.ae_header_id = l.ae_header_id
AND h.application_id = l.application_id
AND l.code_combination_id = gcc.code_combination_id;
(3).传送总帐
1.单笔事务处理或事务处理批传送到总帐(创建会计科目时已介绍)
2.运行请求(“Transfer Journal Entries to GL”),运行完,将在总帐产生日记帐分录,来源为je_source=’ Payables’ and je_category=’Purchase Invoices‘,总帐追溯sql查询:
--总帐追溯
SELECT DISTINCT XTE.SOURCE_ID_INT_1 --INVOICE_ID
FROM GL_JE_HEADERS GJH,
GL_JE_LINES GJL,
GL_CODE_COMBINATIONS GCC,
GL_IMPORT_REFERENCES GIR,
XLA_AE_LINES XAL,
XLA_AE_HEADERS XAH,
XLA_TRANSACTION_ENTITIES XTE
WHERE GJH.JE_HEADER_ID = GJL.JE_HEADER_ID
AND GJL.CODE_COMBINATION_ID = GCC.CODE_COMBINATION_ID
AND GJL.je_header_id = gir.je_header_id
and GJL.je_line_num = gir.je_line_num
AND GIR.gl_sl_link_id = XAL.GL_SL_LINK_ID
AND XAL.AE_HEADER_ID = XAH.AE_HEADER_ID
AND XAH.ENTITY_ID = XTE.ENTITY_ID
and GJH.je_source = 'Payables'
and GJH.je_category = 'Purchase Invoices'
and GJH.status = 'P'
AND GJH.JE_HEADER_ID = &JE_HEADER_ID;
应付发票挂起和释放
挂起的作用:
使用挂起可阻止某个发票的付款,阻止某个发票的过帐。
系统提供了许多发票挂起的理由,也可根据发票审批的需要自己定义挂起。
比如可针对供应商或供应商地点挂起,不必只针对单个发票挂起。
Hold的应用对象:
对供应商地点发票挂起;
(挂起所有付款;发票数额限制;挂起不匹配发票;挂起未来发票)
对选择的发票挂起;
发票暂挂分类及描述:
账户原因 : 标识无效、不正确应付账款负债、汇率差异或分配账户的发票
资金原因:使用预算控制时,在发票分配资金不足或系统不能提供资金检查时挂起
信息不充分:对没有汇率的外币发票挂起
发票原因:在输入或调整发票时可对发票人工应用挂起
匹配原因:发票违背了预定义的匹配标准
期间原因:对GL日期在将来期间的发票应用此挂起
差异原因:“分配差异”;“税差异”;“税额范围”
应付贷项通知单和借项通知单
贷项通知单与借项通知单比较
贷项通知单和借项通知单的金额只能是负数;实际上应付贷项通知单与应付借项通知应应收的概念并不等同:
应付贷项通知单:指供应商开给我们的表示应付减少的通知,负数,冲原始发票,可用0支付结清;常用于做采购退货业务,发生采购退货业务后,在应付录入应付贷项通知单,同时匹配退货生 成贷项通知单行(一般为供应商开的发票);
应付借项通知单:指我们自己开出的表示应付减少的通知,同样是负数,冲原始发票,可用0支付结清,适用于发票做错后的反冲。功能上它与贷项通知单基本相似。也可用于退货业务。在采购 退货界面有是否生成借项通知单的复选框,通过采购系统选项控制是否启用;(一般为企业自已开的发票);
贷项通知单匹配退货
通过应付款发票界面录入类型为贷项通知单的应付发票,然后通过匹配采购退货产生贷项通知单行。
对于采购退货业务的分录如下(与应收发票的分录方向恰恰相反):
应付帐款-应付暂估 CR 5¥
进项税 CR 5*0.17¥(应交税费属于负债类科目)
应付帐款-发票款 DR 5.85¥
相关科目的余额变化如下:
科目 初 发生 余额
应付帐款-应付暂估 -5 +5 0¥
进项税 -1.7 +0.85 -0.85¥
应付帐款-发票款 11.7 -5.85 5.85¥
中转科目应付帐款-应付暂估科目的余额已结平为0。
货的最终结果就是使库存成本和应付账款-发票款相应减少;这样,退货的最终结果就是使库存成本和应付账款-发票款相应减少。可以通过上面应付发票SQL查询贷项通知单有关的分录信息。
其它应付业务
预付款发票
供应商的预付款和员工差旅或采购的借支都可以在应付系统中作为预付款发票管理;
预付款发票可与应付发票核销,来进行预付和应付的抵消;
预付款发票只有在付款以后才能与应付发票核销;
标准发票的分录有所不同,不过技术实现上是一样的。它的分录通常是:
预付款发票创建:
借:预付账款/其他应收款
贷:应付账款/其他应付款
预付款发票付款:
借:应付账款/其他应付款
贷:现金/银行存款
应付发票创建:
借:费用
贷:应付账款
预付款发票核销:
借:应付账款
贷:预付账款/其他应收款
应付发票导入固定资产
应付发票可以成批增加为固定资产。有两种方式建立应付发票:
1) 直接定义固定资产型物料,其属性不可库存,并制定它的销售费用科目为固定资产中转科目。该种类型物料接收、交货通常不会产生会计分录,然后通过正常采购并匹配应付发票。这 时候,
应付发票的分录应为:
DR 固定资产中转
CR 应付帐款
2) 手工录入应付发票,并指定发票分配科目为固定资产中转科目。它的分录同上。最后,在应付模块提交请求“创建成批增加”后,则可以在FA模块成批增加资产。最终过账后,会形成如 下分录。
DR 固定资产
CR 固定资产中转
固定资产中转科目结清为0;
FA创建会计分录后,有关固定资产的分录信息查询sql:
--事务处理
SELECT fa.asset_number,
fth.transaction_type_code,
h.period_name,
fnd_flex_ext.get_segs('SQLGL', 'GL#', 50348, gcc.code_combination_id) acct,
gl_flexfields_pkg.Get_Concat_Description(50348,
gcc.code_combination_id) acct_desc,
l.accounted_dr,
l.accounted_cr
FROM xla.xla_transaction_entities te,
xla_events e,
xla_ae_headers h,
xla_ae_lines l,
gl_code_combinations gcc,
fa_transaction_headers fth,
fa_additions fa
WHERE te.entity_code = 'TRANSACTIONS'
AND te.application_id = 140
AND te.ledger_id = 2022
AND nvl(te.source_id_int_1, (-99)) = fth.transaction_header_id
AND fth.asset_id = fa.asset_id
AND te.entity_id = h.entity_id
AND te.application_id = h.application_id
AND e.event_id = h.event_id
AND e.application_id = h.application_id
AND h.ae_header_id = l.ae_header_id
AND h.application_id = l.application_id
AND l.code_combination_id = gcc.code_combination_id
AND fa.asset_number = '&p_asset_number'
UNION ALL
-- 折旧
SELECT fa.asset_number,
te.entity_code,
h.period_name,
fnd_flex_ext.get_segs('SQLGL', 'GL#', 50348, gcc.code_combination_id) acct,
gl_flexfields_pkg.Get_Concat_Description(50348,
gcc.code_combination_id) acct_desc,
l.accounted_dr,
l.accounted_cr
FROM xla.xla_transaction_entities te,
xla_events e,
xla_ae_headers h,
xla_ae_lines l,
gl_code_combinations gcc,
fa_additions fa
WHERE te.entity_code = 'DEPRECIATION'
AND te.application_id = 140
AND te.ledger_id = 2022
AND nvl(te.source_id_int_1, (-99)) = fa.asset_id
AND te.entity_id = h.entity_id
AND te.application_id = h.application_id
AND e.event_id = h.event_id
AND e.application_id = h.application_id
AND h.ae_header_id = l.ae_header_id
AND h.application_id = l.application_id
AND l.code_combination_id = gcc.code_combination_id
AND fa.asset_number = '&p_asset_number';
手工应付发票
应付除了用于与采购模块集成外,还可以通过应付发票做些其他的杂项业务。记录些与采购无关的业务。
例如:员工费用报销…
会计分录信息:
招待费 DR
其他应付款 CR
未上线网上报销模块时常常如上手工建立应付发票实现员工报销
费用报表
费用报表是网上报销模块导入的一种类型的应付发票,当网上报销流程结束并审核通过后,可以通过请求“导入费用报表”导入应付发票。
除了与标准应付发票的科目有所不同。其他作用等同于标准应付发票。
企业报销的分录通常如下:
员工报销科目 DR
其他应付款-报销 CR
付款管理
付款概述
发票生成并验证通过以后,可以对发票进行付款。
可以在发票界面通过快速付款,付款界面录入人工付款,或者进行批付款对发票进行批量付款。批付款常应用于员工报销付款。
在付款界面,将蓝票(应付发票)和红票(贷项通知单)选入到同一个付款,进行付款。
付款的约定:
必须通过 “银行帐户” 支付,必须使用付款单据及单据号。
只能对供应商付款。
付款必须指定发票,且所选发票核销总额必须与付款金额相同。
付款方式:
支票(Check): 发送给供应商的支票
结清(Clearing): 支付从公司其他实体转来的发票,无需建立付款单据
电子(EFT): 电子转账至供应商开户银行
电汇(Wire)
付款录入及会计分录信息
对发票付款,实际上就是用现金支付应付欠款,现金与应付款都减少;
单笔收款录入价面,批付款在文档后面有介绍:
应付帐款-发票款 DR 5.85¥
银行存款 CR 5.85¥
相关科目的余额变化如下:
科目 初 发生 余额
应付帐款-发票款 5.85 -5.85 0¥
银行存款 100 -5.85 94.15¥
付款产生的会计分录信息:
--付款产生的分录信息
SELECT h.accounting_date,
fnd_flex_ext.get_segs('SQLGL', 'GL#', 50348, gcc.code_combination_id) acct,
gl_flexfields_pkg.Get_Concat_Description(50348,
gcc.code_combination_id) acct_desc,
l.accounted_dr,
l.accounted_cr
FROM xla.xla_transaction_entities te,
xla_events e,
xla_ae_headers h,
xla_ae_lines l,
gl_code_combinations gcc
WHERE te.entity_code = 'AP_PAYMENTS'
AND te.application_id = 200
AND nvl(te.source_id_int_1, (-99)) = &check_id
AND te.entity_id = h.entity_id
AND te.application_id = h.application_id
AND e.event_id = h.event_id
AND e.application_id = h.application_id
AND h.ae_header_id = l.ae_header_id
AND h.application_id = l.application_id
AND l.code_combination_id = gcc.code_combination_id;
付款会计分录传送到总帐
跟前面讲述的发票传送总帐方式比较类似,产生的总帐信息为:来源为je_source=’ Payables’ and je_category=’ Payments ‘。
应付模块11i跟R12差异比较
子分类帐差异
R12新增加SLA模块用来管理子分类帐;请参照<<SLA专题>>了解详细内容;
(1).子分类帐相关表变化
11i |
R12 |
ap_accounting_events_all |
XLA_TRANSACTION_ENTITIES |
ap_ae_headers_all |
XLA_EVENTS |
ap_ae_lines |
XLA_AE_HEADERS |
XLA_AE_LINES |
(2).应付发票子分类帐SQL(其它类似,以应付发票为例)
11i:
SELECT GCC.SEGMENT3,
fnd_flex_ext.get_segs('SQLGL', 'GL#', 50348, gcc.code_combination_id) acct,
gl_flexfields_pkg.Get_Concat_Description(50348,
gcc.code_combination_id) acct_desc,
AL.accounted_dr,
AL.accounted_cr FROM AP_ACCOUNTING_EVENTS_ALL AE,
AP_AE_HEADERS_ALL AH,
AP_AE_LINES_ALL AL,
GL_CODE_COMBINATIONS GCC
WHERE AE.SOURCE_ID = &INVOICE_ID --发票ID
AND AE.SOURCE_TABLE = 'AP_INVOICES'
AND AE.ACCOUNTING_EVENT_ID = AH.ACCOUNTING_EVENT_ID
AND AH.AE_HEADER_ID = AL.AE_HEADER_ID
AND AL.CODE_COMBINATION_ID = GCC.CODE_COMBINATION_ID;
R12
--发票产生的分录信息
SELECT gcc.segment3,
fnd_flex_ext.get_segs('SQLGL',
'GL#',
50348,
gcc.code_combination_id) acct,
gl_flexfields_pkg.Get_Concat_Description(50348,
gcc.code_combination_id) acct_desc,
l.accounted_dr,
l.accounted_cr
FROM xla.xla_transaction_entities te,
xla_events e,
xla_ae_headers h,
xla_ae_lines l,
gl_code_combinations gcc
WHERE te.entity_code = 'AP_INVOICES'
AND te.application_id = 200
AND nvl(te.source_id_int_1, (-99)) = &invoice_id --Invoice_id
AND te.entity_id = h.entity_id
AND te.application_id = h.application_id
AND e.event_id = h.event_id
AND e.application_id = h.application_id
AND h.ae_header_id = l.ae_header_id
AND h.application_id = l.application_id
AND l.code_combination_id = gcc.code_combination_id;
子模块追溯
R12下总账追溯子模块比11i简单统一了很多,通过gl_import_reference表
应付发票子模块追溯SQL(其它类似,以应付发票为例)
11i:
--总帐追溯
select distinct ae.source_id --发票id
from gl_je_headers jh,
gl_je_lines jl,
gl_import_references gir,
ap_ae_headers_all ah,
ap_ae_lines_all al,
ap_accounting_events_all ae
where jh.je_header_id = jl.je_header_id
and jl.je_header_id = gir.je_header_id
and jl.je_line_num = gir.je_line_num
and jl.gl_sl_link_id = al.gl_sl_link_id
and al.ae_header_id = ah.ae_header_id
and ah.accounting_event_id = ae.accounting_event_id
and jh.je_source = 'Payables'
and jh.je_category = 'Purchase Invoices'
and jh.status = 'P'
and jh.je_header_id = &je_header_id;
R12
--总帐追溯
SELECT DISTINCT XTE.SOURCE_ID_INT_1 --INVOICE_ID
FROM GL_JE_HEADERS GJH,
GL_JE_LINES GJL,
GL_CODE_COMBINATIONS GCC,
GL_IMPORT_REFERENCES GIR,
XLA_AE_LINES XAL,
XLA_AE_HEADERS XAH,
XLA_TRANSACTION_ENTITIES XTE
WHERE GJH.JE_HEADER_ID = GJL.JE_HEADER_ID
AND GJL.CODE_COMBINATION_ID = GCC.CODE_COMBINATION_ID
AND GJL.je_header_id = gir.je_header_id
and GJL.je_line_num = gir.je_line_num
AND GIR.gl_sl_link_id = XAL.GL_SL_LINK_ID
AND XAL.AE_HEADER_ID = XAH.AE_HEADER_ID
AND XAH.ENTITY_ID = XTE.ENTITY_ID
and GJH.je_source = 'Payables'
and GJH.je_category = 'Purchase Invoices'
and GJH.status = 'P'
AND GJH.JE_HEADER_ID = &JE_HEADER_ID;
其它差异
- R12新增加ap_invoice_lines表;
官方解释:
Oracle Payables introduces invoice lines as an entity between the invoice header and
invoice distributions. With the new model, the invoice header remains unchanged, and continues to store information about the supplier who sent the invoice, the invoice attributes, and remittance information.Invoice lines represent the goods (direct or indirect materials), service(s), and/orassociated tax/freight/miscellaneous charges invoiced. Invoice distributions store theaccounting, allocation and other detail information that makes up the invoice line. Thecharge allocation table used in prior releases to manage accounting allocations is obsolete.During the upgrade, Oracle Payables creates invoice lines for all existing invoices,creating one line for every distribution available in the Release 11i distributions table,except in the case of reversal pairs. In those cases, Payables creates one line with a zero amount.
- 供应商银行信息表变化
11i |
R12 |
AP_BANK_ACCOUNTS_ALL |
IBY_EXTERNAL_PAYEES_ALL |
IBY_EXT_BANK_ACCOUNTS |
|
IBY_PMT_INSTR_USES_ALL |
- 付款银行表变化
11i |
R12 |
AP_BANK_ACCOUNTS_ALL |
CE_BANK_ACCOUNTS |
AP_BANK_ACCOUNT_USES_ALL |
CE_BANK_ACCT_USES_ALL |
AP_BANK_BRANCHES |
CE_BANK_BRANCHES_V |
取付款银行信息sql(R12):
--付款银行信息
SELECT AC.CHECK_NUMBER,
CBA.BANK_ACCOUNT_ID BANK_ACCOUNT_ID,
AC.BANK_ACCOUNT_NAME BANK_ACCOUNT_NAME,
AC.BANK_ACCOUNT_NUM BANK_ACCOUNT_NUM,
CBA.BANK_ACCOUNT_NAME,
CBB.BANK_BRANCH_NAME
FROM AP_CHECKS_ALL AC,
CE_BANK_ACCOUNTS CBA,
CE_BANK_ACCT_USES_ALL CBAU,
CE_BANK_BRANCHES_V CBB
WHERE AC.CE_BANK_ACCT_USE_ID = CBAU.BANK_ACCT_USE_ID(+)
AND CBAU.BANK_ACCOUNT_ID = CBA.BANK_ACCOUNT_ID(+)
AND CBB.BRANCH_PARTY_ID(+) = CBA.BANK_BRANCH_ID;
4.供应商表变化
11i |
R12 |
PO_VENDORS |
AP_SUPPLIERS |
PO_VENDOR_SITES_ALL |
AP_SUPPLIER_SITES_ALL |
PO_VENDOR_CONTACTS |
AP_SUPPLIER_CONTACTS |
5.Payment Documents 表变化
11i |
R12 |
AP_CHECK_STOCKS_ALL |
CE_PAYMENT_DOCUMENTS |
取Payment Documents SQL(R12):
Select cs.payment_document_name,
DECODE(cs.MANUAL_PAYMENTS_ONLY_FLAG,
'Y',
'RECORDED',
'N',
'COMBINED')
From ap_checks_all ch, CE_PAYMENT_DOCUMENTS CS, ap_lookup_codes lk
Where CH.PAYMENT_DOCUMENT_ID = cs.PAYMENT_DOCUMENT_ID(+)
AND DECODE(cs.MANUAL_PAYMENTS_ONLY_FLAG,
'Y',
'RECORDED',
'N',
'COMBINED') = lk.lookup_code(+)
AND lk.lookup_type(+) = 'DISBURSEMENT TYPE';
6.Payment Batch
表变化:
11i |
R12 |
AP_CHECKS_ALL |
AP_CHECKS_ALL |
AP_INV_SELECTION_CRITERIA_ALL |
AP_INV_SELECTION_CRITERIA_ALL |
AP_SELECTED_INVOICES_ALL |
AP_SELECTED_INVOICES_ALL |
AP_SELECTED_INVOICE_CHECKS_ALL |
IBY_PAY_SERVICE_REQUESTS |
IBY_PAY_INSTRUCTIONS_ALL |
|
IBY_PAYMENTS_ALL |
批付款操作界面变化:
11i:
7.税
R11版本按照设置税码税率计算税;在R12版以后,在计税方面有了重大改变,税也成为一个独立的模块。其计税的逻辑也从以前单纯的税码和税率的关联转换为通过税则,来建 立会计分类代码(fiscal classification code)与税率的联系。会计分类代码可以应用至交易方(Party)、产品(Product)以及事务处理(Transaction)之上。 具体介绍请参 照<<TAX专题>>
官方解释:
Oracle E-Business Tax manages tax across the E-Business Suite. In prior releases, the
setup, defaulting, and calculation of tax for Payables was managed within Payables
using tax codes, their associated rates, and a hierarchy of defaulting options. This method is still available in this release. During the upgrade, E-Business Tax migrates the tax codes as appropriate within E-Business Tax so that your tax processing can work the same way after the upgrade as it did before.New fields are added to the supplier, invoice, and invoice lines entities to track tax attributes used by E-Business Tax. Many of these attributes were implemented withglobal descriptive flexfields in prior releases and are upgraded to regular fields on these entities.
表变化:
11i |
R12 |
AP_TAX_CODES_ALL |
ZX_LINES_SUMMARY |
ZX_LINES |
|
ZX_RATES_TL |
PO税查询sql:
select zl.trx_id,
zl.trx_line_id,
zl.tax_regime_code,
zl.tax,
zl.tax_status_code,
zl.tax_rate_code,
zl.tax_rate
from po_line_locations_all pll, zx_lines zl
where pll.po_header_id = zl.trx_id
and pll.line_location_id = zl.trx_line_id
and zl.application_id(+) = 201
AND zl.trx_level_type(+) = 'SHIPMENT';
AP Invoices应付发票【Open Interface】
以R12为例,具体介绍应付发票导入,R12导入应付发票较11i有部分不同,比如:
11i,ap_invoice_lines_interface弹性域写入发票分配行,r12默认写入发票行,可能过profile设定,把行上的弹性域带到分配行上,profile:AP_COPY Invoice Lines Flex fied 设为Y;
发票税导入:
11i通过税码,税率产生税,R12按照发票行上的税信息产生税,具体的规则见下表:
|
ITEM1 |
ITEM2 |
TAX1 |
TAX2 |
LINE_NUMBER |
1 |
2 |
3 |
4 |
LINE_GROUP_NUMBER |
1 |
2 |
1 |
2 |
TAX_REGIME_CODE |
The set of tax rules that determines the treatment of one or |
|||
TAX |
A classification of a charge imposed by a |
|||
TAX_RATE_CODE |
Tax rate name |
|||
TAX_STATUS_CODE |
Tax status code |
|||
TAX_JURISDICTION_CODE |
Internal ID of |
|||
TAX_RATE |
TAX_RATE |
|||
TAX_RATE_ID |
TAX_RATE_ID is |
|||
PRORATE_ACROSS_FLAG |
Y |
Y |
Y |
Y |
接口表,错误信息表
接口表 |
数据表 |
说明 |
ap_invoices_interface |
ap_invoices_all |
AP头 |
ap_invoice_lines_interface |
ap_invoice_distributions_all |
AP行 |
ap_interface_rejections |
错误信息表 |
并发程序Payables Open Interface Import
参数 |
说明 |
Operating Unit |
ou |
Source |
来源 |
Group |
组ID,放空代表全部 |
Batch Name |
批名 |
Hold Name |
放空即可 |
Hold Reason |
放空即可 |
GL Date |
放空即可 |
Purge |
Y,是否删除成功导入的记录 |
Trace Switch |
N,是否启用Trace,隐藏的参数 |
Debug Switch |
N,是否启用调式信息,隐藏的参数 |
Summarize Report |
N,是否打印汇总报表,隐藏的参数 |
Commit Batch Size |
放空即可,隐藏的参数 |
User ID |
放空即可,隐藏的参数 |
Login ID |
放空即可,隐藏的参数 |
关键字段
ap_invoices_interface
字段 |
说明 |
org_id |
经营单位ID |
invoice_id |
来自ap_invoices_interface_s |
invoice_num |
发票号 |
invoice_type_lookup_code |
STANDARD是标准发票,CREDIT是Credit Memo |
invoice_date |
发票日期 |
vendor_id |
供应商ID |
vendor_site_id |
供应商地点 |
invoice_amount |
发票金额 |
invoice_currency_code |
发票币种 |
exchange_xxx |
如果是外币,需要输入汇率类型、日期、汇率 |
SOURCE |
来源,来自快速编码SOURCE |
group_id |
组ID,可直接用invoice_id |
5个who字段 |
习惯上都给 |
ap_invoice_lines_interface
字段 |
说明 |
org_id |
经营单位ID |
invoice_id |
=ap_invoices_interface.invoice_id |
invoice_line_id |
来自ap_invoice_lines_interface_s |
accounting_date |
财务日期 |
line_number |
行号 |
line_type_lookup_code |
行类型 |
amount |
金额 |
dist_code_combination_id |
账户ID |
5个who字段 |
习惯上都给 |
/*-- 本例以PO匹配发票为例,请注意导入税的取值*/
DECLARE LN_INVOICE_ID NUMBER; BEGIN LN_INVOICE_ID := AP.AP_INVOICE_LINES_INTERFACE_S.NEXTVAL;
--Header
INSERT INTO AP_INVOICES_INTERFACE
(INVOICE_ID,
INVOICE_NUM,
INVOICE_TYPE_LOOKUP_CODE,
INVOICE_DATE,
VENDOR_SITE_ID,
INVOICE_AMOUNT,
INVOICE_CURRENCY_CODE,
EXCHANGE_DATE,
TERMS_ID,
SOURCE,
GROUP_ID,
DESCRIPTION,
PAYMENT_METHOD_LOOKUP_CODE,
ORG_ID,
PAYMENT_CURRENCY_CODE,
VENDOR_ID,
GOODS_RECEIVED_DATE,
INVOICE_RECEIVED_DATE,
PAYMENT_CROSS_RATE_DATE,
GL_DATE,
LAST_UPDATE_DATE )
SELECT LN_INVOICE_ID,
T.INVOICE_NUM||'-'||TO_CHAR(SYSDATE,'YYYY/MM/DD'),
T.INVOICE_TYPE_LOOKUP_CODE,
T.INVOICE_DATE,
T.VENDOR_SITE_ID,
T.INVOICE_AMOUNT,
T.INVOICE_CURRENCY_CODE,
T.EXCHANGE_DATE,
T.TERMS_ID,
T.SOURCE,
10000 GROUP_ID,
T.DESCRIPTION,
T.PAYMENT_METHOD_LOOKUP_CODE,
T.ORG_ID,
T.PAYMENT_CURRENCY_CODE,
T.VENDOR_ID,
T.GOODS_RECEIVED_DATE,
T.INVOICE_RECEIVED_DATE,
T.PAYMENT_CROSS_RATE_DATE,
T.GL_DATE,
SYSDATE
FROM AP_INVOICES_ALL T
WHERE T.INVOICE_ID = 12261; -- LINES
INSERT INTO AP_INVOICE_LINES_INTERFACE
(INVOICE_ID,
INVOICE_LINE_ID,
LINE_TYPE_LOOKUP_CODE,
DESCRIPTION,
AMOUNT,
PO_HEADER_ID,
PO_LINE_ID,
PO_LINE_LOCATION_ID,
PO_DISTRIBUTION_ID,
ASSETS_TRACKING_FLAG,
QUANTITY_INVOICED,
UNIT_PRICE,
ORG_ID,
PA_ADDITION_FLAG,
LAST_UPDATE_DATE,
CREATION_DATE,
LINE_NUMBER,
LINE_GROUP_NUMBER
) SELECT LN_INVOICE_ID,
AP.AP_INVOICE_LINES_INTERFACE_S.NEXTVAL INVOICE_LINE_ID,
T.LINE_TYPE_LOOKUP_CODE,
T.DESCRIPTION,
T.AMOUNT,
T.PO_HEADER_ID,
T.PO_LINE_ID,
T.PO_LINE_LOCATION_ID,
T.PO_DISTRIBUTION_ID,
T.ASSETS_TRACKING_FLAG,
T.QUANTITY_INVOICED,
T.UNIT_PRICE,
T.ORG_ID,
'N' PA_ADDITION_FLAG,
T.LAST_UPDATE_DATE,
SYSDATE,
T.LINE_NUMBER,
T.LINE_GROUP_NUMBER FROM AP_INVOICE_LINES_ALL T, AP_INVOICE_DISTRIBUTIONS_ALL T1
WHERE T.INVOICE_ID = T1.INVOICE_ID
AND T.LINE_NUMBER = T1.INVOICE_LINE_NUMBER
AND T.LINE_TYPE_LOOKUP_CODE = 'ITEM'
AND T.INVOICE_ID = 12261; -- TAX
INSERT INTO AP_INVOICE_LINES_INTERFACE
(INVOICE_ID,
INVOICE_LINE_ID,
LINE_TYPE_LOOKUP_CODE,
AMOUNT,
ORG_ID,
LAST_UPDATE_DATE,
CREATION_DATE,
PA_ADDITION_FLAG,
LINE_NUMBER,
LINE_GROUP_NUMBER,
TAX_REGIME_CODE,
TAX,
TAX_RATE_CODE,
TAX_STATUS_CODE,
TAX_JURISDICTION_CODE,
TAX_RATE,
TAX_RATE_ID,
PRORATE_ACROSS_FLAG ) SELECT LN_INVOICE_ID,
AP.AP_INVOICE_LINES_INTERFACE_S.NEXTVAL INVOICE_LINE_ID,
LINE_TYPE_LOOKUP_CODE,
AMOUNT,
ORG_ID,
SYSDATE,
CREATION_DATE,
'N' PA_ADDITION_FLAG,
LINE_NUMBER,
LINE_GROUP_NUMBER,
TAX_REGIME_CODE,
TAX,
TAX_RATE_CODE,
TAX_STATUS_CODE,
TAX_JURISDICTION_CODE,
TAX_RATE,
TAX_RATE_ID,
'Y' PRORATE_ACROSS_FLAG FROM AP_INVOICE_LINES_ALL T
WHERE T.INVOICE_ID = 12261
AND T.LINE_TYPE_LOOKUP_CODE = 'TAX';
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK; END;
AP常用API
使用API可在开发中得到便利,下面介绍AP模块几个常用的API:
AP_INVOICES_PKG
AP_INVOICES_INTERFACE_PKG
AP_INVOICE_LINES_INTERFACE_PKG
AP_IMPORT_INVOICES_PKG
AP_IMPORT_VALIDATION_PKG
R11
R12
附 :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是如何从业务模块数据取数的。
R12_专题知识总结提炼-AP模块的更多相关文章
-
R12_专题知识总结提炼-AR模块
应收模块简介 应收模块是用来为企业提供应收款管理的模块. 当企业销售一笔商品或者发生其他影响收入和现金的业务的时候,需要在应收模块记账. 本文档以R12为例,11i可参考,只针对简单业务情况考虑,将应 ...
-
知识总结提炼-AP模块
http://www.cnblogs.com/bruce_zhao/p/3809686.html 应付模块业务操作流程 供应商管理 供应商概述 在您使用 Oracle Purchasing 之前,需要 ...
-
python day 8: re模块补充,导入模块,hashlib模块,字符串格式化,模块知识拾遗,requests模块初识
目录 python day 8 1. re模块补充 2. import模块导入 3. os模块 4. hashlib模块 5. 字符串格式:百分号法与format方法 6. 模块知识拾遗 7. req ...
-
python专题知识追寻者对OS的理解
一 前言 OS(operating system)直接对操作系统进行操作的接口,功能真是非常强大:允许知识追寻者简要概括一下整体模块 如果要对文件进行读写可以使用os.open()方法 如果要对文件路 ...
-
web服务器专题:tomcat基础及模块
Web服务器专题:Tomcat(一)基础架构 针对java系的经典服务器,打算系统的整理一下Tomcat的机制和一些原理,以此记录. 插一则题外话,关于tomat这个名字的由来:Tomcat 名称的由 ...
-
AP模块的发票过账后关联对应的凭证编号。
--AP发票 SELECT GJH.NAME,GJH.LEDGER_ID,GJH.JE_CATEGORY, GJH.JE_SOURCE,XDL.SOURCE_DISTRIBUTION_TYPE, XT ...
-
洗礼灵魂,修炼python(91)-- 知识拾遗篇 —— pymysql模块之python操作mysql增删改查
首先你得学会基本的mysql操作语句:mysql学习 其次,python要想操作mysql,靠python的内置模块是不行的,而如果通过os模块调用cmd命令虽然原理上是可以的,但是还是不太方便,那么 ...
-
python模块知识二 random -- 随机模块、序列化 、os模块、sys -- 系统模块
4.random -- 随机模块 a-z:97 ~ 122 A-Z :65 ~ 90 import random #浮点数 print(random.random())#0~1,不可指定 print( ...
-
AP模块发票过账标记为否检查方法
根据发票编号,查找发票 : 发票过账标记,始终为否,创建会计科目提示如下:
随机推荐
-
js 判断客户端浏览器
var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVersion; return { ...
-
pycloudtag 标签云
原创,转载请标明 QQ:231469242 # -*- coding: utf-8 -*- """Python3.0 Created on Sat Nov 26 08:5 ...
-
几款开源ESB总线的比较
现有的开源ESB总线中,自从2003年第一个开源总线Mule出现后,现在已经是百花争鸣的景象了.现在我就对现有的各种开源ESB总线依据性能.可扩展性.资料文档完整程度以及整合难易程度等方面展开. CX ...
-
PhpStorm 10 破解方法
最新版PhpStorm 10正式版改进了PHP 7支持,改进代码完成功能. PhpStorm 是最好的PHP开发工具,使用它进行PHP开发将会让你感觉到编程的乐趣. 快乐无极终于从oschina看到了 ...
-
win10总是自动重启的解决办法
win10总是自动重启的解决办法_百度经验http://jingyan.baidu.com/article/7908e85c983523af481ad214.html
-
SSH三大框架的工作原理及流程
Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...
-
es6的箭头函数
1.使用语法 : 参数 => 函数语句; 分为以下几种形式 : (1) ()=>语句 ( )=> statement 这是一种简写方法省略了花括号和return 相当于 ()=&g ...
-
shell脚本实现telnet测试服务端口
备注,使用方法:当前目录下要存在需要测试的地址端口的文件ip.txt,例子:cat ip.txt141.12.65.17 7500 #!/bin/bashcur_dir=$(pwd)ipfile=$c ...
-
ScrollView不能包含多个子项,ScrollView can host only one direct child
http://debuglog.iteye.com/blog/1441828 ScrollView不能包含多个子项,ScrollView can host only one direct child ...
-
js ajax 1
var xmlHttpReq = null; //声明一个空对象用来装入XMLHttpRequest if (window.ActiveXObject){//IE5 IE6是以ActiveXObjec ...