1: PACKAGE BODY PO_PDOI_UTL AS
2: /* $Header: PO_PDOI_UTL.plb 120.9 2006/09/15 22:26:54 jinwang noship $ */
3:
4: d_pkg_name CONSTANT VARCHAR2(50) :=
5: PO_LOG.get_package_base('PO_PDOI_UTL');
6:
7: -------------------------------------------------------
8: ----------- PRIVATE PROCEDURES PROTOTYPE --------------
9: -------------------------------------------------------
39:
40: BEGIN
41: d_position := 0;
42:
43: IF (PO_LOG.d_proc) THEN
44: PO_LOG.proc_begin (d_module);
45: END IF;
46:
47: DELETE FROM PO_SESSION_GT
40: BEGIN
41: d_position := 0;
42:
43: IF (PO_LOG.d_proc) THEN
44: PO_LOG.proc_begin (d_module);
45: END IF;
46:
47: DELETE FROM PO_SESSION_GT
48: WHERE key = p_key;
46:
47: DELETE FROM PO_SESSION_GT
48: WHERE key = p_key;
49:
50: IF (PO_LOG.d_proc) THEN
51: PO_LOG.proc_end (d_module);
52: END IF;
53:
54: EXCEPTION
47: DELETE FROM PO_SESSION_GT
48: WHERE key = p_key;
49:
50: IF (PO_LOG.d_proc) THEN
51: PO_LOG.proc_end (d_module);
52: END IF;
53:
54: EXCEPTION
55: WHEN OTHERS THEN
80:
81: BEGIN
82: d_position := 0;
83:
84: IF (PO_LOG.d_proc) THEN
85: PO_LOG.proc_begin (d_module);
86: END IF;
87:
88: IF (PO_PDOI_PARAMS.g_request.commit_work = FND_API.G_TRUE) THEN
81: BEGIN
82: d_position := 0;
83:
84: IF (PO_LOG.d_proc) THEN
85: PO_LOG.proc_begin (d_module);
86: END IF;
87:
88: IF (PO_PDOI_PARAMS.g_request.commit_work = FND_API.G_TRUE) THEN
89: COMMIT;
88: IF (PO_PDOI_PARAMS.g_request.commit_work = FND_API.G_TRUE) THEN
89: COMMIT;
90: END IF;
91:
92: IF (PO_LOG.d_proc) THEN
93: PO_LOG.proc_end(d_module);
94: END IF;
95:
96: EXCEPTION
89: COMMIT;
90: END IF;
91:
92: IF (PO_LOG.d_proc) THEN
93: PO_LOG.proc_end(d_module);
94: END IF;
95:
96: EXCEPTION
97: WHEN OTHERS THEN
126: l_batch_id PO_HEADERS_INTERFACE.batch_id%TYPE;
127: BEGIN
128: d_position := 0;
129:
130: IF (PO_LOG.d_proc) THEN
131: PO_LOG.proc_begin (d_module);
132: END IF;
133:
134: SELECT NVL(MAX(batch_id), 0) + 1
127: BEGIN
128: d_position := 0;
129:
130: IF (PO_LOG.d_proc) THEN
131: PO_LOG.proc_begin (d_module);
132: END IF;
133:
134: SELECT NVL(MAX(batch_id), 0) + 1
135: INTO l_batch_id
134: SELECT NVL(MAX(batch_id), 0) + 1
135: INTO l_batch_id
136: FROM po_headers_interface;
137:
138: IF (PO_LOG.d_stmt) THEN
139: PO_LOG.stmt(d_module, d_position, 'batch_id', l_batch_id);
140: END IF;
141:
142: RETURN l_batch_id;
135: INTO l_batch_id
136: FROM po_headers_interface;
137:
138: IF (PO_LOG.d_stmt) THEN
139: PO_LOG.stmt(d_module, d_position, 'batch_id', l_batch_id);
140: END IF;
141:
142: RETURN l_batch_id;
143:
182:
183: BEGIN
184: d_position := 0;
185:
186: IF (PO_LOG.d_proc) THEN
187: PO_LOG.proc_begin (d_module);
188: END IF;
189:
190: IF (p_id_tbl IS NULL OR p_id_tbl.COUNT = 0) THEN
183: BEGIN
184: d_position := 0;
185:
186: IF (PO_LOG.d_proc) THEN
187: PO_LOG.proc_begin (d_module);
188: END IF;
189:
190: IF (p_id_tbl IS NULL OR p_id_tbl.COUNT = 0) THEN
191: d_position := 10;
217: set_doc_has_errors
218: ( p_intf_header_id_tbl => p_id_tbl
219: );
220:
221: IF (PO_LOG.d_proc) THEN
222: PO_LOG.proc_end(d_module);
223: END IF;
224:
225: EXCEPTION
218: ( p_intf_header_id_tbl => p_id_tbl
219: );
220:
221: IF (PO_LOG.d_proc) THEN
222: PO_LOG.proc_end(d_module);
223: END IF;
224:
225: EXCEPTION
226: WHEN OTHERS THEN
267: l_intf_header_id_tbl PO_TBL_NUMBER;
268: BEGIN
269: d_position := 0;
270:
271: IF (PO_LOG.d_proc) THEN
272: PO_LOG.proc_begin (d_module);
273: END IF;
274:
275: IF (p_id_tbl IS NULL OR p_id_tbl.COUNT = 0) THEN
268: BEGIN
269: d_position := 0;
270:
271: IF (PO_LOG.d_proc) THEN
272: PO_LOG.proc_begin (d_module);
273: END IF;
274:
275: IF (p_id_tbl IS NULL OR p_id_tbl.COUNT = 0) THEN
276: d_position := 10;
335: , p_id_tbl => l_intf_line_id_tbl);
336: END IF;
337: END IF;
338:
339: IF (PO_LOG.d_proc) THEN
340: PO_LOG.proc_end(d_module);
341: END IF;
342:
343: EXCEPTION
336: END IF;
337: END IF;
338:
339: IF (PO_LOG.d_proc) THEN
340: PO_LOG.proc_end(d_module);
341: END IF;
342:
343: EXCEPTION
344: WHEN OTHERS THEN
386:
387: BEGIN
388: d_position := 0;
389:
390: IF (PO_LOG.d_proc) THEN
391: PO_LOG.proc_begin (d_module);
392: END IF;
393:
394: IF (p_id_tbl IS NULL OR p_id_tbl.COUNT = 0) THEN
387: BEGIN
388: d_position := 0;
389:
390: IF (PO_LOG.d_proc) THEN
391: PO_LOG.proc_begin (d_module);
392: END IF;
393:
394: IF (p_id_tbl IS NULL OR p_id_tbl.COUNT = 0) THEN
395: d_position := 10;
442: , p_id_tbl => l_intf_line_loc_id_tbl);
443: END IF;
444: END IF;
445:
446: IF (PO_LOG.d_proc) THEN
447: PO_LOG.proc_end(d_module);
448: END IF;
449:
450: EXCEPTION
443: END IF;
444: END IF;
445:
446: IF (PO_LOG.d_proc) THEN
447: PO_LOG.proc_end(d_module);
448: END IF;
449:
450: EXCEPTION
451: WHEN OTHERS THEN
487: l_intf_header_id_tbl PO_TBL_NUMBER;
488: BEGIN
489: d_position := 0;
490:
491: IF (PO_LOG.d_proc) THEN
492: PO_LOG.proc_begin (d_module);
493: END IF;
494:
495: IF (p_id_tbl IS NULL OR p_id_tbl.COUNT = 0) THEN
488: BEGIN
489: d_position := 0;
490:
491: IF (PO_LOG.d_proc) THEN
492: PO_LOG.proc_begin (d_module);
493: END IF;
494:
495: IF (p_id_tbl IS NULL OR p_id_tbl.COUNT = 0) THEN
496: d_position := 10;
527: set_doc_has_errors
528: ( p_intf_header_id_tbl => l_intf_header_id_tbl
529: );
530:
531: IF (PO_LOG.d_proc) THEN
532: PO_LOG.proc_end(d_module);
533: END IF;
534:
535: EXCEPTION
528: ( p_intf_header_id_tbl => l_intf_header_id_tbl
529: );
530:
531: IF (PO_LOG.d_proc) THEN
532: PO_LOG.proc_end(d_module);
533: END IF;
534:
535: EXCEPTION
536: WHEN OTHERS THEN
573: l_intf_header_id_tbl PO_TBL_NUMBER;
574:
575: BEGIN
576: d_position := 0;
577: IF (PO_LOG.d_proc) THEN
578: PO_LOG.proc_begin (d_module);
579: END IF;
580:
581: IF (p_id_tbl IS NULL OR p_id_tbl.COUNT = 0) THEN
574:
575: BEGIN
576: d_position := 0;
577: IF (PO_LOG.d_proc) THEN
578: PO_LOG.proc_begin (d_module);
579: END IF;
580:
581: IF (p_id_tbl IS NULL OR p_id_tbl.COUNT = 0) THEN
582: d_position := 10;
619: set_doc_has_errors
620: ( p_intf_header_id_tbl => l_intf_header_id_tbl
621: );
622: */
623: IF (PO_LOG.d_proc) THEN
624: PO_LOG.proc_end(d_module);
625: END IF;
626:
627: EXCEPTION
620: ( p_intf_header_id_tbl => l_intf_header_id_tbl
621: );
622: */
623: IF (PO_LOG.d_proc) THEN
624: PO_LOG.proc_end(d_module);
625: END IF;
626:
627: EXCEPTION
628: WHEN OTHERS THEN
665:
666: BEGIN
667: d_position := 0;
668:
669: IF (PO_LOG.d_proc) THEN
670: PO_LOG.proc_begin (d_module);
671: END IF;
672:
673: IF (p_id_tbl IS NULL OR p_id_tbl.COUNT = 0) THEN
666: BEGIN
667: d_position := 0;
668:
669: IF (PO_LOG.d_proc) THEN
670: PO_LOG.proc_begin (d_module);
671: END IF;
672:
673: IF (p_id_tbl IS NULL OR p_id_tbl.COUNT = 0) THEN
674: d_position := 10;
705: set_doc_has_errors
706: ( p_intf_header_id_tbl => l_intf_header_id_tbl
707: );
708:
709: IF (PO_LOG.d_proc) THEN
710: PO_LOG.proc_end(d_module);
711: END IF;
712:
713: EXCEPTION
706: ( p_intf_header_id_tbl => l_intf_header_id_tbl
707: );
708:
709: IF (PO_LOG.d_proc) THEN
710: PO_LOG.proc_end(d_module);
711: END IF;
712:
713: EXCEPTION
714: WHEN OTHERS THEN
751:
752: BEGIN
753: d_position := 0;
754:
755: IF (PO_LOG.d_proc) THEN
756: PO_LOG.proc_begin (d_module);
757: END IF;
758:
759: IF (p_id_tbl IS NULL OR p_id_tbl.COUNT = 0) THEN
752: BEGIN
753: d_position := 0;
754:
755: IF (PO_LOG.d_proc) THEN
756: PO_LOG.proc_begin (d_module);
757: END IF;
758:
759: IF (p_id_tbl IS NULL OR p_id_tbl.COUNT = 0) THEN
760: d_position := 10;
792: set_doc_has_errors
793: ( p_intf_header_id_tbl => l_intf_header_id_tbl
794: );
795:
796: IF (PO_LOG.d_proc) THEN
797: PO_LOG.proc_end(d_module);
798: END IF;
799:
800: EXCEPTION
793: ( p_intf_header_id_tbl => l_intf_header_id_tbl
794: );
795:
796: IF (PO_LOG.d_proc) THEN
797: PO_LOG.proc_end(d_module);
798: END IF;
799:
800: EXCEPTION
801: WHEN OTHERS THEN
842:
843: BEGIN
844: d_position := 0;
845:
846: IF (PO_LOG.d_proc) THEN
847: PO_LOG.proc_begin (d_module);
848: END IF;
849:
850: -- reject interface records
843: BEGIN
844: d_position := 0;
845:
846: IF (PO_LOG.d_proc) THEN
847: PO_LOG.proc_begin (d_module);
848: END IF;
849:
850: -- reject interface records
851: reject_headers_intf
872: d_position := 20;
873: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
874: END IF;
875:
876: IF (PO_LOG.d_proc) THEN
877: PO_LOG.proc_end(d_module);
878: END IF;
879:
880: EXCEPTION
873: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
874: END IF;
875:
876: IF (PO_LOG.d_proc) THEN
877: PO_LOG.proc_end(d_module);
878: END IF;
879:
880: EXCEPTION
881: WHEN OTHERS THEN
947:
948: BEGIN
949:
950: d_position := 0;
951: IF (PO_LOG.d_proc) THEN
952: PO_LOG.proc_begin(d_module);
953: END IF;
954:
955: IF (PO_PDOI_PARAMS.g_request.document_type =
948: BEGIN
949:
950: d_position := 0;
951: IF (PO_LOG.d_proc) THEN
952: PO_LOG.proc_begin(d_module);
953: END IF;
954:
955: IF (PO_PDOI_PARAMS.g_request.document_type =
956: PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET) THEN
967: x_doc_type := 'QUOTATION';
968: x_doc_subtype := PO_PDOI_PARAMS.g_request.document_subtype;
969: END IF;
970:
971: IF (PO_LOG.d_proc) THEN
972: PO_LOG.proc_end(d_module);
973: END IF;
974:
975: EXCEPTION
968: x_doc_subtype := PO_PDOI_PARAMS.g_request.document_subtype;
969: END IF;
970:
971: IF (PO_LOG.d_proc) THEN
972: PO_LOG.proc_end(d_module);
973: END IF;
974:
975: EXCEPTION
976: WHEN OTHERS THEN
1019:
1020: BEGIN
1021: d_position := 0;
1022:
1023: IF (PO_LOG.d_proc) THEN
1024: PO_LOG.proc_begin (d_module, 'p_old_request_id', p_old_request_id);
1025: END IF;
1026:
1027: l_old_request_id := p_old_request_id;
1020: BEGIN
1021: d_position := 0;
1022:
1023: IF (PO_LOG.d_proc) THEN
1024: PO_LOG.proc_begin (d_module, 'p_old_request_id', p_old_request_id);
1025: END IF;
1026:
1027: l_old_request_id := p_old_request_id;
1028: l_complete := FND_API.G_FALSE;
1038: ELSE
1039: IF (l_old_request_id = FND_GLOBAL.conc_request_id) THEN
1040: d_position := 20;
1041:
1042: IF (PO_LOG.d_stmt) THEN
1043: PO_LOG.stmt (d_module, d_position, 'Restart case.');
1044: END IF;
1045:
1046: -- restart case. The old one must have been completed.
1039: IF (l_old_request_id = FND_GLOBAL.conc_request_id) THEN
1040: d_position := 20;
1041:
1042: IF (PO_LOG.d_stmt) THEN
1043: PO_LOG.stmt (d_module, d_position, 'Restart case.');
1044: END IF;
1045:
1046: -- restart case. The old one must have been completed.
1047: l_complete := FND_API.G_TRUE;
1073: END IF; -- if l_dft_request_id = FND_GLOBAL.conc_request_id
1074:
1075: END IF; -- if l_dft_request_id = -1;
1076:
1077: IF (PO_LOG.d_proc) THEN
1078: PO_LOG.proc_begin (d_module, 'l_complete', l_complete);
1079: END IF;
1080:
1081: RETURN l_complete;
1074:
1075: END IF; -- if l_dft_request_id = -1;
1076:
1077: IF (PO_LOG.d_proc) THEN
1078: PO_LOG.proc_begin (d_module, 'l_complete', l_complete);
1079: END IF;
1080:
1081: RETURN l_complete;
1082:
1117:
1118: BEGIN
1119: d_position := 0;
1120:
1121: IF (PO_LOG.d_proc) THEN
1122: PO_LOG.proc_begin (d_module, 'p_intf_header_id_tbl', p_intf_header_id_tbl);
1123: END IF;
1124:
1125: IF (p_intf_header_id_tbl IS NULL OR p_intf_header_id_tbl.COUNT = 0) THEN
1118: BEGIN
1119: d_position := 0;
1120:
1121: IF (PO_LOG.d_proc) THEN
1122: PO_LOG.proc_begin (d_module, 'p_intf_header_id_tbl', p_intf_header_id_tbl);
1123: END IF;
1124:
1125: IF (p_intf_header_id_tbl IS NULL OR p_intf_header_id_tbl.COUNT = 0) THEN
1126: RETURN;
1132: PO_PDOI_PARAMS.g_docs_info(p_intf_header_id_tbl(i)).has_errors := FND_API.G_TRUE;
1133: END IF;
1134: END LOOP;
1135:
1136: IF (PO_LOG.d_proc) THEN
1137: PO_LOG.proc_end(d_module);
1138: END IF;
1139:
1140: EXCEPTION
1133: END IF;
1134: END LOOP;
1135:
1136: IF (PO_LOG.d_proc) THEN
1137: PO_LOG.proc_end(d_module);
1138: END IF;
1139:
1140: EXCEPTION
1141: WHEN OTHERS THEN
1174:
1175: BEGIN
1176: d_position := 0;
1177:
1178: IF (PO_LOG.d_proc) THEN
1179: PO_LOG.proc_begin (d_module, 'p_intf_header_id', p_intf_header_id);
1180: END IF;
1181:
1182: IF (p_intf_header_id IS NULL) THEN
1175: BEGIN
1176: d_position := 0;
1177:
1178: IF (PO_LOG.d_proc) THEN
1179: PO_LOG.proc_begin (d_module, 'p_intf_header_id', p_intf_header_id);
1180: END IF;
1181:
1182: IF (p_intf_header_id IS NULL) THEN
1183: d_position := 10;
1237: AND processing_id = PO_PDOI_PARAMS.g_processing_id
1238: AND NVL(process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_PENDING)
1239: = PO_PDOI_CONSTANTS.g_PROCESS_CODE_PENDING;
1240:
1241: IF (PO_LOG.d_proc) THEN
1242: PO_LOG.proc_end(d_module);
1243: END IF;
1244:
1245: EXCEPTION
1238: AND NVL(process_code, PO_PDOI_CONSTANTS.g_PROCESS_CODE_PENDING)
1239: = PO_PDOI_CONSTANTS.g_PROCESS_CODE_PENDING;
1240:
1241: IF (PO_LOG.d_proc) THEN
1242: PO_LOG.proc_end(d_module);
1243: END IF;
1244:
1245: EXCEPTION
1246: WHEN OTHERS THEN