10: G_MSG_MEDIUM CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM;
11: G_MSG_LOW CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW;
12: G_LINES_PER_FETCH CONSTANT NUMBER := 1000;
13:
14: G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
15: G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
16: G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
17: G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
18: G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
11: G_MSG_LOW CONSTANT NUMBER := FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW;
12: G_LINES_PER_FETCH CONSTANT NUMBER := 1000;
13:
14: G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
15: G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
16: G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
17: G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
18: G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
19: G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
12: G_LINES_PER_FETCH CONSTANT NUMBER := 1000;
13:
14: G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
15: G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
16: G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
17: G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
18: G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
19: G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
20: G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
13:
14: G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
15: G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
16: G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
17: G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
18: G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
19: G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
20: G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
21: G_MODULE_NAME CONSTANT VARCHAR2(100) := 'AP.PLSQL.AP_PREPAY_PKG.';
14: G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
15: G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
16: G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
17: G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
18: G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
19: G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
20: G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
21: G_MODULE_NAME CONSTANT VARCHAR2(100) := 'AP.PLSQL.AP_PREPAY_PKG.';
22:
15: G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
16: G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
17: G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
18: G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
19: G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
20: G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
21: G_MODULE_NAME CONSTANT VARCHAR2(100) := 'AP.PLSQL.AP_PREPAY_PKG.';
22:
23: FUNCTION Check_Supplier_Consistency (
16: G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
17: G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
18: G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
19: G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
20: G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
21: G_MODULE_NAME CONSTANT VARCHAR2(100) := 'AP.PLSQL.AP_PREPAY_PKG.';
22:
23: FUNCTION Check_Supplier_Consistency (
24: p_prepay_num IN VARCHAR2,
126:
127: BEGIN
128: l_api_name := 'Check_Prepayment_Invoice';
129: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
130: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Check_Prepayment_Invoice(+)');
131: END IF;
132:
133:
134: l_debug_info := 'Check if the prepayment invoice is a valid invoice ';
132:
133:
134: l_debug_info := 'Check if the prepayment invoice is a valid invoice ';
135: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
136: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
137: END IF;
138:
139: SELECT count(*)
140: INTO l_count
150: END IF;
151:
152: l_debug_info := 'Get prepay_invoice_id ';
153: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
154: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
155: END IF;
156:
157: IF l_reject_code IS NULL THEN
158: SELECT invoice_id
162: AND vendor_id = p_vendor_id;
163: END IF;
164:
165: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
166: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Check_Prepayment_Invoice(-)');
167: END IF;
168:
169: RETURN (l_reject_code);
170:
455: BEGIN
456: l_api_name := 'Validate_Prepay_Info';
457:
458: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
459: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Validate_Prepay_Info(+)');
460: END IF;
461:
462: IF p_prepay_case_name = 'DO_NOTHING_CASE' THEN
463:
463:
464: l_debug_info := 'Import - No Prepay related information is given and '||
465: 'apply advances flag is set to N';
466: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
467: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
468: END IF;
469:
470: l_reject_code := NULL;
471: RETURN (l_reject_code);
473: ELSIF p_prepay_case_name = 'INVALID_CASE' THEN
474:
475: l_debug_info := 'Import - Insufficient Prepayment information provided';
476: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
477: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
478: END IF;
479:
480: l_reject_code := 'INSUFFICIENT PREPAY INFO';
481: RETURN (l_reject_code);
490: IF p_prepay_apply_amount <= 0 THEN
491:
492: l_debug_info := 'Import - Apply amount should be positive and non zero';
493: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
494: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
495: END IF;
496:
497: l_reject_code := 'CANNOT APPLY ZERO OR NEG';
498:
508: 'INV_PREPAY_APPL_WITHOUT_AMOUNT') THEN
509:
510: l_debug_info := 'Import - Check Supplier Consistency';
511: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
512: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
513: END IF;
514:
515: l_reject_code := Check_Supplier_Consistency
516: (p_prepay_num,
521: END IF;
522:
523: l_debug_info := 'Import - Check Currency Consistency';
524: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
525: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
526: END IF;
527:
528: l_reject_code := Check_Currency_Consistency
529: (p_prepay_num,
537: END IF;
538:
539: l_debug_info := 'Import - Check Prepayment Validity';
540: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
541: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
542: END IF;
543:
544: l_reject_code := Check_Prepayment_Invoice
545: (p_prepay_num,
556: --'INV_PREPAY_APPL_WITHOUT_AMOUNT', Bug5506845
557: 'LINE_PREPAY_APPL_WITHOUT_AMOUNT') THEN
558: l_debug_info := 'Import - Check Prepayment Line Validity';
559: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
560: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
561: END IF;
562:
563: l_reject_code := Check_Prepayment_Line
564: (p_prepay_num,
575: 'LINE_PREPAY_APPL_WITHOUT_AMOUNT',
576: 'LINE_PREPAY_APPL_WITH_AMOUNT') THEN
577: l_debug_info := 'Import - Check Nothing to Apply in this Prepay Line';
578: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
579: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
580: END IF;
581:
582: l_reject_code := Check_Nothing_To_Apply_Line
583: (p_prepay_invoice_id,
587: IF p_invoice_type_lookup_code = 'EXPENSE REPORT' -- Bug 7004765
588: or p_source in ('SelfService', 'XpenseXpress') THEN
589: l_debug_info := 'Import - Nothing to Apply in this Prepay Line. But not REJECTING an ER invoice';
590: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
591: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
592: END IF;
593: p_prepay_apply_amount := null;
594: p_prepay_line_num := null;
595: p_prepay_num := null;
603: 'INV_PREPAY_APPL_WITHOUT_AMOUNT',
604: 'INV_PREPAY_APPL_WITH_AMOUNT') THEN
605: l_debug_info := 'Import - Check Nothing to Apply in this Prepay Invoice';
606: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
607: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
608: END IF;
609:
610: l_reject_code := Check_Nothing_To_Apply_Invoice
611: (p_prepay_invoice_id);
614: IF p_invoice_type_lookup_code = 'EXPENSE REPORT' -- Bug 7004765
615: or p_source in ('SelfService', 'XpenseXpress') THEN
616: l_debug_info := 'Import - Nothing to Apply in this Prepay Line. But not REJECTING an ER invoice';
617: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
618: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
619: END IF;
620: p_prepay_apply_amount := null;
621: p_prepay_num := null;
622: ELSE
630: 'VND_PREPAY_APPL_WITHOUT_AMOUNT',
631: 'VND_PREPAY_APPL_WITH_AMOUNT') THEN
632: l_debug_info := 'Import - Check Nothing to Apply for this vendor';
633: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
634: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
635: END IF;
636:
637: l_reject_code := Check_Nothing_To_Apply_Vendor (p_vendor_id);
638:
640: IF p_invoice_type_lookup_code = 'EXPENSE REPORT' -- Bug 7004765
641: or p_source in ('SelfService', 'XpenseXpress') THEN
642: l_debug_info := 'Import - Nothing to Apply in this Prepay Line. But not REJECTING an ER invoice';
643: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
644: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
645: END IF;
646: p_prepay_apply_amount := null;
647: ELSE
648: RETURN (l_reject_code);
651: END IF;
652:
653: l_debug_info := 'Import - Check Period Status';
654: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
655: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
656: END IF;
657:
658: l_reject_code := Check_Period_Status
659: (p_prepay_gl_date,
663: RETURN (l_reject_code);
664: END IF;
665:
666: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
667: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Validate_Prepay_Info(-)');
668: END IF;
669:
670: RETURN (l_reject_code);
671:
690:
691: BEGIN
692: l_api_name := 'Get_Prepay_Case_Name';
693: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
694: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Get_Prepay_Case_Name(+)');
695: END IF;
696:
697: l_debug_info := 'Derive case name';
698: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
695: END IF;
696:
697: l_debug_info := 'Derive case name';
698: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
699: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
700: END IF;
701:
702: IF (p_prepay_num IS NOT NULL AND
703: p_prepay_line_num IS NOT NULL AND
757:
758: END IF;
759:
760: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
761: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Get_Prepay_Case_Name(-)');
762: END IF;
763:
764: RETURN (l_prepay_case_name);
765:
1181:
1182: l_api_name := 'Check_Prepay_Info_Import';
1183:
1184: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1185: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Check_Prepay_Info_Import(+)');
1186: END IF;
1187:
1188: p_prepay_invoice_id := p_import_invoice_id;
1189:
1191: -- Step 1: Identify the case name based on the prepayment information provided.
1192: -- ============================================================================
1193: l_debug_info := 'Call Get_Prepay_Case_Name';
1194: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1195: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
1196: END IF;
1197:
1198: p_prepay_case_name := Get_Prepay_Case_Name (
1199: p_prepay_num,
1208: -- ============================================================================
1209:
1210: l_debug_info := 'Call Validate_Prepay_Info';
1211: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1212: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
1213: END IF;
1214:
1215: l_reject_code := Validate_Prepay_Info (
1216: p_prepay_case_name,
1236: RETURN (l_reject_code);
1237: END IF;
1238:
1239: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1240: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Check_Prepay_Info_Import(-)');
1241: END IF;
1242:
1243: RETURN (l_reject_code);
1244:
1635:
1636: l_api_name := 'Apply_Prepay_Line';
1637:
1638: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1639: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Apply_Prepay_Line(+)');
1640: END IF;
1641:
1642: -- ==========================================================
1643: -- Step 0: Get Base Currency Code
1644: -- ==========================================================
1645:
1646: l_debug_info := 'Get Base Currency Code';
1647: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1648: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
1649: END IF;
1650:
1651: OPEN C_SYS_PARAMS;
1652:
1660: -- ==========================================================
1661:
1662: l_debug_info := 'Get Required Information from the STANDARD INVOICE';
1663: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1664: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
1665: END IF;
1666:
1667: OPEN C_STD_INVOICE_INFO (P_INVOICE_ID);
1668:
1683: -- =============================================================
1684:
1685: l_debug_info := 'Get Required Information from the PREPAYMENT INVOICE';
1686: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1687: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
1688: END IF;
1689:
1690: OPEN C_PPAY_INVOICE_INFO (P_PREPAY_INVOICE_ID);
1691:
1707:
1708: l_debug_info := 'Get the Required Line Information for the Selected '||
1709: 'Prepayment Invoice Line';
1710: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1711: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
1712: END IF;
1713:
1714: OPEN C_PPAY_LINE_INFO (P_PREPAY_INVOICE_ID,
1715: P_PREPAY_LINE_NUM);
1734: --or the Prepayment invoice is pre-upgrade data from a release prior to R12.
1735: IF (l_ppay_ln_po_line_location_id IS NOT NULL) THEN
1736: l_debug_info := 'Call Upgrade Po Shipment';
1737: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1738: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
1739: END IF;
1740:
1741: AP_MATCHING_UTILS_PKG.AP_Upgrade_Po_Shipment(
1742: l_ppay_ln_po_line_location_id,
1749: -- ==========================================================
1750:
1751: l_debug_info := 'Get the Prepayment Payment Related Information';
1752: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1753: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
1754: END IF;
1755:
1756: OPEN C_PPAY_PAY_INFO (P_PREPAY_INVOICE_ID);
1757:
1767: -- Step 5: Round the Apply Amount
1768: -- ==========================================================
1769: l_debug_info := 'Round the Apply Amount';
1770: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1771: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
1772: END IF;
1773: l_apply_amount := AP_Utilities_PKG.AP_Round_Currency (
1774: l_apply_amount,
1775: l_std_inv_curr_code);
1783: -- calculated using the Standard Invoice XRATE.
1784: -- ==========================================================
1785: l_debug_info := 'Get Line Level Apply Base Amount';
1786: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1787: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
1788: END IF;
1789:
1790: IF (l_std_inv_curr_code <> l_base_currency_code) THEN
1791:
1810:
1811: l_debug_info := 'Get Line Level Quantity Invoiced, Stat Amount and '||
1812: 'PA Quantity';
1813: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1814: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
1815: END IF;
1816:
1817: IF (l_apply_amount = l_ppay_ln_amount_remaining) THEN
1818:
1893:
1894: l_debug_info := 'Get Next Line Number for the PREPAY Line from the '||
1895: 'STANDARD Invoice';
1896: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1897: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
1898: END IF;
1899:
1900: --Contract Payments: Added the IF condition
1901: IF (P_calling_mode = 'PREPAYMENT APPLICATION') THEN
1913: -- RECOUPMENT.
1914: -- ===========================================================
1915: l_debug_info := 'Call Ap_Prepay_Pkg.Insert_Prepay_Line';
1916: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1917: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
1918: END IF;
1919:
1920: l_dummy := AP_PREPAY_PKG.INSERT_PREPAY_LINE(
1921: p_prepay_invoice_id,
1950: -- Call eTax service.
1951: -- ===========================================================
1952: l_debug_info := 'Call to calculate tax';
1953: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1954: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
1955: END IF;
1956:
1957: IF NOT (ap_etax_pkg.calling_etax(
1958: p_invoice_id => p_invoice_id,
1975: -- ===========================================================
1976: l_debug_info := 'Get inclusive tax amount from the PREPAY line '||
1977: 'after tax calculation';
1978: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1979: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
1980: END IF;
1981:
1982: BEGIN
1983: SELECT NVL(included_tax_amount, 0)
2007: -- ===========================================================
2008: l_debug_info := 'Reduce inclusive tax amount if any from PREPAY '||
2009: 'line amount';
2010: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2011: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2012: END IF;
2013:
2014: IF (l_inclusive_tax_amount <> 0) THEN
2015: --Bugfix: 5577707 added the ABS for l_inclusive_tax_amount.
2049:
2050: l_debug_info := 'Get maximum distribution line number from '||
2051: 'the standard invoice';
2052: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2053: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2054: END IF;
2055:
2056: --From the Prepay line
2057: IF (P_calling_mode = 'PREPAYMENT APPLICATION') THEN
2081:
2082: l_debug_info := 'Populate the PL/SQL table with the basic '||
2083: 'distribution information p_calling_mode'||p_calling_mode;
2084: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2085: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2086: END IF;
2087:
2088: -- IF p_prepay_dist_info is not empty then assign it to
2089: -- l_prepay_dist_info, otherwise populate l_prepay_dist_info
2092:
2093: IF (p_prorate_flag = 'Y') THEN -- p_prepay_dist_info is Empty
2094: l_debug_info := 'Open Cursor C_PPay_Dist_Info';
2095: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2096: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2097: END IF;
2098: OPEN C_PPAY_DIST_INFO(
2099: p_prepay_invoice_id,
2100: p_prepay_line_num);
2157: ELSIF (P_calling_mode = 'RECOUPMENT') THEN
2158:
2159: l_debug_info := 'Open Cursor C_PPay_Dist_Info_Recoup l_ppay_invoice_id, l_ppay_line_number'||p_prepay_invoice_id||','||p_prepay_line_num;
2160: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2161: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2162: END IF;
2163:
2164: OPEN C_PPAY_DIST_INFO_RECOUP(
2165: p_prepay_invoice_id,
2166: p_prepay_line_num);
2167: LOOP
2168: l_debug_info := 'Fetch C_PPay_Dist_Info_Recoup into local variables';
2169: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2170: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2171: END IF;
2172:
2173: FETCH C_PPAY_DIST_INFO_RECOUP INTO
2174: l_prepay_dist_info(l_loop_counter).PREPAY_DISTRIBUTION_ID,
2193:
2194: IF (l_apply_amount = l_ppay_ln_amount_remaining) THEN
2195: l_debug_info := 'Test1';
2196: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2197: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2198: END IF;
2199:
2200: l_prepay_dist_info(l_loop_counter).PREPAY_APPLY_AMOUNT :=
2201: l_prepay_dist_info(l_loop_counter).PPAY_AMOUNT_REMAINING;
2204: ELSE
2205:
2206: l_debug_info := 'Test2';
2207: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2208: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2209: END IF;
2210:
2211: --Contract Payments:
2212: --Proration for both exclusive and inclusive tax cases, since
2236:
2237: l_debug_info := 'Populate the PL/SQL table with the PREPAY Distributions '||
2238: 'information';
2239: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2240: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2241: END IF;
2242:
2243:
2244: FOR l_loop_variable IN nvl(l_prepay_dist_info.FIRST,0)..nvl(l_prepay_dist_info.LAST,0) LOOP
2246: -- Get the Next Distribution Line Number
2247:
2248: l_debug_info := 'Populate other generic info for the prepay dists';
2249: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2250: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2251: END IF;
2252:
2253: l_prepay_dist_info(l_loop_variable).PREPAY_DIST_LINE_NUMBER :=
2254: l_max_dist_number + l_dist_line_counter;
2314: IF (l_apply_amount = l_ppay_ln_amount_remaining) THEN
2315:
2316: l_debug_info := 'Get Quantity_Invoiced, PA_Quantity, Stat_Amount';
2317: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2318: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2319: END IF;
2320:
2321: SELECT NVL( ABS(SUM(quantity_invoiced)), 0 ),
2322: NVL( ABS(SUM(stat_amount)), 0 ),
2406: END IF;
2407:
2408: l_debug_info := 'Call Ap_Prepay_Pkg.Insert_Prepay_Dists';
2409: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2410: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2411: END IF;
2412:
2413: l_dummy := AP_PREPAY_PKG.INSERT_PREPAY_DISTS(
2414: p_prepay_invoice_id,
2440: IF (P_calling_mode = 'PREPAYMENT APPLICATION') THEN
2441:
2442: l_debug_info := 'Distribute tax';
2443: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2444: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2445: END IF;
2446:
2447: IF NOT (ap_etax_pkg.calling_etax(
2448: p_invoice_id => p_invoice_id,
2466: -- inclusive case.
2467: -- ===========================================================
2468: l_debug_info := 'Update parent PREPAY line amount if required';
2469: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2470: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2471: END IF;
2472:
2473: IF (l_inclusive_tax_amount <> 0) THEN
2474: -- We need to update the PREPAY line amount only in the case the
2478:
2479: l_debug_info := 'Get prepay tax difference amount from non-rec '||
2480: 'tax distributions';
2481: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2482: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2483: END IF;
2484:
2485: BEGIN
2486:
2523:
2524: l_debug_info := 'Update PREPAY line amount and base amount '||
2525: 'including the prepay tax difference';
2526: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2527: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2528: END IF;
2529:
2530: BEGIN
2531: UPDATE ap_invoice_lines_all ail
2554: -- ===========================================================
2555:
2556: l_debug_info := 'Update Prepayment distributions';
2557: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2558: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2559: END IF;
2560:
2561: l_dummy := AP_PREPAY_PKG.Update_Prepayment(
2562: l_prepay_dist_info,
2571:
2572: IF l_dummy = FALSE THEN
2573: l_debug_info := 'Unlock Line';
2574: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2575: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2576: END IF;
2577:
2578: l_result:= AP_PREPAY_UTILS_PKG.Unlock_Line(
2579: p_prepay_invoice_id,
2588: -- ===========================================================
2589:
2590: l_debug_info := 'Update_PO_Receipt_Info';
2591: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2592: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2593: END IF;
2594:
2595:
2596: l_dummy := AP_PREPAY_PKG.Update_PO_Receipt_Info(
2640: l_apply_amount:= l_apply_amount - nvl(l_prepay_excl_tax_amt,0); --Bug5224883
2641:
2642: l_debug_info := 'Get Apply Amount in Payment Currency';
2643: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2644: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2645: END IF;
2646:
2647: IF (l_ppay_inv_curr_code <> l_ppay_inv_pay_curr_code) THEN
2648:
2666: IF NVL(p_prepay_included, 'N') = 'N' THEN
2667: --Contract Payments: No modification needed for this api.
2668: l_debug_info := 'Update Payment Schedules';
2669: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2670: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2671: END IF;
2672:
2673: l_dummy := AP_PREPAY_PKG.Update_Payment_Schedule(
2674: p_invoice_id,
2699: -- ===========================================================
2700:
2701: -- l_debug_info := 'Calculate/Update Rounding Amounts';
2702: -- IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2703: -- FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2704: --END IF;
2705: -- ===========================================================
2706: -- Step 21.1: Identify if this application is the final
2707: -- application for this prepayment invoice line. If so then
2719:
2720: --IF l_base_currency_code <> l_std_inv_curr_code THEN
2721: --l_debug_info := 'Update Rounding Amounts';
2722: --IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2723: -- FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2724: --END IF;
2725:
2726: -- l_dummy := AP_PREPAY_PKG.Update_Rounding_Amounts(
2727: -- p_prepay_invoice_id,
2745: -- ===========================================================
2746:
2747: l_debug_info := 'Unlock the Locked Line';
2748: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2749: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2750: END IF;
2751:
2752: l_result := AP_PREPAY_UTILS_PKG.Unlock_Line(
2753: p_prepay_invoice_id,
2758: -- Hence we can return TRUE to the calling module.
2759: -- ===========================================================
2760:
2761: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2762: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Apply_Prepay_Line(-)');
2763: END IF;
2764:
2765: RETURN (TRUE);
2766:
2843: l_current_calling_sequence := 'Insert_Prepay_Line<-'
2844: ||p_calling_sequence;
2845:
2846: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2847: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Insert_Prepay_Line(+)');
2848: END IF;
2849:
2850: l_debug_info := 'Insert PREPAY Line';
2851: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2848: END IF;
2849:
2850: l_debug_info := 'Insert PREPAY Line';
2851: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2852: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
2853: END IF;
2854:
2855: INSERT INTO AP_Invoice_Lines(
2856: INVOICE_ID,
3166: WHERE invoice_id = p_prepay_invoice_id
3167: AND line_number = p_prepay_line_num;
3168:
3169: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3170: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Insert_Prepay_Line(-)');
3171: END IF;
3172:
3173: RETURN (TRUE);
3174: EXCEPTION
3240: l_api_name := 'Insert_Prepay_Dists';
3241: l_calling_program := p_calling_sequence;
3242:
3243: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3244: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Insert_Prepay_Dists(+)');
3245: END IF;
3246:
3247: l_debug_info := 'Insert PREPAY Distributions';
3248: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3245: END IF;
3246:
3247: l_debug_info := 'Insert PREPAY Distributions';
3248: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3249: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3250: END IF;
3251:
3252: --Bug5224996 Added following select stmt
3253: SELECT invoice_includes_prepay_flag
3264:
3265:
3266: l_debug_info := 'Derive the charge_applicable_to_dist_id and related_id for Tax Dists and Tax variances';
3267: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3268: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3269: END IF;
3270:
3271: --Note: Need to derive it only after the 'PREPAY' distributions have been created as
3272: --part of the loop, hence ordered the cursor C_PPAY_DIST_INFO_RECOUP by line_type_lookup_code
3277: IF (p_prepay_dist_info(l_loop_counter).line_type_lookup_code IN ('REC_TAX','NONREC_TAX')) THEN
3278:
3279: l_debug_info := 'Derive Charge_Applicable_to_Dist_Id for the Tax distributions';
3280: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3281: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3282: END IF;
3283:
3284: SELECT invoice_distribution_id
3285: INTO p_prepay_dist_info(l_loop_counter).charge_applicable_to_dist_id
3292: ELSIF (p_prepay_dist_info(l_loop_counter).line_type_lookup_code IN ('TERV','TIPV','TRV')) THEN
3293:
3294: l_debug_info := 'Derive Related_Id for the Tax Variance distributions';
3295: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3296: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3297: END IF;
3298:
3299:
3300: SELECT invoice_distribution_id
3310: END IF;
3311:
3312: l_debug_info := 'Insert into ap_invoice_distributions';
3313: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3314: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3315: END IF;
3316:
3317: l_debug_info := 'Prepay Distribution Id is '||p_prepay_dist_info(l_loop_counter).prepay_distribution_id;
3318:
3316:
3317: l_debug_info := 'Prepay Distribution Id is '||p_prepay_dist_info(l_loop_counter).prepay_distribution_id;
3318:
3319: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3320: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3321: END IF;
3322:
3323:
3324:
3718: -- ===============================================================
3719:
3720: l_debug_info := 'Update global context code';
3721: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3722: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3723: END IF;
3724:
3725: l_global_attr_category := p_prepay_dist_info(l_loop_counter).PREPAY_global_attr_category;
3726:
3735: -- END IF;
3736: END LOOP;
3737:
3738: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3739: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Insert_Prepay_Dists(-)');
3740: END IF;
3741:
3742: RETURN (TRUE);
3743: EXCEPTION
3810: -- Update the calling sequence for debugging purposes
3811:
3812: l_api_name := 'Update_Prepayment';
3813: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3814: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Update_Prepayment(+)');
3815: END IF;
3816:
3817: l_calling_program := p_calling_sequence;
3818: l_current_calling_sequence := 'update_prepayment<-' ||p_calling_sequence;
3818: l_current_calling_sequence := 'update_prepayment<-' ||p_calling_sequence;
3819:
3820: l_debug_info := 'Update Prepayment Info';
3821: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3822: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3823: END IF;
3824:
3825: IF (p_appl_type = 'APPLICATION') THEN
3826:
3831: FOR l_loop_counter IN nvl(p_prepay_dist_info.FIRST,0)..nvl(p_prepay_dist_info.LAST,0) LOOP
3832:
3833: l_debug_info := 'Updating invoice distribution id '|| p_prepay_dist_info(l_loop_counter).prepay_distribution_id;
3834: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3835: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3836: END IF;
3837:
3838: UPDATE ap_invoice_distributions
3839: SET prepay_amount_remaining =
3856: || ' Line Num: '||p_prepay_line_num;
3857:
3858:
3859: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3860: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3861: END IF;
3862:
3863: -- the prepay_amount_remaining will be updated only
3864: -- for recoverable tax and non-recoverable tax dist.
3909:
3910: -- Assume the prepay_amount_remaining is never null
3911: l_debug_info := 'Open Cursor C_Update_Prepayments';
3912: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3913: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3914: END IF;
3915:
3916: OPEN C_Update_Prepayments;
3917:
3917:
3918: LOOP
3919: l_debug_info := 'Fetch C_Update_Prepayments';
3920: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3921: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3922: END IF;
3923:
3924: FETCH C_Update_Prepayments INTO
3925: l_prepay_distribution_id,
3926: l_apply_amount;
3927:
3928: l_debug_info := 'Prepay distribution id, unapply amount is '||l_prepay_distribution_id||','||l_apply_amount;
3929: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3930: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
3931: END IF;
3932:
3933:
3934: EXIT WHEN C_Update_Prepayments%NOTFOUND;
3944:
3945: END IF;
3946:
3947: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3948: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Update_Prepayment(-)');
3949: END IF;
3950:
3951: RETURN (TRUE);
3952:
4059:
4060: l_current_calling_sequence := 'update_po_receipt_info<-'||
4061: p_calling_sequence;
4062: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4063: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Update_PO_Receipt_Info(+)');
4064: END IF;
4065:
4066: l_debug_info := 'Create l_po_ap_dist_rec object';
4067: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4064: END IF;
4065:
4066: l_debug_info := 'Create l_po_ap_dist_rec object';
4067: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4068: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
4069: END IF;
4070:
4071: l_po_ap_dist_rec := PO_AP_DIST_REC_TYPE.create_object();
4072:
4071: l_po_ap_dist_rec := PO_AP_DIST_REC_TYPE.create_object();
4072:
4073: l_debug_info := 'Create l_po_ap_line_loc_rec object and populate the data';
4074: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4075: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
4076: END IF;
4077:
4078:
4079: IF p_appl_type = 'APPLICATION' THEN
4210: END IF; /* IF p_appl_type = ... */
4211:
4212: l_debug_info := 'Call the PO_AP_INVOICE_MATCH_GRP to update the Po Distributions and Po Line Locations';
4213: IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4214: FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
4215: END IF;
4216:
4217: PO_AP_INVOICE_MATCH_GRP.Update_Document_Ap_Values(
4218: P_Api_Version => 1.0,
4221: X_Return_Status => l_return_status,
4222: X_Msg_Data => l_msg_data);
4223:
4224: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4225: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Update_PO_Receipt_Info(-)');
4226: END IF;
4227:
4228: RETURN (TRUE);
4229: EXCEPTION
4311: l_current_calling_sequence := 'update_payment_schedule<-'||
4312: p_calling_sequence;
4313:
4314: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4315: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Update_Payment_Schedule(+)');
4316: END IF;
4317:
4318: IF (p_invoice_id IS NULL OR
4319: p_apply_amount IS NULL OR
4330: l_apply_amount_remaining := p_apply_amount;
4331:
4332: l_debug_info := 'Open Payment Schedule Cursor';
4333: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4334: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,l_debug_info);
4335: END IF;
4336:
4337: OPEN SCHEDULES;
4338:
4339: LOOP
4340:
4341: l_debug_info := 'Fetch Schedules into local variables';
4342: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4343: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,l_debug_info);
4344: END IF;
4345:
4346: FETCH SCHEDULES INTO
4347: l_cursor_payment_num, l_cursor_amount;
4367: +---------------------------------------------------------------------------*/
4368:
4369: l_debug_info := 'Update ap_payment_schedule for the invoice, case 1';
4370: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4371: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,l_debug_info);
4372: END IF;
4373:
4374: UPDATE ap_payment_schedules
4375: SET amount_remaining = (amount_remaining -
4402: *----------------------------------------------------------------------*/
4403:
4404: l_debug_info := 'Update ap_payment_schedule for the invoice, case 2';
4405: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4406: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,l_debug_info);
4407: END IF;
4408:
4409: UPDATE ap_payment_schedules
4410: SET amount_remaining = DECODE(p_appl_type,
4430: END LOOP;
4431:
4432: l_debug_info := 'Close Schedule Cursor';
4433: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4434: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,l_debug_info);
4435: END IF;
4436: CLOSE SCHEDULES;
4437:
4438: --------------------------------------------------------------------------
4441: -- to reflect the prepayment application
4442: --------------------------------------------------------------------------
4443: l_debug_info := 'Update ap_invoices to reflect the amount applied p_apply_amount, p_invoice_id '||p_apply_amount||','||p_invoice_id;
4444: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4445: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,l_debug_info);
4446: END IF;
4447:
4448: IF nvl(p_calling_mode,'X') <> 'RECOUPMENT' THEN
4449:
4463:
4464: END IF;
4465:
4466: IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4467: FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'AP_PREPAY_PKG.Update_Payment_Schedule(-)');
4468: END IF;
4469:
4470: RETURN (TRUE);
4471: