1 PACKAGE PO_DOCUMENT_CHECKS_PVT AS
2 /* $Header: POXVDCKS.pls 120.5.12010000.2 2008/11/12 21:44:56 rarajar ship $*/
3
4
5
6
7 -----------------------------------------------------------------------------
8 -- Public variables
9 -----------------------------------------------------------------------------
10
11 --<FPJ ENCUMBRANCE>
12
13 -- <Document Manger Rewrite 11.5.11>: Added FINAL_CLOSE_CHECK
14
15 -- Actions:
16 g_action_DOC_SUBMISSION_CHECK CONSTANT
17 VARCHAR2(30)
18 := 'DOC_SUBMISSION_CHECK'
19 ;
20 g_action_UNRESERVE CONSTANT
21 VARCHAR2(30)
22 := 'UNRESERVE'
23 ;
24 g_action_FINAL_CLOSE_CHECK CONSTANT
25 VARCHAR2(30)
26 := 'FINAL CLOSE'
27 ;
28
29 -- Document types:
30 g_document_type_REQUISITION CONSTANT
31 PO_DOCUMENT_TYPES.document_type_code%TYPE
32 := PO_CORE_S.g_doc_type_REQUISITION
33 ;
34 g_document_type_PO CONSTANT
35 PO_DOCUMENT_TYPES.document_type_code%TYPE
36 := PO_CORE_S.g_doc_type_PO
37 ;
38 g_document_type_PA CONSTANT
39 PO_DOCUMENT_TYPES.document_type_code%TYPE
40 := PO_CORE_S.g_doc_type_PA
41 ;
42 g_document_type_RELEASE CONSTANT
43 PO_DOCUMENT_TYPES.document_type_code%TYPE
44 := PO_CORE_S.g_doc_type_RELEASE
45 ;
46
47 -- Document levels:
48 g_document_level_HEADER CONSTANT
49 VARCHAR2(25)
50 := PO_CORE_S.g_doc_level_HEADER
51 ;
52 g_document_level_LINE CONSTANT
53 VARCHAR2(25)
54 := PO_CORE_S.g_doc_level_LINE
55 ;
56 g_document_level_SHIPMENT CONSTANT
57 VARCHAR2(25)
58 := PO_CORE_S.g_doc_level_SHIPMENT
59 ;
60 g_document_level_DISTRIBUTION CONSTANT
61 VARCHAR2(25)
62 := PO_CORE_S.g_doc_level_DISTRIBUTION
63 ;
64
65
66 --<DropShip FPJ Start>
67 --The following constants are possible values
68 -- for p_mode input parameter of po_status_check Procedure
69 G_CHECK_UPDATEABLE CONSTANT VARCHAR2(30) := 'CHECK_UPDATEABLE';
70 G_GET_STATUS CONSTANT VARCHAR2(30) := 'GET_STATUS';
71 G_CHECK_RESERVABLE CONSTANT VARCHAR2(30) := 'CHECK_RESERVABLE';
72 G_CHECK_UNRESERVABLE CONSTANT VARCHAR2(30) := 'CHECK_UNRESERVABLE';
73 --<DropShip FPJ End>
74
75
76 -----------------------------------------------------------------------------
77 -- Public subprograms
78 -----------------------------------------------------------------------------
79
80
81
82
83 PROCEDURE po_submission_check(
84 p_api_version IN NUMBER
85 , p_action_requested IN VARCHAR2
86 , p_document_type IN VARCHAR2
87 , p_document_subtype IN VARCHAR2
88 , p_document_level IN VARCHAR2
89 , p_document_level_id IN NUMBER
90 , p_requested_changes IN PO_CHANGES_REC_TYPE
91 , p_check_asl IN BOOLEAN
92 , p_req_chg_initiator IN VARCHAR2 := NULL -- bug4957243
93 , p_origin_doc_id IN NUMBER := NULL --Bug#5462677
94 , x_return_status OUT NOCOPY VARCHAR2
95 , x_sub_check_status OUT NOCOPY VARCHAR2
96 , x_has_warnings OUT NOCOPY VARCHAR2 -- bug3574165
97 , x_msg_data OUT NOCOPY VARCHAR2
98 , x_online_report_id OUT NOCOPY NUMBER
99 , x_doc_check_error_record OUT NOCOPY doc_check_Return_Type
100 );
101
102
103 PROCEDURE post_submission_check -- <2757450>
104 ( p_api_version IN NUMBER
105 , p_document_type IN VARCHAR2
106 , p_document_subtype IN VARCHAR2
107 , p_document_id IN NUMBER
108 , x_return_status OUT NOCOPY VARCHAR2
109 , x_sub_check_status OUT NOCOPY VARCHAR2
110 , x_online_report_id OUT NOCOPY NUMBER
111 );
112
113 --Bug 4943365 Removed the check_asl procedure because blankets
114 --should not do the asl checks.
115 --PROCEDURE check_asl
116
117 --For REQUISTIONS
118 PROCEDURE check_requisitions(p_document_id IN NUMBER,
119 p_online_report_id IN NUMBER,
120 p_user_id IN NUMBER,
121 p_login_id IN NUMBER,
122 p_sequence IN OUT NOCOPY NUMBER,
123 x_return_status OUT NOCOPY VARCHAR2);
124
125 --For RELEASES
126 PROCEDURE check_releases(p_document_id IN NUMBER,
127 p_online_report_id IN NUMBER,
128 p_user_id IN NUMBER,
129 p_login_id IN NUMBER,
130 p_sequence IN OUT NOCOPY NUMBER,
131 x_return_status OUT NOCOPY VARCHAR2);
132
133 --For RELEASES, PO
134 PROCEDURE check_po_rel_reqprice(p_document_type IN VARCHAR2,
135 p_document_id IN NUMBER,
136 p_online_report_id IN NUMBER,
137 p_user_id IN NUMBER,
138 p_login_id IN NUMBER,
139 p_sequence IN OUT NOCOPY NUMBER,
140 x_return_status OUT NOCOPY VARCHAR2);
141
142 --For PO,PA: Header Checks
143 PROCEDURE check_po_pa_header(p_document_id IN NUMBER,
144 p_online_report_id IN NUMBER,
145 p_user_id IN NUMBER,
146 p_login_id IN NUMBER,
147 p_sequence IN OUT NOCOPY NUMBER,
148 x_return_status OUT NOCOPY VARCHAR2);
149
150 --For PO
151 PROCEDURE check_po( p_document_id IN NUMBER,
152 p_online_report_id IN NUMBER,
153 p_user_id IN NUMBER,
154 p_login_id IN NUMBER,
155 p_sequence IN OUT NOCOPY NUMBER,
156 x_return_status OUT NOCOPY VARCHAR2);
157
158 --For Planned POs and Blanket PAs
159 PROCEDURE check_planned_po_blanket_pa(p_document_id IN NUMBER,
160 p_online_report_id IN NUMBER,
161 p_user_id IN NUMBER,
162 p_login_id IN NUMBER,
163 p_sequence IN OUT NOCOPY NUMBER,
164 x_return_status OUT NOCOPY VARCHAR2);
165
166 --For Standard PO
167 --Includes Global Agreement Reference checks, Consigned Inventory checks
168 PROCEDURE check_standard_po(p_document_id IN NUMBER,
169 p_online_report_id IN NUMBER,
170 p_user_id IN NUMBER,
171 p_login_id IN NUMBER,
172 p_sequence IN OUT NOCOPY NUMBER,
173 x_return_status OUT NOCOPY VARCHAR2);
174
175 --For Standard POs which reference Global Agreement called from
176 --check_standard_po
177 PROCEDURE check_std_global_ref(p_document_id IN NUMBER,
178 p_online_report_id IN NUMBER,
179 p_user_id IN NUMBER,
180 p_login_id IN NUMBER,
181 p_sequence IN OUT NOCOPY NUMBER,
182 x_return_status OUT NOCOPY VARCHAR2);
183
184 --For Standard POs which have consigned reference called from
185 --check_standard_po
186 PROCEDURE check_std_consigned_ref(p_document_id IN NUMBER,
187 p_online_report_id IN NUMBER,
188 p_user_id IN NUMBER,
189 p_login_id IN NUMBER,
190 p_sequence IN OUT NOCOPY NUMBER,
191 x_return_status OUT NOCOPY VARCHAR2);
192
193 -- <GC FPJ START>
194 -- For Standard POs which have Global contract reference. Called from
195 -- check_standard_po
196
197 PROCEDURE check_std_gc_ref
198 ( p_document_id IN NUMBER,
199 p_online_report_id IN NUMBER,
200 p_user_id IN NUMBER,
201 p_login_id IN NUMBER,
202 x_sequence IN OUT NOCOPY NUMBER,
203 x_return_status OUT NOCOPY VARCHAR2
204 );
205
206 -- <GC FPJ END>
207
208 --For Contract PA
209 PROCEDURE check_contract_agreement(p_document_id IN NUMBER,
210 p_online_report_id IN NUMBER,
211 p_user_id IN NUMBER,
212 p_login_id IN NUMBER,
213 p_sequence IN OUT NOCOPY NUMBER,
214 x_return_status OUT NOCOPY VARCHAR2);
215
216 --For POs, Reqs, Releases
217 PROCEDURE do_cbc_related_validations(p_document_type IN VARCHAR2,
218 p_document_subtype IN VARCHAR2,
219 p_document_id IN NUMBER,
220 p_online_report_id IN NUMBER,
221 p_user_id IN NUMBER,
222 p_login_id IN NUMBER,
223 p_sequence IN OUT NOCOPY NUMBER,
224 x_return_status OUT NOCOPY VARCHAR2);
225
226
227 --For populating global temp from po_headers
228 PROCEDURE populate_po_headers_gt(p_document_id IN number,
229 x_return_status OUT NOCOPY VARCHAR2);
230
231
232 --For populating global temp from po_requisition_headers
233 PROCEDURE populate_req_headers_gt(p_document_id IN number,
234 x_return_status OUT NOCOPY VARCHAR2);
235
236 --For populating global temp from po_requisition_lines
237 PROCEDURE populate_req_lines_gt(p_document_id IN number,
238 x_return_status OUT NOCOPY VARCHAR2);
239
240 --For populating global temp from po_releases
241 PROCEDURE populate_releases_gt(p_document_id IN number,
242 x_return_status OUT NOCOPY VARCHAR2);
243
244
245 --For updating the global temp tables with requested changes
246 PROCEDURE update_global_temp_tables(p_document_type IN VARCHAR2,
247 p_document_subtype IN VARCHAR2,
248 p_document_id IN NUMBER,
249 -- <PO_CHANGE_API FPJ> Renamed the type to PO_CHANGES_REC_TYPE:
250 p_requested_changes IN PO_CHANGES_REC_TYPE,
251 x_return_status OUT NOCOPY VARCHAR2);
252
253 -- <FPJ, Refactor Security API START>
254
255 /**
256 * Public Procedure: PO_Security_Check
257 * Requires:
258 * IN PARAMETERS:
259 * p_api_version: Version number of API that caller expects. It
260 * should match the l_api_version defined in the
261 * procedure
262 * p_query_table: Table you want to check
263 * p_owner_id_column: Owner id column of the table
264 * p_employee_id: User id to access the document
265 * p_minimum_access_level: Minimum access level to the document
266 * p_document_type: The type of the document to perform
267 * the security check on
268 * p_document_subtype: The subtype of the document.
269 * p_type_clause: The document type clause to be used in
270 * constructing where clause
271 *
272 * Modifies: None
273 * Effects: This procedure builds dynamic WHERE clause fragments based on
274 * document security parameters.
275 * Returns:
276 * x_return_status: FND_API.G_RET_STS_SUCCESS if API succeeds
277 * FND_API.G_RET_STS_ERROR if API fails
278 * FND_API.G_RET_STS_UNEXP_ERROR if unexpected error
279 * x_msg_data: Contains error msg in case x_return_status returned
280 * FND_API.G_RET_STS_ERROR or
281 * FND_API.G_RET_STS_UNEXP_ERROR
282 * x_where_clause: The constructed where clause
283 */
284
285 PROCEDURE PO_Security_Check (p_api_version IN Number,
286 p_query_table IN Varchar2,
287 p_owner_id_column IN Varchar2,
288 p_employee_id IN Varchar2,
289 p_minimum_access_level IN Varchar2,
290 p_document_type IN Varchar2,
291 p_document_subtype IN Varchar2,
292 p_type_clause IN Varchar2,
293 x_return_status OUT NOCOPY VARCHAR2,
294 x_msg_data OUT NOCOPY VARCHAR2,
295 x_where_clause OUT NOCOPY VARCHAR2);
296
297 -- <FPJ Refactor Security API END>
298
299 -- The new procedure po_status_check added in DropShip FPJ project
300
301 -- Detailed comments maintained in the Package Body PO_DOCUMENT_CHECKS_PVT.po_status_check
302 PROCEDURE po_status_check (
303 p_api_version IN NUMBER,
304 p_header_id IN PO_TBL_NUMBER,
305 p_release_id IN PO_TBL_NUMBER,
306 p_document_type IN PO_TBL_VARCHAR30,
307 p_document_subtype IN PO_TBL_VARCHAR30,
308 p_document_num IN PO_TBL_VARCHAR30,
309 p_vendor_order_num IN PO_TBL_VARCHAR30,
310 p_line_id IN PO_TBL_NUMBER,
311 p_line_location_id IN PO_TBL_NUMBER,
312 p_distribution_id IN PO_TBL_NUMBER,
313 p_mode IN VARCHAR2,
314 p_lock_flag IN VARCHAR2 := 'N',
315 p_calling_module IN VARCHAR2 := NULL, -- PDOI Rewrite R12
316 p_role IN VARCHAR2 := NULL, -- PDOI Rewrite R12
317 p_skip_cat_upload_chk IN VARCHAR2 := NULL, -- PDOI Rewrite R12
318 x_po_status_rec OUT NOCOPY PO_STATUS_REC_TYPE,
319 x_return_status OUT NOCOPY VARCHAR2
320 );
321
322 -- <CONTERMS FPJ>
323 -- new procedure to call contract terms validation during submission check
324 PROCEDURE check_terms(
325 p_document_id IN NUMBER,
326 p_document_type IN VARCHAR2,
327 p_document_subtype IN VARCHAR2,
328 p_online_report_id IN NUMBER,
329 p_user_id IN NUMBER,
330 p_login_id IN NUMBER,
331 p_sequence IN OUT NOCOPY NUMBER,
332 x_return_status OUT NOCOPY VARCHAR2);
333
334 -- <JFMIP Vendor Registration FPJ>
335 -- For Release, PO, PA: checks if vendor site registration is valid
336 PROCEDURE check_vendor_site_ccr_regis(
337 p_document_id IN NUMBER,
338 p_online_report_id IN NUMBER,
339 p_user_id IN NUMBER,
340 p_login_id IN NUMBER,
341 p_sequence IN OUT NOCOPY NUMBER,
342 x_return_status OUT NOCOPY VARCHAR2);
343
344 --<LCM project start>
345 -- Procedure to set the lcm flag in po shipments and distributions
346 PROCEDURE Set_LCM_Flag (p_line_location_id IN NUMBER,
347 p_doc_check_status IN VARCHAR2,
348 x_return_status OUT nocopy VARCHAR2);
349 --<LCM project end>
350
351 --<BUG 4624736 START>
352 -- Checks if the pay item's price can be updated.
353 -- NOTE: does not verify that line location is in fact
354 -- a pay item.
355 FUNCTION is_pay_item_price_updateable (
356 p_line_location_id IN NUMBER
357 , p_add_reasons_to_msg_list IN VARCHAR2)
358 RETURN BOOLEAN;
359
360 FUNCTION chk_unv_invoices(p_invoice_type IN VARCHAR2 DEFAULT 'BOTH',
361 p_po_header_id IN NUMBER,
362 p_po_release_id IN NUMBER DEFAULT NULL,
363 p_po_line_id IN NUMBER DEFAULT NULL,
364 p_line_location_id IN NUMBER DEFAULT NULL,
365 p_po_distribution_id IN NUMBER DEFAULT NULL,
366 p_invoice_id IN NUMBER DEFAULT NULL,
367 p_calling_sequence IN VARCHAR2) RETURN NUMBER;
368
369 --<BUG 4624736 END>
370
371 END PO_DOCUMENT_CHECKS_PVT;