Supplier Balance Script 1
Supplier Balance Script 1
hou.name,
aps.segment1 Supplier_code,
aps.segment1 Supplier_code1,
aps.vendor_name,
assa.vendor_site_code,
aia.invoice_num,
TO_CHAR (aia.invoice_date, 'DD-MON-YYYY') invoice_date,
-- aia.invoice_date invoice_date,
aia.invoice_amount,
---- sum(apd.amount) AMOUNT_APPLICABLE_TO_DISCOUNT,
--- aia.amount_paid,
--(APPS.invoice_paid_prepay_amount(AIa.INVOICE_ID, :gl_date)) dd,
nvl((apps.iNVOICE_PAID_AMOUNT (AIa.INVOICE_ID, :gl_date)),0)
paid,
((NVL (aia.invoice_amount, 0)-
nvl((APPS.invoice_paid_prepay_amount(AIa.INVOICE_ID, :gl_date)),0))
- (nvl((apps.iNVOICE_PAID_AMOUNT (AIa.INVOICE_ID, :gl_date)),0)))
remaining,
-- nvl((aia.invoice_amount-
-- aia.amount_paid),aia.invoice_amount) REMAINING_AMOUNT,
--apl.AMOUNT_REMAINING,
NVL ( (SELECT a.segment1
FROM apps.po_headers_all a
WHERE a.po_header_id = ail.po_header_id), NULL)
po_num,
AIa.INVOICE_ID,
aia.description,
aia.org_id,
aia.DOC_SEQUENCE_VALUE voucher_number,
AIa.PAYMENT_STATUS_FLAG
FROM apps.ap_suppliers aps,
apps.ap_supplier_sites_all assa,
apps.hr_operating_units hou,
apps.ap_invoices_all aia,
apps.ap_invoice_lines_all ail,
apps.ap_invoice_distributions_all apd,
apps.AP_PAYMENT_SCHEDULES_all apl
WHERE aia.invoice_id = ail.invoice_id
AND aia.invoice_id = apd.invoice_id
AND aia.VENDOR_ID = aps.VENDOR_ID
AND APS.VENDOR_ID = assa.VENDOR_ID
--- and apps.AP_INVOICES_UTILITY_PKG.get_approval_status
(AIa.INVOICE_ID,
---- AIa.INVOICE_AMOUNT,
---- AIa.PAYMENT_STATUS_FLAG,
---- AIa.INVOICE_TYPE_LOOKUP_CODE) not
like 'NEEDS REAPPROVAL'
AND apps.AP_INVOICES_UTILITY_PKG.GET_POSTING_STATUS (AIa.INVOICE_ID) =
'Y'
AND assa.VENDOR_SITE_ID = aia.VENDOR_SITE_ID
AND aia.invoice_id = apl.invoice_id
AND AIL.LINE_NUMBER = 1
AND apd.ACCOUNTING_DATE <= :gl_date
AND aia.org_id = :org_ID
AND to_number(aps.segment1) BETWEEN :from_SUPPLIER_CODE
AND :to_supplier_code
AND hou.SET_OF_BOOKS_ID = aia.SET_OF_BOOKS_ID
AND ((NVL (aia.invoice_amount, 0)-
nvl((APPS.invoice_paid_prepay_amount(AIa.INVOICE_ID, :gl_date)),0))
- (nvl((apps.iNVOICE_PAID_AMOUNT (AIa.INVOICE_ID, :gl_date)),0))) != 0
-- and aia.invoice_id in (3206842)
----- AND (NVL(aia.invoice_amount,0)-NVL(aia.amount_paid,0)) !=0
-- AND (aia.invoice_amount)-(aia.amount_paid) !=0
GROUP BY INVOICE_TYPE_LOOKUP_CODE,
hou.name,
aps.segment1,
aps.vendor_name,
assa.vendor_site_code,
aia.invoice_num,
aia.invoice_date,
aia.invoice_amount,
aia.amount_paid,
aia.LAST_UPDATE_DATE,
aia.AMOUNT_APPLICABLE_TO_DISCOUNT,
-- ail.amount,
-- apl.AMOUNT_REMAINING,
ail.po_header_id,
AIa.INVOICE_ID,
aia.description,
aia.org_id,
aia.DOC_SEQUENCE_VALUE,
AIa.PAYMENT_STATUS_FLAG
This Function is to get the paid amount against the invoice based on the parameter
date
because we will not be able to get the exact amount on the given parameter date
directly in the above query
For example
------------
There is a Invoice with the invoice amount 2000...
The invoice amount is paid partically on 10th december for 1000..
And the Remaining amount is paid on the 20th december and you run the report on
21th december
and you pass the parameter date as 19th december..
the paid amount must be 1000 against that invoice
To get the correct amount the below function will be use full
To use this function you need to pass two parameters they are
Invoice id and date on which you want the paid amount against the invocie
The below Function is for concidering the prepayment made against the particular
invoices