Oracle SQL Query for Extracting Invoice Approval History in Oracle Fusion
What Is Invoice Approval History?
Invoice approval history refers to the trail of events and actions taken during the approval process of an invoice. This includes data such as:
-
Who approved the invoice,
-
The approval status,
-
The date and time of approval,
-
Any responses or feedback related to the approval,
-
The amount approved, and
-
The relevant projects or expenditure types associated with the invoice.
Tracking approval history helps ensure compliance with organizational policies, provides transparency, and aids in the audit process.
Below is the SQL query that retrieves invoice approval history data in oracle fusion. The query joins multiple tables within Oracle's AP (Accounts Payable) module and related modules to provide comprehensive approval history details for invoices.
SQL Query:
SELECT
aia.invoice_id,
hp.PARTY_NAME supplier_name,
ps.segment1 supplier_number,
aia.invoice_num invoice_number,
aia.invoice_date invoice_date,
aiaha.AMOUNT_APPROVED,
aia.INVOICE_CURRENCY_CODE CURRENCY_CODE,
aiaha.APPROVER_ID APPROVER_NAME,
aiaha.RESPONSE,
aiaha.CREATED_BY,
aiaha.CREATION_DATE,
aiaha.LAST_UPDATE_DATE,
aiaha.LAST_UPDATED_BY,
aiaha.action_date,
aila.LINE_NUMBER line_num,
aila.LINE_TYPE_LOOKUP_CODE line_type,
ppaa.segment1 project_number,
ppaa2.TASK_NUMBER,
ppaa1.EXPENDITURE_TYPE_NAME EXPENDITURE_TYPE,
ppaa3.name expenditure_organization
FROM
ap_invoices_all aia,
ap_invoice_lines_all aila,
poz_suppliers ps,
hz_parties hp,
(
select distinct ppa.segment1,
ppa.PROJECT_ID
from PJF_PROJECTS_ALL_B ppa,
ap_invoice_lines_all aila
where ppa.PROJECT_ID = aila.PJC_PROJECT_ID
) ppaa,
(
select distinct PET.EXPENDITURE_TYPE_NAME,
PET.EXPENDITURE_TYPE_ID
from PJF_EXP_TYPES_TL PET,
ap_invoice_lines_all aila
where aila.PJC_EXPENDITURE_TYPE_ID = PET.EXPENDITURE_TYPE_ID
) ppaa1,
(
select distinct PTV.TASK_NUMBER,
PTV.TASK_ID
from PJF_TASKS_V PTV,
ap_invoice_lines_all aila
where aila.PJC_TASK_ID = PTV.TASK_ID
) ppaa2,
(
select distinct hou.ORGANIZATION_ID,
hou.name
from HR_ORGANIZATION_UNITS hou,
ap_invoice_lines_all aila
where aila.PJC_ORGANIZATION_ID = hou.ORGANIZATION_ID
) ppaa3,
(
SELECT distinct
max(aiah.amount_approved) amount_approved,
max(aiah.approver_id) approver_id,
max(aiah.invoice_id) invoice_id,
max(aiah.action_date) action_date,
max(aiah.response) response,
max(aiah.CREATED_BY) CREATED_BY,
max(aiah.CREATION_DATE) CREATION_DATE,
max(aiah.LAST_UPDATE_DATE) LAST_UPDATE_DATE,
max(aiah.LAST_UPDATED_BY) LAST_UPDATED_BY,
aia.invoice_id aia_invoice_id
FROM ap_inv_aprvl_hist_all aiah,
ap_invoices_all aia
WHERE 1 = 1
AND aia.invoice_id = aiah.invoice_id
AND response = 'APPROVED'
AND approver_id = 'give here approver_id'
GROUP BY aia.invoice_id
) aiaha
WHERE 1 = 1
AND ppaa.PROJECT_ID(+) = aila.PJC_PROJECT_ID
AND ppaa1.EXPENDITURE_TYPE_ID(+) = aila.PJC_EXPENDITURE_TYPE_ID
AND ppaa2.TASK_ID(+) = aila.PJC_TASK_ID
AND ppaa3.ORGANIZATION_ID(+) = aila.PJC_ORGANIZATION_ID
AND aia.invoice_id = aila.invoice_id
AND ps.VENDOR_ID(+) = aia.VENDOR_ID
AND aia.party_id = hp.party_id(+)
AND aila.LINE_TYPE_LOOKUP_CODE = 'ITEM'
AND aiaha.invoice_id = aia.invoice_id
ORDER BY
aia.invoice_id,
(CASE
WHEN aila.LINE_TYPE_LOOKUP_CODE = 'ITEM' THEN '1'
WHEN aila.LINE_TYPE_LOOKUP_CODE = 'TAX' THEN '2'
ELSE '3'
END)
Comments
Post a Comment