1: PACKAGE BODY PO_PDOI_POSTPROC_PVT AS
2: /* $Header: PO_PDOI_POSTPROC_PVT.plb 120.26.12010000.3 2009/01/07 15:47:25 ggandhi ship $ */
3:
4: d_pkg_name CONSTANT VARCHAR2(30) :=
5: PO_LOG.get_package_base('PO_PDOI_POSTPROC_PVT');
6:
7: DOC_POSTPROC_EXC EXCEPTION;
8:
9: -------------------------------------------------------
181: l_remove_draft VARCHAR2(1); -- bug5129752
182: BEGIN
183:
184: d_position := 0;
185: IF (PO_LOG.d_proc) THEN
186: PO_LOG.proc_begin(d_module);
187: END IF;
188:
189: PO_TIMING_UTL.start_time (PO_PDOI_CONSTANTS.g_T_POSTPROCESSING);
182: BEGIN
183:
184: d_position := 0;
185: IF (PO_LOG.d_proc) THEN
186: PO_LOG.proc_begin(d_module);
187: END IF;
188:
189: PO_TIMING_UTL.start_time (PO_PDOI_CONSTANTS.g_T_POSTPROCESSING);
190:
193: OPEN c_doc;
194:
195: LOOP
196:
197: IF (PO_LOG.d_stmt) THEN
198: PO_LOG.stmt(d_module, d_position, 'inside loop');
199: END IF;
200:
201: FETCH c_doc
194:
195: LOOP
196:
197: IF (PO_LOG.d_stmt) THEN
198: PO_LOG.stmt(d_module, d_position, 'inside loop');
199: END IF;
200:
201: FETCH c_doc
202: BULK COLLECT
202: BULK COLLECT
203: INTO l_docs_tbl
204: LIMIT PO_PDOI_PARAMS.g_request.batch_size;
205:
206: IF (PO_LOG.d_stmt) THEN
207: PO_LOG.stmt(d_module, d_position, 'num of records fetched: '
208: || l_docs_tbl.COUNT);
209: END IF;
210: d_position := 10;
203: INTO l_docs_tbl
204: LIMIT PO_PDOI_PARAMS.g_request.batch_size;
205:
206: IF (PO_LOG.d_stmt) THEN
207: PO_LOG.stmt(d_module, d_position, 'num of records fetched: '
208: || l_docs_tbl.COUNT);
209: END IF;
210: d_position := 10;
211:
233: PO_PDOI_PARAMS.g_out.err_tolerance_exceeded :=
234: l_doc_info.err_tolerance_exceeded;
235: END IF;
236:
237: IF (PO_LOG.d_stmt) THEN
238: PO_LOG.stmt(d_module, d_position, 'interface_header_id: ' ||
239: l_doc_rec.interface_header_id ||
240: ', processing header_id: ' || l_doc_rec.po_header_id ||
241: ', action: ' || l_doc_rec.action);
234: l_doc_info.err_tolerance_exceeded;
235: END IF;
236:
237: IF (PO_LOG.d_stmt) THEN
238: PO_LOG.stmt(d_module, d_position, 'interface_header_id: ' ||
239: l_doc_rec.interface_header_id ||
240: ', processing header_id: ' || l_doc_rec.po_header_id ||
241: ', action: ' || l_doc_rec.action);
242: END IF;
248: x_header_rejected => l_header_rejected,
249: x_remove_draft => l_remove_draft -- bug5129752
250: );
251:
252: IF (PO_LOG.d_stmt) THEN
253: PO_LOG.stmt(d_module, d_position, 'l_header_rejected', l_header_rejected);
254: END IF;
255:
256: IF (l_header_rejected = FND_API.G_FALSE) THEN
249: x_remove_draft => l_remove_draft -- bug5129752
250: );
251:
252: IF (PO_LOG.d_stmt) THEN
253: PO_LOG.stmt(d_module, d_position, 'l_header_rejected', l_header_rejected);
254: END IF;
255:
256: IF (l_header_rejected = FND_API.G_FALSE) THEN
257: d_position := 30;
262: x_transfer_flag => l_transfer_flag,
263: x_submit_for_buyer_acc_flag => l_submit_for_buyer_acc_flag
264: );
265:
266: IF (PO_LOG.d_stmt) THEN
267: PO_LOG.stmt(d_module, d_position, 'l_transfer_flag', l_transfer_flag);
268: PO_LOG.stmt(d_module, d_position, 'l_submit_for_buyer_acc_flag',
269: l_submit_for_buyer_acc_flag);
270: END IF;
263: x_submit_for_buyer_acc_flag => l_submit_for_buyer_acc_flag
264: );
265:
266: IF (PO_LOG.d_stmt) THEN
267: PO_LOG.stmt(d_module, d_position, 'l_transfer_flag', l_transfer_flag);
268: PO_LOG.stmt(d_module, d_position, 'l_submit_for_buyer_acc_flag',
269: l_submit_for_buyer_acc_flag);
270: END IF;
271:
264: );
265:
266: IF (PO_LOG.d_stmt) THEN
267: PO_LOG.stmt(d_module, d_position, 'l_transfer_flag', l_transfer_flag);
268: PO_LOG.stmt(d_module, d_position, 'l_submit_for_buyer_acc_flag',
269: l_submit_for_buyer_acc_flag);
270: END IF;
271:
272: d_position := 40;
293:
294: IF (l_submit_for_buyer_acc_flag = FND_API.G_TRUE) THEN
295: d_position := 60;
296:
297: IF (PO_LOG.d_stmt) THEN
298: PO_LOG.stmt(d_module, d_position, 'launch buyer acceptance process');
299: END IF;
300:
301: -- submit document for buyer acceptance
294: IF (l_submit_for_buyer_acc_flag = FND_API.G_TRUE) THEN
295: d_position := 60;
296:
297: IF (PO_LOG.d_stmt) THEN
298: PO_LOG.stmt(d_module, d_position, 'launch buyer acceptance process');
299: END IF;
300:
301: -- submit document for buyer acceptance
302: PO_DIFF_SUMMARY_PKG.start_workflow
398: UPDATE po_headers_interface
399: SET process_code = l_process_code
400: WHERE interface_header_id = l_doc_rec.interface_header_id;
401:
402: IF (PO_LOG.d_stmt) THEN
403: PO_LOG.stmt(d_module, d_position, 'process_code', l_process_Code);
404: END IF;
405:
406: ELSE
399: SET process_code = l_process_code
400: WHERE interface_header_id = l_doc_rec.interface_header_id;
401:
402: IF (PO_LOG.d_stmt) THEN
403: PO_LOG.stmt(d_module, d_position, 'process_code', l_process_Code);
404: END IF;
405:
406: ELSE
407: IF (PO_LOG.d_stmt) THEN
403: PO_LOG.stmt(d_module, d_position, 'process_code', l_process_Code);
404: END IF;
405:
406: ELSE
407: IF (PO_LOG.d_stmt) THEN
408: PO_LOG.stmt(d_module, d_position, 'header gets rejected');
409: END IF;
410:
411: -- bug5129752
404: END IF;
405:
406: ELSE
407: IF (PO_LOG.d_stmt) THEN
408: PO_LOG.stmt(d_module, d_position, 'header gets rejected');
409: END IF;
410:
411: -- bug5129752
412: IF (l_remove_draft = FND_API.G_FALSE) THEN
424: PO_PDOI_UTL.commit_work;
425:
426: EXCEPTION
427: WHEN OTHERS THEN
428: PO_LOG.stmt(d_module, d_position, 'rollback to savepoint po_pdoi_doc_postproc_sp');
429:
430: ROLLBACK TO SAVEPOINT po_pdoi_doc_postproc_sp;
431: RAISE;
432: END;
437: close c_doc;
438:
439: PO_TIMING_UTL.stop_time (PO_PDOI_CONSTANTS.g_T_POSTPROCESSING);
440:
441: IF (PO_LOG.d_proc) THEN
442: PO_LOG.proc_end(d_module);
443: END IF;
444:
445: EXCEPTION
438:
439: PO_TIMING_UTL.stop_time (PO_PDOI_CONSTANTS.g_T_POSTPROCESSING);
440:
441: IF (PO_LOG.d_proc) THEN
442: PO_LOG.proc_end(d_module);
443: END IF;
444:
445: EXCEPTION
446: WHEN OTHERS THEN
490: l_po_line_id_tbl PO_TBL_NUMBER;
491: BEGIN
492:
493: d_position := 0;
494: IF (PO_LOG.d_proc) THEN
495: PO_LOG.proc_begin(d_module);
496: END IF;
497:
498: DELETE FROM po_lines_draft_all
491: BEGIN
492:
493: d_position := 0;
494: IF (PO_LOG.d_proc) THEN
495: PO_LOG.proc_begin(d_module);
496: END IF;
497:
498: DELETE FROM po_lines_draft_all
499: WHERE draft_id = p_draft_id
547: FROM po_line_locations_all PLLA
548: WHERE PLLA.po_line_id = l_po_line_id_tbl(i)
549: AND PLLA.line_location_id = PPDD.entity_id);
550:
551: IF (PO_LOG.d_proc) THEN
552: PO_LOG.proc_end(d_module);
553: END IF;
554:
555: EXCEPTION
548: WHERE PLLA.po_line_id = l_po_line_id_tbl(i)
549: AND PLLA.line_location_id = PPDD.entity_id);
550:
551: IF (PO_LOG.d_proc) THEN
552: PO_LOG.proc_end(d_module);
553: END IF;
554:
555: EXCEPTION
556: WHEN OTHERS THEN
607: l_chg_exist_tbl PO_TBL_VARCHAR1;
608:
609: BEGIN
610: d_position := 0;
611: IF (PO_LOG.d_proc) THEN
612: PO_LOG.proc_begin(d_module);
613: END IF;
614:
615: SELECT PHI.interface_header_id,
608:
609: BEGIN
610: d_position := 0;
611: IF (PO_LOG.d_proc) THEN
612: PO_LOG.proc_begin(d_module);
613: END IF;
614:
615: SELECT PHI.interface_header_id,
616: PHI.action,
680: FORALL i IN 1..l_dft_to_delete_tbl.COUNT
681: DELETE po_drafts
682: WHERE draft_id = l_dft_to_delete_tbl(i);
683:
684: IF (PO_LOG.d_proc) THEN
685: PO_LOG.proc_end(d_module);
686: END IF;
687:
688: EXCEPTION
681: DELETE po_drafts
682: WHERE draft_id = l_dft_to_delete_tbl(i);
683:
684: IF (PO_LOG.d_proc) THEN
685: PO_LOG.proc_end(d_module);
686: END IF;
687:
688: EXCEPTION
689: WHEN OTHERS THEN
732: l_is_std_po BOOLEAN := FALSE;
733:
734: BEGIN
735: d_position := 0;
736: IF (PO_LOG.d_proc) THEN
737: PO_LOG.proc_begin(d_module);
738: END IF;
739:
740: x_header_rejected := FND_API.G_FALSE;
733:
734: BEGIN
735: d_position := 0;
736: IF (PO_LOG.d_proc) THEN
737: PO_LOG.proc_begin(d_module);
738: END IF;
739:
740: x_header_rejected := FND_API.G_FALSE;
741:
773: PO_PDOI_CONSTANTS.g_CALL_MOD_CATALOG_UPLOAD )) THEN
774:
775: d_position := 10;
776:
777: IF (PO_LOG.d_stmt) THEN
778: PO_LOG.stmt(d_module, d_position, 'failed Check 1');
779: END IF;
780:
781: x_header_rejected := FND_API.G_TRUE;
774:
775: d_position := 10;
776:
777: IF (PO_LOG.d_stmt) THEN
778: PO_LOG.stmt(d_module, d_position, 'failed Check 1');
779: END IF;
780:
781: x_header_rejected := FND_API.G_TRUE;
782:
788: -- add more checks here
789: -- Check 2: There should at least be one line that is valid
790: IF (x_header_rejected = FND_API.G_FALSE) THEN
791: IF ( p_doc_info.number_of_valid_lines = 0 ) THEN
792: IF (PO_LOG.d_stmt) THEN
793: PO_LOG.stmt(d_module, d_position, 'failed Check 2');
794: END IF;
795:
796: IF ( p_doc_rec.action <> PO_PDOI_CONSTANTS.g_ACTION_UPDATE ) THEN
789: -- Check 2: There should at least be one line that is valid
790: IF (x_header_rejected = FND_API.G_FALSE) THEN
791: IF ( p_doc_info.number_of_valid_lines = 0 ) THEN
792: IF (PO_LOG.d_stmt) THEN
793: PO_LOG.stmt(d_module, d_position, 'failed Check 2');
794: END IF;
795:
796: IF ( p_doc_rec.action <> PO_PDOI_CONSTANTS.g_ACTION_UPDATE ) THEN
797: -- If action <> update, we need to tell user that the document created
835: p_remove_draft => x_remove_draft -- bug5129752
836: );
837: END IF;
838:
839: IF (PO_LOG.d_proc) THEN
840: PO_LOG.proc_end(d_module);
841: END IF;
842: EXCEPTION
843: WHEN OTHERS THEN
836: );
837: END IF;
838:
839: IF (PO_LOG.d_proc) THEN
840: PO_LOG.proc_end(d_module);
841: END IF;
842: EXCEPTION
843: WHEN OTHERS THEN
844: PO_MESSAGE_S.add_exc_msg
886: l_role_auth_acceptance VARCHAR2(30);
887:
888: BEGIN
889: d_position := 0;
890: IF (PO_LOG.d_proc) THEN
891: PO_LOG.proc_begin(d_module);
892: END IF;
893:
894: -- transfer if
887:
888: BEGIN
889: d_position := 0;
890: IF (PO_LOG.d_proc) THEN
891: PO_LOG.proc_begin(d_module);
892: END IF;
893:
894: -- transfer if
895: -- 1) document is not a global agreement, OR
921: END IF;
922:
923: END IF; -- if not ga or ...
924:
925: IF (PO_LOG.d_stmt) THEN
926: PO_LOG.stmt(d_module, d_position, 'x_transfer_flag', x_transfer_flag);
927: PO_LOG.stmt(d_module, d_position, 'x_submit_for_buyer_acc_flag',
928: x_submit_for_buyer_acc_flag);
929: END IF;
922:
923: END IF; -- if not ga or ...
924:
925: IF (PO_LOG.d_stmt) THEN
926: PO_LOG.stmt(d_module, d_position, 'x_transfer_flag', x_transfer_flag);
927: PO_LOG.stmt(d_module, d_position, 'x_submit_for_buyer_acc_flag',
928: x_submit_for_buyer_acc_flag);
929: END IF;
930:
923: END IF; -- if not ga or ...
924:
925: IF (PO_LOG.d_stmt) THEN
926: PO_LOG.stmt(d_module, d_position, 'x_transfer_flag', x_transfer_flag);
927: PO_LOG.stmt(d_module, d_position, 'x_submit_for_buyer_acc_flag',
928: x_submit_for_buyer_acc_flag);
929: END IF;
930:
931: IF (PO_LOG.d_proc) THEN
927: PO_LOG.stmt(d_module, d_position, 'x_submit_for_buyer_acc_flag',
928: x_submit_for_buyer_acc_flag);
929: END IF;
930:
931: IF (PO_LOG.d_proc) THEN
932: PO_LOG.proc_end(d_module);
933: END IF;
934: EXCEPTION
935: WHEN OTHERS THEN
928: x_submit_for_buyer_acc_flag);
929: END IF;
930:
931: IF (PO_LOG.d_proc) THEN
932: PO_LOG.proc_end(d_module);
933: END IF;
934: EXCEPTION
935: WHEN OTHERS THEN
936: PO_MESSAGE_S.add_exc_msg
975: l_lines src_rule_lines_rec_type;
976:
977: BEGIN
978: d_position := 0;
979: IF (PO_LOG.d_proc) THEN
980: PO_LOG.proc_begin(d_module);
981: END IF;
982:
983: assign_document_number ( p_doc_rec => p_doc_rec );
976:
977: BEGIN
978: d_position := 0;
979: IF (PO_LOG.d_proc) THEN
980: PO_LOG.proc_begin(d_module);
981: END IF;
982:
983: assign_document_number ( p_doc_rec => p_doc_rec );
984:
993: ( p_doc_rec => p_doc_rec,
994: x_lines => l_lines
995: );
996:
997: IF (PO_LOG.d_stmt) THEN
998: PO_LOG.stmt(d_module, d_position, '# of lines requiring sourcing rules',
999: l_lines.po_line_id_tbl.COUNT);
1000: END IF;
1001: END IF;
994: x_lines => l_lines
995: );
996:
997: IF (PO_LOG.d_stmt) THEN
998: PO_LOG.stmt(d_module, d_position, '# of lines requiring sourcing rules',
999: l_lines.po_line_id_tbl.COUNT);
1000: END IF;
1001: END IF;
1002:
1010: ( p_doc_rec => p_doc_rec,
1011: x_approval_method => l_approval_method
1012: );
1013:
1014: IF (PO_LOG.d_stmt) THEN
1015: PO_LOG.stmt(d_module, d_position, 'l_approval_method', l_approval_method);
1016: END IF;
1017: --bug 7277317 added a call for submission check
1018: submission_check
1011: x_approval_method => l_approval_method
1012: );
1013:
1014: IF (PO_LOG.d_stmt) THEN
1015: PO_LOG.stmt(d_module, d_position, 'l_approval_method', l_approval_method);
1016: END IF;
1017: --bug 7277317 added a call for submission check
1018: submission_check
1019: ( p_doc_rec => p_doc_rec,
1026: IF ( l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_INIT_APPROVAL) THEN
1027: d_position := 40;
1028:
1029:
1030: IF (PO_LOG.d_stmt) THEN
1031: PO_LOG.stmt(d_module, d_position, 'starting approval workflow');
1032: END IF;
1033:
1034: start_po_approval_workflow
1027: d_position := 40;
1028:
1029:
1030: IF (PO_LOG.d_stmt) THEN
1031: PO_LOG.stmt(d_module, d_position, 'starting approval workflow');
1032: END IF;
1033:
1034: start_po_approval_workflow
1035: ( p_doc_rec => p_doc_rec
1041: l_new_auth_status := 'APPROVED';
1042:
1043: IF (l_need_to_create_src_rules = FND_API.G_TRUE) THEN
1044:
1045: IF (PO_LOG.d_stmt) THEN
1046: PO_LOG.stmt(d_module, d_position, 'creating sourcing rules');
1047: END IF;
1048:
1049: d_position := 60;
1042:
1043: IF (l_need_to_create_src_rules = FND_API.G_TRUE) THEN
1044:
1045: IF (PO_LOG.d_stmt) THEN
1046: PO_LOG.stmt(d_module, d_position, 'creating sourcing rules');
1047: END IF;
1048:
1049: d_position := 60;
1050: process_sourcing_rules
1068:
1069: d_position := 90;
1070:
1071:
1072: IF (PO_LOG.d_stmt) THEN
1073: PO_LOG.stmt(d_module, d_position, 'Reserving document');
1074: END IF;
1075:
1076: -- reserve document
1069: d_position := 90;
1070:
1071:
1072: IF (PO_LOG.d_stmt) THEN
1073: PO_LOG.stmt(d_module, d_position, 'Reserving document');
1074: END IF;
1075:
1076: -- reserve document
1077: reserve_fund
1081:
1082: IF (l_fund_reserve_result = FND_API.G_FALSE) THEN
1083:
1084:
1085: IF (PO_LOG.d_stmt) THEN
1086: PO_LOG.stmt(d_module, d_position, 'Fund reservation was not done correctly');
1087: END IF;
1088:
1089: -- If fund reservation is not successful, we need to revert the
1082: IF (l_fund_reserve_result = FND_API.G_FALSE) THEN
1083:
1084:
1085: IF (PO_LOG.d_stmt) THEN
1086: PO_LOG.stmt(d_module, d_position, 'Fund reservation was not done correctly');
1087: END IF;
1088:
1089: -- If fund reservation is not successful, we need to revert the
1090: -- authorization status back
1132: ELSE -- bug 7277317
1133: x_process_code := 'I';
1134: END IF;
1135:
1136: IF (PO_LOG.d_proc) THEN
1137: PO_LOG.proc_end(d_module);
1138: END IF;
1139: EXCEPTION
1140: WHEN OTHERS THEN
1133: x_process_code := 'I';
1134: END IF;
1135:
1136: IF (PO_LOG.d_proc) THEN
1137: PO_LOG.proc_end(d_module);
1138: END IF;
1139: EXCEPTION
1140: WHEN OTHERS THEN
1141: PO_MESSAGE_S.add_exc_msg
1178: l_need_to_create_src_rules VARCHAR2(1);
1179: l_lines src_rule_lines_rec_type;
1180: BEGIN
1181: d_position := 0;
1182: IF (PO_LOG.d_proc) THEN
1183: PO_LOG.proc_begin(d_module);
1184: END IF;
1185:
1186: l_doc_info := PO_PDOI_PARAMS.g_docs_info(p_doc_rec.interface_header_id);
1179: l_lines src_rule_lines_rec_type;
1180: BEGIN
1181: d_position := 0;
1182: IF (PO_LOG.d_proc) THEN
1183: PO_LOG.proc_begin(d_module);
1184: END IF;
1185:
1186: l_doc_info := PO_PDOI_PARAMS.g_docs_info(p_doc_rec.interface_header_id);
1187:
1196: ( p_doc_rec => p_doc_rec,
1197: x_lines => l_lines
1198: );
1199:
1200: IF (PO_LOG.d_stmt) THEN
1201: PO_LOG.stmt(d_module, d_position, '# of lines requiring src rules: ' ||
1202: l_lines.po_line_id_tbl.COUNT);
1203: END IF;
1204: END IF;
1197: x_lines => l_lines
1198: );
1199:
1200: IF (PO_LOG.d_stmt) THEN
1201: PO_LOG.stmt(d_module, d_position, '# of lines requiring src rules: ' ||
1202: l_lines.po_line_id_tbl.COUNT);
1203: END IF;
1204: END IF;
1205:
1205:
1206: d_position := 30;
1207: transfer_draft_to_txn (p_doc_rec => p_doc_rec);
1208:
1209: IF (PO_LOG.d_stmt) THEN
1210: PO_LOG.stmt(d_module, d_position, 'Called transfer draft to txn');
1211: END IF;
1212:
1213: IF (l_doc_info.has_lines_to_notify = FND_API.G_TRUE) THEN
1206: d_position := 30;
1207: transfer_draft_to_txn (p_doc_rec => p_doc_rec);
1208:
1209: IF (PO_LOG.d_stmt) THEN
1210: PO_LOG.stmt(d_module, d_position, 'Called transfer draft to txn');
1211: END IF;
1212:
1213: IF (l_doc_info.has_lines_to_notify = FND_API.G_TRUE) THEN
1214: -- set header level process code to NOTIFIED
1215: UPDATE po_headers_interface
1216: SET process_code = 'NOTIFIED'
1217: WHERE interface_header_id = p_doc_rec.interface_header_id;
1218:
1219: IF (PO_LOG.d_stmt) THEN
1220: PO_LOG.stmt(d_module, d_position, 'start price tolerance workflow');
1221: END IF;
1222:
1223: -- start workflow
1216: SET process_code = 'NOTIFIED'
1217: WHERE interface_header_id = p_doc_rec.interface_header_id;
1218:
1219: IF (PO_LOG.d_stmt) THEN
1220: PO_LOG.stmt(d_module, d_position, 'start price tolerance workflow');
1221: END IF;
1222:
1223: -- start workflow
1224: PO_PDOI_PRICE_TOLERANCE_PVT.start_price_tolerance_wf
1243: ( p_doc_rec => p_doc_rec,
1244: x_approval_method => l_approval_method
1245: );
1246:
1247: IF (PO_LOG.d_stmt) THEN
1248: PO_LOG.stmt(d_module, d_position, 'l_approval_method', l_approval_method);
1249: END IF;
1250: --bug 7277317 added a call for submission check
1251: submission_check
1244: x_approval_method => l_approval_method
1245: );
1246:
1247: IF (PO_LOG.d_stmt) THEN
1248: PO_LOG.stmt(d_module, d_position, 'l_approval_method', l_approval_method);
1249: END IF;
1250: --bug 7277317 added a call for submission check
1251: submission_check
1252: ( p_doc_rec => p_doc_rec,
1259: x_process_code := NULL;
1260: IF ( l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_INIT_APPROVAL) THEN
1261: d_position := 50;
1262:
1263: IF (PO_LOG.d_stmt) THEN
1264: PO_LOG.stmt(d_module, d_position, 'launch approval workflow');
1265: END IF;
1266:
1267: start_po_approval_workflow
1260: IF ( l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_INIT_APPROVAL) THEN
1261: d_position := 50;
1262:
1263: IF (PO_LOG.d_stmt) THEN
1264: PO_LOG.stmt(d_module, d_position, 'launch approval workflow');
1265: END IF;
1266:
1267: start_po_approval_workflow
1268: ( p_doc_rec => p_doc_rec
1289:
1290: IF (PO_PDOI_PARAMS.g_sys.when_to_archive_blanket = 'APPROVE') THEN
1291: d_position := 80;
1292:
1293: IF (PO_LOG.d_stmt) THEN
1294: PO_LOG.stmt(d_module, d_position, 'Need to archive');
1295: END IF;
1296:
1297: archive_po
1290: IF (PO_PDOI_PARAMS.g_sys.when_to_archive_blanket = 'APPROVE') THEN
1291: d_position := 80;
1292:
1293: IF (PO_LOG.d_stmt) THEN
1294: PO_LOG.stmt(d_module, d_position, 'Need to archive');
1295: END IF;
1296:
1297: archive_po
1298: ( p_doc_rec => p_doc_rec
1317: END IF;
1318:
1319: END IF;
1320:
1321: IF (PO_LOG.d_proc) THEN
1322: PO_LOG.proc_end(d_module);
1323: END IF;
1324: EXCEPTION
1325: WHEN OTHERS THEN
1318:
1319: END IF;
1320:
1321: IF (PO_LOG.d_proc) THEN
1322: PO_LOG.proc_end(d_module);
1323: END IF;
1324: EXCEPTION
1325: WHEN OTHERS THEN
1326: PO_MESSAGE_S.add_exc_msg
1360: l_lines src_rule_lines_rec_type;
1361: BEGIN
1362:
1363: d_position := 0;
1364: IF (PO_LOG.d_proc) THEN
1365: PO_LOG.proc_begin(d_module);
1366: END IF;
1367:
1368: assign_document_number ( p_doc_rec => p_doc_rec );
1361: BEGIN
1362:
1363: d_position := 0;
1364: IF (PO_LOG.d_proc) THEN
1365: PO_LOG.proc_begin(d_module);
1366: END IF;
1367:
1368: assign_document_number ( p_doc_rec => p_doc_rec );
1369:
1378: ( p_doc_rec => p_doc_rec,
1379: x_lines => l_lines
1380: );
1381:
1382: IF (PO_LOG.d_stmt) THEN
1383: PO_LOG.stmt(d_module, d_position, '# lines requiring src rules: ' || l_lines.po_line_id_tbl.COUNT);
1384: END IF;
1385: END IF;
1386:
1379: x_lines => l_lines
1380: );
1381:
1382: IF (PO_LOG.d_stmt) THEN
1383: PO_LOG.stmt(d_module, d_position, '# lines requiring src rules: ' || l_lines.po_line_id_tbl.COUNT);
1384: END IF;
1385: END IF;
1386:
1387: d_position := 30;
1392: ( p_doc_rec => p_doc_rec,
1393: x_approval_method => l_approval_method
1394: );
1395:
1396: IF (PO_LOG.d_stmt) THEN
1397: PO_LOG.stmt(d_module, d_position, 'l_approval_method', l_approval_method);
1398: END IF;
1399:
1400: IF (l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE) THEN
1393: x_approval_method => l_approval_method
1394: );
1395:
1396: IF (PO_LOG.d_stmt) THEN
1397: PO_LOG.stmt(d_module, d_position, 'l_approval_method', l_approval_method);
1398: END IF;
1399:
1400: IF (l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE) THEN
1401: IF (l_need_to_create_src_rules = FND_API.G_TRUE) THEN
1400: IF (l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE) THEN
1401: IF (l_need_to_create_src_rules = FND_API.G_TRUE) THEN
1402: d_position := 50;
1403:
1404: IF (PO_LOG.d_stmt) THEN
1405: PO_LOG.stmt(d_module, d_position, 'creating sourcing rules');
1406: END IF;
1407:
1408: process_sourcing_rules
1401: IF (l_need_to_create_src_rules = FND_API.G_TRUE) THEN
1402: d_position := 50;
1403:
1404: IF (PO_LOG.d_stmt) THEN
1405: PO_LOG.stmt(d_module, d_position, 'creating sourcing rules');
1406: END IF;
1407:
1408: process_sourcing_rules
1409: ( p_doc_rec => p_doc_rec,
1430: p_doc_rec => p_doc_rec
1431: );
1432: --
1433:
1434: IF (PO_LOG.d_proc) THEN
1435: PO_LOG.proc_end(d_module);
1436: END IF;
1437: EXCEPTION
1438: WHEN OTHERS THEN
1431: );
1432: --
1433:
1434: IF (PO_LOG.d_proc) THEN
1435: PO_LOG.proc_end(d_module);
1436: END IF;
1437: EXCEPTION
1438: WHEN OTHERS THEN
1439: PO_MESSAGE_S.add_exc_msg
1473: l_lines src_rule_lines_rec_type;
1474:
1475: BEGIN
1476: d_position := 0;
1477: IF (PO_LOG.d_proc) THEN
1478: PO_LOG.proc_begin(d_module);
1479: END IF;
1480:
1481: l_doc_info := PO_PDOI_PARAMS.g_docs_info(p_doc_rec.interface_header_id);
1474:
1475: BEGIN
1476: d_position := 0;
1477: IF (PO_LOG.d_proc) THEN
1478: PO_LOG.proc_begin(d_module);
1479: END IF;
1480:
1481: l_doc_info := PO_PDOI_PARAMS.g_docs_info(p_doc_rec.interface_header_id);
1482:
1491: ( p_doc_rec => p_doc_rec,
1492: x_lines => l_lines
1493: );
1494:
1495: IF (PO_LOG.d_stmt) THEN
1496: PO_LOG.stmt(d_module, d_position, '# lines requiring src rules: ' ||
1497: l_lines.po_line_id_tbl.COUNT);
1498: END IF;
1499: END IF;
1492: x_lines => l_lines
1493: );
1494:
1495: IF (PO_LOG.d_stmt) THEN
1496: PO_LOG.stmt(d_module, d_position, '# lines requiring src rules: ' ||
1497: l_lines.po_line_id_tbl.COUNT);
1498: END IF;
1499: END IF;
1500:
1508: UPDATE po_headers_interface
1509: SET process_code = 'NOTIFIED'
1510: WHERE interface_header_id = p_doc_rec.interface_header_id;
1511:
1512: IF (PO_LOG.d_stmt) THEN
1513: PO_LOG.stmt(d_module, d_position, 'start price tolerance workflow');
1514: END IF;
1515:
1516: -- start workflow
1509: SET process_code = 'NOTIFIED'
1510: WHERE interface_header_id = p_doc_rec.interface_header_id;
1511:
1512: IF (PO_LOG.d_stmt) THEN
1513: PO_LOG.stmt(d_module, d_position, 'start price tolerance workflow');
1514: END IF;
1515:
1516: -- start workflow
1517: PO_PDOI_PRICE_TOLERANCE_PVT.start_price_tolerance_wf
1537: ( p_doc_rec => p_doc_rec,
1538: x_approval_method => l_approval_method
1539: );
1540:
1541: IF (PO_LOG.d_stmt) THEN
1542: PO_LOG.stmt(d_module, d_position, 'l_approval_method', l_approval_method);
1543: END IF;
1544:
1545: IF (l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE) THEN
1538: x_approval_method => l_approval_method
1539: );
1540:
1541: IF (PO_LOG.d_stmt) THEN
1542: PO_LOG.stmt(d_module, d_position, 'l_approval_method', l_approval_method);
1543: END IF;
1544:
1545: IF (l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE) THEN
1546: IF (l_need_to_create_src_rules = FND_API.G_TRUE) THEN
1545: IF (l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE) THEN
1546: IF (l_need_to_create_src_rules = FND_API.G_TRUE) THEN
1547: d_position := 60;
1548:
1549: IF (PO_LOG.d_stmt) THEN
1550: PO_LOG.stmt(d_module, d_position, 'Creating Sourcing rules');
1551: END IF;
1552:
1553: process_sourcing_rules
1546: IF (l_need_to_create_src_rules = FND_API.G_TRUE) THEN
1547: d_position := 60;
1548:
1549: IF (PO_LOG.d_stmt) THEN
1550: PO_LOG.stmt(d_module, d_position, 'Creating Sourcing rules');
1551: END IF;
1552:
1553: process_sourcing_rules
1554: ( p_doc_rec => p_doc_rec,
1569: p_doc_rec => p_doc_rec
1570: );
1571: --
1572:
1573: IF (PO_LOG.d_proc) THEN
1574: PO_LOG.proc_end(d_module);
1575: END IF;
1576: EXCEPTION
1577: WHEN OTHERS THEN
1570: );
1571: --
1572:
1573: IF (PO_LOG.d_proc) THEN
1574: PO_LOG.proc_end(d_module);
1575: END IF;
1576: EXCEPTION
1577: WHEN OTHERS THEN
1578: PO_MESSAGE_S.add_exc_msg
1613: p_return_status VARCHAR2(1); -- bug 7277317
1614: BEGIN
1615:
1616: d_position := 0;
1617: IF (PO_LOG.d_proc) THEN
1618: PO_LOG.proc_begin(d_module);
1619: END IF;
1620:
1621: assign_document_number ( p_doc_rec => p_doc_rec );
1614: BEGIN
1615:
1616: d_position := 0;
1617: IF (PO_LOG.d_proc) THEN
1618: PO_LOG.proc_begin(d_module);
1619: END IF;
1620:
1621: assign_document_number ( p_doc_rec => p_doc_rec );
1622:
1646: ( p_doc_rec => p_doc_rec,
1647: x_approval_method => l_approval_method
1648: );
1649:
1650: IF (PO_LOG.d_stmt) THEN
1651: PO_LOG.stmt(d_module, d_position, 'l_approval_method', l_approval_method);
1652: END IF;
1653: --bug 7277317 added a call for submission check
1654: submission_check
1647: x_approval_method => l_approval_method
1648: );
1649:
1650: IF (PO_LOG.d_stmt) THEN
1651: PO_LOG.stmt(d_module, d_position, 'l_approval_method', l_approval_method);
1652: END IF;
1653: --bug 7277317 added a call for submission check
1654: submission_check
1655: ( p_doc_rec => p_doc_rec,
1661: x_process_code := NULL;
1662: IF ( l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_INIT_APPROVAL) THEN
1663: d_position := 60;
1664:
1665: IF (PO_LOG.d_stmt) THEN
1666: PO_LOG.stmt(d_module, d_position, 'launching approval workflow');
1667: END IF;
1668:
1669: start_po_approval_workflow
1662: IF ( l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_INIT_APPROVAL) THEN
1663: d_position := 60;
1664:
1665: IF (PO_LOG.d_stmt) THEN
1666: PO_LOG.stmt(d_module, d_position, 'launching approval workflow');
1667: END IF;
1668:
1669: start_po_approval_workflow
1670: ( p_doc_rec => p_doc_rec
1679: p_new_auth_status => l_new_auth_status
1680: );
1681:
1682:
1683: IF (PO_LOG.d_stmt) THEN
1684: PO_LOG.stmt(d_module, d_position, 'l_need_to_encumber', l_need_to_encumber);
1685: END IF;
1686:
1687: IF ( l_need_to_encumber = FND_API.G_TRUE) THEN
1680: );
1681:
1682:
1683: IF (PO_LOG.d_stmt) THEN
1684: PO_LOG.stmt(d_module, d_position, 'l_need_to_encumber', l_need_to_encumber);
1685: END IF;
1686:
1687: IF ( l_need_to_encumber = FND_API.G_TRUE) THEN
1688: d_position := 80;
1701: );
1702:
1703: IF (l_fund_reserve_result = FND_API.G_FALSE) THEN
1704: d_position := 100;
1705: IF (PO_LOG.d_stmt) THEN
1706: PO_LOG.stmt(d_module, d_position, 'failed fund reservation');
1707: END IF;
1708:
1709: /*6851752 Start
1702:
1703: IF (l_fund_reserve_result = FND_API.G_FALSE) THEN
1704: d_position := 100;
1705: IF (PO_LOG.d_stmt) THEN
1706: PO_LOG.stmt(d_module, d_position, 'failed fund reservation');
1707: END IF;
1708:
1709: /*6851752 Start
1710: Set Authorization Status to PRE-APPROVED, when it fails funds check */
1726: Launch Approval, when it fails funds check and the Authrization status is PRE-APPROVED*/
1727:
1728: IF (l_fund_reserve_result = FND_API.G_FALSE) AND (l_new_auth_status = 'PRE-APPROVED') THEN
1729:
1730: IF (PO_LOG.d_stmt) THEN
1731: PO_LOG.stmt(d_module, d_position, 'launching approval workflow');
1732: END IF;
1733: start_po_approval_workflow
1734: ( p_doc_rec => p_doc_rec
1727:
1728: IF (l_fund_reserve_result = FND_API.G_FALSE) AND (l_new_auth_status = 'PRE-APPROVED') THEN
1729:
1730: IF (PO_LOG.d_stmt) THEN
1731: PO_LOG.stmt(d_module, d_position, 'launching approval workflow');
1732: END IF;
1733: start_po_approval_workflow
1734: ( p_doc_rec => p_doc_rec
1735: );
1740:
1741: IF (l_new_auth_status = 'APPROVED') THEN
1742: IF (PO_PDOI_PARAMS.g_sys.when_to_archive_std_po = 'APPROVE') THEN
1743: d_position := 120;
1744: IF (PO_LOG.d_stmt) THEN
1745: PO_LOG.stmt(d_module, d_position, 'archiving...');
1746: END IF;
1747:
1748: archive_po
1741: IF (l_new_auth_status = 'APPROVED') THEN
1742: IF (PO_PDOI_PARAMS.g_sys.when_to_archive_std_po = 'APPROVE') THEN
1743: d_position := 120;
1744: IF (PO_LOG.d_stmt) THEN
1745: PO_LOG.stmt(d_module, d_position, 'archiving...');
1746: END IF;
1747:
1748: archive_po
1749: ( p_doc_rec => p_doc_rec
1768: x_process_code := 'I';
1769: END IF;
1770: END IF;
1771:
1772: IF (PO_LOG.d_proc) THEN
1773: PO_LOG.proc_end(d_module);
1774: END IF;
1775:
1776: EXCEPTION
1769: END IF;
1770: END IF;
1771:
1772: IF (PO_LOG.d_proc) THEN
1773: PO_LOG.proc_end(d_module);
1774: END IF;
1775:
1776: EXCEPTION
1777: WHEN OTHERS THEN
1815:
1816: p_return_status VARCHAR2(1); -- bug 7277317
1817: BEGIN
1818: d_position := 0;
1819: IF (PO_LOG.d_proc) THEN
1820: PO_LOG.proc_begin(d_module);
1821: END IF;
1822:
1823: transfer_draft_to_txn (p_doc_rec => p_doc_rec);
1816: p_return_status VARCHAR2(1); -- bug 7277317
1817: BEGIN
1818: d_position := 0;
1819: IF (PO_LOG.d_proc) THEN
1820: PO_LOG.proc_begin(d_module);
1821: END IF;
1822:
1823: transfer_draft_to_txn (p_doc_rec => p_doc_rec);
1824:
1838: ( p_doc_rec => p_doc_rec,
1839: x_approval_method => l_approval_method
1840: );
1841:
1842: IF (PO_LOG.d_stmt) THEN
1843: PO_LOG.stmt(d_module, d_position, 'l_approval_method', l_approval_method);
1844: END IF;
1845: --bug 7277317 added a call for submission check
1846: submission_check
1839: x_approval_method => l_approval_method
1840: );
1841:
1842: IF (PO_LOG.d_stmt) THEN
1843: PO_LOG.stmt(d_module, d_position, 'l_approval_method', l_approval_method);
1844: END IF;
1845: --bug 7277317 added a call for submission check
1846: submission_check
1847: ( p_doc_rec => p_doc_rec,
1852: IF (p_return_status = FND_API.G_RET_STS_SUCCESS) THEN
1853: x_process_code := NULL;
1854: IF ( l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_INIT_APPROVAL) THEN
1855: d_position := 40;
1856: IF (PO_LOG.d_stmt) THEN
1857: PO_LOG.stmt(d_module, d_position, 'start approval workflow');
1858: END IF;
1859:
1860: start_po_approval_workflow
1853: x_process_code := NULL;
1854: IF ( l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_INIT_APPROVAL) THEN
1855: d_position := 40;
1856: IF (PO_LOG.d_stmt) THEN
1857: PO_LOG.stmt(d_module, d_position, 'start approval workflow');
1858: END IF;
1859:
1860: start_po_approval_workflow
1861: ( p_doc_rec => p_doc_rec
1870: ( p_doc_rec => p_doc_rec,
1871: p_new_auth_status => l_new_auth_status
1872: );
1873:
1874: IF (PO_LOG.d_stmt) THEN
1875: PO_LOG.stmt(d_module, d_position, 'l_need_to_encumber', l_need_to_encumber);
1876: END IF;
1877:
1878: IF (l_need_to_encumber = FND_API.G_TRUE) THEN
1871: p_new_auth_status => l_new_auth_status
1872: );
1873:
1874: IF (PO_LOG.d_stmt) THEN
1875: PO_LOG.stmt(d_module, d_position, 'l_need_to_encumber', l_need_to_encumber);
1876: END IF;
1877:
1878: IF (l_need_to_encumber = FND_API.G_TRUE) THEN
1879: d_position := 60;
1884: );
1885:
1886: IF (l_fund_reserve_result = FND_API.G_FALSE) THEN
1887: d_position := 70;
1888: IF (PO_LOG.d_stmt) THEN
1889: PO_LOG.stmt(d_module, d_position, 'l_approval_method', l_approval_method);
1890: END IF;
1891:
1892: -- No need to set the authorziation_status because transfer program
1885:
1886: IF (l_fund_reserve_result = FND_API.G_FALSE) THEN
1887: d_position := 70;
1888: IF (PO_LOG.d_stmt) THEN
1889: PO_LOG.stmt(d_module, d_position, 'l_approval_method', l_approval_method);
1890: END IF;
1891:
1892: -- No need to set the authorziation_status because transfer program
1893: -- should have handled the approval status properly
1905:
1906: IF (l_new_auth_status = 'APPROVED') THEN
1907: IF (PO_PDOI_PARAMS.g_sys.when_to_archive_std_po = 'APPROVE') THEN
1908: d_position := 90;
1909: IF (PO_LOG.d_stmt) THEN
1910: PO_LOG.stmt(d_module, d_position, 'l_archiving...');
1911: END IF;
1912:
1913: archive_po
1906: IF (l_new_auth_status = 'APPROVED') THEN
1907: IF (PO_PDOI_PARAMS.g_sys.when_to_archive_std_po = 'APPROVE') THEN
1908: d_position := 90;
1909: IF (PO_LOG.d_stmt) THEN
1910: PO_LOG.stmt(d_module, d_position, 'l_archiving...');
1911: END IF;
1912:
1913: archive_po
1914: ( p_doc_rec => p_doc_rec
1933: x_process_code := 'I';
1934: END IF;
1935: END IF;
1936:
1937: IF (PO_LOG.d_proc) THEN
1938: PO_LOG.proc_end(d_module);
1939: END IF;
1940:
1941: EXCEPTION
1934: END IF;
1935: END IF;
1936:
1937: IF (PO_LOG.d_proc) THEN
1938: PO_LOG.proc_end(d_module);
1939: END IF;
1940:
1941: EXCEPTION
1942: WHEN OTHERS THEN
1973:
1974: BEGIN
1975:
1976: d_position := 0;
1977: IF (PO_LOG.d_proc) THEN
1978: PO_LOG.proc_begin(d_module);
1979: END IF;
1980:
1981: l_expiration_date := p_doc_rec.intf_start_date - 1;
1974: BEGIN
1975:
1976: d_position := 0;
1977: IF (PO_LOG.d_proc) THEN
1978: PO_LOG.proc_begin(d_module);
1979: END IF;
1980:
1981: l_expiration_date := p_doc_rec.intf_start_date - 1;
1982:
1979: END IF;
1980:
1981: l_expiration_date := p_doc_rec.intf_start_date - 1;
1982:
1983: IF (PO_LOG.d_stmt) THEN
1984: PO_LOG.stmt(d_module, d_position, 'l_expiration_date', l_expiration_date);
1985: END IF;
1986:
1987: UPDATE po_headers_all
1980:
1981: l_expiration_date := p_doc_rec.intf_start_date - 1;
1982:
1983: IF (PO_LOG.d_stmt) THEN
1984: PO_LOG.stmt(d_module, d_position, 'l_expiration_date', l_expiration_date);
1985: END IF;
1986:
1987: UPDATE po_headers_all
1988: SET start_date = NVL(start_date, l_expiration_date),
1990: last_updated_by = FND_GLOBAL.user_id,
1991: last_update_date = SYSDATE
1992: WHERE po_header_id = p_doc_rec.orig_po_header_id;
1993:
1994: IF (PO_LOG.d_proc) THEN
1995: PO_LOG.proc_end(d_module);
1996: END IF;
1997: EXCEPTION
1998: WHEN OTHERS THEN
1991: last_update_date = SYSDATE
1992: WHERE po_header_id = p_doc_rec.orig_po_header_id;
1993:
1994: IF (PO_LOG.d_proc) THEN
1995: PO_LOG.proc_end(d_module);
1996: END IF;
1997: EXCEPTION
1998: WHEN OTHERS THEN
1999: PO_MESSAGE_S.add_exc_msg
2030:
2031: BEGIN
2032:
2033: d_position := 0;
2034: IF (PO_LOG.d_proc) THEN
2035: PO_LOG.proc_begin(d_module);
2036: END IF;
2037:
2038: -- bug5024833
2031: BEGIN
2032:
2033: d_position := 0;
2034: IF (PO_LOG.d_proc) THEN
2035: PO_LOG.proc_begin(d_module);
2036: END IF;
2037:
2038: -- bug5024833
2039: -- Do not generate the po number from the system if number generation
2048: PO_PDOI_PARAMS.g_sys.user_defined_po_num_code = 'MANUAL')) THEN
2049:
2050: d_position := 10;
2051:
2052: IF (PO_LOG.d_stmt) THEN
2053: PO_LOG.stmt(d_module, d_position, 'Manual numbering. No need to generate new number');
2054: END IF;
2055:
2056: ELSIF (p_doc_rec.doc_num_provided = 'Y') THEN
2049:
2050: d_position := 10;
2051:
2052: IF (PO_LOG.d_stmt) THEN
2053: PO_LOG.stmt(d_module, d_position, 'Manual numbering. No need to generate new number');
2054: END IF;
2055:
2056: ELSIF (p_doc_rec.doc_num_provided = 'Y') THEN
2057: -- bug5028275
2057: -- bug5028275
2058: -- If user provides their own document number, use the one they provide
2059: d_position := 20;
2060:
2061: IF (PO_LOG.d_stmt) THEN
2062: PO_LOG.stmt(d_module, d_position, 'User provides document number. No need to generate new number');
2063: END IF;
2064:
2065: ELSE
2058: -- If user provides their own document number, use the one they provide
2059: d_position := 20;
2060:
2061: IF (PO_LOG.d_stmt) THEN
2062: PO_LOG.stmt(d_module, d_position, 'User provides document number. No need to generate new number');
2063: END IF;
2064:
2065: ELSE
2066: d_position := 30;
2079: ( x_table_name => 'PO_HEADERS'
2080: );
2081: END IF;
2082:
2083: IF (PO_LOG.d_stmt) THEN
2084: PO_LOG.stmt(d_module, d_position, 'Get new document number');
2085: PO_LOG.stmt(d_module, d_position, 'l_document_num', l_document_num);
2086: END IF;
2087:
2080: );
2081: END IF;
2082:
2083: IF (PO_LOG.d_stmt) THEN
2084: PO_LOG.stmt(d_module, d_position, 'Get new document number');
2085: PO_LOG.stmt(d_module, d_position, 'l_document_num', l_document_num);
2086: END IF;
2087:
2088: d_position := 40;
2081: END IF;
2082:
2083: IF (PO_LOG.d_stmt) THEN
2084: PO_LOG.stmt(d_module, d_position, 'Get new document number');
2085: PO_LOG.stmt(d_module, d_position, 'l_document_num', l_document_num);
2086: END IF;
2087:
2088: d_position := 40;
2089:
2092: WHERE po_header_id = p_doc_rec.po_header_id;
2093:
2094: END IF;
2095:
2096: IF (PO_LOG.d_proc) THEN
2097: PO_LOG.proc_end(d_module);
2098: END IF;
2099:
2100: EXCEPTION
2093:
2094: END IF;
2095:
2096: IF (PO_LOG.d_proc) THEN
2097: PO_LOG.proc_end(d_module);
2098: END IF;
2099:
2100: EXCEPTION
2101: WHEN OTHERS THEN
2129: d_position NUMBER;
2130:
2131: BEGIN
2132: d_position := 0;
2133: IF (PO_LOG.d_proc) THEN
2134: PO_LOG.proc_begin(d_module);
2135: END IF;
2136:
2137: IF ( NVL(p_doc_rec.load_sourcing_rules_flag,
2130:
2131: BEGIN
2132: d_position := 0;
2133: IF (PO_LOG.d_proc) THEN
2134: PO_LOG.proc_begin(d_module);
2135: END IF;
2136:
2137: IF ( NVL(p_doc_rec.load_sourcing_rules_flag,
2138: PO_PDOI_PARAMS.g_request.create_sourcing_rules_flag) = 'Y') THEN
2175: d_position NUMBER;
2176:
2177: BEGIN
2178: d_position := 0;
2179: IF (PO_LOG.d_proc) THEN
2180: PO_LOG.proc_begin(d_module);
2181: END IF;
2182:
2183: --SQL What: Select columns needed for calling sourcing rule/asl creation
2176:
2177: BEGIN
2178: d_position := 0;
2179: IF (PO_LOG.d_proc) THEN
2180: PO_LOG.proc_begin(d_module);
2181: END IF;
2182:
2183: --SQL What: Select columns needed for calling sourcing rule/asl creation
2184: -- API. Lines that are in draft but not transaction table will
2218: (SELECT 1
2219: FROM po_lines_all PLA
2220: WHERE PLD.po_line_id = PLA.po_line_id);
2221:
2222: IF (PO_LOG.d_proc) THEN
2223: PO_LOG.proc_end(d_module);
2224: END IF;
2225: EXCEPTION
2226: WHEN OTHERS THEN
2219: FROM po_lines_all PLA
2220: WHERE PLD.po_line_id = PLA.po_line_id);
2221:
2222: IF (PO_LOG.d_proc) THEN
2223: PO_LOG.proc_end(d_module);
2224: END IF;
2225: EXCEPTION
2226: WHEN OTHERS THEN
2227: PO_MESSAGE_S.add_exc_msg
2269: l_msg_data VARCHAR2(2000);
2270: BEGIN
2271:
2272: d_position := 0;
2273: IF (PO_LOG.d_proc) THEN
2274: PO_LOG.proc_begin(d_module);
2275: END IF;
2276:
2277: IF (p_lines.po_line_id_tbl IS NULL) THEN
2270: BEGIN
2271:
2272: d_position := 0;
2273: IF (PO_LOG.d_proc) THEN
2274: PO_LOG.proc_begin(d_module);
2275: END IF;
2276:
2277: IF (p_lines.po_line_id_tbl IS NULL) THEN
2278: d_position := 10;
2288:
2289: FOR i IN 1..p_lines.po_line_id_tbl.COUNT LOOP
2290: d_position := 30;
2291:
2292: IF (PO_LOG.d_stmt) THEN
2293: PO_LOG.stmt(d_module, d_position, 'processing po_line_id: ' ||
2294: p_lines.po_line_id_tbl(i));
2295: END IF;
2296:
2289: FOR i IN 1..p_lines.po_line_id_tbl.COUNT LOOP
2290: d_position := 30;
2291:
2292: IF (PO_LOG.d_stmt) THEN
2293: PO_LOG.stmt(d_module, d_position, 'processing po_line_id: ' ||
2294: p_lines.po_line_id_tbl(i));
2295: END IF;
2296:
2297: PO_CREATE_SR_ASL.create_sourcing_rules_asl
2325: );
2326:
2327: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
2328: d_position := 40;
2329: IF (PO_LOG.d_stmt) THEN
2330: PO_LOG.stmt(d_module, d_position, 'Sourcing rule creation failed' ||
2331: ' with status: ' || l_return_status || '. Continue to ' ||
2332: 'process.' );
2333: END IF;
2326:
2327: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
2328: d_position := 40;
2329: IF (PO_LOG.d_stmt) THEN
2330: PO_LOG.stmt(d_module, d_position, 'Sourcing rule creation failed' ||
2331: ' with status: ' || l_return_status || '. Continue to ' ||
2332: 'process.' );
2333: END IF;
2334:
2335: END IF;
2336: END LOOP;
2337: END IF;
2338:
2339: IF (PO_LOG.d_proc) THEN
2340: PO_LOG.proc_end(d_module);
2341: END IF;
2342: EXCEPTION
2343: WHEN OTHERS THEN
2336: END LOOP;
2337: END IF;
2338:
2339: IF (PO_LOG.d_proc) THEN
2340: PO_LOG.proc_end(d_module);
2341: END IF;
2342: EXCEPTION
2343: WHEN OTHERS THEN
2344: PO_MESSAGE_S.add_exc_msg
2373: l_return_status VARCHAR2(1);
2374:
2375: BEGIN
2376: d_position := 0;
2377: IF (PO_LOG.d_proc) THEN
2378: PO_LOG.proc_begin(d_module);
2379: END IF;
2380:
2381: -- bug5149827
2374:
2375: BEGIN
2376: d_position := 0;
2377: IF (PO_LOG.d_proc) THEN
2378: PO_LOG.proc_begin(d_module);
2379: END IF;
2380:
2381: -- bug5149827
2382: -- Delete draft if buyer initiates PDOI or document is not GA
2409:
2410: PO_PDOI_UTL.commit_work;
2411: SAVEPOINT po_pdoi_doc_postproc_sp;
2412:
2413: IF (PO_LOG.d_proc) THEN
2414: PO_LOG.proc_end(d_module);
2415: END IF;
2416: EXCEPTION
2417: WHEN OTHERS THEN
2410: PO_PDOI_UTL.commit_work;
2411: SAVEPOINT po_pdoi_doc_postproc_sp;
2412:
2413: IF (PO_LOG.d_proc) THEN
2414: PO_LOG.proc_end(d_module);
2415: END IF;
2416: EXCEPTION
2417: WHEN OTHERS THEN
2418: PO_MESSAGE_S.add_exc_msg
2452:
2453: l_intended_approval_status PO_HEADERS_INTERFACE.approval_status%TYPE;
2454: BEGIN
2455: d_position := 0;
2456: IF (PO_LOG.d_proc) THEN
2457: PO_LOG.proc_begin(d_module);
2458: END IF;
2459:
2460: x_approval_method := PO_PDOI_CONSTANTS.g_appr_method_NONE;
2453: l_intended_approval_status PO_HEADERS_INTERFACE.approval_status%TYPE;
2454: BEGIN
2455: d_position := 0;
2456: IF (PO_LOG.d_proc) THEN
2457: PO_LOG.proc_begin(d_module);
2458: END IF;
2459:
2460: x_approval_method := PO_PDOI_CONSTANTS.g_appr_method_NONE;
2461:
2494: END IF;
2495:
2496: END IF;
2497:
2498: IF (PO_LOG.d_proc) THEN
2499: PO_LOG.proc_end(d_module);
2500: END IF;
2501: EXCEPTION
2502: WHEN OTHERS THEN
2495:
2496: END IF;
2497:
2498: IF (PO_LOG.d_proc) THEN
2499: PO_LOG.proc_end(d_module);
2500: END IF;
2501: EXCEPTION
2502: WHEN OTHERS THEN
2503: PO_MESSAGE_S.add_exc_msg
2538: l_msg_data VARCHAR2(2000);
2539:
2540: BEGIN
2541: d_position := 0;
2542: IF (PO_LOG.d_proc) THEN
2543: PO_LOG.proc_begin(d_module);
2544: END IF;
2545:
2546: PO_PDOI_UTL.get_processing_doctype_info
2539:
2540: BEGIN
2541: d_position := 0;
2542: IF (PO_LOG.d_proc) THEN
2543: PO_LOG.proc_begin(d_module);
2544: END IF;
2545:
2546: PO_PDOI_UTL.get_processing_doctype_info
2547: ( x_doc_type => l_doc_type,
2561: );
2562:
2563: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
2564: d_position := 20;
2565: IF (PO_LOG.d_stmt) THEN
2566: PO_LOG.stmt(d_module, d_position, 'Archiving failed');
2567: END IF;
2568: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2569: END IF;
2562:
2563: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
2564: d_position := 20;
2565: IF (PO_LOG.d_stmt) THEN
2566: PO_LOG.stmt(d_module, d_position, 'Archiving failed');
2567: END IF;
2568: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2569: END IF;
2570:
2567: END IF;
2568: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2569: END IF;
2570:
2571: IF (PO_LOG.d_proc) THEN
2572: PO_LOG.proc_end(d_module);
2573: END IF;
2574: EXCEPTION
2575: WHEN OTHERS THEN
2568: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2569: END IF;
2570:
2571: IF (PO_LOG.d_proc) THEN
2572: PO_LOG.proc_end(d_module);
2573: END IF;
2574: EXCEPTION
2575: WHEN OTHERS THEN
2576: PO_MESSAGE_S.add_exc_msg
2612:
2613: BEGIN
2614:
2615: d_position := 0;
2616: IF (PO_LOG.d_proc) THEN
2617: PO_LOG.proc_begin(d_module);
2618: END IF;
2619:
2620: IF (PO_PDOI_PARAMS.g_request.document_type IN
2613: BEGIN
2614:
2615: d_position := 0;
2616: IF (PO_LOG.d_proc) THEN
2617: PO_LOG.proc_begin(d_module);
2618: END IF;
2619:
2620: IF (PO_PDOI_PARAMS.g_request.document_type IN
2621: (PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET,
2643: l_approved_flag := NULL;
2644: l_approved_date := NULL;
2645: END IF;
2646:
2647: IF (PO_LOG.d_stmt) THEN
2648: PO_LOG.stmt(d_module, d_position, 'p_auth_status', p_auth_status);
2649: PO_LOG.stmt(d_module, d_position, 'l_approved_flag', l_approved_flag);
2650: PO_LOG.stmt(d_module, d_position, 'l_approved_date', l_approved_date);
2651: END IF;
2644: l_approved_date := NULL;
2645: END IF;
2646:
2647: IF (PO_LOG.d_stmt) THEN
2648: PO_LOG.stmt(d_module, d_position, 'p_auth_status', p_auth_status);
2649: PO_LOG.stmt(d_module, d_position, 'l_approved_flag', l_approved_flag);
2650: PO_LOG.stmt(d_module, d_position, 'l_approved_date', l_approved_date);
2651: END IF;
2652:
2645: END IF;
2646:
2647: IF (PO_LOG.d_stmt) THEN
2648: PO_LOG.stmt(d_module, d_position, 'p_auth_status', p_auth_status);
2649: PO_LOG.stmt(d_module, d_position, 'l_approved_flag', l_approved_flag);
2650: PO_LOG.stmt(d_module, d_position, 'l_approved_date', l_approved_date);
2651: END IF;
2652:
2653: d_position := 10;
2646:
2647: IF (PO_LOG.d_stmt) THEN
2648: PO_LOG.stmt(d_module, d_position, 'p_auth_status', p_auth_status);
2649: PO_LOG.stmt(d_module, d_position, 'l_approved_flag', l_approved_flag);
2650: PO_LOG.stmt(d_module, d_position, 'l_approved_date', l_approved_date);
2651: END IF;
2652:
2653: d_position := 10;
2654: UPDATE po_headers_all
2663: WHERE po_header_id = p_doc_rec.po_header_id;
2664:
2665: IF (p_auth_status = 'APPROVED') THEN
2666: d_position := 20;
2667: IF (PO_LOG.d_stmt) THEN
2668: PO_LOG.stmt(d_module, d_position, 'Update shipment approval status');
2669: END IF;
2670:
2671: -- Shipments/Price Breaks should be marked as APPROVED if the document
2664:
2665: IF (p_auth_status = 'APPROVED') THEN
2666: d_position := 20;
2667: IF (PO_LOG.d_stmt) THEN
2668: PO_LOG.stmt(d_module, d_position, 'Update shipment approval status');
2669: END IF;
2670:
2671: -- Shipments/Price Breaks should be marked as APPROVED if the document
2672: -- is imported as approved
2680: AND shipment_type IN ('STANDARD', 'PRICE BREAK')
2681: AND NVL(approved_flag, 'N') <> 'Y';
2682:
2683: d_position := 30;
2684: IF (PO_LOG.d_stmt) THEN
2685: PO_LOG.stmt(d_module, d_position, 'Update action history');
2686: END IF;
2687: -- need to update action history when we approve
2688: PO_FORWARD_SV1.update_action_history
2681: AND NVL(approved_flag, 'N') <> 'Y';
2682:
2683: d_position := 30;
2684: IF (PO_LOG.d_stmt) THEN
2685: PO_LOG.stmt(d_module, d_position, 'Update action history');
2686: END IF;
2687: -- need to update action history when we approve
2688: PO_FORWARD_SV1.update_action_history
2689: ( x_object_id => p_doc_rec.po_header_id,
2700: ( p_po_header_id => p_doc_rec.po_header_id
2701: );
2702: END IF;
2703:
2704: IF (PO_LOG.d_proc) THEN
2705: PO_LOG.proc_end(d_module);
2706: END IF;
2707: EXCEPTION
2708: WHEN OTHERS THEN
2701: );
2702: END IF;
2703:
2704: IF (PO_LOG.d_proc) THEN
2705: PO_LOG.proc_end(d_module);
2706: END IF;
2707: EXCEPTION
2708: WHEN OTHERS THEN
2709: PO_MESSAGE_S.add_exc_msg
2748: l_online_report_id NUMBER;
2749:
2750: BEGIN
2751: d_position := 0;
2752: IF (PO_LOG.d_proc) THEN
2753: PO_LOG.proc_begin(d_module);
2754: END IF;
2755:
2756: x_result := FND_API.G_TRUE; -- bug4907624
2749:
2750: BEGIN
2751: d_position := 0;
2752: IF (PO_LOG.d_proc) THEN
2753: PO_LOG.proc_begin(d_module);
2754: END IF;
2755:
2756: x_result := FND_API.G_TRUE; -- bug4907624
2757:
2787:
2788: IF (l_return_status IN (FND_API.G_RET_STS_ERROR,
2789: FND_API.G_RET_STS_UNEXP_ERROR)) THEN
2790: d_position := 30;
2791: IF (PO_LOG.d_stmt) THEN
2792: PO_LOG.stmt(d_module, d_position, 'Encumbrance returned system error');
2793: END IF;
2794:
2795: x_result := FND_API.G_FALSE; -- bug4907624
2788: IF (l_return_status IN (FND_API.G_RET_STS_ERROR,
2789: FND_API.G_RET_STS_UNEXP_ERROR)) THEN
2790: d_position := 30;
2791: IF (PO_LOG.d_stmt) THEN
2792: PO_LOG.stmt(d_module, d_position, 'Encumbrance returned system error');
2793: END IF;
2794:
2795: x_result := FND_API.G_FALSE; -- bug4907624
2796: ELSE
2797: IF (l_po_return_code IN (PO_DOCUMENT_FUNDS_PVT.g_return_SUCCESS,
2798: PO_DOCUMENT_FUNDS_PVT.g_return_WARNING)) THEN
2799:
2800: d_position := 40;
2801: IF (PO_LOG.d_stmt) THEN
2802: PO_LOG.stmt(d_module, d_position, 'l_po_return_code', l_po_return_code);
2803: END IF;
2804:
2805: ELSE
2798: PO_DOCUMENT_FUNDS_PVT.g_return_WARNING)) THEN
2799:
2800: d_position := 40;
2801: IF (PO_LOG.d_stmt) THEN
2802: PO_LOG.stmt(d_module, d_position, 'l_po_return_code', l_po_return_code);
2803: END IF;
2804:
2805: ELSE
2806: d_position := 50;
2803: END IF;
2804:
2805: ELSE
2806: d_position := 50;
2807: IF (PO_LOG.d_stmt) THEN
2808: PO_LOG.stmt(d_module, d_position, 'Fund Reservation failed');
2809: END IF;
2810: x_result := FND_API.G_FALSE; -- bug4907624
2811: END IF;
2804:
2805: ELSE
2806: d_position := 50;
2807: IF (PO_LOG.d_stmt) THEN
2808: PO_LOG.stmt(d_module, d_position, 'Fund Reservation failed');
2809: END IF;
2810: x_result := FND_API.G_FALSE; -- bug4907624
2811: END IF;
2812:
2811: END IF;
2812:
2813: END IF;
2814:
2815: IF (PO_LOG.d_proc) THEN
2816: PO_LOG.proc_end(d_module);
2817: END IF;
2818: EXCEPTION
2819: WHEN OTHERS THEN
2812:
2813: END IF;
2814:
2815: IF (PO_LOG.d_proc) THEN
2816: PO_LOG.proc_end(d_module);
2817: END IF;
2818: EXCEPTION
2819: WHEN OTHERS THEN
2820: PO_MESSAGE_S.add_exc_msg
2854: l_need_to_encumber VARCHAR2(1);
2855:
2856: BEGIN
2857: d_position := 0;
2858: IF (PO_LOG.d_proc) THEN
2859: PO_LOG.proc_begin(d_module);
2860: END IF;
2861:
2862: -- Encumbrance is required when:
2855:
2856: BEGIN
2857: d_position := 0;
2858: IF (PO_LOG.d_proc) THEN
2859: PO_LOG.proc_begin(d_module);
2860: END IF;
2861:
2862: -- Encumbrance is required when:
2863: -- For standard PO: If document is approved and po encumbrance is turned on
2892: -- for other documents, we do not need to encumber
2893: l_need_to_encumber := FND_API.G_FALSE;
2894: END IF;
2895:
2896: IF (PO_LOG.d_stmt) THEN
2897: PO_LOG.stmt(d_module, d_position, 'l_need_to_encumber', l_need_to_encumber);
2898: END IF;
2899:
2900: IF (PO_LOG.d_proc) THEN
2893: l_need_to_encumber := FND_API.G_FALSE;
2894: END IF;
2895:
2896: IF (PO_LOG.d_stmt) THEN
2897: PO_LOG.stmt(d_module, d_position, 'l_need_to_encumber', l_need_to_encumber);
2898: END IF;
2899:
2900: IF (PO_LOG.d_proc) THEN
2901: PO_LOG.proc_end(d_module);
2896: IF (PO_LOG.d_stmt) THEN
2897: PO_LOG.stmt(d_module, d_position, 'l_need_to_encumber', l_need_to_encumber);
2898: END IF;
2899:
2900: IF (PO_LOG.d_proc) THEN
2901: PO_LOG.proc_end(d_module);
2902: END IF;
2903:
2904: RETURN l_need_to_encumber;
2897: PO_LOG.stmt(d_module, d_position, 'l_need_to_encumber', l_need_to_encumber);
2898: END IF;
2899:
2900: IF (PO_LOG.d_proc) THEN
2901: PO_LOG.proc_end(d_module);
2902: END IF;
2903:
2904: RETURN l_need_to_encumber;
2905: EXCEPTION
2945: l_fax_flag VARCHAR2(1) := 'N';
2946: l_print_flag VARCHAR2(1) := 'N';
2947: BEGIN
2948: d_position := 0;
2949: IF (PO_LOG.d_proc) THEN
2950: PO_LOG.proc_begin(d_module);
2951: END IF;
2952:
2953: PO_PDOI_UTL.get_processing_doctype_info
2946: l_print_flag VARCHAR2(1) := 'N';
2947: BEGIN
2948: d_position := 0;
2949: IF (PO_LOG.d_proc) THEN
2950: PO_LOG.proc_begin(d_module);
2951: END IF;
2952:
2953: PO_PDOI_UTL.get_processing_doctype_info
2954: ( x_doc_type => l_doc_type,
3013: ReleaseGenMethod => PO_PDOI_PARAMS.g_request.rel_gen_method,
3014: UpdateSourcingRule => PO_PDOI_PARAMS.g_request.create_sourcing_rules_flag
3015: );
3016:
3017: IF (PO_LOG.d_proc) THEN
3018: PO_LOG.proc_end(d_module);
3019: END IF;
3020: EXCEPTION
3021: WHEN OTHERS THEN
3014: UpdateSourcingRule => PO_PDOI_PARAMS.g_request.create_sourcing_rules_flag
3015: );
3016:
3017: IF (PO_LOG.d_proc) THEN
3018: PO_LOG.proc_end(d_module);
3019: END IF;
3020: EXCEPTION
3021: WHEN OTHERS THEN
3022: PO_MESSAGE_S.add_exc_msg
3053:
3054: l_return_status BOOLEAN;
3055: BEGIN
3056: d_position := 0;
3057: IF (PO_LOG.d_proc) THEN
3058: PO_LOG.proc_begin(d_module);
3059: END IF;
3060:
3061: l_return_status := PO_SUPPLY.po_req_supply
3054: l_return_status BOOLEAN;
3055: BEGIN
3056: d_position := 0;
3057: IF (PO_LOG.d_proc) THEN
3058: PO_LOG.proc_begin(d_module);
3059: END IF;
3060:
3061: l_return_status := PO_SUPPLY.po_req_supply
3062: ( p_docid => p_doc_rec.po_header_id,
3069: );
3070:
3071: IF (NOT l_return_status) THEN
3072: d_position := 10;
3073: IF (PO_LOG.d_stmt) THEN
3074: PO_LOG.stmt(d_module, d_position, 'Supply creation failed');
3075: END IF;
3076:
3077: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3070:
3071: IF (NOT l_return_status) THEN
3072: d_position := 10;
3073: IF (PO_LOG.d_stmt) THEN
3074: PO_LOG.stmt(d_module, d_position, 'Supply creation failed');
3075: END IF;
3076:
3077: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3078: END IF;
3076:
3077: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3078: END IF;
3079:
3080: IF (PO_LOG.d_proc) THEN
3081: PO_LOG.proc_end(d_module);
3082: END IF;
3083: EXCEPTION
3084: WHEN OTHERS THEN
3077: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3078: END IF;
3079:
3080: IF (PO_LOG.d_proc) THEN
3081: PO_LOG.proc_end(d_module);
3082: END IF;
3083: EXCEPTION
3084: WHEN OTHERS THEN
3085: PO_MESSAGE_S.add_exc_msg
3117:
3118: BEGIN
3119: d_position := 0;
3120:
3121: IF (PO_LOG.d_proc) THEN
3122: PO_LOG.proc_begin(d_module);
3123: END IF;
3124:
3125: PO_DELREC_PVT.create_update_delrec
3118: BEGIN
3119: d_position := 0;
3120:
3121: IF (PO_LOG.d_proc) THEN
3122: PO_LOG.proc_begin(d_module);
3123: END IF;
3124:
3125: PO_DELREC_PVT.create_update_delrec
3126: ( p_api_version => 1.0,
3136: );
3137:
3138: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3139: d_position := 10;
3140: IF (PO_LOG.d_stmt) THEN
3141: PO_LOG.stmt(d_module, d_position, 'create delivery record failed');
3142: END IF;
3143: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3144: END IF;
3137:
3138: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3139: d_position := 10;
3140: IF (PO_LOG.d_stmt) THEN
3141: PO_LOG.stmt(d_module, d_position, 'create delivery record failed');
3142: END IF;
3143: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3144: END IF;
3145:
3142: END IF;
3143: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3144: END IF;
3145:
3146: IF (PO_LOG.d_proc) THEN
3147: PO_LOG.proc_end(d_module);
3148: END IF;
3149: EXCEPTION
3150: WHEN OTHERS THEN
3143: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3144: END IF;
3145:
3146: IF (PO_LOG.d_proc) THEN
3147: PO_LOG.proc_end(d_module);
3148: END IF;
3149: EXCEPTION
3150: WHEN OTHERS THEN
3151: PO_MESSAGE_S.add_exc_msg
3180: l_return_code VARCHAR2(100);
3181:
3182: BEGIN
3183: d_position := 0;
3184: IF (PO_LOG.d_proc) THEN
3185: PO_LOG.proc_begin(d_module);
3186: END IF;
3187:
3188: l_result := PO_ACTIONS.close_po
3181:
3182: BEGIN
3183: d_position := 0;
3184: IF (PO_LOG.d_proc) THEN
3185: PO_LOG.proc_begin(d_module);
3186: END IF;
3187:
3188: l_result := PO_ACTIONS.close_po
3189: ( p_docid => p_doc_rec.po_header_id,
3208: p_column_name => 'CLOSED_CODE',
3209: p_column_value => ''
3210: );
3211:
3212: IF (PO_LOG.d_stmt) THEN
3213: PO_LOG.stmt(d_module, d_position, 'PO Closing failed');
3214: END IF;
3215:
3216: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3209: p_column_value => ''
3210: );
3211:
3212: IF (PO_LOG.d_stmt) THEN
3213: PO_LOG.stmt(d_module, d_position, 'PO Closing failed');
3214: END IF;
3215:
3216: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3217: END IF;
3215:
3216: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3217: END IF;
3218:
3219: IF (PO_LOG.d_proc) THEN
3220: PO_LOG.proc_end(d_module);
3221: END IF;
3222: EXCEPTION
3223: WHEN OTHERS THEN
3216: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3217: END IF;
3218:
3219: IF (PO_LOG.d_proc) THEN
3220: PO_LOG.proc_end(d_module);
3221: END IF;
3222: EXCEPTION
3223: WHEN OTHERS THEN
3224: PO_MESSAGE_S.add_exc_msg
3255: d_position NUMBER;
3256:
3257: BEGIN
3258: d_position := 0;
3259: IF (PO_LOG.d_proc) THEN
3260: PO_LOG.proc_begin(d_module);
3261: END IF;
3262:
3263: -- bug5027915
3256:
3257: BEGIN
3258: d_position := 0;
3259: IF (PO_LOG.d_proc) THEN
3260: PO_LOG.proc_begin(d_module);
3261: END IF;
3262:
3263: -- bug5027915
3264: -- populate parameter p_po_header_id rather than p_po_header_ids,
3267: ( p_type => p_type,
3268: p_po_header_id => p_doc_rec.po_header_id
3269: );
3270:
3271: IF (PO_LOG.d_proc) THEN
3272: PO_LOG.proc_end(d_module);
3273: END IF;
3274:
3275: EXCEPTION
3268: p_po_header_id => p_doc_rec.po_header_id
3269: );
3270:
3271: IF (PO_LOG.d_proc) THEN
3272: PO_LOG.proc_end(d_module);
3273: END IF;
3274:
3275: EXCEPTION
3276: WHEN OTHERS THEN
3307: d_position NUMBER;
3308:
3309: BEGIN
3310: d_position := 0;
3311: IF (PO_LOG.d_proc) THEN
3312: PO_LOG.proc_begin(d_module);
3313: END IF;
3314:
3315: PO_TAX_INTERFACE_PVT.calculate_tax
3308:
3309: BEGIN
3310: d_position := 0;
3311: IF (PO_LOG.d_proc) THEN
3312: PO_LOG.proc_begin(d_module);
3313: END IF;
3314:
3315: PO_TAX_INTERFACE_PVT.calculate_tax
3316: ( p_po_header_id => p_doc_rec.po_header_id,
3330: p_column_name => NULL
3331: );
3332: END IF;
3333:
3334: IF (PO_LOG.d_proc) THEN
3335: PO_LOG.proc_end(d_module, 'x_return_status', x_return_status);
3336: END IF;
3337:
3338:
3331: );
3332: END IF;
3333:
3334: IF (PO_LOG.d_proc) THEN
3335: PO_LOG.proc_end(d_module, 'x_return_status', x_return_status);
3336: END IF;
3337:
3338:
3339: EXCEPTION
3378: l_document_type VARCHAR2(30);
3379:
3380: BEGIN
3381: d_position := 0;
3382: IF (PO_LOG.d_proc) THEN
3383: PO_LOG.proc_begin(d_module);
3384: END IF;
3385:
3386: IF p_doc_rec.document_type = 'STANDARD' THEN
3379:
3380: BEGIN
3381: d_position := 0;
3382: IF (PO_LOG.d_proc) THEN
3383: PO_LOG.proc_begin(d_module);
3384: END IF;
3385:
3386: IF p_doc_rec.document_type = 'STANDARD' THEN
3387: l_document_type := 'PO';
3412: end if;
3413:
3414: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS OR x_online_report_id IS NOT null) THEN
3415: -- write the error into log
3416: PO_LOG.stmt(d_module, d_position,'Submission Check Failed');
3417: x_count := 0;
3418:
3419:
3420: FOR i IN (SELECT MESSAGE_NAME, TEXT_LINE FROM po_online_report_text_gt WHERE online_report_id = x_online_report_id)
3419:
3420: FOR i IN (SELECT MESSAGE_NAME, TEXT_LINE FROM po_online_report_text_gt WHERE online_report_id = x_online_report_id)
3421: LOOP
3422: x_count := x_count + 1;
3423: IF (PO_LOG.d_stmt) THEN
3424: PO_LOG.stmt(d_module, d_position, 'Error in Submission Check #'||x_count||' --'||i.TEXT_LINE);
3425: END IF;
3426: END LOOP;
3427:
3420: FOR i IN (SELECT MESSAGE_NAME, TEXT_LINE FROM po_online_report_text_gt WHERE online_report_id = x_online_report_id)
3421: LOOP
3422: x_count := x_count + 1;
3423: IF (PO_LOG.d_stmt) THEN
3424: PO_LOG.stmt(d_module, d_position, 'Error in Submission Check #'||x_count||' --'||i.TEXT_LINE);
3425: END IF;
3426: END LOOP;
3427:
3428: IF ( p_doc_rec.action = PO_PDOI_CONSTANTS.g_ACTION_ORIGINAL) THEN
3442: x_return_status := FND_API.G_RET_STS_ERROR;
3443: end if;
3444: END IF;
3445:
3446: IF (PO_LOG.d_proc) THEN
3447: PO_LOG.proc_end(d_module, 'x_return_status', x_return_status);
3448: END IF;
3449:
3450:
3443: end if;
3444: END IF;
3445:
3446: IF (PO_LOG.d_proc) THEN
3447: PO_LOG.proc_end(d_module, 'x_return_status', x_return_status);
3448: END IF;
3449:
3450:
3451: EXCEPTION