AP Invoice Aging Report Test

Description
SELECT distinct
    vendor_name,
    vendor_number,
    vendor_site,
    invoice_number,
    invoice_amount,
    po_number,
     po_created_by,
     po_creation_date,
     project_number,
      project_name,
       task_number                     ,
       task_name,
      invoice_date,
       invoice_created_by,
       invoice_type,
	pay_group,
	invoice_payment_status,
	sched_payment_status,
       due_date,
     days_past_due,
    payment_terms,
    payment_method,
    amount_remaining,
    CASE
        WHEN days_past_due <= 0 THEN
            amount_remaining
        ELSE
            NULL
    END current_bucket,
    CASE
        WHEN days_past_due > 0
             AND days_past_due <= 30 THEN
            amount_remaining
        ELSE
            NULL
    END bucket_1_30,
    CASE
        WHEN days_past_due > 30
             AND days_past_due <= 60 THEN
            amount_remaining
        ELSE
            NULL
    END bucket_31_60,
    CASE
        WHEN days_past_due > 60
             AND days_past_due <= 90 THEN
            amount_remaining
        ELSE
            NULL
    END bucket_61_90,
    CASE
        WHEN days_past_due > 90 THEN
            amount_remaining
        ELSE
            NULL
    END greater_than_90
FROM
    (
        SELECT
            aps.vendor_name                vendor_name,
            aps.segment1                   vendor_number,
             assa.vendor_site_code   vendor_site,
            aia.invoice_num                 invoice_number,
            aia.payment_status_flag,
	   xxen_util.user_name(aia.created_by) invoice_created_by,
	   xxen_util.meaning(aia.invoice_type_lookup_code,'INVOICE TYPE',200) invoice_type,
            xxen_util.client_time(aia.invoice_date)                invoice_date,
             xxen_util.ap_invoice_status(aia.invoice_id,aia.invoice_amount,aia.payment_status_flag,aia.invoice_type_lookup_code,aia.validation_request_id) invoice_payment_status,
	   xxen_util.meaning(apsa.payment_status_flag,'INVOICE PAYMENT STATUS',200) sched_payment_status,
            xxen_util.meaning(aia.pay_group_lookup_code,'PAY GROUP',200) pay_group,
            xxen_util.client_time(apsa.due_date)                   due_date,
            TRUNC(sysdate) - TRUNC(apsa.due_date)  AS days_past_due,
            apsa.amount_remaining / nvl(aia.payment_cross_rate,1)* nvl(aia.exchange_rate,1) amount_remaining,
            term.name                   payment_terms,
            aia.invoice_amount,
            pha.segment1                        po_number,
	   xxen_util.user_name(pha.created_by) po_created_by,
            TRUNC(pha.creation_date) po_creation_date,
            ppa.segment1                        project_number,
            ppa.NAME                                project_name,
            pt.task_number                     ,
            pt.task_name,
            nvl(xxen_util.meaning(apsa.payment_method_lookup_code,'PAYMENT METHOD',200),apsa.payment_method_lookup_code) payment_method
        FROM
            ap_payment_schedules_all apsa,
            ap_invoices_all          aia,
             ap_invoice_distributions_all aida,
            po_vendors aps,
            po_vendor_sites_all assa,
            pa_projects_all ppa,
             pa_tasks pt,
              po_distributions_all pda,
              po_headers_all pha,
            ap_lookup_codes          alc1,
            ap_terms_val_v           term
        WHERE 1 = 1
            AND  aia.invoice_id = apsa.invoice_id
            AND aia.vendor_id = aps.vendor_id
            AND aia.vendor_site_id=assa.vendor_site_id
             AND aia.invoice_id = aida.invoice_id(+)
            AND aida.po_distribution_id = pda.po_distribution_id (+) 
             AND pha.po_header_id = pda.po_header_id --- [Mrugesh : Is this right?]
             AND aida.project_id=ppa.project_id(+) 
             AND aida.task_id=pt.task_id(+)
            AND aia.cancelled_date IS NULL
            AND ( nvl(apsa.amount_remaining, 0) * nvl(aia.exchange_rate, 1) ) != 0
            AND aia.payment_status_flag IN ( 'N', 'P' )
            AND alc1.lookup_type (+) = 'INVOICE TYPE'
            AND alc1.lookup_code (+) = aia.invoice_type_lookup_code
            AND aia.terms_id = term.term_id (+)
            AND aia.invoice_date <= sysdate
            AND ap_invoices_pkg.get_approval_status(aia.invoice_id, aia.invoice_amount, apsa.payment_status_flag, invoice_type_lookup_code)
            IN ( 'APPROVED', 'NEEDS REAPPROVAL' )
 
    )
Parameter NameSQL textValidation
Invoice Number
aia.invoice_num=:invoice_number
Char
Invoice Date From
aia.invoice_date>=:invoice_date_from
Date
Invoice Date To
aia.invoice_date<:invoice_date_to+1
Date
invoice Creation Date
aia.creation_date>=:inv_create_date_from
Date
Vendor Name
aps.vendor_name=:vendor_name
Char
Vendor Site
vendor_site=:p_vendor_site_code
LOV Oracle
PO Number
po_number = :p_po_number
LOV
Project
project_number=:project_number
LOV
Task Number
task_number=:p_task_number
LOV