[Home] [Help]
258: IF (PO_LOG.d_proc) THEN
259: PO_LOG.proc_begin(d_module);
260: END IF;
261:
262: PO_TIMING_UTL.start_time (PO_PDOI_CONSTANTS.g_T_POSTPROCESSING);
263:
264: process_rejected_records;
265:
266: OPEN c_doc;
295: l_doc_rec := l_docs_tbl(i);
296: l_doc_info := PO_PDOI_PARAMS.g_docs_info(l_doc_rec.interface_header_id);
297:
298: IF (PO_PDOI_PARAMS.g_request.calling_module =
299: PO_PDOI_CONSTANTS.g_call_mod_CATALOG_UPLOAD) THEN
300: -- Copy processed lines info back to g_out structure. These values
301: -- will get returned to the caller of PDOI
302: PO_PDOI_PARAMS.g_out.processed_lines_count :=
303: l_doc_info.number_of_processed_lines;
431: );
432:
433: END IF;
434:
435: l_process_code := PO_PDOI_CONSTANTS.g_PROCESS_CODE_ACCEPTED;
436: ELSE
437: d_position := 70;
438:
439: IF ( l_doc_info.has_lines_to_notify = FND_API.G_TRUE) THEN
436: ELSE
437: d_position := 70;
438:
439: IF ( l_doc_info.has_lines_to_notify = FND_API.G_TRUE) THEN
440: l_process_code := PO_PDOI_CONSTANTS.g_PROCESS_CODE_NOTIFIED;
441:
442: -- 5149827
443: -- If the changes are to go over price tolerance acceptance
444: -- process, they should be removed from the draft since
446: remove_notified_draft_lines
447: ( p_draft_id => l_doc_rec.draft_id
448: );
449: ELSE
450: l_process_code := PO_PDOI_CONSTANTS.g_PROCESS_CODE_ACCEPTED;
451: END IF;
452:
453: -- Call different module for post processing according to document
454: -- type and action
453: -- Call different module for post processing according to document
454: -- type and action
455:
456: IF (PO_PDOI_PARAMS.g_request.document_type =
457: PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET) THEN
458:
459: IF (l_doc_rec.action IN (PO_PDOI_CONSTANTS.g_ACTION_ADD,
460: PO_PDOI_CONSTANTS.g_ACTION_ORIGINAL)) THEN
461: d_position := 80;
455:
456: IF (PO_PDOI_PARAMS.g_request.document_type =
457: PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET) THEN
458:
459: IF (l_doc_rec.action IN (PO_PDOI_CONSTANTS.g_ACTION_ADD,
460: PO_PDOI_CONSTANTS.g_ACTION_ORIGINAL)) THEN
461: d_position := 80;
462: create_blanket ( p_doc_rec => l_doc_rec,
463: x_process_code => x_process_code ); --bug 7277317
456: IF (PO_PDOI_PARAMS.g_request.document_type =
457: PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET) THEN
458:
459: IF (l_doc_rec.action IN (PO_PDOI_CONSTANTS.g_ACTION_ADD,
460: PO_PDOI_CONSTANTS.g_ACTION_ORIGINAL)) THEN
461: d_position := 80;
462: create_blanket ( p_doc_rec => l_doc_rec,
463: x_process_code => x_process_code ); --bug 7277317
464:
461: d_position := 80;
462: create_blanket ( p_doc_rec => l_doc_rec,
463: x_process_code => x_process_code ); --bug 7277317
464:
465: ELSIF (l_doc_rec.action = PO_PDOI_CONSTANTS.g_ACTION_REPLACE) THEN
466: d_position := 90;
467: expire_document(p_doc_rec => l_doc_rec);
468: create_blanket(p_doc_rec => l_doc_rec,
469: x_process_code => x_process_code); -- bug 7277317
467: expire_document(p_doc_rec => l_doc_rec);
468: create_blanket(p_doc_rec => l_doc_rec,
469: x_process_code => x_process_code); -- bug 7277317
470:
471: ELSIF (l_doc_rec.action = PO_PDOI_CONSTANTS.g_ACTION_UPDATE) THEN
472: d_position := 100;
473: update_blanket(p_doc_rec => l_doc_rec,
474: x_process_code => x_process_code); -- bug 7277317
475:
475:
476: END IF;
477:
478: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
479: PO_PDOI_CONSTANTS.g_DOC_TYPE_QUOTATION) THEN
480:
481: IF (l_doc_rec.action IN (PO_PDOI_CONSTANTS.g_ACTION_ADD,
482: PO_PDOI_CONSTANTS.g_ACTION_ORIGINAL)) THEN
483:
477:
478: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
479: PO_PDOI_CONSTANTS.g_DOC_TYPE_QUOTATION) THEN
480:
481: IF (l_doc_rec.action IN (PO_PDOI_CONSTANTS.g_ACTION_ADD,
482: PO_PDOI_CONSTANTS.g_ACTION_ORIGINAL)) THEN
483:
484: d_position := 110;
485: create_quotation(p_doc_rec => l_doc_rec);
478: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
479: PO_PDOI_CONSTANTS.g_DOC_TYPE_QUOTATION) THEN
480:
481: IF (l_doc_rec.action IN (PO_PDOI_CONSTANTS.g_ACTION_ADD,
482: PO_PDOI_CONSTANTS.g_ACTION_ORIGINAL)) THEN
483:
484: d_position := 110;
485: create_quotation(p_doc_rec => l_doc_rec);
486:
483:
484: d_position := 110;
485: create_quotation(p_doc_rec => l_doc_rec);
486:
487: ELSIF (l_doc_rec.action = PO_PDOI_CONSTANTS.g_ACTION_REPLACE) THEN
488: d_position := 120;
489: expire_document(p_doc_rec => l_doc_rec);
490: create_quotation(p_doc_rec => l_doc_rec);
491:
488: d_position := 120;
489: expire_document(p_doc_rec => l_doc_rec);
490: create_quotation(p_doc_rec => l_doc_rec);
491:
492: ELSIF (l_doc_rec.action = PO_PDOI_CONSTANTS.g_ACTION_UPDATE) THEN
493: d_position := 130;
494: update_quotation(p_doc_rec => l_doc_rec);
495:
496: END IF;
495:
496: END IF;
497:
498: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
499: PO_PDOI_CONSTANTS.g_DOC_TYPE_STANDARD) THEN
500:
501: IF (l_doc_rec.action IN (PO_PDOI_CONSTANTS.g_ACTION_ADD,
502: PO_PDOI_CONSTANTS.g_ACTION_ORIGINAL)) THEN
503: d_position := 140;
497:
498: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
499: PO_PDOI_CONSTANTS.g_DOC_TYPE_STANDARD) THEN
500:
501: IF (l_doc_rec.action IN (PO_PDOI_CONSTANTS.g_ACTION_ADD,
502: PO_PDOI_CONSTANTS.g_ACTION_ORIGINAL)) THEN
503: d_position := 140;
504: create_standard_po(p_doc_rec => l_doc_rec,
505: x_process_code => x_process_code); -- bug 7277317
498: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
499: PO_PDOI_CONSTANTS.g_DOC_TYPE_STANDARD) THEN
500:
501: IF (l_doc_rec.action IN (PO_PDOI_CONSTANTS.g_ACTION_ADD,
502: PO_PDOI_CONSTANTS.g_ACTION_ORIGINAL)) THEN
503: d_position := 140;
504: create_standard_po(p_doc_rec => l_doc_rec,
505: x_process_code => x_process_code); -- bug 7277317
506:
503: d_position := 140;
504: create_standard_po(p_doc_rec => l_doc_rec,
505: x_process_code => x_process_code); -- bug 7277317
506:
507: ELSIF (l_doc_rec.action = PO_PDOI_CONSTANTS.g_ACTION_UPDATE) THEN
508: d_position := 150;
509: update_standard_po(p_doc_rec => l_doc_rec,
510: x_process_code => x_process_code); -- bug 7277317
511:
520: -- bug 7277317
521: IF (x_process_code = 'I' ) THEN
522: /* bug 8490582 Purchase documents are created even submission check fails. Therefore Interface should be update as ACCEPTED
523: not as INCOMPLETE */
524: l_process_code := PO_PDOI_CONSTANTS.g_PROCESS_CODE_ACCEPTED;
525: END IF;
526:
527: UPDATE po_headers_interface
528: SET process_code = l_process_code
566: END LOOP;
567:
568: close c_doc;
569:
570: PO_TIMING_UTL.stop_time (PO_PDOI_CONSTANTS.g_T_POSTPROCESSING);
571:
572: IF (PO_LOG.d_proc) THEN
573: PO_LOG.proc_end(d_module);
574: END IF;
759: d_position := 10;
760:
761: FOR i IN 1..l_intf_header_id_tbl.COUNT LOOP
762: -- If action is not 'UPDATE', remove draft
763: IF ( l_action_tbl(i) <> PO_PDOI_CONSTANTS.g_action_UPDATE ) THEN
764: d_position := 20;
765:
766: l_dft_to_delete_tbl.EXTEND;
767: l_dft_to_delete_tbl(l_dft_to_delete_tbl.COUNT) := l_dft_id_tbl(i);
878:
879: IF ( p_doc_info.has_errors = FND_API.G_TRUE ) THEN
880:
881: IF (PO_PDOI_PARAMS.g_request.document_type =
882: PO_PDOI_CONSTANTS.g_doc_type_STANDARD) THEN
883:
884: l_is_std_po := TRUE;
885:
886: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
883:
884: l_is_std_po := TRUE;
885:
886: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
887: PO_PDOI_CONSTANTS.g_doc_type_BLANKET
888: AND p_doc_rec.ga_flag <> 'Y') THEN
889:
890: l_is_local_bpa := TRUE;
891:
889:
890: l_is_local_bpa := TRUE;
891:
892: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
893: PO_PDOI_CONSTANTS.g_doc_type_QUOTATION) THEN
894:
895: l_is_quotation := TRUE;
896:
897: END IF;
900: OR
901: ( (l_is_local_bpa OR l_is_quotation)
902: AND
903: PO_PDOI_PARAMS.g_request.calling_module =
904: PO_PDOI_CONSTANTS.g_CALL_MOD_CATALOG_UPLOAD )) THEN
905:
906: d_position := 10;
907:
908: IF (PO_LOG.d_stmt) THEN
923: IF (PO_LOG.d_stmt) THEN
924: PO_LOG.stmt(d_module, d_position, 'failed Check 2');
925: END IF;
926:
927: IF ( p_doc_rec.action <> PO_PDOI_CONSTANTS.g_ACTION_UPDATE ) THEN
928: -- If action <> update, we need to tell user that the document created
929: -- has 0 line, and thus the failure
930:
931: PO_PDOI_ERR_UTL.add_fatal_error
1026: -- 1) document is not a global agreement, OR
1027: -- 2) role of the user is BUYER
1028:
1029: IF (NOT (PO_PDOI_PARAMS.g_request.document_type =
1030: PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET
1031: AND
1032: p_doc_rec.ga_flag = 'Y')
1033: OR
1034: PO_PDOI_PARAMS.g_request.role = PO_GLOBAL.g_role_BUYER) THEN
1183: -- bug 7277317 added an if condition to check the return status of submission check
1184: -- proceed the below logic only if return status is success
1185: IF (l_return_status = FND_API.G_RET_STS_SUCCESS) THEN
1186: x_process_code := NULL;
1187: IF ( l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_INIT_APPROVAL) THEN
1188: d_position := 40;
1189:
1190:
1191: IF (PO_LOG.d_stmt) THEN
1195: start_po_approval_workflow
1196: ( p_doc_rec => p_doc_rec
1197: );
1198:
1199: ELSIF ( l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE ) THEN
1200: d_position := 50;
1201:
1202: l_new_auth_status := 'APPROVED';
1203:
1275: -- for the catalog
1276: d_position := 130;
1277:
1278: rebuild_catalog_index
1279: ( p_type => PO_PDOI_CONSTANTS.g_doc_type_BLANKET,
1280: p_doc_rec => p_doc_rec
1281: );
1282: --
1283:
1432: -- bug 7277317 added an if condition to check the return status of submission check
1433: -- proceed the below logic only if return status is success
1434: IF (l_return_status = FND_API.G_RET_STS_SUCCESS) THEN
1435: x_process_code := NULL;
1436: IF ( l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_INIT_APPROVAL) THEN
1437: d_position := 50;
1438:
1439: IF (PO_LOG.d_stmt) THEN
1440: PO_LOG.stmt(d_module, d_position, 'launch approval workflow');
1443: start_po_approval_workflow
1444: ( p_doc_rec => p_doc_rec
1445: );
1446:
1447: ELSIF (l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE) THEN
1448:
1449: --
1451: -- l_new_auth_status := 'APPROVED';
1485: -- for the catalog
1486: d_position := 90;
1487:
1488: rebuild_catalog_index
1489: ( p_type => PO_PDOI_CONSTANTS.g_doc_type_BLANKET,
1490: p_doc_rec => p_doc_rec
1491: );
1492: --
1493:
1580: IF (PO_LOG.d_stmt) THEN
1581: PO_LOG.stmt(d_module, d_position, 'l_approval_method', l_approval_method);
1582: END IF;
1583:
1584: IF (l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE) THEN
1585: IF (l_need_to_create_src_rules = FND_API.G_TRUE) THEN
1586: d_position := 50;
1587:
1588: IF (PO_LOG.d_stmt) THEN
1609: -- for the catalog
1610: d_position := 70;
1611:
1612: rebuild_catalog_index
1613: ( p_type => PO_PDOI_CONSTANTS.g_doc_type_QUOTATION,
1614: p_doc_rec => p_doc_rec
1615: );
1616: --
1617:
1725: IF (PO_LOG.d_stmt) THEN
1726: PO_LOG.stmt(d_module, d_position, 'l_approval_method', l_approval_method);
1727: END IF;
1728:
1729: IF (l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE) THEN
1730: IF (l_need_to_create_src_rules = FND_API.G_TRUE) THEN
1731: d_position := 60;
1732:
1733: IF (PO_LOG.d_stmt) THEN
1748: -- for the catalog
1749: d_position := 70;
1750:
1751: rebuild_catalog_index
1752: ( p_type => PO_PDOI_CONSTANTS.g_doc_type_QUOTATION,
1753: p_doc_rec => p_doc_rec
1754: );
1755: --
1756:
1854: END IF;
1855:
1856: -- CLM Partial Funding Changes - Start
1857: /* At this point of time, Always
1858: PO_PDOI_PARAMS.g_request.document_type = PO_PDOI_CONSTANTS.g_DOC_TYPE_STANDARD */
1859:
1860: IF (p_doc_rec.action = PO_PDOI_CONSTANTS.g_ACTION_ORIGINAL) THEN
1861:
1862: d_position := 30;
1856: -- CLM Partial Funding Changes - Start
1857: /* At this point of time, Always
1858: PO_PDOI_PARAMS.g_request.document_type = PO_PDOI_CONSTANTS.g_DOC_TYPE_STANDARD */
1859:
1860: IF (p_doc_rec.action = PO_PDOI_CONSTANTS.g_ACTION_ORIGINAL) THEN
1861:
1862: d_position := 30;
1863: BEGIN
1864: SELECT ORG_ID
2096: -- bug 7277317 added an if condition to check the return status of submission check
2097: -- proceed the below logic only if return status is success
2098: IF (p_return_status = FND_API.G_RET_STS_SUCCESS) THEN
2099: x_process_code := NULL;
2100: IF ( l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_INIT_APPROVAL) THEN
2101: d_position := 60;
2102:
2103: IF (PO_LOG.d_stmt) THEN
2104: PO_LOG.stmt(d_module, d_position, 'launching approval workflow');
2107: start_po_approval_workflow
2108: ( p_doc_rec => p_doc_rec
2109: );
2110:
2111: ELSIF ( l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE) THEN
2112:
2113: l_new_auth_status := 'APPROVED';
2114: d_position := 70;
2115: l_need_to_encumber := need_to_encumber
2417: -- bug 7277317 added an if condition to check the return status of submission check
2418: -- proceed the below logic only if return status is success
2419: IF (p_return_status = FND_API.G_RET_STS_SUCCESS) THEN
2420: x_process_code := NULL;
2421: IF ( l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_INIT_APPROVAL) THEN
2422: d_position := 40;
2423: IF (PO_LOG.d_stmt) THEN
2424: PO_LOG.stmt(d_module, d_position, 'start approval workflow');
2425: END IF;
2427: start_po_approval_workflow
2428: ( p_doc_rec => p_doc_rec
2429: );
2430:
2431: ELSIF (l_approval_method = PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE) THEN
2432: d_position := 50;
2433: l_update_auth_status := FND_API.G_TRUE;
2434: --
2613: -- bug5024833
2614: -- Do not generate the po number from the system if number generation
2615: -- method is Manual
2616: IF ( (PO_PDOI_PARAMS.g_request.document_type =
2617: PO_PDOI_CONSTANTS.g_doc_type_QUOTATION AND
2618: PO_PDOI_PARAMS.g_sys.user_defined_quote_num_code = 'MANUAL')
2619: OR
2620: (PO_PDOI_PARAMS.g_request.document_type IN
2621: (PO_PDOI_CONSTANTS.g_doc_type_BLANKET,
2617: PO_PDOI_CONSTANTS.g_doc_type_QUOTATION AND
2618: PO_PDOI_PARAMS.g_sys.user_defined_quote_num_code = 'MANUAL')
2619: OR
2620: (PO_PDOI_PARAMS.g_request.document_type IN
2621: (PO_PDOI_CONSTANTS.g_doc_type_BLANKET,
2622: PO_PDOI_CONSTANTS.g_doc_type_STANDARD) AND
2623: PO_PDOI_PARAMS.g_sys.user_defined_po_num_code = 'MANUAL')) THEN
2624:
2625: d_position := 10;
2618: PO_PDOI_PARAMS.g_sys.user_defined_quote_num_code = 'MANUAL')
2619: OR
2620: (PO_PDOI_PARAMS.g_request.document_type IN
2621: (PO_PDOI_CONSTANTS.g_doc_type_BLANKET,
2622: PO_PDOI_CONSTANTS.g_doc_type_STANDARD) AND
2623: PO_PDOI_PARAMS.g_sys.user_defined_po_num_code = 'MANUAL')) THEN
2624:
2625: d_position := 10;
2626:
2640: ELSE
2641: d_position := 30;
2642:
2643: IF (PO_PDOI_PARAMS.g_request.document_type =
2644: PO_PDOI_CONSTANTS.g_doc_type_QUOTATION) THEN
2645:
2646: l_document_num := PO_CORE_SV1.default_po_unique_identifier
2647: ( x_table_name => 'PO_HEADERS_QUOTE'
2648: );
2646: l_document_num := PO_CORE_SV1.default_po_unique_identifier
2647: ( x_table_name => 'PO_HEADERS_QUOTE'
2648: );
2649: ELSIF (PO_PDOI_PARAMS.g_request.document_type IN
2650: ( PO_PDOI_CONSTANTS.g_doc_type_BLANKET,
2651: PO_PDOI_CONSTANTS.g_doc_type_STANDARD)) THEN
2652:
2653: l_document_num := PO_CORE_SV1.default_po_unique_identifier
2654: ( x_table_name => 'PO_HEADERS'
2647: ( x_table_name => 'PO_HEADERS_QUOTE'
2648: );
2649: ELSIF (PO_PDOI_PARAMS.g_request.document_type IN
2650: ( PO_PDOI_CONSTANTS.g_doc_type_BLANKET,
2651: PO_PDOI_CONSTANTS.g_doc_type_STANDARD)) THEN
2652:
2653: l_document_num := PO_CORE_SV1.default_po_unique_identifier
2654: ( x_table_name => 'PO_HEADERS'
2655: );
3013: -- Some attribute values of the document
3014: --IN OUT:
3015: --OUT:
3016: --x_approval_method
3017: -- PO_PDOI_CONSTANTS.g_appr_method_NONE: No approval
3018: -- PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE: Approve within PDOI
3019: -- PO_PDOI_CONSTANTS.g_appr_method_INIT_APPROVAL: Launch approval wf
3020: --End of Comments
3021: ------------------------------------------------------------------------
3014: --IN OUT:
3015: --OUT:
3016: --x_approval_method
3017: -- PO_PDOI_CONSTANTS.g_appr_method_NONE: No approval
3018: -- PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE: Approve within PDOI
3019: -- PO_PDOI_CONSTANTS.g_appr_method_INIT_APPROVAL: Launch approval wf
3020: --End of Comments
3021: ------------------------------------------------------------------------
3022: PROCEDURE get_approval_method
3015: --OUT:
3016: --x_approval_method
3017: -- PO_PDOI_CONSTANTS.g_appr_method_NONE: No approval
3018: -- PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE: Approve within PDOI
3019: -- PO_PDOI_CONSTANTS.g_appr_method_INIT_APPROVAL: Launch approval wf
3020: --End of Comments
3021: ------------------------------------------------------------------------
3022: PROCEDURE get_approval_method
3023: ( p_doc_rec IN doc_row_type,
3034: IF (PO_LOG.d_proc) THEN
3035: PO_LOG.proc_begin(d_module);
3036: END IF;
3037:
3038: x_approval_method := PO_PDOI_CONSTANTS.g_appr_method_NONE;
3039: --
3040:
3041: /*l_intended_approval_status :=
3042: NVL(p_doc_rec.intf_auth_status, PO_PDOI_PARAMS.g_request.approved_status);*/
3053: --<
3054:
3055: --------- Blanket or Standard PO -----------
3056: IF (PO_PDOI_PARAMS.g_request.document_type IN
3057: (PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET,
3058: PO_PDOI_CONSTANTS.g_DOC_TYPE_STANDARD)) THEN
3059:
3060: IF ( l_intended_approval_status = 'INCOMPLETE' OR
3061: p_doc_rec.orig_user_hold_flag = 'Y') THEN
3054:
3055: --------- Blanket or Standard PO -----------
3056: IF (PO_PDOI_PARAMS.g_request.document_type IN
3057: (PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET,
3058: PO_PDOI_CONSTANTS.g_DOC_TYPE_STANDARD)) THEN
3059:
3060: IF ( l_intended_approval_status = 'INCOMPLETE' OR
3061: p_doc_rec.orig_user_hold_flag = 'Y') THEN
3062:
3061: p_doc_rec.orig_user_hold_flag = 'Y') THEN
3062:
3063: -- Do not approve the document. The authorization status will be set
3064: -- properly by the transfer program.
3065: x_approval_method := PO_PDOI_CONSTANTS.g_appr_method_NONE;
3066:
3067: ELSIF ( l_intended_approval_status = 'APPROVED') THEN
3068:
3069: x_approval_method := PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE;
3065: x_approval_method := PO_PDOI_CONSTANTS.g_appr_method_NONE;
3066:
3067: ELSIF ( l_intended_approval_status = 'APPROVED') THEN
3068:
3069: x_approval_method := PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE;
3070:
3071: ELSIF ( l_intended_approval_status = 'INITIATE APPROVAL') THEN
3072:
3073: x_approval_method := PO_PDOI_CONSTANTS.g_appr_method_INIT_APPROVAL;
3069: x_approval_method := PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE;
3070:
3071: ELSIF ( l_intended_approval_status = 'INITIATE APPROVAL') THEN
3072:
3073: x_approval_method := PO_PDOI_CONSTANTS.g_appr_method_INIT_APPROVAL;
3074: END IF;
3075:
3076: --------- Quotation -----------
3077: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
3074: END IF;
3075:
3076: --------- Quotation -----------
3077: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
3078: PO_PDOI_CONSTANTS.g_DOC_TYPE_QUOTATION) THEN
3079:
3080: IF ( p_doc_rec.orig_auth_status = 'A' OR
3081: l_intended_approval_status IN ('APPROVED', 'INITIATE APPROVAL')) THEN
3082:
3079:
3080: IF ( p_doc_rec.orig_auth_status = 'A' OR
3081: l_intended_approval_status IN ('APPROVED', 'INITIATE APPROVAL')) THEN
3082:
3083: x_approval_method := PO_PDOI_CONSTANTS.g_appr_method_AUTO_APPROVE;
3084: END IF;
3085:
3086: END IF;
3087:
3207: PO_LOG.proc_begin(d_module);
3208: END IF;
3209:
3210: IF (PO_PDOI_PARAMS.g_request.document_type IN
3211: (PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET,
3212: PO_PDOI_CONSTANTS.g_DOC_TYPE_STANDARD)) THEN
3213:
3214: IF (p_auth_status = 'INCOMPLETE') THEN
3215: l_approved_flag := NULL;
3208: END IF;
3209:
3210: IF (PO_PDOI_PARAMS.g_request.document_type IN
3211: (PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET,
3212: PO_PDOI_CONSTANTS.g_DOC_TYPE_STANDARD)) THEN
3213:
3214: IF (p_auth_status = 'INCOMPLETE') THEN
3215: l_approved_flag := NULL;
3216: l_approved_date := NULL;
3232: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3233: END IF;
3234:
3235: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
3236: PO_PDOI_CONSTANTS.g_DOC_TYPE_QUOTATION) THEN
3237:
3238: l_approved_flag := NULL;
3239: l_approved_date := NULL;
3240: END IF;
3356: x_doc_subtype => l_doc_subtype
3357: );
3358:
3359: -- run submission check for update action, if it's a federal instance
3360: IF (p_doc_rec.action = PO_PDOI_CONSTANTS.g_ACTION_UPDATE AND
3361: PO_PDOI_PARAMS.g_sys.is_federal_instance = 'Y') THEN
3362: l_validate_document := PO_DOCUMENT_FUNDS_PVT.g_parameter_YES;
3363: ELSE
3364: l_validate_document := PO_DOCUMENT_FUNDS_PVT.g_parameter_NO;
3459: -- For blanket PO: If document is approved for creation case, document is
3460: -- marked as encumbrance required, and both po and req encumbrance is
3461: -- turned on
3462: IF (PO_PDOI_PARAMS.g_request.document_type =
3463: PO_PDOI_CONSTANTS.g_DOC_TYPE_STANDARD ) THEN
3464:
3465: IF (PO_PDOI_PARAMS.g_sys.po_encumbrance_flag = 'Y' AND
3466: p_new_auth_status = 'APPROVED') THEN
3467:
3470: l_need_to_encumber := FND_API.G_FALSE;
3471: END IF;
3472:
3473: ELSIF (PO_PDOI_PARAMS.g_request.document_type =
3474: PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET ) THEN
3475:
3476: IF (PO_PDOI_PARAMS.g_sys.po_encumbrance_flag = 'Y' AND
3477: PO_PDOI_PARAMS.g_sys.req_encumbrance_flag = 'Y' AND
3478: p_doc_rec.action <> PO_PDOI_CONSTANTS.g_ACTION_UPDATE AND
3474: PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET ) THEN
3475:
3476: IF (PO_PDOI_PARAMS.g_sys.po_encumbrance_flag = 'Y' AND
3477: PO_PDOI_PARAMS.g_sys.req_encumbrance_flag = 'Y' AND
3478: p_doc_rec.action <> PO_PDOI_CONSTANTS.g_ACTION_UPDATE AND
3479: p_doc_rec.encumbrance_required_flag = 'Y' AND
3480: p_new_auth_status = 'APPROVED') THEN
3481:
3482: l_need_to_encumber := FND_API.G_TRUE;
3594: --<<8686214 end>>
3595:
3596: --Bug 13627272
3597:
3598: IF(PO_PDOI_PARAMS.g_request.calling_module = PO_PDOI_CONSTANTS.g_CALL_MOD_CATALOG_UPLOAD) THEN
3599:
3600: BEGIN
3601: SELECT emp.person_id
3602: INTO l_current_employee_id
3908: ( p_type => p_type,
3909: p_po_header_id => p_doc_rec.po_header_id
3910: );
3911: -- Bug 14277142 : Calling iP rebuild index only for Blanket so that line items becomes searchable in iP store.
3912: IF p_type = PO_PDOI_CONSTANTS.g_doc_type_BLANKET THEN
3913: BEGIN
3914: d_position := 10;
3915: ICX_CAT_INTERMEDIA_INDEX_PVT.rebuild_index;
3916: EXCEPTION
4085:
4086: /* BUG 8490582 Added the else condition to check for update action. If an incomplete purchase document
4087: comes for updation then authorization status should be in incomplete not in requires re-approval. */
4088: IF (x_count >0) then /* Bug 10300319 following logic shd executed only if any error reported */
4089: IF ( p_doc_rec.action = PO_PDOI_CONSTANTS.g_ACTION_ORIGINAL) THEN
4090: update_document_status
4091: ( p_doc_rec => p_doc_rec,
4092: p_auth_status => 'INCOMPLETE',
4093: p_status_lookup_code => NULL
4092: p_auth_status => 'INCOMPLETE',
4093: p_status_lookup_code => NULL
4094: );
4095: ELSE
4096: IF ( p_doc_rec.action = PO_PDOI_CONSTANTS.g_ACTION_UPDATE) and
4097: (nvl(p_doc_rec.ORIG_AUTH_STATUS,'INCOMPLETE') in ('INCOMPLETE','REJECTED')) THEN --bug 8597275 ,10300319
4098: update_document_status
4099: ( p_doc_rec => p_doc_rec,
4100: p_auth_status => nvl(p_doc_rec.ORIG_AUTH_STATUS,'INCOMPLETE'), --bug 8597275 ,10300319