1: PACKAGE BODY AP_IMPORT_UTILITIES_PKG AS
2: /* $Header: apiimutb.pls 120.67.12010000.12 2008/11/20 14:15:33 dcshanmu ship $ */
3:
4: -- Bug 3929697
5: -- Declared two global variables for getting the value of
40: WHEN OTHERS then
41:
42: IF (SQLCODE < 0) then
43: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
44: AP_IMPORT_UTILITIES_PKG.Print(
45: AP_IMPORT_INVOICES_PKG.g_debug_switch, SQLERRM);
46: END IF;
47: END IF;
48: RETURN 0;
94:
95: -- Update the calling sequence
96:
97: current_calling_sequence :=
98: 'AP_Import_Utilities_Pkg.Check_control_table<-'||P_calling_sequence;
99:
100: -----------------------------------------------------------------------
101: -- Step 1,
102: -- Lock the control table, in case some other concurrent process try to
383:
384: BEGIN
385: -- Update the calling sequence
386:
387: current_calling_sequence := 'AP_Import_Utilities_Pkg.Insert_rejections<-'
388: ||P_calling_sequence;
389:
390: --------------------------------------------------------------------------
391: -- Step1
552: BEGIN
553: -- Update the calling sequence
554:
555: current_calling_sequence :=
556: 'AP_Import_Utilities_Pkg.get_overbill_for_shipment<-'
557: ||P_calling_sequence;
558:
559: --------------------------------------------------------------------------
560: -- Step 1
676: BEGIN
677: -- Update the calling sequence
678:
679: current_calling_sequence :=
680: 'AP_Import_Utilities_Pkg.get_batch_id<-'||P_calling_sequence;
681:
682: ------------------------------------------------------------------
683: -- Find the old batch_id if it's existing batch, or use sequence
684: -- find the next available batch_id
753: BEGIN
754: -- Update the calling sequence
755: --
756: current_calling_sequence :=
757: 'AP_Import_Utilities_Pkg.get_auto_batch_name<-' ||p_calling_sequence;
758:
759: debug_info := '(Get_auto_batch_name 1) automatically create batch name';
760:
761: IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
838: BEGIN
839: -- Update the calling sequence
840:
841: current_calling_sequence :=
842: 'AP_Import_Utilities_Pkg.Get_info<-'||P_calling_sequence;
843:
844: debug_info := '(Get_info 1) Read from ap_system_parameters';
845: IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
846: Print(AP_IMPORT_INVOICES_PKG.g_debug_switch,debug_info);
1317: BEGIN
1318: -- Update the calling sequence
1319:
1320: current_calling_sequence :=
1321: 'AP_IMPORT_UTILITIES_PKG.find_vendor_primary_paysite<-'
1322: ||P_calling_sequence;
1323:
1324: debug_info := '(Find vendor primary paysite 1) Get the primary paysite';
1325: IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') then
1750:
1751: -- Update the calling sequence
1752:
1753: current_calling_sequence :=
1754: 'AP_IMPORT_UTILITIES_PKG.pa_flexbuild<-'||P_calling_sequence;
1755:
1756: ----------------------------------------------------------------------------
1757: -- Step 1
1758: ----------------------------------------------------------------------------
1852: Print(AP_IMPORT_INVOICES_PKG.g_debug_switch,debug_info);
1853: END IF;
1854:
1855:
1856: IF (AP_IMPORT_UTILITIES_PKG.insert_rejections(
1857: AP_IMPORT_INVOICES_PKG.g_invoice_lines_table,
1858: p_invoice_lines_rec.invoice_line_id,
1859: 'PA FLEXBUILD FAILED',
1860: p_default_last_updated_by,
1974: IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
1975: Print(AP_IMPORT_INVOICES_PKG.g_debug_switch,debug_info);
1976: END IF;
1977:
1978: IF (AP_IMPORT_UTILITIES_PKG.insert_rejections(
1979: AP_IMPORT_INVOICES_PKG.g_invoice_lines_table,
1980: p_invoice_lines_rec.invoice_line_id,
1981: 'PA FLEXBUILD FAILED',
1982: p_default_last_updated_by,
2169: IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
2170: Print( AP_IMPORT_INVOICES_PKG.g_debug_switch,debug_info);
2171: END IF;
2172:
2173: IF (AP_IMPORT_UTILITIES_PKG.insert_rejections(
2174: 'AP_INVOICE_INTERFACE',
2175: p_invoice_rec.invoice_id,
2176: 'DOC CAT NOT REQD',
2177: p_default_last_updated_by,
2254: IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
2255: Print(AP_IMPORT_INVOICES_PKG.g_debug_switch, debug_info);
2256: END IF;
2257:
2258: IF (AP_IMPORT_UTILITIES_PKG.insert_rejections(
2259: AP_IMPORT_INVOICES_PKG.g_invoices_table,
2260: p_invoice_rec.invoice_id,
2261: 'INVALID DOC CATEGORY',
2262: p_default_last_updated_by,
2293: debug_info := debug_info || 'Reject->Doc cat does not exist';
2294: IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
2295: Print(AP_IMPORT_INVOICES_PKG.g_debug_switch, debug_info);
2296: END IF;
2297: IF (AP_IMPORT_UTILITIES_PKG.insert_rejections(
2298: AP_IMPORT_INVOICES_PKG.g_invoices_table,
2299: p_invoice_rec.invoice_id,
2300: 'INVALID DOC CATEGORY',
2301: p_default_last_updated_by,
2321: IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
2322: Print(AP_IMPORT_INVOICES_PKG.g_debug_switch, debug_info);
2323: END IF;
2324:
2325: IF (AP_IMPORT_UTILITIES_PKG.insert_rejections(
2326: AP_IMPORT_INVOICES_PKG.g_invoices_table,
2327: p_invoice_rec.invoice_id,
2328: 'OVERRIDE DISALLOWED',
2329: p_default_last_updated_by,
2415: IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
2416: Print(AP_IMPORT_INVOICES_PKG.g_debug_switch, debug_info);
2417: END IF;
2418:
2419: IF (AP_IMPORT_UTILITIES_PKG.insert_rejections( AP_IMPORT_INVOICES_PKG.g_invoices_table,
2420: p_invoice_rec.invoice_id,
2421: 'INCONSISTENT VOUCHER INFO',
2422: p_default_last_updated_by,
2423: p_default_last_update_login,
2447: IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
2448: Print(AP_IMPORT_INVOICES_PKG.g_debug_switch, debug_info);
2449: END IF;
2450:
2451: IF (AP_IMPORT_UTILITIES_PKG.insert_rejections(
2452: AP_IMPORT_INVOICES_PKG.g_invoices_table,
2453: p_invoice_rec.invoice_id,
2454: 'INVALID ASSIGNMENT',
2455: p_default_last_updated_by,
2505: IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
2506: Print(AP_IMPORT_INVOICES_PKG.g_debug_switch, debug_info);
2507: END IF;
2508:
2509: IF (AP_IMPORT_UTILITIES_PKG.insert_rejections(
2510: AP_IMPORT_INVOICES_PKG.g_invoices_table,
2511: p_invoice_rec.invoice_id,
2512: 'INVALID SEQUENCE',
2513: p_default_last_updated_by,
2536: IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
2537: Print(AP_IMPORT_INVOICES_PKG.g_debug_switch, debug_info);
2538: END IF;
2539:
2540: IF (AP_IMPORT_UTILITIES_PKG.insert_rejections( AP_IMPORT_INVOICES_PKG.g_invoices_table,
2541: p_invoice_rec.invoice_id,
2542: 'INCONSISTENT VOUCHER INFO',
2543: p_default_last_updated_by,
2544: p_default_last_update_login,
4488: debug_info := '(Create Lines 3.1) Check for quantity overbill '
4489: ||'for PO Shipment';
4490:
4491: IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') then
4492: AP_IMPORT_UTILITIES_PKG.Print(
4493: AP_IMPORT_INVOICES_PKG.g_debug_switch, debug_info);
4494: END IF;
4495:
4496: IF (AP_IMPORT_UTILITIES_PKG.get_overbill_for_shipment(
4492: AP_IMPORT_UTILITIES_PKG.Print(
4493: AP_IMPORT_INVOICES_PKG.g_debug_switch, debug_info);
4494: END IF;
4495:
4496: IF (AP_IMPORT_UTILITIES_PKG.get_overbill_for_shipment(
4497: p_invoice_lines_tab(i).po_line_location_id, -- IN
4498: p_invoice_lines_tab(i).quantity_invoiced, -- IN
4499: p_invoice_lines_tab(i).amount, -- IN
4500: l_overbill_flag, -- OUT NOCOPY
4506: l_amt_already_billed, -- OUT NOCOPY
4507: current_calling_sequence) <> TRUE) THEN
4508:
4509: IF (AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y') THEN
4510: AP_IMPORT_UTILITIES_PKG.Print(
4511: AP_IMPORT_INVOICES_PKG.g_debug_switch,
4512: 'get_overbill_for_shipment<-'||current_calling_sequence);
4513: END IF;
4514: RAISE create_lines_failure;
4608: --------------------------------------------------------------------------
4609:
4610: debug_info := '(Insert Holds 1) Insert invoice holds FROM the import batch';
4611: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
4612: AP_IMPORT_UTILITIES_PKG.Print(
4613: AP_IMPORT_INVOICES_PKG.g_debug_switch,debug_info);
4614: END IF;
4615:
4616: IF (p_hold_code is NOT NULL) THEN
4629: ---------------------------------------------------------------------------
4630:
4631: debug_info := '(Insert Holds 2) Insert Suppler holds';
4632: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
4633: AP_IMPORT_UTILITIES_PKG.Print(
4634: AP_IMPORT_INVOICES_PKG.g_debug_switch,debug_info);
4635: END IF;
4636:
4637: iF (NVL(p_hold_future_payments_flag,'N') = 'Y') THEN
4653: --------------------------------------------------------------------------
4654: debug_info := '(Insert Holds 3) Insert Hold IF invoice_base_amount > '||
4655: 'invoice_amount_limit';
4656: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
4657: AP_IMPORT_UTILITIES_PKG.Print(
4658: AP_IMPORT_INVOICES_PKG.g_debug_switch,debug_info);
4659: END IF;
4660:
4661: ap_holds_pkg.insert_single_hold(
4671:
4672: EXCEPTION
4673: WHEN OTHERS THEN
4674: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
4675: AP_IMPORT_UTILITIES_PKG.Print(
4676: AP_IMPORT_INVOICES_PKG.g_debug_switch,debug_info);
4677: END IF;
4678:
4679: IF (SQLCODE < 0) THEN
4677: END IF;
4678:
4679: IF (SQLCODE < 0) THEN
4680: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
4681: AP_IMPORT_UTILITIES_PKG.Print(
4682: AP_IMPORT_INVOICES_PKG.g_debug_switch,SQLERRM);
4683: END IF;
4684: END IF;
4685:
4804: BEGIN
4805:
4806: l_curr_calling_sequence := 'Is_Product_Registered <-'||p_calling_sequence;
4807: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
4808: AP_IMPORT_UTILITIES_PKG.Print(
4809: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_curr_calling_sequence);
4810: END IF;
4811:
4812: l_debug_info := 'Check if the other application is registered for Distribution Generation';
4810: END IF;
4811:
4812: l_debug_info := 'Check if the other application is registered for Distribution Generation';
4813: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
4814: AP_IMPORT_UTILITIES_PKG.Print(
4815: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_debug_info);
4816: END IF;
4817:
4818:
4872: BEGIN
4873:
4874: l_curr_calling_sequence := 'Cache_Org_Id_Name <- '||P_calling_sequence;
4875: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
4876: AP_IMPORT_UTILITIES_PKG.Print(
4877: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_curr_calling_sequence);
4878: END IF;
4879:
4880: l_debug_info := 'Caching Org_id , Name from MO: Security Profile';
4878: END IF;
4879:
4880: l_debug_info := 'Caching Org_id , Name from MO: Security Profile';
4881: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
4882: AP_IMPORT_UTILITIES_PKG.Print(
4883: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_debug_info);
4884: END IF;
4885:
4886: OPEN moac_org;
4889: CLOSE moac_org;
4890:
4891: l_debug_info := 'Caching Org_id from Financials Systems';
4892: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
4893: AP_IMPORT_UTILITIES_PKG.Print(
4894: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_debug_info);
4895: END IF;
4896:
4897: OPEN fsp_org;
4937: BEGIN
4938: -- Update the calling sequence
4939: --
4940: l_curr_calling_sequence :=
4941: 'AP_IMPORT_UTILITIES_PKG.Check_For_Calendar_Term<-'||p_calling_sequence;
4942: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
4943: AP_IMPORT_UTILITIES_PKG.Print(
4944: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_curr_calling_sequence);
4945: END IF;
4939: --
4940: l_curr_calling_sequence :=
4941: 'AP_IMPORT_UTILITIES_PKG.Check_For_Calendar_Term<-'||p_calling_sequence;
4942: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
4943: AP_IMPORT_UTILITIES_PKG.Print(
4944: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_curr_calling_sequence);
4945: END IF;
4946:
4947: --------------------------------------------------------
4947: --------------------------------------------------------
4948: l_debug_info := 'OPEN cursor c';
4949: --------------------------------------------------------
4950: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
4951: AP_IMPORT_UTILITIES_PKG.Print(
4952: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_debug_info);
4953: END IF;
4954:
4955: l_cal_exists := '';
4959: --------------------------------------------------------
4960: l_debug_info := 'Fetch cursor C';
4961: --------------------------------------------------------
4962: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
4963: AP_IMPORT_UTILITIES_PKG.Print(
4964: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_debug_info);
4965: END IF;
4966:
4967: FETCH c INTO l_calendar;
4970: --------------------------------------------------------
4971: l_debug_info := 'Check for calendar';
4972: --------------------------------------------------------
4973: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
4974: AP_IMPORT_UTILITIES_PKG.Print(
4975: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_debug_info);
4976: END IF;
4977:
4978: BEGIN
5003: --------------------------------------------------------
5004: l_debug_info := 'CLOSE cursor c';
5005: --------------------------------------------------------
5006: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
5007: AP_IMPORT_UTILITIES_PKG.Print(
5008: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_debug_info);
5009: END IF;
5010:
5011: CLOSE c;
5046: BEGIN
5047:
5048: l_curr_calling_sequence := 'Cache_Pay_group <- '||P_calling_sequence;
5049: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
5050: AP_IMPORT_UTILITIES_PKG.Print(
5051: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_curr_calling_sequence);
5052: END IF;
5053:
5054: l_debug_info := 'Caching Pay Group from PO Lookup Codes';
5052: END IF;
5053:
5054: l_debug_info := 'Caching Pay Group from PO Lookup Codes';
5055: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
5056: AP_IMPORT_UTILITIES_PKG.Print(
5057: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_debug_info);
5058: END IF;
5059:
5060: OPEN pay_group;
5093: BEGIN
5094:
5095: l_curr_calling_sequence := 'Cache_Payment_Method <- '||P_calling_sequence;
5096: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
5097: AP_IMPORT_UTILITIES_PKG.Print(
5098: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_curr_calling_sequence);
5099: END IF;
5100:
5101: l_debug_info := 'Caching Payment Method from IBY';
5099: END IF;
5100:
5101: l_debug_info := 'Caching Payment Method from IBY';
5102: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
5103: AP_IMPORT_UTILITIES_PKG.Print(
5104: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_debug_info);
5105: END IF;
5106:
5107: OPEN payment_method;
5144: BEGIN
5145:
5146: l_curr_calling_sequence := 'Cache_Fnd_Currency <- '||P_calling_sequence;
5147: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
5148: AP_IMPORT_UTILITIES_PKG.Print(
5149: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_curr_calling_sequence);
5150: END IF;
5151:
5152: l_debug_info := 'Caching Currency from Fnd Currency';
5150: END IF;
5151:
5152: l_debug_info := 'Caching Currency from Fnd Currency';
5153: IF AP_IMPORT_INVOICES_PKG.g_debug_switch = 'Y' THEN
5154: AP_IMPORT_UTILITIES_PKG.Print(
5155: AP_IMPORT_INVOICES_PKG.g_debug_switch,l_debug_info);
5156: END IF;
5157:
5158: OPEN currency_code_cur;
5173: APP_EXCEPTION.RAISE_EXCEPTION;
5174:
5175: END Cache_Fnd_Currency;
5176:
5177: END AP_IMPORT_UTILITIES_PKG;