162: -- on the action. All actions will populate at least a return_status.
163: --End of Comments
164: -------------------------------------------------------------------------------
165: PROCEDURE manual_close_po(
166: p_action_ctl_rec IN OUT NOCOPY PO_DOCUMENT_ACTION_PVT.doc_action_call_rec_type
167: )
168: IS
169:
170: d_module VARCHAR2(70) := 'po.plsql.PO_DOCUMENT_ACTION_CLOSE.manual_close_po';
347:
348: d_progress := 200;
349:
350: -- From this point forward, need to rollback on early return or exception
351: -- PO_DOCUMENT_ACTION_PVT.do_action, which normally handles rolling back for other actions,
352: -- only rolls back on return_status = 'U'. Since we return 'S' for any encumbrance
353: -- functional errors, we want to undo the following AP INVOICE OPEN update SQL in those cases
354: l_rollback_flag := TRUE;
355:
353: -- functional errors, we want to undo the following AP INVOICE OPEN update SQL in those cases
354: l_rollback_flag := TRUE;
355:
356: IF ((p_action_ctl_rec.calling_mode = 'AP')
357: AND (p_action_ctl_rec.action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_INV))
358: THEN
359:
360: d_progress := 210;
361:
366:
367: END IF; -- if p_action_ctl_rec.calling_mode = 'AP' ...
368:
369:
370: IF ((p_action_ctl_rec.action = PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE)
371: OR ((p_action_ctl_rec.calling_mode = 'AP') AND
372: (p_action_ctl_rec.action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_INV)))
373: THEN
374:
368:
369:
370: IF ((p_action_ctl_rec.action = PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE)
371: OR ((p_action_ctl_rec.calling_mode = 'AP') AND
372: (p_action_ctl_rec.action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_INV)))
373: THEN
374:
375: d_progress := 220;
376:
464:
465: d_progress := 290;
466:
467: IF ((p_action_ctl_rec.document_type <> 'PA') AND
468: (p_action_ctl_rec.action NOT IN (PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE_INV,
469: PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_INV)))
470: THEN
471:
472: d_progress := 300;
465: d_progress := 290;
466:
467: IF ((p_action_ctl_rec.document_type <> 'PA') AND
468: (p_action_ctl_rec.action NOT IN (PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE_INV,
469: PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_INV)))
470: THEN
471:
472: d_progress := 300;
473:
526: -- Then to see the correct PO total, User ahs to finally close the PO.
527:
528:
529: IF (p_action_ctl_rec.action
530: = PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE) THEN
531:
532: PO_Document_Cancel_PVT.calculate_qty_cancel(
533: p_api_version =>1.0,
534: p_init_msg_list => FND_API.G_FALSE,
562: ELSIF (l_ret_sts = 'U') THEN
563: IF (PO_LOG.d_exc) THEN
564: PO_LOG.exc(d_module, d_progress, d_msg);
565: END IF;
566: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, d_msg);
567: END IF;
568:
569: IF (l_rollback_flag) THEN
570: ROLLBACK TO DA_MANUAL_CLOSE_SP;
585: EXCEPTION
586: WHEN others THEN
587: p_action_ctl_rec.return_status := 'U';
588:
589: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, SQLCODE, SQLERRM);
590:
591: IF (PO_LOG.d_exc) THEN
592: PO_LOG.exc(d_module, d_progress, SQLCODE || SQLERRM);
593: PO_LOG.proc_end(d_module, 'p_action_ctl_rec.return_status', p_action_ctl_rec.return_status);
636: -- on the action. All actions will populate at least a return_status.
637: --End of Comments
638: -------------------------------------------------------------------------------
639: PROCEDURE auto_close_po(
640: p_action_ctl_rec IN OUT NOCOPY PO_DOCUMENT_ACTION_PVT.doc_action_call_rec_type
641: )
642: IS
643:
644: d_module VARCHAR2(70) := 'po.plsql.PO_DOCUMENT_ACTION_CLOSE.auto_close_po';
879: ELSIF (l_ret_sts = 'U') THEN
880: IF (PO_LOG.d_exc) THEN
881: PO_LOG.exc(d_module, d_progress, d_msg);
882: END IF;
883: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, d_msg);
884: END IF;
885: END;
886:
887: p_action_ctl_rec.return_status := l_ret_sts;
896: EXCEPTION
897: WHEN others THEN
898: p_action_ctl_rec.return_status := 'U';
899:
900: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, SQLCODE, SQLERRM);
901:
902: IF (PO_LOG.d_exc) THEN
903: PO_LOG.exc(d_module, d_progress, SQLCODE || SQLERRM);
904: PO_LOG.proc_end(d_module, 'p_action_ctl_rec.return_status', p_action_ctl_rec.return_status);
1004: BEGIN
1005:
1006: d_progress := 10;
1007:
1008: IF ((p_calling_mode = 'AP') AND (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_INV))
1009: THEN
1010:
1011: -- bug 3454885
1012: -- If a parent entity of the shipment is FINALLY CLOSED,
1038: WHERE poll.line_location_id = p_shipment_id
1039: AND pol.po_line_id = poll.po_line_id
1040: AND por.po_release_id(+) = poll.po_release_id
1041: AND ppo_ll.line_location_id(+) = poll.source_shipment_id
1042: AND ( pol.closed_code = PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_FIN_CLOSED
1043: OR por.closed_code = PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_FIN_CLOSED
1044: OR ppo_ll.closed_code = PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_FIN_CLOSED
1045: )
1046: ;
1039: AND pol.po_line_id = poll.po_line_id
1040: AND por.po_release_id(+) = poll.po_release_id
1041: AND ppo_ll.line_location_id(+) = poll.source_shipment_id
1042: AND ( pol.closed_code = PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_FIN_CLOSED
1043: OR por.closed_code = PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_FIN_CLOSED
1044: OR ppo_ll.closed_code = PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_FIN_CLOSED
1045: )
1046: ;
1047:
1040: AND por.po_release_id(+) = poll.po_release_id
1041: AND ppo_ll.line_location_id(+) = poll.source_shipment_id
1042: AND ( pol.closed_code = PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_FIN_CLOSED
1043: OR por.closed_code = PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_FIN_CLOSED
1044: OR ppo_ll.closed_code = PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_FIN_CLOSED
1045: )
1046: ;
1047:
1048: IF (l_line_finally_closed > 0)
1057: END IF; -- p_calling_mode = 'AP' AND p_action = 'INVOICE OPEN'
1058:
1059: d_progress := 40;
1060:
1061: l_allowed_states.auth_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_status_APPROVED;
1062: l_allowed_states.hold_flag := NULL;
1063: l_allowed_states.frozen_flag := NULL;
1064: l_allowed_states.fully_reserved_flag := NULL;
1065:
1062: l_allowed_states.hold_flag := NULL;
1063: l_allowed_states.frozen_flag := NULL;
1064: l_allowed_states.fully_reserved_flag := NULL;
1065:
1066: IF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE_INV)
1067: THEN
1068:
1069: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1070: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1065:
1066: IF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE_INV)
1067: THEN
1068:
1069: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1070: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1071:
1072: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE_RCV)
1073: THEN
1066: IF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE_INV)
1067: THEN
1068:
1069: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1070: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1071:
1072: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE_RCV)
1073: THEN
1074:
1068:
1069: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1070: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1071:
1072: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE_RCV)
1073: THEN
1074:
1075: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1076: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1071:
1072: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE_RCV)
1073: THEN
1074:
1075: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1076: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1077:
1078: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE)
1079: THEN
1072: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE_RCV)
1073: THEN
1074:
1075: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1076: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1077:
1078: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE)
1079: THEN
1080:
1074:
1075: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1076: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1077:
1078: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE)
1079: THEN
1080:
1081: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1082: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1077:
1078: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE)
1079: THEN
1080:
1081: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1082: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1083: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1084:
1085: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE)
1078: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE)
1079: THEN
1080:
1081: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1082: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1083: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1084:
1085: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE)
1086: THEN
1079: THEN
1080:
1081: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1082: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1083: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1084:
1085: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE)
1086: THEN
1087:
1081: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1082: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1083: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1084:
1085: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE)
1086: THEN
1087:
1088: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1089: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1084:
1085: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE)
1086: THEN
1087:
1088: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1089: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1090: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1091: l_allowed_states.closed_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1092:
1085: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE)
1086: THEN
1087:
1088: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1089: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1090: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1091: l_allowed_states.closed_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1092:
1093: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN)
1086: THEN
1087:
1088: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1089: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1090: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1091: l_allowed_states.closed_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1092:
1093: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN)
1094: THEN
1087:
1088: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1089: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1090: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1091: l_allowed_states.closed_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1092:
1093: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN)
1094: THEN
1095:
1089: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1090: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1091: l_allowed_states.closed_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1092:
1093: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN)
1094: THEN
1095:
1096: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1097: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1092:
1093: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN)
1094: THEN
1095:
1096: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1097: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1098: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1099: l_allowed_states.closed_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1100:
1093: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN)
1094: THEN
1095:
1096: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1097: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1098: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1099: l_allowed_states.closed_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1100:
1101: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_INV)
1094: THEN
1095:
1096: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1097: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1098: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1099: l_allowed_states.closed_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1100:
1101: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_INV)
1102: THEN
1095:
1096: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1097: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1098: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1099: l_allowed_states.closed_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1100:
1101: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_INV)
1102: THEN
1103:
1097: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1098: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1099: l_allowed_states.closed_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1100:
1101: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_INV)
1102: THEN
1103:
1104: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1105: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1100:
1101: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_INV)
1102: THEN
1103:
1104: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1105: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1106: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1107:
1108: --
1101: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_INV)
1102: THEN
1103:
1104: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1105: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1106: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1107:
1108: --
1109: -- Allow finally closed for AP re-open finally closed document (AP invoice open)
1102: THEN
1103:
1104: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1105: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1106: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1107:
1108: --
1109: -- Allow finally closed for AP re-open finally closed document (AP invoice open)
1110:
1109: -- Allow finally closed for AP re-open finally closed document (AP invoice open)
1110:
1111: IF (p_calling_mode = 'AP')
1112: THEN
1113: l_allowed_states.closed_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_FIN_CLOSED;
1114: END IF;
1115:
1116: --
1117:
1114: END IF;
1115:
1116: --
1117:
1118: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_RCV)
1119: THEN
1120:
1121: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1122: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1117:
1118: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_RCV)
1119: THEN
1120:
1121: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1122: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1123: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1124:
1125: ELSE
1118: ELSIF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_RCV)
1119: THEN
1120:
1121: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1122: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1123: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1124:
1125: ELSE
1126:
1119: THEN
1120:
1121: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1122: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1123: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1124:
1125: ELSE
1126:
1127: d_progress := 50;
1163: ELSIF (l_ret_sts = 'U') THEN
1164: IF (PO_LOG.d_exc) THEN
1165: PO_LOG.exc(d_module, d_progress, d_msg);
1166: END IF;
1167: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, d_msg);
1168: l_ret_val := FALSE;
1169: END IF;
1170: END;
1171:
1182: EXCEPTION
1183: WHEN others THEN
1184: x_return_status := 'U';
1185:
1186: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, SQLCODE, SQLERRM);
1187:
1188: IF (PO_LOG.d_exc) THEN
1189: PO_LOG.exc(d_module, d_progress, SQLCODE || SQLERRM);
1190: PO_LOG.proc_end(d_module, 'x_return_status', x_return_status);
1273: BEGIN
1274:
1275: d_progress := 10;
1276:
1277: l_allowed_states.auth_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_status_APPROVED;
1278: l_allowed_states.auth_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_status_INCOMPLETE;
1279: l_allowed_states.auth_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_status_INPROCESS;
1280: l_allowed_states.auth_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_status_REJECTED;
1281: l_allowed_states.auth_states(5) := PO_DOCUMENT_ACTION_PVT.g_doc_status_RETURNED;
1274:
1275: d_progress := 10;
1276:
1277: l_allowed_states.auth_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_status_APPROVED;
1278: l_allowed_states.auth_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_status_INCOMPLETE;
1279: l_allowed_states.auth_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_status_INPROCESS;
1280: l_allowed_states.auth_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_status_REJECTED;
1281: l_allowed_states.auth_states(5) := PO_DOCUMENT_ACTION_PVT.g_doc_status_RETURNED;
1282: l_allowed_states.auth_states(6) := PO_DOCUMENT_ACTION_PVT.g_doc_status_REAPPROVAL;
1275: d_progress := 10;
1276:
1277: l_allowed_states.auth_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_status_APPROVED;
1278: l_allowed_states.auth_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_status_INCOMPLETE;
1279: l_allowed_states.auth_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_status_INPROCESS;
1280: l_allowed_states.auth_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_status_REJECTED;
1281: l_allowed_states.auth_states(5) := PO_DOCUMENT_ACTION_PVT.g_doc_status_RETURNED;
1282: l_allowed_states.auth_states(6) := PO_DOCUMENT_ACTION_PVT.g_doc_status_REAPPROVAL;
1283: l_allowed_states.auth_states(7) := PO_DOCUMENT_ACTION_PVT.g_doc_status_PREAPPROVED;
1276:
1277: l_allowed_states.auth_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_status_APPROVED;
1278: l_allowed_states.auth_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_status_INCOMPLETE;
1279: l_allowed_states.auth_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_status_INPROCESS;
1280: l_allowed_states.auth_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_status_REJECTED;
1281: l_allowed_states.auth_states(5) := PO_DOCUMENT_ACTION_PVT.g_doc_status_RETURNED;
1282: l_allowed_states.auth_states(6) := PO_DOCUMENT_ACTION_PVT.g_doc_status_REAPPROVAL;
1283: l_allowed_states.auth_states(7) := PO_DOCUMENT_ACTION_PVT.g_doc_status_PREAPPROVED;
1284: l_allowed_states.auth_states(8) := PO_DOCUMENT_ACTION_PVT.g_doc_status_SENT;
1277: l_allowed_states.auth_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_status_APPROVED;
1278: l_allowed_states.auth_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_status_INCOMPLETE;
1279: l_allowed_states.auth_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_status_INPROCESS;
1280: l_allowed_states.auth_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_status_REJECTED;
1281: l_allowed_states.auth_states(5) := PO_DOCUMENT_ACTION_PVT.g_doc_status_RETURNED;
1282: l_allowed_states.auth_states(6) := PO_DOCUMENT_ACTION_PVT.g_doc_status_REAPPROVAL;
1283: l_allowed_states.auth_states(7) := PO_DOCUMENT_ACTION_PVT.g_doc_status_PREAPPROVED;
1284: l_allowed_states.auth_states(8) := PO_DOCUMENT_ACTION_PVT.g_doc_status_SENT;
1285:
1278: l_allowed_states.auth_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_status_INCOMPLETE;
1279: l_allowed_states.auth_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_status_INPROCESS;
1280: l_allowed_states.auth_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_status_REJECTED;
1281: l_allowed_states.auth_states(5) := PO_DOCUMENT_ACTION_PVT.g_doc_status_RETURNED;
1282: l_allowed_states.auth_states(6) := PO_DOCUMENT_ACTION_PVT.g_doc_status_REAPPROVAL;
1283: l_allowed_states.auth_states(7) := PO_DOCUMENT_ACTION_PVT.g_doc_status_PREAPPROVED;
1284: l_allowed_states.auth_states(8) := PO_DOCUMENT_ACTION_PVT.g_doc_status_SENT;
1285:
1286: l_allowed_states.hold_flag := NULL;
1279: l_allowed_states.auth_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_status_INPROCESS;
1280: l_allowed_states.auth_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_status_REJECTED;
1281: l_allowed_states.auth_states(5) := PO_DOCUMENT_ACTION_PVT.g_doc_status_RETURNED;
1282: l_allowed_states.auth_states(6) := PO_DOCUMENT_ACTION_PVT.g_doc_status_REAPPROVAL;
1283: l_allowed_states.auth_states(7) := PO_DOCUMENT_ACTION_PVT.g_doc_status_PREAPPROVED;
1284: l_allowed_states.auth_states(8) := PO_DOCUMENT_ACTION_PVT.g_doc_status_SENT;
1285:
1286: l_allowed_states.hold_flag := NULL;
1287: l_allowed_states.frozen_flag := NULL;
1280: l_allowed_states.auth_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_status_REJECTED;
1281: l_allowed_states.auth_states(5) := PO_DOCUMENT_ACTION_PVT.g_doc_status_RETURNED;
1282: l_allowed_states.auth_states(6) := PO_DOCUMENT_ACTION_PVT.g_doc_status_REAPPROVAL;
1283: l_allowed_states.auth_states(7) := PO_DOCUMENT_ACTION_PVT.g_doc_status_PREAPPROVED;
1284: l_allowed_states.auth_states(8) := PO_DOCUMENT_ACTION_PVT.g_doc_status_SENT;
1285:
1286: l_allowed_states.hold_flag := NULL;
1287: l_allowed_states.frozen_flag := NULL;
1288: l_allowed_states.fully_reserved_flag := NULL;
1286: l_allowed_states.hold_flag := NULL;
1287: l_allowed_states.frozen_flag := NULL;
1288: l_allowed_states.fully_reserved_flag := NULL;
1289:
1290: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1291: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1292: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1293: l_allowed_states.closed_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1294:
1287: l_allowed_states.frozen_flag := NULL;
1288: l_allowed_states.fully_reserved_flag := NULL;
1289:
1290: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1291: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1292: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1293: l_allowed_states.closed_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1294:
1295: d_progress := 20;
1288: l_allowed_states.fully_reserved_flag := NULL;
1289:
1290: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1291: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1292: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1293: l_allowed_states.closed_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1294:
1295: d_progress := 20;
1296:
1289:
1290: l_allowed_states.closed_states(1) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_OPEN;
1291: l_allowed_states.closed_states(2) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_RCV;
1292: l_allowed_states.closed_states(3) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED_INV;
1293: l_allowed_states.closed_states(4) := PO_DOCUMENT_ACTION_PVT.g_doc_closed_sts_CLOSED;
1294:
1295: d_progress := 20;
1296:
1297: l_state_check_ok := PO_DOCUMENT_ACTION_UTIL.check_doc_state(
1324: ELSIF (l_ret_sts = 'U') THEN
1325: IF (PO_LOG.d_exc) THEN
1326: PO_LOG.exc(d_module, d_progress, d_msg);
1327: END IF;
1328: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, d_msg);
1329: l_ret_val := FALSE;
1330: END IF;
1331: END;
1332:
1343: EXCEPTION
1344: WHEN others THEN
1345: x_return_status := 'U';
1346:
1347: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, SQLCODE, SQLERRM);
1348:
1349: IF (PO_LOG.d_exc) THEN
1350: PO_LOG.exc(d_module, d_progress, SQLCODE || SQLERRM);
1351: PO_LOG.proc_end(d_module, 'x_return_status', x_return_status);
1457: BEGIN
1458:
1459: d_progress := 10;
1460:
1461: IF (p_action <> PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE)
1462: THEN
1463:
1464: d_progress := 20;
1465: x_online_report_id := NULL;
1584: ELSIF (l_ret_sts = 'U') THEN
1585: IF (PO_LOG.d_exc) THEN
1586: PO_LOG.exc(d_module, d_progress, d_msg);
1587: END IF;
1588: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, d_msg);
1589: l_ret_val := FALSE;
1590: END IF;
1591: END;
1592:
1604: EXCEPTION
1605: WHEN others THEN
1606: x_return_status := 'U';
1607:
1608: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, SQLCODE, SQLERRM);
1609:
1610: IF (PO_LOG.d_exc) THEN
1611: PO_LOG.exc(d_module, d_progress, SQLCODE || SQLERRM);
1612: PO_LOG.proc_end(d_module, 'x_return_status', x_return_status);
1817:
1818: END IF; -- if p_shipment_id is not null
1819:
1820:
1821: IF (p_action = PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE)
1822: THEN
1823:
1824: d_progress := 90;
1825:
1930: ELSIF (l_ret_sts = 'U') THEN
1931: IF (PO_LOG.d_exc) THEN
1932: PO_LOG.exc(d_module, d_progress, d_msg);
1933: END IF;
1934: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, d_msg);
1935: END IF;
1936: END;
1937:
1938: x_return_status := l_ret_sts;
1949: EXCEPTION
1950: WHEN others THEN
1951: x_return_status := 'U';
1952:
1953: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, SQLCODE, SQLERRM);
1954:
1955: IF (PO_LOG.d_exc) THEN
1956: PO_LOG.exc(d_module, d_progress, SQLCODE || SQLERRM);
1957: PO_LOG.proc_end(d_module, 'x_return_status', x_return_status);
2349: EXCEPTION
2350: WHEN others THEN
2351: x_return_status := 'U';
2352:
2353: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, SQLCODE, SQLERRM);
2354:
2355: IF (PO_LOG.d_exc) THEN
2356: PO_LOG.exc(d_module, d_progress, SQLCODE || SQLERRM);
2357: PO_LOG.proc_end(d_module, 'x_return_status', x_return_status);
3069: EXCEPTION
3070: WHEN others THEN
3071: x_return_status := 'U';
3072:
3073: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, SQLCODE, SQLERRM);
3074:
3075: IF (PO_LOG.d_exc) THEN
3076: PO_LOG.exc(d_module, d_progress, SQLCODE || SQLERRM);
3077: PO_LOG.proc_end(d_module, 'x_return_status', x_return_status);
3516: THEN
3517:
3518: d_progress := 430;
3519: l_ret_sts := 'U';
3520: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, 'handle_ctl_action_history not successful');
3521: IF (PO_LOG.d_exc) THEN
3522: PO_LOG.exc(d_module, d_progress, 'handle_ctl_action_history not successful');
3523: END IF;
3524:
3553: END IF;
3554:
3555: x_return_status := 'U';
3556:
3557: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, SQLCODE, SQLERRM);
3558:
3559: IF (PO_LOG.d_exc) THEN
3560: PO_LOG.exc(d_module, d_progress, SQLCODE || SQLERRM);
3561: PO_LOG.proc_end(d_module, 'x_return_status', x_return_status);
3600:
3601: IF (p_document_type = 'PO')
3602: THEN
3603:
3604: IF p_action IN (PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN,
3605: PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_RCV)
3606: THEN
3607:
3608: IF (p_shipment_id IS NOT NULL)
3601: IF (p_document_type = 'PO')
3602: THEN
3603:
3604: IF p_action IN (PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN,
3605: PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_RCV)
3606: THEN
3607:
3608: IF (p_shipment_id IS NOT NULL)
3609: THEN
3620: l_supply_action := 'Create_PO_Supply';
3621:
3622: END IF; -- p_shipment_id is not null
3623:
3624: ELSIF p_action IN (PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE,
3625: PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE_RCV,
3626: PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE)
3627: THEN
3628:
3621:
3622: END IF; -- p_shipment_id is not null
3623:
3624: ELSIF p_action IN (PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE,
3625: PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE_RCV,
3626: PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE)
3627: THEN
3628:
3629: IF (p_shipment_id IS NOT NULL)
3622: END IF; -- p_shipment_id is not null
3623:
3624: ELSIF p_action IN (PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE,
3625: PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE_RCV,
3626: PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE)
3627: THEN
3628:
3629: IF (p_shipment_id IS NOT NULL)
3630: THEN
3646:
3647: ELSIF (p_document_type = 'RELEASE')
3648: THEN
3649:
3650: IF p_action IN (PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN,
3651: PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_RCV)
3652: THEN
3653:
3654: IF (p_shipment_id IS NOT NULL)
3647: ELSIF (p_document_type = 'RELEASE')
3648: THEN
3649:
3650: IF p_action IN (PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN,
3651: PO_DOCUMENT_ACTION_PVT.g_doc_action_OPEN_RCV)
3652: THEN
3653:
3654: IF (p_shipment_id IS NOT NULL)
3655: THEN
3662:
3663: END IF; -- p_shipment_id is not null
3664:
3665:
3666: ELSIF p_action IN (PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE,
3667: PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE_RCV,
3668: PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE)
3669: THEN
3670:
3663: END IF; -- p_shipment_id is not null
3664:
3665:
3666: ELSIF p_action IN (PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE,
3667: PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE_RCV,
3668: PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE)
3669: THEN
3670:
3671: IF (p_shipment_id IS NOT NULL)
3664:
3665:
3666: ELSIF p_action IN (PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE,
3667: PO_DOCUMENT_ACTION_PVT.g_doc_action_CLOSE_RCV,
3668: PO_DOCUMENT_ACTION_PVT.g_doc_action_FINALLY_CLOSE)
3669: THEN
3670:
3671: IF (p_shipment_id IS NOT NULL)
3672: THEN
3706: x_return_status := 'U';
3707: IF (PO_LOG.d_exc) THEN
3708: PO_LOG.exc(d_module, d_progress, 'po_req_supply call not successful');
3709: END IF;
3710: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, 'po_req_supply call not successful');
3711:
3712: ELSE
3713:
3714: d_progress := 40;
3729: EXCEPTION
3730: WHEN others THEN
3731: x_return_status := 'U';
3732:
3733: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, SQLCODE, SQLERRM);
3734:
3735: IF (PO_LOG.d_exc) THEN
3736: PO_LOG.exc(d_module, d_progress, SQLCODE || SQLERRM);
3737: PO_LOG.proc_end(d_module, 'x_return_status', x_return_status);
3916: EXCEPTION
3917: WHEN others THEN
3918: x_return_status := 'U';
3919:
3920: PO_DOCUMENT_ACTION_PVT.error_msg_append(d_module, d_progress, SQLCODE, SQLERRM);
3921:
3922: IF (PO_LOG.d_exc) THEN
3923: PO_LOG.exc(d_module, d_progress, SQLCODE || SQLERRM);
3924: PO_LOG.proc_end(d_module, 'x_return_status', x_return_status);