15: ,p_trace_flag in varchar2
16: ) is
17:
18:
19: l_amount_remaining ap_invoices.invoice_amount%TYPE;
20: l_session_language VARCHAR2(40);/* For MLS changes */
21: l_base_language VARCHAR2(40); /*For MLS changes*/
22: l_organization_name hr_organization_units.name%TYPE;
23: l_payment_cross_rate ap_invoices_all.payment_cross_rate%TYPE;
19: l_amount_remaining ap_invoices.invoice_amount%TYPE;
20: l_session_language VARCHAR2(40);/* For MLS changes */
21: l_base_language VARCHAR2(40); /*For MLS changes*/
22: l_organization_name hr_organization_units.name%TYPE;
23: l_payment_cross_rate ap_invoices_all.payment_cross_rate%TYPE;
24: l_invoice_currency_code ap_invoices_all.invoice_currency_code%TYPE;
25: l_invoice_amount ap_invoices_all.invoice_amount%TYPE;
26: l_payment_amount ap_invoices_all.amount_paid%TYPE;
27: l_discount_taken ap_invoices_all.discount_amount_taken%TYPE;
20: l_session_language VARCHAR2(40);/* For MLS changes */
21: l_base_language VARCHAR2(40); /*For MLS changes*/
22: l_organization_name hr_organization_units.name%TYPE;
23: l_payment_cross_rate ap_invoices_all.payment_cross_rate%TYPE;
24: l_invoice_currency_code ap_invoices_all.invoice_currency_code%TYPE;
25: l_invoice_amount ap_invoices_all.invoice_amount%TYPE;
26: l_payment_amount ap_invoices_all.amount_paid%TYPE;
27: l_discount_taken ap_invoices_all.discount_amount_taken%TYPE;
28: l_discount_avail ap_invoices_all.discount_amount_taken%TYPE;
21: l_base_language VARCHAR2(40); /*For MLS changes*/
22: l_organization_name hr_organization_units.name%TYPE;
23: l_payment_cross_rate ap_invoices_all.payment_cross_rate%TYPE;
24: l_invoice_currency_code ap_invoices_all.invoice_currency_code%TYPE;
25: l_invoice_amount ap_invoices_all.invoice_amount%TYPE;
26: l_payment_amount ap_invoices_all.amount_paid%TYPE;
27: l_discount_taken ap_invoices_all.discount_amount_taken%TYPE;
28: l_discount_avail ap_invoices_all.discount_amount_taken%TYPE;
29:
22: l_organization_name hr_organization_units.name%TYPE;
23: l_payment_cross_rate ap_invoices_all.payment_cross_rate%TYPE;
24: l_invoice_currency_code ap_invoices_all.invoice_currency_code%TYPE;
25: l_invoice_amount ap_invoices_all.invoice_amount%TYPE;
26: l_payment_amount ap_invoices_all.amount_paid%TYPE;
27: l_discount_taken ap_invoices_all.discount_amount_taken%TYPE;
28: l_discount_avail ap_invoices_all.discount_amount_taken%TYPE;
29:
30:
23: l_payment_cross_rate ap_invoices_all.payment_cross_rate%TYPE;
24: l_invoice_currency_code ap_invoices_all.invoice_currency_code%TYPE;
25: l_invoice_amount ap_invoices_all.invoice_amount%TYPE;
26: l_payment_amount ap_invoices_all.amount_paid%TYPE;
27: l_discount_taken ap_invoices_all.discount_amount_taken%TYPE;
28: l_discount_avail ap_invoices_all.discount_amount_taken%TYPE;
29:
30:
31: --The cursor vendorinfo holds all the information about the vendor and vendor site
24: l_invoice_currency_code ap_invoices_all.invoice_currency_code%TYPE;
25: l_invoice_amount ap_invoices_all.invoice_amount%TYPE;
26: l_payment_amount ap_invoices_all.amount_paid%TYPE;
27: l_discount_taken ap_invoices_all.discount_amount_taken%TYPE;
28: l_discount_avail ap_invoices_all.discount_amount_taken%TYPE;
29:
30:
31: --The cursor vendorinfo holds all the information about the vendor and vendor site
32: CURSOR vendorinfo(p_base_language po_vendor_sites_all.language%TYPE,
58: AND nvl(pvs.language,p_base_language)=p_session_language;
59:
60:
61: --Cursor invinfo holds data about invoices for the parameters entered
62: CURSOR invinfo(p_vendor_id ap_invoices.vendor_id%TYPE,
63: p_vendor_site_id ap_invoices.vendor_site_id%TYPE,
64: p_currency ap_invoices.invoice_currency_code%TYPE) is
65: SELECT DISTINCT ai.invoice_id,
66: ai.payment_cross_rate,
59:
60:
61: --Cursor invinfo holds data about invoices for the parameters entered
62: CURSOR invinfo(p_vendor_id ap_invoices.vendor_id%TYPE,
63: p_vendor_site_id ap_invoices.vendor_site_id%TYPE,
64: p_currency ap_invoices.invoice_currency_code%TYPE) is
65: SELECT DISTINCT ai.invoice_id,
66: ai.payment_cross_rate,
67: lkv.meaning trans_type,
60:
61: --Cursor invinfo holds data about invoices for the parameters entered
62: CURSOR invinfo(p_vendor_id ap_invoices.vendor_id%TYPE,
63: p_vendor_site_id ap_invoices.vendor_site_id%TYPE,
64: p_currency ap_invoices.invoice_currency_code%TYPE) is
65: SELECT DISTINCT ai.invoice_id,
66: ai.payment_cross_rate,
67: lkv.meaning trans_type,
68: ai.invoice_num trans_num,
71: ai.invoice_amount invoice_amount,
72: nvl(ai.amount_paid,0) payment_amount,
73: nvl(ai.discount_amount_taken,0) discount_taken,
74: gl.currency_code --bug9050332
75: FROM ap_invoices_all ai,
76: fnd_lookup_types_vl lkp,
77: fnd_lookup_values_vl lkv,
78: gl_ledgers gl --bug9050332
79: WHERE ai.set_of_books_id = gl.ledger_id --bug9050332
86: AND trunc(ai.invoice_date) <= trunc(p_as_of_date)
87: AND ai.vendor_id = p_vendor_id
88: AND ai.vendor_site_id = p_vendor_site_id
89: AND ai.invoice_currency_code = nvl(p_currency,ai.invoice_currency_code)
90: AND AP_INVOICES_UTILITY_PKG.get_approval_status(AI.INVOICE_ID,
91: AI.INVOICE_AMOUNT, AI.PAYMENT_STATUS_FLAG,
92: AI.INVOICE_TYPE_LOOKUP_CODE) = 'APPROVED'
93: ;
94:
94:
95: --Cursor to get the data of distinct invoice currency codes
96: CURSOR curinfo(p_supplier_id po_vendors.vendor_id%TYPE) IS
97: SELECT DISTINCT(invoice_currency_code) invoice_currency_code
98: FROM ap_invoices_all ai
99: WHERE ai.vendor_id=p_supplier_id
100: AND ai.invoice_currency_code=nvl(p_currency,ai.invoice_currency_code);
101:
102: --3641604 : New cursor to get sum of discount available for invoice
160:
161: -- get total dist amount including prepay applications
162: SELECT AI.payment_cross_rate, AI.invoice_currency_code, NVL(SUM(NVL(AID.amount, 0)), 0)
163: INTO l_payment_cross_rate, l_invoice_currency_code, l_invoice_amount
164: FROM ap_invoice_distributions AID, ap_invoices AI
165: WHERE AI.invoice_id = AID.invoice_id
166: AND AI.invoice_id = inv_rec.invoice_id
167: AND (AID.prepay_distribution_id IS NULL OR
168: trunc(AID.accounting_date) <= trunc(p_as_of_date))
170:
171: -- get payment amount along with the discount taken
172: SELECT NVL(SUM(NVL(AIP.amount, 0)), 0), NVL(SUM(NVL(AIP.discount_taken, 0)), 0)
173: INTO l_payment_amount, l_discount_taken
174: FROM ap_invoice_payments AIP, ap_invoices AI
175: WHERE AIP.invoice_id = AI.invoice_id
176: AND AI.invoice_id = inv_rec.invoice_id
177: AND trunc(AIP.accounting_date) <= trunc(p_as_of_date);
178:
349: sum(sum(CASE WHEN trunc(pd.accounting_date) <= trunc(p_as_of_date)
350: THEN pd.amount
351: ELSE 0
352: END)) over (partition by ai.invoice_id) appl_dist_total
353: FROM ap_invoices ai,
354: ap_invoice_distributions aid1,
355: ap_invoice_distributions pd, --bug13411905
356: fnd_lookup_types_vl lkp,
357: fnd_lookup_values_vl lkv,