DBA Data[Home] [Help]

PACKAGE: APPS.PO_DOCUMENT_CHECKS_PVT

Source


1 PACKAGE PO_DOCUMENT_CHECKS_PVT AUTHID CURRENT_USER AS
2 /* $Header: POXVDCKS.pls 120.16.12020000.5 2013/04/08 17:46:54 akyanama 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 -- 13655939, 13019003
66 --Changed the 2 arguments to 3
67    FUNCTION validate_account_wrapper( p_structure_number IN NUMBER,
68 				                      p_combination_id  IN NUMBER,
69 									  p_val_date IN DATE) RETURN VARCHAR2;
70 -- 13655939, 13019003
71 --<DropShip FPJ Start>
72 --The following constants are possible values
76 G_CHECK_RESERVABLE   CONSTANT VARCHAR2(30) := 'CHECK_RESERVABLE';
73 --  for p_mode input parameter of po_status_check Procedure
74 G_CHECK_UPDATEABLE   CONSTANT VARCHAR2(30) := 'CHECK_UPDATEABLE';
75 G_GET_STATUS         CONSTANT VARCHAR2(30) := 'GET_STATUS';
77 G_CHECK_UNRESERVABLE CONSTANT VARCHAR2(30) := 'CHECK_UNRESERVABLE';
78 --<DropShip FPJ End>
79 
80 
81 -----------------------------------------------------------------------------
82 -- Public subprograms
83 -----------------------------------------------------------------------------
84 
85 
86 
87 
88 PROCEDURE po_submission_check(
89    p_api_version                    IN           NUMBER
90 ,  p_action_requested               IN           VARCHAR2
91 ,  p_document_type                  IN           VARCHAR2
92 ,  p_document_subtype               IN           VARCHAR2
93 ,  p_document_level                 IN           VARCHAR2
94 ,  p_document_level_id              IN           NUMBER
95 ,  p_requested_changes              IN           PO_CHANGES_REC_TYPE
96 ,  p_check_asl                      IN           BOOLEAN
97 ,  p_draft_id                         IN             NUMBER := -1
98 ,  p_req_chg_initiator              IN           VARCHAR2 := NULL -- bug4957243
99 ,  p_origin_doc_id                  IN           NUMBER := NULL --Bug#5462677
100 ,  x_return_status                  OUT NOCOPY   VARCHAR2
101 ,  x_sub_check_status               OUT NOCOPY   VARCHAR2
102 ,  x_has_warnings                   OUT NOCOPY   VARCHAR2       -- bug3574165
103 ,  x_msg_data                       OUT NOCOPY   VARCHAR2
104 ,  x_online_report_id               OUT NOCOPY   NUMBER
105 ,  x_doc_check_error_record         OUT NOCOPY   doc_check_Return_Type
106 );
107 
108 
109  PROCEDURE post_submission_check                                   -- <2757450>
110  (  p_api_version  	          IN            NUMBER
111  ,  p_document_type           IN            VARCHAR2
112  ,  p_document_subtype        IN            VARCHAR2
113  ,  p_document_id             IN            NUMBER
114  ,  x_return_status 	         OUT NOCOPY VARCHAR2
115  ,  x_sub_check_status           OUT NOCOPY VARCHAR2
116  ,  x_online_report_id           OUT NOCOPY NUMBER
117  );
118 
119  --Bug 4943365 Removed the check_asl procedure because blankets
120  --should not do the asl checks.
121  --PROCEDURE check_asl
122 
123  --For REQUISTIONS
124  PROCEDURE check_requisitions(p_document_id IN NUMBER,
125                        p_online_report_id IN NUMBER,
126                        p_user_id IN NUMBER,
127                        p_login_id IN NUMBER,
128                        p_sequence IN OUT NOCOPY NUMBER,
129                        x_return_status OUT NOCOPY VARCHAR2);
130 
131  --For RELEASES
132  PROCEDURE check_releases(p_document_id IN NUMBER,
133                        p_online_report_id IN NUMBER,
134                        p_user_id IN NUMBER,
135                        p_login_id IN NUMBER,
136                        p_sequence IN OUT NOCOPY NUMBER,
137                        x_return_status OUT NOCOPY VARCHAR2);
138 
139  --For RELEASES, PO
140  PROCEDURE check_po_rel_reqprice(p_document_type IN VARCHAR2,
141                        p_document_id IN NUMBER,
142                        p_online_report_id IN NUMBER,
143                        p_user_id IN NUMBER,
144                        p_login_id IN NUMBER,
145                        p_sequence IN OUT NOCOPY NUMBER,
146                        x_return_status OUT NOCOPY VARCHAR2);
147 
148  --For PO,PA: Header Checks
149  PROCEDURE check_po_pa_header(p_document_id IN NUMBER,
150                        p_online_report_id IN NUMBER,
151                        p_user_id IN NUMBER,
152                        p_login_id IN NUMBER,
153                        p_sequence IN OUT NOCOPY NUMBER,
154                        x_return_status OUT NOCOPY VARCHAR2);
155 
156  --For PO
157  PROCEDURE check_po(   p_document_id IN NUMBER,
158                        p_online_report_id IN NUMBER,
159                        p_user_id IN NUMBER,
160                        p_login_id IN NUMBER,
161                        p_sequence IN OUT NOCOPY NUMBER,
162                        x_return_status OUT NOCOPY VARCHAR2);
163 
164 --For Planned POs and Blanket PAs
165  PROCEDURE check_planned_po_blanket_pa(p_document_id IN NUMBER,
166                        p_online_report_id IN NUMBER,
167                        p_user_id IN NUMBER,
168                        p_login_id IN NUMBER,
169                        p_sequence IN OUT NOCOPY NUMBER,
170                        x_return_status OUT NOCOPY VARCHAR2);
171 
172  --For Standard PO
173  --Includes Global Agreement Reference checks, Consigned Inventory checks
174  PROCEDURE check_standard_po(p_document_id IN NUMBER,
175                        p_online_report_id IN NUMBER,
176                        p_user_id IN NUMBER,
177                        p_login_id IN NUMBER,
178                        p_sequence IN OUT NOCOPY NUMBER,
179                        x_return_status OUT NOCOPY VARCHAR2);
180 
181  --For Standard POs which reference Global Agreement called from
182  --check_standard_po
183  PROCEDURE check_std_global_ref(p_document_id IN NUMBER,
184                        p_online_report_id IN NUMBER,
185                        p_user_id IN NUMBER,
186                        p_login_id IN NUMBER,
187                        p_sequence IN OUT NOCOPY NUMBER,
188                        x_return_status OUT NOCOPY VARCHAR2);
189 
190  --For Standard POs which have consigned reference called from
191  --check_standard_po
192  PROCEDURE check_std_consigned_ref(p_document_id IN NUMBER,
193                        p_online_report_id IN NUMBER,
194                        p_user_id IN NUMBER,
195                        p_login_id IN NUMBER,
196                        p_sequence IN OUT NOCOPY NUMBER,
200  -- For Standard POs which have Global contract reference. Called from
197                        x_return_status OUT NOCOPY VARCHAR2);
198 
199  -- <GC FPJ START>
201  -- check_standard_po
202 
203  PROCEDURE check_std_gc_ref
204  ( p_document_id IN NUMBER,
205    p_online_report_id IN NUMBER,
206    p_user_id IN NUMBER,
207    p_login_id IN NUMBER,
208    x_sequence IN OUT NOCOPY NUMBER,
209    x_return_status OUT NOCOPY VARCHAR2
210  );
211 
212  -- <GC FPJ END>
213 
214  --For Contract PA
215  PROCEDURE check_contract_agreement(p_document_id IN NUMBER,
216                        p_online_report_id IN NUMBER,
217                        p_user_id IN NUMBER,
218                        p_login_id IN NUMBER,
219                        p_sequence IN OUT NOCOPY NUMBER,
220                        x_return_status OUT NOCOPY VARCHAR2);
221 
222  --For POs, Reqs, Releases
223  PROCEDURE do_cbc_related_validations(p_document_type IN VARCHAR2,
224                        p_document_subtype IN VARCHAR2,
225                        p_document_id IN NUMBER,
226                        p_online_report_id IN NUMBER,
227                        p_user_id IN NUMBER,
228                        p_login_id IN NUMBER,
229                        p_sequence IN OUT NOCOPY NUMBER,
230                        x_return_status OUT NOCOPY VARCHAR2);
231 
232 
233  --For populating global temp from po_headers
234 -- CLM Aprvl Added Draft Id parameter
235  PROCEDURE populate_po_headers_gt(p_document_id IN number, p_draft_id IN number := -1,
236                  x_return_status OUT NOCOPY VARCHAR2);
237 
238 
239  --For populating global temp from po_requisition_headers
240  PROCEDURE populate_req_headers_gt(p_document_id IN number,
241                  x_return_status OUT NOCOPY VARCHAR2);
242 
243  --For populating global temp from po_requisition_lines
244  PROCEDURE populate_req_lines_gt(p_document_id IN number,
245                  x_return_status OUT NOCOPY VARCHAR2);
246 
247  --For populating global temp from po_releases
248  PROCEDURE populate_releases_gt(p_document_id IN number,
249                  x_return_status OUT NOCOPY VARCHAR2);
250 
251 
252  --For updating the global temp tables with requested changes
253  PROCEDURE update_global_temp_tables(p_document_type IN VARCHAR2,
254                      p_document_subtype IN VARCHAR2,
255                      p_document_id IN NUMBER,
256                 -- <PO_CHANGE_API FPJ> Renamed the type to PO_CHANGES_REC_TYPE:
257                      p_requested_changes  IN PO_CHANGES_REC_TYPE,
258                      x_return_status OUT NOCOPY VARCHAR2);
259 
260 -- <FPJ, Refactor Security API START>
261 
262 /**
263 * Public Procedure: PO_Security_Check
264 * Requires:
265 *   IN PARAMETERS:
266 *     p_api_version:          Version number of API that caller expects. It
267 *                             should match the l_api_version defined in the
268 *                             procedure
269 *     p_query_table:          Table you want to check
270 *     p_owner_id_column:      Owner id column of the table
271 *     p_employee_id:          User id to access the document
272 *     p_minimum_access_level: Minimum access level to the document
273 *     p_document_type:        The type of the document to perform
274 *                             the security check on
275 *     p_document_subtype:     The subtype of the document.
276 *     p_type_clause:          The document type clause to be used in
277 *                             constructing where clause
278 *
279 * Modifies: None
280 * Effects:  This procedure builds dynamic WHERE clause fragments based on
281 *           document security parameters.
282 * Returns:
283 *   x_return_status: FND_API.G_RET_STS_SUCCESS if API succeeds
284 *                    FND_API.G_RET_STS_ERROR if API fails
285 *                    FND_API.G_RET_STS_UNEXP_ERROR if unexpected error
286 *   x_msg_data:      Contains error msg in case x_return_status returned
287 *                    FND_API.G_RET_STS_ERROR or
288 *                    FND_API.G_RET_STS_UNEXP_ERROR
289 *   x_where_clause:  The constructed where clause
290 */
291 
292 PROCEDURE PO_Security_Check (p_api_version          IN Number,
293                              p_query_table          IN Varchar2,
294                              p_owner_id_column      IN Varchar2,
295                              p_employee_id          IN Varchar2,
296                              p_minimum_access_level IN Varchar2,
297                              p_document_type        IN Varchar2,
298                              p_document_subtype     IN Varchar2,
299                              p_type_clause          IN Varchar2,
300                              x_return_status        OUT NOCOPY VARCHAR2,
301                              x_msg_data             OUT NOCOPY VARCHAR2,
302                              x_where_clause         OUT NOCOPY VARCHAR2);
303 
304 -- <FPJ Refactor Security API END>
305 
306 -- The new procedure po_status_check added in DropShip FPJ project
307 
308 -- Detailed comments maintained in the Package Body PO_DOCUMENT_CHECKS_PVT.po_status_check
309 PROCEDURE po_status_check (
310     p_api_version         IN NUMBER,
311     p_header_id           IN PO_TBL_NUMBER,
312     p_release_id          IN PO_TBL_NUMBER,
313     p_document_type       IN PO_TBL_VARCHAR30,
314     p_document_subtype    IN PO_TBL_VARCHAR30,
315     p_document_num        IN PO_TBL_VARCHAR30,
316     p_vendor_order_num    IN PO_TBL_VARCHAR30,
317     p_line_id             IN PO_TBL_NUMBER,
318     p_line_location_id    IN PO_TBL_NUMBER,
319     p_distribution_id     IN PO_TBL_NUMBER,
320     p_mode                IN VARCHAR2,
321     p_lock_flag           IN VARCHAR2 := 'N',
322     p_calling_module      IN VARCHAR2 := NULL,  -- PDOI Rewrite R12
326     x_return_status       OUT NOCOPY VARCHAR2
323     p_role                IN VARCHAR2 := NULL,  -- PDOI Rewrite R12
324     p_skip_cat_upload_chk IN VARCHAR2 := NULL,  -- PDOI Rewrite R12
325     x_po_status_rec       OUT NOCOPY PO_STATUS_REC_TYPE,
327 );
328 
329 -- <CONTERMS FPJ>
330 -- new procedure to call contract terms validation during submission check
331 PROCEDURE check_terms(
332    p_document_id          IN NUMBER,
333    p_document_type        IN VARCHAR2,
334    p_document_subtype     IN VARCHAR2,
335    p_online_report_id     IN NUMBER,
336    p_user_id              IN NUMBER,
337    p_login_id             IN NUMBER,
338    p_sequence             IN OUT NOCOPY NUMBER,
339    x_return_status        OUT NOCOPY VARCHAR2);
340 
341 -- <JFMIP Vendor Registration FPJ>
342 -- For Release, PO, PA: checks if vendor site registration is valid
343 PROCEDURE check_vendor_site_ccr_regis(
344    p_document_id         IN NUMBER,
345    p_online_report_id    IN NUMBER,
346    p_user_id             IN NUMBER,
347    p_login_id            IN NUMBER,
348    p_sequence            IN OUT NOCOPY NUMBER,
349    x_return_status       OUT NOCOPY VARCHAR2);
350 
351 --<LCM project start>
352 -- Procedure to set the lcm flag in po shipments and distributions
353 PROCEDURE Set_LCM_Flag (p_line_location_id IN NUMBER,
354 			p_doc_check_status IN VARCHAR2,
355 			x_return_status    OUT nocopy VARCHAR2);
356 --<LCM project end>
357 
358 --<BUG 4624736 START>
359 -- Checks if the pay item's price can be updated.
360 -- NOTE: does not verify that line location is in fact
361 -- a pay item.
362 FUNCTION is_pay_item_price_updateable (
363   p_line_location_id          IN NUMBER
364 , p_add_reasons_to_msg_list   IN VARCHAR2)
365 RETURN BOOLEAN;
366 
367 FUNCTION chk_unv_invoices(p_invoice_type       IN VARCHAR2 DEFAULT 'BOTH',
368                           p_po_header_id       IN NUMBER,
369                           p_po_release_id      IN NUMBER DEFAULT NULL,
370                           p_po_line_id         IN NUMBER DEFAULT NULL,
371                           p_line_location_id   IN NUMBER DEFAULT NULL,
372                           p_po_distribution_id IN NUMBER DEFAULT NULL,
373                           p_invoice_id         IN NUMBER DEFAULT NULL,
374                           p_calling_sequence   IN VARCHAR2) RETURN NUMBER;
375 
376 --<BUG 4624736 END>
377 
378 -- For System Generated Description project
379 PROCEDURE validate_genchangedesc(  p_draft_id        IN NUMBER
380                                   ,  p_header_id     IN NUMBER
381                                   ,  p_online_report_id     IN NUMBER
382                                   ,  p_user_id              IN NUMBER
383                                   ,  p_login_id             IN NUMBER
384                                   ,  p_sequence             IN OUT NOCOPY NUMBER
385                                   ,  x_return_status        OUT NOCOPY VARCHAR2);
386 
387 
388 
389 
390 -- Added for  Bug 10218898
391  PROCEDURE  PO_UOM_CHECK(P_DOCUMENT_ID		IN NUMBER,
392 		                P_DOCUMENT_TYPE		IN VARCHAR2,
393                        P_ONLINE_REPORT_ID	IN NUMBER,
394                        P_USER_ID		IN NUMBER,
395                        P_LOGIN_ID		IN NUMBER,
396                        P_SEQUENCE		IN OUT NOCOPY NUMBER,
397                        X_RETURN_STATUS		OUT NOCOPY VARCHAR2
398                        ,x_msg_data              OUT NOCOPY VARCHAR2);
399 
400 --Added for Bug 11714043
401 
402 PROCEDURE validate_supplier_debarred(  p_draft_id        IN NUMBER
403 ,  p_header_id     IN NUMBER
404 ,  p_online_report_id     IN NUMBER
405 ,  p_user_id              IN NUMBER
406 ,  p_login_id             IN NUMBER
407 ,  p_sequence             IN OUT NOCOPY NUMBER
408 ,  x_return_status        OUT NOCOPY VARCHAR2
409 );
410 
411 PROCEDURE validate_co_warrant(  p_draft_id        IN NUMBER
412 ,  p_header_id            IN NUMBER
413 ,  p_contracting_officer  IN NUMBER
414 ,  p_user_id              IN NUMBER
415 ,  p_login_id             IN NUMBER
416 ,  itemtype               IN VARCHAR2 default null
417 ,  itemkey                IN VARCHAR2 default null
418 ,  p_online_report_id     IN OUT NOCOPY NUMBER
419 ,  p_sequence             IN OUT NOCOPY NUMBER
420 ,  x_return_status        OUT NOCOPY VARCHAR2
421 );
422 
423 
424 
425 --bug13059027
426 FUNCTION is_approved_clm_document(p_document_id IN NUMBER) RETURN VARCHAR2;
427 
428  PROCEDURE PO_ACRN_CHECK(P_DOCUMENT_ID      IN NUMBER,
429                         P_DRAFT_ID         IN NUMBER,
430                         P_DOCUMENT_TYPE    IN VARCHAR2,
431                         P_ONLINE_REPORT_ID IN NUMBER,
432                         P_USER_ID          IN NUMBER,
433                         P_LOGIN_ID         IN NUMBER,
434                         P_SEQUENCE         IN OUT NOCOPY NUMBER,
435                         X_RETURN_STATUS    OUT NOCOPY VARCHAR2,
436                         x_msg_data         OUT NOCOPY VARCHAR2);
437 
438  ----for bug 13481176
439 --<Bug 13019003> Merged all four account validation procedures into one.
440  PROCEDURE  PO_VALIDATE_ACCOUNTS(P_DOCUMENT_ID		IN NUMBER,
441 		               P_DOCUMENT_TYPE		IN VARCHAR2,
442                        P_ONLINE_REPORT_ID	IN NUMBER,
443                        P_USER_ID		IN NUMBER,
444                        P_LOGIN_ID		IN NUMBER,
445                        P_SEQUENCE		IN OUT NOCOPY NUMBER,
446                        X_RETURN_STATUS		OUT NOCOPY VARCHAR2
447                        ,x_msg_data              OUT NOCOPY VARCHAR2);
448 
449 --Added for bug 12951645
450 PROCEDURE CHECK_CLOSE_WIP_JOB(p_document_id			IN NUMBER,
451                                 p_document_type			IN  VARCHAR2,
452                                 p_online_report_id		IN NUMBER,
453 				p_user_id			IN NUMBER,
454 				p_login_id			IN NUMBER,
455 				p_sequence			IN OUT NOCOPY NUMBER,
456 				x_return_status			OUT NOCOPY VARCHAR2
457 				);
458 
459 --Bug 15843328
460 PROCEDURE check_accrue_on_receipt(
461                        P_DOCUMENT_ID		IN NUMBER,
462 		       P_DOCUMENT_TYPE		IN VARCHAR2,
463                        P_ONLINE_REPORT_ID	IN NUMBER,
464                        P_USER_ID		IN NUMBER,
465                        P_LOGIN_ID		IN NUMBER,
466                        P_SEQUENCE		IN OUT NOCOPY NUMBER,
467                        X_RETURN_STATUS		OUT NOCOPY VARCHAR2,
468                        x_msg_data               OUT NOCOPY VARCHAR2 );
469 
470 --SBCR Integration Changes Begin.
471 
472 PROCEDURE Check_sbcr_exists(document_id       IN NUMBER,
473                             document_type     IN VARCHAR2,
474                             document_version  IN NUMBER,
475                             document_number   IN VARCHAR2,
476                             x_msg_data        OUT nocopy VARCHAR2,
477                             x_msg_count       OUT nocopy NUMBER,
478                             x_contract_exists OUT nocopy VARCHAR2,
479                             x_contract_status OUT nocopy VARCHAR2,
480                             x_is_draft_status OUT nocopy VARCHAR2);
481 PROCEDURE check_po_sbcr_reference(p_document_id IN NUMBER,
482                                   p_draft_id IN NUMBER,
483                                   p_online_report_id IN NUMBER,
484                                   p_user_id IN NUMBER,
485                                   p_login_id IN NUMBER,
486                                   p_org_id   IN NUMBER,
487                                   p_sequence IN OUT NOCOPY NUMBER,
488                                   x_return_status OUT NOCOPY VARCHAR2);
489 --SBCR Integration Changes End.
490 END PO_DOCUMENT_CHECKS_PVT;