DBA Data[Home] [Help]

PACKAGE: APPS.PO_VAL_LINES2

Source


1 PACKAGE PO_VAL_LINES2 AUTHID CURRENT_USER AS
2   -- $Header: PO_VAL_LINES2.pls 120.20.12020000.2 2012/07/23 17:54:13 snelloru ship $
3 
4   -------------------------------------------------------------------------
5   -- The lookup code specified in over_tolerance_error_flag with the lookup type
6   -- 'RECEIVING CONTROL LEVEL' has to exist in po_lookup_codes and still active.
7   -- This method is called only for Standard PO and quotation documents
8   -------------------------------------------------------------------------
9   PROCEDURE over_tolerance_err_flag(p_id_tbl                      IN po_tbl_number,
10                                     p_over_tolerance_err_flag_tbl IN po_tbl_varchar30,
11                                     x_result_set_id               IN OUT NOCOPY NUMBER,
12                                     x_result_type                 OUT NOCOPY VARCHAR2);
13 
14   -------------------------------------------------------------------------
15   -- Expiration date on the line cannot be earlier than the header effective start date and
16   -- cannot be later than header effective end date
17   -------------------------------------------------------------------------
18   PROCEDURE expiration_date_blanket(p_id_tbl                IN po_tbl_number,
19                                     p_expiration_date_tbl   IN po_tbl_date,
20                                     p_header_start_date_tbl IN po_tbl_date,
21                                     p_header_end_date_tbl   IN po_tbl_date,
22                                     x_results               IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
23                                     x_result_type           OUT NOCOPY VARCHAR2);
24 
25   -------------------------------------------------------------------------
26   -- For blanket document with purchase type 'TEMP LABOR', the global agreement
27   -- flag has to be 'Y'.  Global_agreement_flag and outside operation flag
28   -- cannot both be 'Y'
29   -------------------------------------------------------------------------
30   PROCEDURE global_agreement_flag(p_id_tbl                    IN po_tbl_number,
31                                   p_global_agreement_flag_tbl IN po_tbl_varchar1,
32                                   p_purchase_basis_tbl        IN po_tbl_varchar30,
33                                   p_line_type_id_tbl          IN PO_TBL_NUMBER,
34                                   x_result_set_id             IN OUT NOCOPY NUMBER,
35                                   x_results                   IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
36                                   x_result_type               OUT NOCOPY VARCHAR2);
37 
38   -------------------------------------------------------------------------
39   -- If order_type_lookup_code is 'RATE', amount has to be null
40   -------------------------------------------------------------------------
41   PROCEDURE amount_blanket(p_id_tbl                     IN po_tbl_number,
42                            p_order_type_lookup_code_tbl IN po_tbl_varchar30,
43                            p_amount_tbl                 IN po_tbl_number,
44                            x_results                    IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
45                            x_result_type                OUT NOCOPY VARCHAR2);
46 
47   -------------------------------------------------------------------------
48   -- If services procurement is not enabled, the order_type_lookup_code cannot
49   -- be  'FIXED PRICE' or 'RATE'.
50   -------------------------------------------------------------------------
51   PROCEDURE order_type_lookup_code(p_id_tbl                     IN po_tbl_number,
52                                    p_order_type_lookup_code_tbl IN po_tbl_varchar30,
53                                    x_results                    IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
54                                    x_result_type                OUT NOCOPY VARCHAR2);
55 
56   -------------------------------------------------------------------------
57   -- If purchase basis is not 'TEMP LABOR' or document type is not STANDARD ,
58   -- contractor first name and last name fields should be empty
59   -------------------------------------------------------------------------
60   PROCEDURE contractor_name(p_id_tbl                    IN po_tbl_number,
61                             p_doc_type                  IN VARCHAR2,
62                             p_purchase_basis_tbl        IN po_tbl_varchar30,
63                             p_contractor_last_name_tbl  IN po_tbl_varchar2000,
64                             p_contractor_first_name_tbl IN po_tbl_varchar2000,
65                             x_results                   IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
66                             x_result_type               OUT NOCOPY VARCHAR2);
67 
68   -------------------------------------------------------------------------
69   -- If purchase basis is TEMP LABOR, then job id must be null
70   -------------------------------------------------------------------------
71   PROCEDURE job_id(p_id_tbl                    IN po_tbl_number,
72                    p_job_id_tbl                IN po_tbl_number,
73                    p_job_business_group_id_tbl IN po_tbl_number,
74                    p_purchase_basis_tbl        IN po_tbl_varchar30,
75                    p_category_id_tbl           IN po_tbl_number,
76                    x_result_set_id             IN OUT NOCOPY NUMBER,
77                    x_results                   IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
78                    x_result_type               OUT NOCOPY VARCHAR2);
79 
80   -------------------------------------------------------------------------
81   -- If services procurement not enabled, order_type_lookup_code cannot be
82   -- 'FIXED PRICE' or 'RATE'
83   -------------------------------------------------------------------------
84   PROCEDURE job_business_group_id(p_id_tbl                    IN po_tbl_number,
85                                   p_job_id_tbl                IN po_tbl_number,
86                                   p_job_business_group_id_tbl IN po_tbl_number,
87                                   p_purchase_basis_tbl        IN po_tbl_varchar30,
88                                   x_result_set_id             IN OUT NOCOPY NUMBER,
89                                   x_result_type               OUT NOCOPY VARCHAR2);
90 
91   -------------------------------------------------------------------------
92   -- If purchase_basis = 'TEMP LABOR', then capital_expense_flag cannot = 'Y'
93   -------------------------------------------------------------------------
94   PROCEDURE capital_expense_flag(p_id_tbl                   IN po_tbl_number,
95                                  p_purchase_basis_tbl       IN po_tbl_varchar30,
96                                  p_capital_expense_flag_tbl IN po_tbl_varchar1,
97                                  x_results                  IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
98                                  x_result_type              OUT NOCOPY VARCHAR2);
99 
100   -------------------------------------------------------------------------
101   -- If purchase_basis = 'TEMP LABOR', then un_number must be null
102   -------------------------------------------------------------------------
103   PROCEDURE un_number_id(p_id_tbl             IN po_tbl_number,
104                          p_purchase_basis_tbl IN po_tbl_varchar30,
105                          p_un_number_id_tbl   IN po_tbl_number,
106                          x_result_set_id      IN OUT NOCOPY NUMBER,
107                          x_results            IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
108                          x_result_type        OUT NOCOPY VARCHAR2);
109 
110   -------------------------------------------------------------------------
111   -- If purchase_basis = 'TEMP LABOR', then un_number must be null
112   -------------------------------------------------------------------------
113   PROCEDURE hazard_class_id(p_id_tbl              IN po_tbl_number,
114                             p_purchase_basis_tbl  IN po_tbl_varchar30,
115                             p_hazard_class_id_tbl IN po_tbl_number,
116                             x_result_set_id       IN OUT NOCOPY NUMBER,
117                             x_results             IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
118                             x_result_type         OUT NOCOPY VARCHAR2);
119 
120   -------------------------------------------------------------------------
121   -- If order_type_lookup_code is 'FIXED PRICE', 'RATE', or 'AMOUNT', item_id has to be null
122   -------------------------------------------------------------------------
123   PROCEDURE item_id(p_id_tbl                     IN po_tbl_number,
124                     p_item_id_tbl                IN po_tbl_number,
125                     p_order_type_lookup_code_tbl IN po_tbl_varchar30,
126                     p_line_type_id_tbl           IN po_tbl_number,
127                     p_inventory_org_id           IN NUMBER,
128                     x_result_set_id              IN OUT NOCOPY NUMBER,
129                     x_results                    IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
130                     x_result_type                OUT NOCOPY VARCHAR2);
131 
132   -------------------------------------------------------------------------
133   -- Make sure that the item_description is populated, and also need to find out if it is different
134   -- from what is setup for the item. Would not allow item_description update  if item attribute
135   -- allow_item_desc_update_flag is N.
136   -------------------------------------------------------------------------
137   PROCEDURE item_description(p_id_tbl                     IN po_tbl_number,
138                              p_item_description_tbl       IN po_tbl_varchar2000,
139                              p_order_type_lookup_code_tbl IN po_tbl_varchar30,
140                              p_item_id_tbl                IN po_tbl_number,
141                              p_create_or_update_item      IN VARCHAR2,
142                              p_inventory_org_id           IN NUMBER,
143                              x_result_set_id              IN OUT NOCOPY NUMBER,
144                              x_result_type                OUT NOCOPY VARCHAR2);
145 
146   -------------------------------------------------------------------------
147   -- check to see if x_item_unit_of_measure is valid in mtl_item_uoms_view
148   -------------------------------------------------------------------------
149   PROCEDURE unit_meas_lookup_code(p_id_tbl                     IN po_tbl_number,
150                                   p_unit_meas_lookup_code_tbl  IN po_tbl_varchar30,
151                                   p_order_type_lookup_code_tbl IN po_tbl_varchar30,
152                                   p_item_id_tbl                IN po_tbl_number,
153                                   p_line_type_id_tbl           IN po_tbl_number,
154                                   p_inventory_org_id           IN NUMBER,
155                                   x_result_set_id              IN OUT NOCOPY NUMBER,
156                                   x_results                    IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
157                                   x_result_type                OUT NOCOPY VARCHAR2);
158 
159   -------------------------------------------------------------------------
160   --  if order_type_lookup_code is FIXED PRICE or RATE, or item id is null, then item revision has to be NULL.
161   -- Check to see if there are x_item_revision exists in mtl_item_revisions table
162   -------------------------------------------------------------------------
163   PROCEDURE item_revision(p_id_tbl                     IN po_tbl_number,
164                           p_order_type_lookup_code_tbl IN po_tbl_varchar30,
165                           p_item_revision_tbl          IN po_tbl_varchar5,
166                           p_item_id_tbl                IN po_tbl_number,
167                           x_result_set_id              IN OUT NOCOPY NUMBER,
168                           x_results                    IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
169                           x_result_type                OUT NOCOPY VARCHAR2);
170 
171   -------------------------------------------------------------------------
172   -- validate and make sure category_id is a valid category within the default category set for Purchasing.
173   -- Validate if X_category_id belong to the X_item.  Check if the Purchasing Category set
174   -- has 'Validate flag' ON. If Yes, we will validate the Category to exist in the 'Valid Category List'.
175   -- If No, we will just validate if the category is Enable and Active.
176   -------------------------------------------------------------------------
177   PROCEDURE category_id(p_id_tbl                     IN po_tbl_number,
178                         p_category_id_tbl            IN po_tbl_number,
179                         p_order_type_lookup_code_tbl IN po_tbl_varchar30,
180                         p_item_id_tbl                IN po_tbl_number,
181                         p_inventory_org_id           IN NUMBER,
182                         x_result_set_id              IN OUT NOCOPY NUMBER,
183                         x_results                    IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
184                         x_result_type                OUT NOCOPY VARCHAR2);
185 
186   -------------------------------------------------------------------------
187   -- Validate ip_category_id is not empty for Blanket and Quotation;
188   -- Validate ip_category_id is valid if not empty
189   -------------------------------------------------------------------------
190    PROCEDURE ip_category_id(
191       p_id_tbl                       IN              po_tbl_number,
192       p_ip_category_id_tbl           IN              po_tbl_number,
193       x_result_set_id                IN OUT NOCOPY   NUMBER,
194       x_results                      IN OUT NOCOPY   po_validation_results_type,
195       x_result_type                  OUT NOCOPY      VARCHAR2);
196 
197   -------------------------------------------------------------------------
198   --If order_type_lookup_code is not  'FIXED PRICE', unit_price cannot be null and cannot be less than zero.
199   --If line_type_id is not null and order_type_lookup_code is 'AMOUNT',
200   -- unit_price should be the same as the one defined in the line_type.
201   --If order_type_lookup_code is 'FIXED PRICE', unit_price has to be null.
202   -------------------------------------------------------------------------
203   PROCEDURE unit_price(p_id_tbl                     IN po_tbl_number,
204                        p_unit_price_tbl             IN po_tbl_number,
205                        p_order_type_lookup_code_tbl IN po_tbl_varchar30,
206                        p_line_type_id_tbl           IN po_tbl_number,
207                        x_result_set_id              IN OUT NOCOPY NUMBER,
208                        x_results                    IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
209                        x_result_type                OUT NOCOPY VARCHAR2);
210 
211   -------------------------------------------------------------------------
212   -- If order_type_lookup_code is not 'FIXED PRICE' or 'RATE', quantity cannot be less than zero
213   -- If order_type_lookup_code is 'FIXED PRICE' or 'RATE', quantity has to be null.
214   -------------------------------------------------------------------------
215   PROCEDURE quantity(p_id_tbl                     IN po_tbl_number,
216                      p_quantity_tbl               IN po_tbl_number,
217                      p_order_type_lookup_code_tbl IN po_tbl_varchar30,
218                      x_results                    IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
219                      x_result_type                OUT NOCOPY VARCHAR2);
220 
221   -------------------------------------------------------------------------
222   -- If order_type_lookup_code is not 'FIXED PRICE' or 'RATE', amount has to be null
223   -------------------------------------------------------------------------
224   PROCEDURE amount(p_id_tbl                     IN po_tbl_number,
225                    p_amount_tbl                 IN po_tbl_number,
226                    p_order_type_lookup_code_tbl IN po_tbl_varchar30,
227                    x_results                    IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
228                    x_result_type                OUT NOCOPY VARCHAR2);
229 
230   -------------------------------------------------------------------------
231   -- For rate based temp labor line, the currency rate_type cannot be 'user'
235                       p_order_type_lookup_code_tbl IN po_tbl_varchar30,
232   -------------------------------------------------------------------------
233   PROCEDURE rate_type(p_id_tbl                     IN po_tbl_number,
234                       p_rate_type_tbl              IN po_tbl_varchar30,
236                       x_results                    IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
237                       x_result_type                OUT NOCOPY VARCHAR2);
238 
239   -------------------------------------------------------------------------
240   -- Line num must be populated and cannot be <= 0.
241   -- Line num has to be unique in a requisition.
242   -------------------------------------------------------------------------
243   PROCEDURE line_num(p_id_tbl                     IN po_tbl_number,
244                      p_po_header_id_tbl           IN po_tbl_number,
245                      p_line_num_tbl               IN po_tbl_number,
246                      p_order_type_lookup_code_tbl IN po_tbl_varchar30,
247                      p_draft_id_tbl               IN PO_TBL_NUMBER,     -- bug5129752
248                      x_result_set_id              IN OUT NOCOPY NUMBER,
249                      x_results                    IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
250                      x_result_type                OUT NOCOPY VARCHAR2);
251 
252   -------------------------------------------------------------------------
253   -- Po_line_id must be populated and unique.
254   -------------------------------------------------------------------------
255   PROCEDURE po_line_id(p_id_tbl           IN PO_TBL_NUMBER,
256                        p_po_line_id_tbl IN PO_TBL_NUMBER,
257                        p_po_header_id_tbl IN PO_TBL_NUMBER,
258                        x_result_set_id    IN OUT NOCOPY NUMBER,
259                        x_result_type      OUT NOCOPY VARCHAR2);
260 
261   -------------------------------------------------------------------------
262   -- Line type id must be populated and exist in po_line_types_val_v
263   -------------------------------------------------------------------------
264   PROCEDURE line_type_id(p_id_tbl           IN PO_TBL_NUMBER,
265                          p_line_type_id_tbl IN PO_TBL_NUMBER,
266                          x_result_set_id    IN OUT NOCOPY NUMBER,
267                          x_result_type      OUT NOCOPY VARCHAR2);
268 
269   -------------------------------------------------------------------------
270   -- Validate style related information.
271   -------------------------------------------------------------------------
272   PROCEDURE style_related_info(p_id_tbl                IN              po_tbl_number,
273                                p_style_id_tbl          IN              po_tbl_number,
274                                p_line_type_id_tbl      IN              po_tbl_number,
275                                p_purchase_basis_tbl    IN              po_tbl_varchar30,
276                                x_result_set_id         IN OUT NOCOPY   NUMBER,
277                                x_result_type           OUT NOCOPY      VARCHAR2);
278 
279   -------------------------------------------------------------------------
280   -- If price_type_lookup_code is not null, it has to be a valid price type in po_lookup_codes
281   -------------------------------------------------------------------------
282   PROCEDURE price_type_lookup_code(p_id_tbl                     IN PO_TBL_NUMBER,
283                                    p_price_type_lookup_code_tbl IN PO_TBL_VARCHAR30,
284                                    x_result_set_id              IN OUT NOCOPY NUMBER,
285                                    x_result_type                OUT NOCOPY VARCHAR2);
286 
287   -------------------------------------------------------------------------
288   --Start date is required for Standard PO with purchase basis 'TEMP LABOR'
289   --Expiration date if provided should be later than the start date
290   --If purchase basis is not 'TEMP LABOR', start_date and expiration_date have to be null
291   -------------------------------------------------------------------------
292   PROCEDURE start_date_standard(p_id_tbl              IN PO_TBL_NUMBER,
293                                 p_start_date_tbl      IN PO_TBL_DATE,
294                                 p_expiration_date_tbl IN PO_TBL_DATE,
295                                 p_purchase_basis_tbl  IN PO_TBL_VARCHAR30,
296                                 x_results             IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
297                                 x_result_type         OUT NOCOPY VARCHAR2);
298 
299   -------------------------------------------------------------------------
300   -- If order_type_lookup_code is not 'RATE' or 'FIXED PRICE', and item_id is not null, then bom_item_type cannot be 1 or 2.
301   -------------------------------------------------------------------------
302   PROCEDURE item_id_standard(p_id_tbl                     IN PO_TBL_NUMBER,
303                              p_item_id_tbl                IN PO_TBL_NUMBER,
304                              p_order_type_lookup_code_tbl IN PO_TBL_VARCHAR30,
305                              p_inventory_org_id           IN NUMBER,
306                              x_result_set_id              IN OUT NOCOPY NUMBER,
307                              x_result_type                OUT NOCOPY VARCHAR2);
308 
309   -------------------------------------------------------------------------
310   -- Quantity cannot be zero for SPO
311   -- And quantity cannot be empty for SPO if order type is QUANTITY/AMOUNT
312   -------------------------------------------------------------------------
313   PROCEDURE quantity_standard(p_id_tbl                     IN PO_TBL_NUMBER,
314                               p_quantity_tbl               IN PO_TBL_NUMBER,
315                               p_order_type_lookup_code_tbl IN po_tbl_varchar30,
316                               x_results                    IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
317                               x_result_type                OUT NOCOPY VARCHAR2);
318 
319   -------------------------------------------------------------------------
323                             p_amount_tbl                 IN PO_TBL_NUMBER,
320   -- If order_type_lookup_code is 'FIXED PRICE' or 'RATE', amount cannot be null
321   -------------------------------------------------------------------------
322   PROCEDURE amount_standard(p_id_tbl                     IN PO_TBL_NUMBER,
324                             p_order_type_lookup_code_tbl IN PO_TBL_VARCHAR30,
325                             x_results                    IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
326                             x_result_type                OUT NOCOPY VARCHAR2);
327 
328 -- bug5016163 START
329 -------------------------------------------------------------------------
330 --  Price break lookup code should be valid
331 -------------------------------------------------------------------------
332    PROCEDURE price_break_lookup_code(
333       p_id_tbl                     IN              po_tbl_number,
334       p_price_break_lookup_code_tbl IN              po_tbl_varchar30,
335       p_global_agreement_flag_tbl   IN               po_tbl_varchar1,
336       p_order_type_lookup_code_tbl  IN              po_tbl_varchar30,
337       p_purchase_basis_tbl          IN              po_tbl_varchar30,
338       x_result_set_id                IN OUT NOCOPY   NUMBER,
339       x_results                      IN OUT NOCOPY   po_validation_results_type,
340       x_result_type                  OUT NOCOPY      VARCHAR2);
341 
342 -- bug5016163 END
343 
344   -------------------------------------------------------------------------
345   --  If allow_price_override_flag is 'N', then not_to_exceed_price has to be null.
346   -- If not_to_exceed_price is not null, then it cannot be less than unit_price.
347   -------------------------------------------------------------------------
348   PROCEDURE not_to_exceed_price(p_id_tbl                   IN PO_TBL_NUMBER,
349                                 p_not_to_exceed_price_tbl  IN PO_TBL_NUMBER,
350                                 p_allow_price_override_tbl IN PO_TBL_VARCHAR1,
351                                 p_unit_price_tbl           IN PO_TBL_NUMBER,
352                                 x_results                  IN OUT NOCOPY PO_VALIDATION_RESULTS_TYPE,
353                                 x_result_type              OUT NOCOPY VARCHAR2);
354 
355   -------------------------------------------------------------------------
356   -- Validate ip_category_id is valid if not empty
357   -------------------------------------------------------------------------
358    PROCEDURE ip_category_id_update(
359       p_id_tbl                       IN              po_tbl_number,
360       p_ip_category_id_tbl           IN              po_tbl_number,
361       x_result_set_id                IN OUT NOCOPY   NUMBER,
362       x_results                      IN OUT NOCOPY   po_validation_results_type,
363       x_result_type                  OUT NOCOPY      VARCHAR2);
364 
365   -----------------------------------------------------------------------------
366   -- We need to validate UOM against po_lines_all and po_units_of_measure_val_v
367   -----------------------------------------------------------------------------
368   PROCEDURE uom_update(p_id_tbl                       IN              po_tbl_number,
369                        p_unit_meas_lookup_code_tbl    IN              po_tbl_varchar30,
370                        p_order_type_lookup_code_tbl   IN              po_tbl_varchar30,
371                        p_po_header_id_tbl             IN              po_tbl_number,
372                        p_po_line_id_tbl               IN              po_tbl_number,
373                        x_results                      IN OUT NOCOPY   po_validation_results_type,
374                        x_result_set_id                IN OUT NOCOPY   NUMBER,
375                        x_result_type                  OUT NOCOPY      VARCHAR2);
376 
377    -------------------------------------------------------------------------
378    -- Make sure that the item_description can be different from what is setup in the item master.
379    -- Would not allow item_description update if item attribute allow_item_desc_update_flag is N.
380    -- Also need to check the value in po_lines_all to make sure it is the same there, if necessary.
381    -------------------------------------------------------------------------
382    PROCEDURE item_desc_update(p_id_tbl                       IN              po_tbl_number,
383                               p_item_description_tbl         IN              po_tbl_varchar2000,
384                               p_item_id_tbl                  IN              po_tbl_number,
385                               p_inventory_org_id             IN              NUMBER,
386                               p_po_header_id_tbl             IN              po_tbl_number,
387                               p_po_line_id_tbl               IN              po_tbl_number,
388                               x_results                      IN OUT NOCOPY   po_validation_results_type,
389                               x_result_set_id                IN OUT NOCOPY   NUMBER,
390                               x_result_type                  OUT NOCOPY      VARCHAR2);
391 
392    ----------------------------------------------------------------------------------------
393    -- Called in create case for Blanket AND SPO, negotiated_by_preparer must be 'Y' or 'N'.
394    ----------------------------------------------------------------------------------------
395    PROCEDURE negotiated_by_preparer(
396       p_id_tbl                       IN              po_tbl_number,
397       p_negotiated_by_preparer_tbl   IN              po_tbl_varchar1,
398       x_results                      IN OUT NOCOPY   po_validation_results_type,
399       x_result_type                  OUT NOCOPY      VARCHAR2);
400 
401    --------------------------------------------------------------------------------------
402    -- Called in update case for Blanket, negotiated_by_preparer must be NULL, 'Y' or 'N'.
403    --------------------------------------------------------------------------------------
404    PROCEDURE negotiated_by_prep_update(
405       p_id_tbl                       IN              po_tbl_number,
409 
406       p_negotiated_by_preparer_tbl   IN              po_tbl_varchar1,
407       x_results                      IN OUT NOCOPY   po_validation_results_type,
408       x_result_type                  OUT NOCOPY      VARCHAR2);
410    -------------------------------------------------------------------------
411    -- If either item_id or job_id are populated, then you are not allowed to change the po_category_id
412    -- If change is allowed, the new category_id must be valid.
413    -------------------------------------------------------------------------
414    PROCEDURE category_id_update(
415       p_id_tbl                       IN              po_tbl_number,
416       p_category_id_tbl              IN              po_tbl_number,
417       p_po_line_id_tbl               IN              po_tbl_number,
418       p_order_type_lookup_code_tbl   IN              po_tbl_varchar30,
419       p_item_id_tbl                  IN              po_tbl_number,
420       p_job_id_tbl                   IN              po_tbl_number,
421       p_inventory_org_id             IN              NUMBER,
422       x_result_set_id                IN OUT NOCOPY   NUMBER,
423       x_results                      IN OUT NOCOPY   po_validation_results_type,
424       x_result_type                  OUT NOCOPY      VARCHAR2);
425 
426    -------------------------------------------------------------------------
427    -- In the UPDATE case, unit_price cannot be negative.  Also handle #DEL.
428    -------------------------------------------------------------------------
429    PROCEDURE unit_price_update(
430       p_id_tbl         IN              po_tbl_number,
431       p_po_line_id_tbl IN              po_tbl_number, -- bug5008206
432       p_draft_id_tbl   IN              po_tbl_number, -- bug5258790
433       p_unit_price_tbl IN              po_tbl_number,
434       x_results        IN OUT NOCOPY   po_validation_results_type,
435       x_result_set_id  IN OUT NOCOPY   NUMBER, -- bug5008206
436       x_result_type    OUT NOCOPY      VARCHAR2);
437 
438    -- bug5258790 START
439    PROCEDURE amount_update
440    (  p_id_tbl          IN              po_tbl_number,
441       p_po_line_id_tbl  IN              po_tbl_number, -- bug5008206
442       p_draft_id_tbl    IN              po_tbl_number,
443       p_amount_tbl      IN              po_tbl_number,
444       x_results         IN OUT NOCOPY   po_validation_results_type,
445       x_result_set_id   IN OUT NOCOPY   NUMBER,        -- bug5008206
446       x_result_type     OUT NOCOPY      VARCHAR2
447    );
448    -- bug5258790 END
449 
450 -- bug8633959 START
451  	    -------------------------------------------------------------------------
452  	    -- Check for the valid category selected from the Category LOV in BWC
453  	    -------------------------------------------------------------------------
454  	    PROCEDURE check_valid_category
455  	    (
456  	       p_category      IN VARCHAR2,
457  	       x_results       OUT NOCOPY VARCHAR2,
458  	       x_result_msg    OUT NOCOPY VARCHAR2
459  	    );
460  	      PROCEDURE category_combination_valid
461  	    (  p_po_line_id_tbl  IN              po_tbl_number,
462  	       p_category_id_tbl IN              po_tbl_number,
463 	       p_clm_info_flag_tbl IN PO_TBL_VARCHAR1, --Bug 12768893
464  	       x_results         IN OUT NOCOPY   po_validation_results_type,
465  	       x_result_type     OUT NOCOPY      VARCHAR2
466  	    );
467 
468  	    -- bug8633959 END
469 
470    -- bug14075368 START
471    -------------------------------------------------------------------------
472    -- Check for the valid item selected from the Item LOV in BWC
473    -------------------------------------------------------------------------
474    PROCEDURE check_valid_item
475    (
476       p_item          IN VARCHAR2,
477       x_results       OUT NOCOPY VARCHAR2,
478       x_result_msg    OUT NOCOPY VARCHAR2
479    );
480      PROCEDURE item_combination_valid
481    (  p_po_line_id_tbl  IN              po_tbl_number,
482       p_item_id_tbl     IN              po_tbl_number,
483       x_results         IN OUT NOCOPY   po_validation_results_type,
484       x_result_type     OUT NOCOPY      VARCHAR2
485    );
486 
487    -- bug14075368 END
488 
489 END PO_VAL_LINES2;