25: --End of Comments
26: --------------------------------------------------------------------------------
27: procedure append_saved_adhoc_approver(
28: p_document_id IN NUMBER,
29: p_approval_list IN OUT NOCOPY po_approvallist_s1.ApprovalListType);
30:
31: PROCEDURE PushMessage(p_error_stack IN OUT NOCOPY /* file.sql.39 change */ po_approvallist_s1.ErrorStackType,
32: p_message_name IN VARCHAR2,
33: p_token1 IN VARCHAR2 DEFAULT NULL,
27: procedure append_saved_adhoc_approver(
28: p_document_id IN NUMBER,
29: p_approval_list IN OUT NOCOPY po_approvallist_s1.ApprovalListType);
30:
31: PROCEDURE PushMessage(p_error_stack IN OUT NOCOPY /* file.sql.39 change */ po_approvallist_s1.ErrorStackType,
32: p_message_name IN VARCHAR2,
33: p_token1 IN VARCHAR2 DEFAULT NULL,
34: p_value1 IN VARCHAR2 DEFAULT NULL,
35: p_token2 IN VARCHAR2 DEFAULT NULL,
45: p_document_type IN VARCHAR2,
46: p_document_subtype IN VARCHAR2,
47: p_employee_id IN NUMBER,
48: p_return_code OUT NOCOPY /* file.sql.39 change */ NUMBER,
49: p_error_stack IN OUT NOCOPY /* file.sql.39 change */ po_approvallist_s1.ErrorStackType,
50: p_has_authority OUT NOCOPY /* file.sql.39 change */ BOOLEAN);
51:
52: PROCEDURE MarshalField(p_string IN VARCHAR2,
53: p_quote_char IN VARCHAR2,
86: p_preparer_can_approve OUT NOCOPY NUMBER,
87: p_append_saved_approver_flag IN NUMBER DEFAULT NULL,
88: p_checkout_flow_type IN VARCHAR2 DEFAULT NULL) IS
89:
90: l_approval_list po_approvallist_s1.ApprovalListType;
91: l_error_stack po_approvallist_s1.ErrorStackType;
92: l_return_code NUMBER;
93: l_last_update_date DATE;
94: l_approval_list_header_id NUMBER;
87: p_append_saved_approver_flag IN NUMBER DEFAULT NULL,
88: p_checkout_flow_type IN VARCHAR2 DEFAULT NULL) IS
89:
90: l_approval_list po_approvallist_s1.ApprovalListType;
91: l_error_stack po_approvallist_s1.ErrorStackType;
92: l_return_code NUMBER;
93: l_last_update_date DATE;
94: l_approval_list_header_id NUMBER;
95: l_index NUMBER;
101: l_can_preparer_approve_flag VARCHAR2(1);
102:
103: BEGIN
104:
105: PO_APPROVALLIST_S1.g_checkout_flow_type := p_checkout_flow_type;
106:
107: get_doc_subtype(p_document_id);
108:
109: p_approval_list_string := NULL;
109: p_approval_list_string := NULL;
110:
111: IF (p_default_flag = 1) THEN
112: l_initial_build := true;
113: po_approvallist_s1.get_default_approval_list(
114: p_first_approver_id=>p_first_approver_id,
115: p_approval_path_id=>NULL,
116: p_document_id=>p_document_id,
117: p_document_type=>g_document_type,
127: p_approval_list=>l_approval_list);
128: END IF;
129:
130: ELSIF (p_rebuild_flag = 1) THEN
131: po_approvallist_s1.rebuild_approval_list(
132: p_document_id=>p_document_id,
133: p_document_type=>g_document_type,
134: p_document_subtype=>g_document_subtype,
135: p_rebuild_code=>'DOCUMENT_CHANGED',
136: p_return_code=>l_return_code,
137: p_error_stack=>l_error_stack,
138: p_approval_list_header_id=>l_approval_list_header_id);
139:
140: IF (l_return_code <> po_approvallist_s1.E_SUCCESS) THEN
141: GOTO HANDLE_ERROR; -- bad style huh?
142: END IF;
143: po_approvallist_s1.get_latest_approval_list
144: (p_document_id=>p_document_id,
139:
140: IF (l_return_code <> po_approvallist_s1.E_SUCCESS) THEN
141: GOTO HANDLE_ERROR; -- bad style huh?
142: END IF;
143: po_approvallist_s1.get_latest_approval_list
144: (p_document_id=>p_document_id,
145: p_document_type=>g_document_type,
146: p_document_subtype=>g_document_subtype,
147: p_return_code=>l_return_code,
152:
153: p_last_update_date := to_char(l_last_update_date, g_date_format_mask);
154: p_approval_list_header_id := l_approval_list_header_id;
155: ELSE
156: po_approvallist_s1.get_latest_approval_list
157: (p_document_id=>p_document_id,
158: p_document_type=>g_document_type,
159: p_document_subtype=>g_document_subtype,
160: p_return_code=>l_return_code,
165:
166: p_last_update_date := to_char(l_last_update_date, g_date_format_mask);
167: p_approval_list_header_id := l_approval_list_header_id;
168:
169: IF (l_return_code <> po_approvallist_s1.E_SUCCESS) THEN
170:
171: IF (l_error_stack.COUNT > 0) THEN
172: l_error_stack.delete;
173: END IF;
172: l_error_stack.delete;
173: END IF;
174:
175: l_initial_build := true;
176: po_approvallist_s1.get_default_approval_list
177: ( p_first_approver_id=>p_first_approver_id,
178: p_approval_path_id=>NULL,
179: p_document_id=>p_document_id,
180: p_document_type=>g_document_type,
186:
187: END IF;
188: END IF;
189:
190: IF (l_return_code = po_approvallist_s1.E_SUCCESS) THEN
191:
192: g_approval_list_string := NULL;
193:
194: IF (l_approval_list.COUNT > 0) THEN
264: p_return_code=>l_approval_return_code,
265: p_error_stack=>l_error_stack,
266: p_has_authority=>l_has_authority);
267:
268: IF (l_approval_return_code <> po_approvallist_s1.E_SUCCESS) THEN
269: p_preparer_can_approve := 0;
270: ELSIF (l_has_authority) THEN
271: p_preparer_can_approve := 1;
272: ELSE
280:
281: RETURN;
282:
283:
284: ELSIF (p_default_flag = 1 AND l_return_code = po_approvallist_s1.E_NO_ONE_HAS_AUTHORITY) THEN
285:
286: SELECT NVL(can_preparer_approve_flag, 'N')
287: INTO l_can_preparer_approve_flag
288: FROM po_document_types podt
306: p_return_code=>l_approval_return_code,
307: p_error_stack=>l_error_stack,
308: p_has_authority=>l_has_authority);
309:
310: IF (l_approval_return_code <> po_approvallist_s1.E_SUCCESS) THEN
311: p_preparer_can_approve := 0;
312: ELSIF (l_has_authority) THEN
313: p_preparer_can_approve := 1;
314: ELSE
358: ELSE
359: p_return_code := 1;
360: END IF;
361:
362: PO_APPROVALLIST_S1.g_checkout_flow_type := '';
363:
364: END get_approval_list;
365:
366: PROCEDURE save_approval_list(p_document_id IN NUMBER,
371: p_quote_char IN VARCHAR2,
372: p_field_delimiter IN VARCHAR2,
373: p_return_code OUT NOCOPY NUMBER,
374: p_error_stack_string OUT NOCOPY VARCHAR2) IS
375: l_approval_list po_approvallist_s1.ApprovalListType;
376: l_approval_list_elt po_approvallist_s1.ApprovalListEltType;
377: l_error_stack po_approvallist_s1.ErrorStackType;
378: l_index NUMBER;
379: l_pos NUMBER;
372: p_field_delimiter IN VARCHAR2,
373: p_return_code OUT NOCOPY NUMBER,
374: p_error_stack_string OUT NOCOPY VARCHAR2) IS
375: l_approval_list po_approvallist_s1.ApprovalListType;
376: l_approval_list_elt po_approvallist_s1.ApprovalListEltType;
377: l_error_stack po_approvallist_s1.ErrorStackType;
378: l_index NUMBER;
379: l_pos NUMBER;
380: l_string VARCHAR2(32767);
373: p_return_code OUT NOCOPY NUMBER,
374: p_error_stack_string OUT NOCOPY VARCHAR2) IS
375: l_approval_list po_approvallist_s1.ApprovalListType;
376: l_approval_list_elt po_approvallist_s1.ApprovalListEltType;
377: l_error_stack po_approvallist_s1.ErrorStackType;
378: l_index NUMBER;
379: l_pos NUMBER;
380: l_string VARCHAR2(32767);
381: l_last_update_date DATE;
585: l_approval_list(l_index) := l_approval_list_elt;
586:
587: END LOOP;
588:
589: -- debug: po_approvallist_s1.print_approval_list(l_approval_list);
590:
591: po_approvallist_s1.save_approval_list(
592: p_document_id=>p_document_id,
593: p_document_type=>g_document_type,
587: END LOOP;
588:
589: -- debug: po_approvallist_s1.print_approval_list(l_approval_list);
590:
591: po_approvallist_s1.save_approval_list(
592: p_document_id=>p_document_id,
593: p_document_type=>g_document_type,
594: p_document_subtype=>g_document_subtype,
595: p_first_approver_id=>p_first_approver_id,
599: p_approval_list_header_id=> p_approval_list_header_id,
600: p_return_code=>l_return_code,
601: p_error_stack=>l_error_stack);
602:
603: IF (l_return_code = po_approvallist_s1.E_SUCCESS) THEN
604: p_return_code := 1;
605:
606: select to_char(last_update_date, g_date_format_mask) into p_last_update_date
607: from po_approval_list_headers
647: SET wf_item_type = 'REQAPPRV',
648: wf_item_key = l_wf_item_key
649: WHERE requisition_header_id = p_document_id;
650:
651: PO_APPROVALLIST_S1.UPDATE_APPROVAL_LIST_ITEMKEY(p_document_id,
652: 'REQAPPRV',
653: l_wf_item_key,
654: l_return);
655:
722: p_document_type IN VARCHAR2,
723: p_document_subtype IN VARCHAR2,
724: p_employee_id IN NUMBER,
725: p_return_code OUT NOCOPY NUMBER,
726: p_error_stack IN OUT NOCOPY po_approvallist_s1.ErrorStackType,
727: p_has_authority OUT NOCOPY BOOLEAN) IS
728:
729: l_progress VARCHAR2(10) := '000';
730: l_return_value NUMBER;
765: END IF;
766: p_return_code := 0;
767: ELSE
768: IF (l_return_value = 1) THEN
769: p_return_code := po_approvallist_s1.E_DOC_MGR_TIMEOUT;
770: PushMessage(p_error_stack, 'PO_ALIST_DOC_MGR_FAIL', 'ERR_CODE', l_return_value);
771: ELSIF (l_return_value = 2) THEN
772: p_return_code := po_approvallist_s1.E_DOC_MGR_NOMGR;
773: PushMessage(p_error_stack, 'PO_ALIST_DOC_MGR_FAIL', 'ERR_CODE', l_return_value);
768: IF (l_return_value = 1) THEN
769: p_return_code := po_approvallist_s1.E_DOC_MGR_TIMEOUT;
770: PushMessage(p_error_stack, 'PO_ALIST_DOC_MGR_FAIL', 'ERR_CODE', l_return_value);
771: ELSIF (l_return_value = 2) THEN
772: p_return_code := po_approvallist_s1.E_DOC_MGR_NOMGR;
773: PushMessage(p_error_stack, 'PO_ALIST_DOC_MGR_FAIL', 'ERR_CODE', l_return_value);
774: ELSE
775: p_return_code := po_approvallist_s1.E_DOC_MGR_OTHER;
776: PushMessage(p_error_stack, 'PO_ALIST_DOC_MGR_FAIL', 'ERR_CODE', l_return_value);
771: ELSIF (l_return_value = 2) THEN
772: p_return_code := po_approvallist_s1.E_DOC_MGR_NOMGR;
773: PushMessage(p_error_stack, 'PO_ALIST_DOC_MGR_FAIL', 'ERR_CODE', l_return_value);
774: ELSE
775: p_return_code := po_approvallist_s1.E_DOC_MGR_OTHER;
776: PushMessage(p_error_stack, 'PO_ALIST_DOC_MGR_FAIL', 'ERR_CODE', l_return_value);
777: END IF;
778: END IF;
779:
782: p_return_code := SQLCODE;
783: PushMessage(p_error_stack, 'PO_ALL_SQL_ERROR', 'ROUTINE', 'VerifyAuthority', 'ERR_NUMBER', l_progress, 'SQL_ERR', SQLERRM(SQLCODE));
784: END VerifyAuthority;
785:
786: PROCEDURE PushMessage(p_error_stack IN OUT NOCOPY po_approvallist_s1.ErrorStackType,
787: p_message_name IN VARCHAR2,
788: p_token1 IN VARCHAR2 DEFAULT NULL,
789: p_value1 IN VARCHAR2 DEFAULT NULL,
790: p_token2 IN VARCHAR2 DEFAULT NULL,
1026: end;
1027:
1028: procedure append_saved_adhoc_approver(
1029: p_document_id IN NUMBER,
1030: p_approval_list IN OUT NOCOPY po_approvallist_s1.ApprovalListType) IS
1031:
1032: l_approver_id number;
1033:
1034: cursor adhoc_approver_c IS
1048:
1049: l_index NUMBER;
1050: l_username wf_users.name%TYPE;
1051: l_disp_name wf_users.display_name%TYPE;
1052: l_approval_list_elt po_approvallist_s1.ApprovalListEltType;
1053:
1054: BEGIN
1055: l_index := p_approval_list.LAST;
1056: IF (l_index IS NULL) THEN