1 PACKAGE inv_lot_api_pub AS
2 /* $Header: INVPLOTS.pls 120.3.12010000.2 2008/11/18 08:38:32 mporecha ship $ */
3
4 /**
5 * global variable for lots attributes
6 */
7 g_lot_attributes_tbl inv_lot_sel_attr.lot_sel_attributes_tbl_type;
8 g_firstscan BOOLEAN := TRUE;
9
10 G_WMS_INSTALLED VARCHAR2(10);
11
12 TYPE char_tbl IS TABLE OF VARCHAR2(1000)
13 INDEX BY BINARY_INTEGER;
14
15 TYPE number_tbl IS TABLE OF NUMBER
16 INDEX BY BINARY_INTEGER;
17
18 TYPE date_tbl IS TABLE OF DATE
19 INDEX BY BINARY_INTEGER;
20
21 TYPE WMS_NAMED_ATTRIBUTES IS RECORD
22 ( grade_code VARCHAR2(150)
23 , DISABLE_FLAG NUMBER
24 , origination_date DATE
25 , date_code VARCHAR2(150)
26 , change_date DATE
27 , age NUMBER
28 , retest_date DATE
29 , maturity_date DATE
30 , item_size NUMBER
31 , color VARCHAR2(150)
32 , volume NUMBER
33 , volume_uom VARCHAR2(3)
34 , place_of_origin VARCHAR2(150)
35 , best_by_date DATE
36 , length NUMBER
37 , length_uom VARCHAR2(3)
38 , recycled_content NUMBER
39 , thickness NUMBER
40 , thickness_uom VARCHAR2(3)
41 , width NUMBER
42 , width_uom VARCHAR2(3)
43 , territory_code VARCHAR2(30)
44 , supplier_lot_number VARCHAR2(150)
45 , VENDOR_NAME VARCHAR2(240)
46 );
47
48 g_ret_sts_success CONSTANT VARCHAR2(1) := 'S';
49 g_ret_sts_error CONSTANT VARCHAR2(1) := 'E';
50 g_ret_sts_unexp_error CONSTANT VARCHAR2(1) := 'U';
51 g_miss_num CONSTANT NUMBER := 9.99e125;
52 g_miss_char CONSTANT VARCHAR2(1) := CHR(0);
53 g_miss_date CONSTANT DATE := TO_DATE('1', 'j');
54 /*Exception definitions */
55 g_exc_error EXCEPTION;
56 g_exc_unexpected_error EXCEPTION;
57 /*Local variable for stoRing the INV:DEBUG TRACE profile value */
58 g_debug NUMBER := NVL(fnd_profile.VALUE('INV_DEBUG_TRACE'), 0);
59 osfm_form_no_validate CONSTANT NUMBER := 1;
60 osfm_open_interface CONSTANT NUMBER := 2;
61 osfm_form_validate CONSTANT NUMBER := 3;
62 inv CONSTANT NUMBER := 4;
63
64 PROCEDURE populateattributescolumn;
65
66 PROCEDURE set_firstscan(p_firstscan BOOLEAN);
67
68 /**
69 * This procedure inserts a lot into the MTL_LOT_NUMBERS table.
70 * It does all the necessary validation before inserting the lot.
71 * It derives the expiration date depending on the controls set
72 * for shelf_life_code and shelf_life_days for the item.
73 * Returns success if it is able to insert the lot.
74 * If the lot already exists for the same item and org, it still
75 * returns success. However, it places a message on the stack
76 * informing that the lot already exists.
77 * It returns error if there is any validation error.
78 * Standard WHO information is used from the fnd_global api.
79 */
80 PROCEDURE insertlot(
81 p_api_version IN NUMBER
82 , p_init_msg_list IN VARCHAR2 := fnd_api.g_false
83 , p_commit IN VARCHAR2 := fnd_api.g_false
84 , p_validation_level IN NUMBER := fnd_api.g_valid_level_full
85 , p_inventory_item_id IN NUMBER
86 , p_organization_id IN NUMBER
87 , p_lot_number IN VARCHAR2
88 , p_expiration_date IN OUT NOCOPY DATE
89 , p_transaction_temp_id IN NUMBER DEFAULT NULL
90 , p_transaction_action_id IN NUMBER DEFAULT NULL
91 , p_transfer_organization_id IN NUMBER DEFAULT NULL
92 , x_object_id OUT NOCOPY NUMBER
93 , x_return_status OUT NOCOPY VARCHAR2
94 , x_msg_count OUT NOCOPY NUMBER
95 , x_msg_data OUT NOCOPY VARCHAR2
96 );
97
98 PROCEDURE inserttrxlot(
99 p_api_version IN NUMBER
100 , p_init_msg_list IN VARCHAR2 := fnd_api.g_false
101 , p_commit IN VARCHAR2 := fnd_api.g_false
102 , p_validation_level IN NUMBER := fnd_api.g_valid_level_full
103 , p_primary_quantity IN NUMBER DEFAULT NULL
104 , p_transaction_id IN NUMBER
105 , p_inventory_item_id IN NUMBER
106 , p_organization_id IN NUMBER
107 , p_transaction_date IN DATE
108 , p_transaction_source_id IN NUMBER
109 , p_transaction_source_name IN VARCHAR2
110 , p_transaction_source_type_id IN NUMBER
111 , p_transaction_temp_id IN NUMBER
112 , p_transaction_action_id IN NUMBER
113 , p_serial_transaction_id IN NUMBER
114 , p_lot_number IN VARCHAR2
115 , x_return_status OUT NOCOPY VARCHAR2
116 , x_msg_count OUT NOCOPY NUMBER
117 , x_msg_data OUT NOCOPY VARCHAR2
118 );
119
120 /* This function (validate_unique_lot) validates a given lot number for an organization and item
121 depending on the uniqueness level set
122 This function is called from auto_gen_lot function in order to check the uniqueness of
123 the generated lot number*/
124 FUNCTION validate_unique_lot(p_org_id IN NUMBER, p_inventory_item_id IN NUMBER, p_lot_uniqueness IN NUMBER, p_auto_lot_number IN VARCHAR2)
125 RETURN BOOLEAN;
126
127 /* Created a wrapper around validate_unique_lot to be able to call it thru Mobile apps */
128 PROCEDURE validate_unique_lot(
129 p_org_id IN NUMBER
130 , p_inventory_item_id IN NUMBER
131 , p_lot_uniqueness IN NUMBER
132 , p_auto_lot_number IN VARCHAR2
133 , p_check_same_item IN VARCHAR2
134 , x_is_unique OUT NOCOPY VARCHAR2
135 );
136
137
138
139 /*================================================
140 This function inserts mtl_child_lot_numbers.
141 ================================================*/
142
143 FUNCTION ins_mtl_child_lot_num (
144 p_org_id IN NUMBER
145 , p_inventory_item_id IN NUMBER
146 , p_parent_lot_number IN VARCHAR2
147 , p_last_child_lot_seq IN NUMBER
148 )
149 RETURN NUMBER;
150
151 /*================================================
152 This function updates mtl_child_lot_numbers.
153 ================================================*/
154
155 FUNCTION upd_mtl_child_lot_num (
156 p_org_id IN NUMBER
157 , p_inventory_item_id IN NUMBER
158 , p_parent_lot_number IN VARCHAR2
159 , p_last_child_lot_seq IN NUMBER
160 )
161 RETURN NUMBER;
162
163
164
165
166
167
168
169 /**
170 * This function ( auto_gen_lot) replaces the auto_gen_lot function in the INVTTELT.pld .
171 * It generates a lot number for for a given organization and item id and
172 * these 2 are the mandatory parameters.
173 * Other input parameters if not provided, are retrieved in the function .
174 * This function calls a user defined pl/sql procedure to generate lot numbers
175 * if the user_defined_proc returns a lot number then it validtes the lot_number and returns to the caller
176 * if the user_defined_proc returns null then this function generates a lot number, checks for its
177 * validity and returns the lot_number along with the return_status
178 */
179 FUNCTION auto_gen_lot(
180 p_org_id IN NUMBER
181 , p_inventory_item_id IN NUMBER
182 , p_lot_generation IN NUMBER := NULL
183 , p_lot_uniqueness IN NUMBER := NULL
184 , p_lot_prefix IN VARCHAR2 := NULL
185 , p_zero_pad IN NUMBER := NULL
186 , p_lot_length IN NUMBER := NULL
187 , p_transaction_date IN DATE := NULL
188 , p_revision IN VARCHAR2 := NULL
189 , p_subinventory_code IN VARCHAR2 := NULL
190 , p_locator_id IN NUMBER := NULL
191 , p_transaction_type_id IN NUMBER := NULL
192 , p_transaction_action_id IN NUMBER := NULL
193 , p_transaction_source_type_id IN NUMBER := NULL
194 , p_lot_number IN VARCHAR2 := NULL
195 , p_api_version IN NUMBER
196 , p_init_msg_list IN VARCHAR2 := fnd_api.g_false
197 , p_commit IN VARCHAR2 := fnd_api.g_false
198 , p_validation_level IN NUMBER := fnd_api.g_valid_level_full
199 , p_parent_lot_number IN VARCHAR2
200 , x_return_status OUT NOCOPY VARCHAR2
201 , x_msg_count OUT NOCOPY NUMBER
202 , x_msg_data OUT NOCOPY VARCHAR2
203 )
204 RETURN VARCHAR2;
205
206 /* This is a procedure that accepts the Named WMS attributes, C_Attributes,
207 N_Attributes, D_attributes, and INV attributes as pl/sql table input parameter
208 and validates the values passed as input parameters against the valueset attached to it.
209 This has flex Api call that does the actual validation
210 */
211
212 PROCEDURE validate_lot_attr_info(
213 x_return_status OUT NOCOPY VARCHAR2
214 , x_msg_count OUT NOCOPY NUMBER
215 , x_msg_data OUT NOCOPY VARCHAR2
216 , p_wms_is_installed IN VARCHAR2
217 , p_attribute_category IN VARCHAR2
218 , p_lot_attribute_category IN VARCHAR2
219 , p_inventory_item_id IN NUMBER
220 , p_organization_id IN NUMBER
221 , p_attributes_tbl IN inv_lot_api_pub.char_tbl
222 , p_c_attributes_tbl IN inv_lot_api_pub.char_tbl
223 , p_n_attributes_tbl IN inv_lot_api_pub.number_tbl
224 , p_d_attributes_tbl IN inv_lot_api_pub.date_tbl
225 , p_disable_flag IN NUMBER
226 , p_grade_code IN VARCHAR2
227 , p_origination_date IN DATE
228 , p_date_code IN VARCHAR2
229 , p_change_date IN DATE
230 , p_age IN NUMBER
231 , p_retest_date IN DATE
232 , p_maturity_date IN DATE
233 , p_item_size IN NUMBER
234 , p_color IN VARCHAR2
235 , p_volume IN NUMBER
236 , p_volume_uom IN VARCHAR2
237 , p_place_of_origin IN VARCHAR2
238 , p_best_by_date IN DATE
239 , p_length IN NUMBER
240 , p_length_uom IN VARCHAR2
241 , p_recycled_content IN NUMBER
242 , p_thickness IN NUMBER
243 , p_thickness_uom IN VARCHAR2
244 , p_width IN NUMBER
245 , p_width_uom IN VARCHAR2
246 , p_territory_code IN VARCHAR2
247 , p_supplier_lot_number IN VARCHAR2
248 , p_vendor_name IN VARCHAR2
249 );
250
251 /*
252
253 This is a procedure that accepts the lot attributes as input parameters.
254 This procedure validates some the input parameters like lot_number, expiration date,
255 INV attributes, C_ATTRIBUTES, N_ATTRIBUTES and D_ATTRIBUTES.
256 If all the validations go through fine, data is inserted into mtl_lot_numbers
257 */
258 -- This procedure has now be converted into a stub and it internally calls
259 -- the overloaded create_inv_lot procedure.
260
261 PROCEDURE create_inv_lot(
262 x_return_status OUT NOCOPY VARCHAR2
263 , x_msg_count OUT NOCOPY NUMBER
264 , x_msg_data OUT NOCOPY VARCHAR2
265 , p_inventory_item_id IN NUMBER
266 , p_organization_id IN NUMBER
267 , p_lot_number IN VARCHAR2
268 , p_expiration_date IN DATE
269 , p_disable_flag IN NUMBER
270 , p_attribute_category IN VARCHAR2
271 , p_lot_attribute_category IN VARCHAR2
272 , p_attributes_tbl IN inv_lot_api_pub.char_tbl
273 , p_c_attributes_tbl IN inv_lot_api_pub.char_tbl
274 , p_n_attributes_tbl IN inv_lot_api_pub.number_tbl
275 , p_d_attributes_tbl IN inv_lot_api_pub.date_tbl
276 , p_grade_code IN VARCHAR2
277 , p_origination_date IN DATE
278 , p_date_code IN VARCHAR2
279 , p_status_id IN NUMBER
280 , p_change_date IN DATE
281 , p_age IN NUMBER
282 , p_retest_date IN DATE
283 , p_maturity_date IN DATE
284 , p_item_size IN NUMBER
285 , p_color IN VARCHAR2
286 , p_volume IN NUMBER
287 , p_volume_uom IN VARCHAR2
288 , p_place_of_origin IN VARCHAR2
289 , p_best_by_date IN DATE
290 , p_length IN NUMBER
291 , p_length_uom IN VARCHAR2
292 , p_recycled_content IN NUMBER
293 , p_thickness IN NUMBER
294 , p_thickness_uom IN VARCHAR2
295 , p_width IN NUMBER
296 , p_width_uom IN VARCHAR2
297 , p_territory_code IN VARCHAR2
298 , p_supplier_lot_number IN VARCHAR2
299 , p_vendor_name IN VARCHAR2
300 , p_source IN NUMBER
301 , p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false -- bug 7513308
302 );
303
304 /*
305 This is a procedure that validates the input parameters to the API.
306 It does the following validations
307 a. Check if the item passed is a lot controlled Item
308 b. Check for lot uniqueness
309 c. Also has a call to validate the DFF attributes values against the value set
310 attached to each of the segments
311 */
312
313 PROCEDURE validate_lot_attr_in_param(
314 x_return_status OUT NOCOPY VARCHAR2
315 , x_msg_count OUT NOCOPY NUMBER
316 , x_msg_data OUT NOCOPY VARCHAR2
317 , p_inventory_item_id IN NUMBER
318 , p_organization_id IN NUMBER
319 , p_lot_number IN VARCHAR2
320 , p_attribute_category IN VARCHAR2
321 , p_lot_attribute_category IN VARCHAR2
322 , p_attributes_tbl IN inv_lot_api_pub.char_tbl
323 , p_c_attributes_tbl IN inv_lot_api_pub.char_tbl
324 , p_n_attributes_tbl IN inv_lot_api_pub.number_tbl
325 , p_d_attributes_tbl IN inv_lot_api_pub.date_tbl
326 , p_wms_is_installed IN VARCHAR2
327 , p_source IN NUMBER
328 , p_disable_flag IN NUMBER
329 , p_grade_code IN VARCHAR2
330 , p_origination_date IN DATE
331 , p_date_code IN VARCHAR2
332 , p_change_date IN DATE
333 , p_age IN NUMBER
334 , p_retest_date IN DATE
335 , p_maturity_date IN DATE
336 , p_item_size IN NUMBER
337 , p_color IN VARCHAR2
338 , p_volume IN NUMBER
339 , p_volume_uom IN VARCHAR2
340 , p_place_of_origin IN VARCHAR2
341 , p_best_by_date IN DATE
342 , p_length IN NUMBER
343 , p_length_uom IN VARCHAR2
344 , p_recycled_content IN NUMBER
345 , p_thickness IN NUMBER
346 , p_thickness_uom IN VARCHAR2
347 , p_width IN NUMBER
348 , p_width_uom IN VARCHAR2
349 , p_territory_code IN VARCHAR2
350 , p_supplier_lot_number IN VARCHAR2
351 , p_vendor_name IN VARCHAR2
352 );
353
354 /*
355 This is a procedure that accepts the lot attributes as input parameters.
356 This procedure validates some the input parameters like lot_number, expiration_date,
357 INV attributes, C_ATTRIBUTES, N_ATTRIBUTES and D_ATTRIBUTES.
358 If all the validations go through fine, data is updated in mtl_lot_numbers table
359 */
360 PROCEDURE update_inv_lot(
361 x_return_status OUT NOCOPY VARCHAR2
362 , x_msg_count OUT NOCOPY NUMBER
363 , x_msg_data OUT NOCOPY VARCHAR2
364 , p_inventory_item_id IN NUMBER
365 , p_organization_id IN NUMBER
366 , p_lot_number IN VARCHAR2
367 , p_expiration_date IN DATE DEFAULT NULL
368 , p_disable_flag IN NUMBER DEFAULT NULL
369 , p_attribute_category IN VARCHAR2 DEFAULT NULL
370 , p_lot_attribute_category IN VARCHAR2 DEFAULT NULL
371 , p_attributes_tbl IN inv_lot_api_pub.char_tbl
372 , p_c_attributes_tbl IN inv_lot_api_pub.char_tbl
373 , p_n_attributes_tbl IN inv_lot_api_pub.number_tbl
374 , p_d_attributes_tbl IN inv_lot_api_pub.date_tbl
375 , p_grade_code IN VARCHAR2 DEFAULT NULL
376 , p_origination_date IN DATE DEFAULT NULL
377 , p_date_code IN VARCHAR2 DEFAULT NULL
378 , p_status_id IN NUMBER DEFAULT NULL
379 , p_change_date IN DATE DEFAULT NULL
383 , p_item_size IN NUMBER DEFAULT NULL
380 , p_age IN NUMBER DEFAULT NULL
381 , p_retest_date IN DATE DEFAULT NULL
382 , p_maturity_date IN DATE DEFAULT NULL
384 , p_color IN VARCHAR2 DEFAULT NULL
385 , p_volume IN NUMBER DEFAULT NULL
386 , p_volume_uom IN VARCHAR2 DEFAULT NULL
387 , p_place_of_origin IN VARCHAR2 DEFAULT NULL
388 , p_best_by_date IN DATE DEFAULT NULL
389 , p_length IN NUMBER DEFAULT NULL
390 , p_length_uom IN VARCHAR2 DEFAULT NULL
391 , p_recycled_content IN NUMBER DEFAULT NULL
392 , p_thickness IN NUMBER DEFAULT NULL
393 , p_thickness_uom IN VARCHAR2 DEFAULT NULL
394 , p_width IN NUMBER DEFAULT NULL
395 , p_width_uom IN VARCHAR2 DEFAULT NULL
396 , p_territory_code IN VARCHAR2 DEFAULT NULL
397 , p_supplier_lot_number IN VARCHAR2 DEFAULT NULL
398 , p_vendor_name IN VARCHAR2 DEFAULT NULL
399 , p_source IN NUMBER
400 );
401
402 -- nsinghi bug#5209065 START. Added following procedure.
403 /*
404 This is a procedure that accepts the lot record as input parameters.
405 This procedure validates some the input parameters like lot_number, expiration_date,
406 INV attributes, C_ATTRIBUTES, N_ATTRIBUTES and D_ATTRIBUTES.
407 If all the validations go through fine, data is updated in mtl_lot_numbers table
408 */
409
410 PROCEDURE update_inv_lot(
411 x_return_status OUT NOCOPY VARCHAR2
412 , x_msg_count OUT NOCOPY NUMBER
413 , x_msg_data OUT NOCOPY VARCHAR2
414 , x_lot_rec OUT NOCOPY MTL_LOT_NUMBERS%ROWTYPE
415 , p_lot_rec IN MTL_LOT_NUMBERS%ROWTYPE
416 , p_source IN NUMBER
417 , p_api_version IN NUMBER
418 , p_init_msg_list IN VARCHAR2 := fnd_api.g_false
419 , p_commit IN VARCHAR2 := fnd_api.g_false);
420 -- nsinghi bug#5209065 END.
421
422 /*
423 This is a procedure that accepts all the unnamed and named WMS attributes and
424 validates the values against the valueset attached to it.
425 */
426
427 PROCEDURE wms_lot_attr_validate(
428 x_return_status OUT NOCOPY VARCHAR2
429 , x_msg_count OUT NOCOPY NUMBER
430 , x_msg_data OUT NOCOPY VARCHAR2
431 , p_inventory_item_id IN NUMBER
432 , p_organization_id IN NUMBER
433 , p_disable_flag IN NUMBER
434 , p_lot_attribute_category IN VARCHAR2
435 , p_c_attributes_tbl IN inv_lot_api_pub.char_tbl
436 , p_n_attributes_tbl IN inv_lot_api_pub.number_tbl
437 , p_d_attributes_tbl IN inv_lot_api_pub.date_tbl
438 , p_grade_code IN VARCHAR2
439 , p_origination_date IN DATE
440 , p_date_code IN VARCHAR2
441 , p_change_date IN DATE
442 , p_age IN NUMBER
443 , p_retest_date IN DATE
444 , p_maturity_date IN DATE
445 , p_item_size IN NUMBER
446 , p_color IN VARCHAR2
447 , p_volume IN NUMBER
448 , p_volume_uom IN VARCHAR2
449 , p_place_of_origin IN VARCHAR2
450 , p_best_by_date IN DATE
451 , p_length IN NUMBER
452 , p_length_uom IN VARCHAR2
453 , p_recycled_content IN NUMBER
454 , p_thickness IN NUMBER
455 , p_thickness_uom IN VARCHAR2
456 , p_width IN NUMBER
457 , p_width_uom IN VARCHAR2
458 , p_territory_code IN VARCHAR2
459 , p_supplier_lot_number IN VARCHAR2
460 , p_vendor_name IN VARCHAR2
461 );
462
463 PROCEDURE set_wms_installed_flag(
464 p_wms_installed_flag IN VARCHAR2);
465
466
467
468 -- This procedure validates child lots against either org
469 -- or item setup parameters. Child lots must conform to
470 -- the setup defined for them.
471
472
473 PROCEDURE validate_child_lot
474 ( p_api_version IN NUMBER
475 , p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
476 , p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
477 , p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL
478 , p_organization_id IN NUMBER
479 , p_inventory_item_id IN NUMBER
480 , p_parent_lot_number IN VARCHAR2
481 , p_child_lot_number IN VARCHAR2
482 , x_return_status OUT NOCOPY VARCHAR2
483 , x_msg_count OUT NOCOPY NUMBER
484 , x_msg_data OUT NOCOPY VARCHAR2
485 );
486
487 -- This function validates, from the IN parameters,
488 -- whether a lot transaction can be added into the inventory
489 -- regarding the lot definition.
490 FUNCTION validate_lot_indivisible
491 ( p_api_version IN NUMBER
492 , p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
493 , p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
497 , p_inventory_item_id IN NUMBER
494 , p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL
495 , p_transaction_type_id IN NUMBER
496 , p_organization_id IN NUMBER
498 , p_revision IN VARCHAR2
499 , p_subinventory_code IN VARCHAR2
500 , p_locator_id IN NUMBER
501 , p_lot_number IN VARCHAR2
502 , p_primary_quantity IN NUMBER
503 , p_qoh IN NUMBER DEFAULT NULL
504 , p_atr IN NUMBER DEFAULT NULL
505 , x_return_status OUT NOCOPY VARCHAR2
506 , x_msg_count OUT NOCOPY NUMBER
507 , x_msg_data OUT NOCOPY VARCHAR2
508 ) RETURN BOOLEAN;
509
510 --Overloaded function which returns
511 --the Quantity as well
512 FUNCTION validate_lot_indivisible
513 ( p_api_version IN NUMBER
514 , p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
515 , p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
516 , p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL
517 , p_transaction_type_id IN NUMBER
518 , p_organization_id IN NUMBER
519 , p_inventory_item_id IN NUMBER
520 , p_revision IN VARCHAR2
521 , p_subinventory_code IN VARCHAR2
522 , p_locator_id IN NUMBER
523 , p_lot_number IN VARCHAR2
524 , p_primary_quantity IN NUMBER
525 , p_qoh IN NUMBER DEFAULT NULL
526 , p_atr IN NUMBER DEFAULT NULL
527 , x_primary_quantity OUT NOCOPY NUMBER
528 , x_return_status OUT NOCOPY VARCHAR2
529 , x_msg_count OUT NOCOPY NUMBER
530 , x_msg_data OUT NOCOPY VARCHAR2
531 ) RETURN BOOLEAN;
532
533
534 /* INVCONV, NSRIVAST, Start*/
535 -- This is the overloaded procedure for the exisiting Create_Inv_Lot procedure.
536 -- It inserts a record in mtl_lot_numbers table. Apart from this, it creates a
537 -- UOM Conversion record based on the value of copy_lot_uom_conversion.
538
539 PROCEDURE Create_Inv_lot(
540 x_return_status OUT NOCOPY VARCHAR2
541 , x_msg_count OUT NOCOPY NUMBER
542 , x_msg_data OUT NOCOPY VARCHAR2
543 , x_row_id OUT NOCOPY ROWID
544 , x_lot_rec OUT NOCOPY MTL_LOT_NUMBERS%ROWTYPE
545 , p_lot_rec IN MTL_LOT_NUMBERS%ROWTYPE
546 , p_source IN NUMBER
547 , p_api_version IN NUMBER
548 , p_init_msg_list IN VARCHAR2 := fnd_api.g_false
549 , p_commit IN VARCHAR2 := fnd_api.g_false
550 , p_validation_level IN NUMBER := fnd_api.g_valid_level_full
551 , p_origin_txn_id IN NUMBER
552 ) ;
553
554 /* INVCONV, NSRIVAST, End*/
555
556 /* INVCONV , HVERDDIN ADDED AUTO_GEN_LOT Wrapper for MSCA, Start */
557
558 FUNCTION auto_gen_lot(
559 p_org_id IN NUMBER
560 , p_inventory_item_id IN NUMBER
561 , p_lot_generation IN NUMBER := NULL
562 , p_lot_uniqueness IN NUMBER := NULL
563 , p_lot_prefix IN VARCHAR2 := NULL
564 , p_zero_pad IN NUMBER := NULL
565 , p_lot_length IN NUMBER := NULL
566 , p_transaction_date IN DATE := NULL
567 , p_revision IN VARCHAR2 := NULL
568 , p_subinventory_code IN VARCHAR2 := NULL
569 , p_locator_id IN NUMBER := NULL
570 , p_transaction_type_id IN NUMBER := NULL
571 , p_transaction_action_id IN NUMBER := NULL
572 , p_transaction_source_type_id IN NUMBER := NULL
573 , p_lot_number IN VARCHAR2 := NULL
574 , p_api_version IN NUMBER
575 , p_init_msg_list IN VARCHAR2 := fnd_api.g_false
576 , p_commit IN VARCHAR2 := fnd_api.g_false
577 , p_validation_level IN NUMBER := fnd_api.g_valid_level_full
578 , x_return_status OUT NOCOPY VARCHAR2
579 , x_msg_count OUT NOCOPY NUMBER
580 , x_msg_data OUT NOCOPY VARCHAR2
581 )
582 RETURN VARCHAR2;
583
584 /* INVCONV , HVERDDIN ADDED AUTO_GEN_LOT Wrapper for MSCA , End*/
585
586 /*INVCONV, Punit Kumar*/
587
588 PROCEDURE CHECK_LOT_INDIVISIBILITY ( p_api_version IN NUMBER DEFAULT 1.0
589 ,p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
590 ,p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
591 ,p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL
592 ,p_rti_id IN NUMBER
593 ,p_transaction_type_id IN NUMBER
594 ,p_lot_number IN VARCHAR2
595 ,p_lot_quantity IN NUMBER
596 ,p_revision IN VARCHAR2
597 ,p_qoh IN NUMBER DEFAULT NULL
598 ,p_atr IN NUMBER DEFAULT NULL
599 ,x_return_status OUT NOCOPY VARCHAR2
603 /*end, INVCONV, Punit Kumar*/
600 ,x_msg_count OUT NOCOPY NUMBER
601 ,x_msg_data OUT NOCOPY VARCHAR2
602 ) ;
604
605 -----------------------------------------------------------------------
606 -- Name : validate_quantities
607 -- Desc : This procedure is used to validate transaction quantity2
608 --
609 -- I/P Params :
610 -- All the relevant transaction details :
611 -- - organization id
612 -- - item_id
613 -- - lot, revision, subinventory
614 -- - transaction quantities
615 -- O/P Params :
616 -- x_rerturn_status.
617 -- RETURN VALUE :
618 -- TRUE : IF the transaction is valid regarding Quantity2 and lot indivisible
619 -- FALSE : IF the transaction is NOT valid regarding Quantity2 and lot indivisible
620 --
621 -----------------------------------------------------------------------
622 FUNCTION validate_quantities(
623 p_api_version IN NUMBER
624 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
625 , p_transaction_type_id IN NUMBER
626 , p_organization_id IN NUMBER
627 , p_inventory_item_id IN NUMBER
628 , p_revision IN VARCHAR2
629 , p_subinventory_code IN VARCHAR2
630 , p_locator_id IN NUMBER
631 , p_lot_number IN VARCHAR2
632 , p_transaction_quantity IN OUT NOCOPY NUMBER
633 , p_transaction_uom_code IN VARCHAR2
634 , p_primary_quantity IN OUT NOCOPY NUMBER
635 , p_primary_uom_code OUT NOCOPY VARCHAR2
636 , p_secondary_quantity IN OUT NOCOPY NUMBER
637 , p_secondary_uom_code IN OUT NOCOPY VARCHAR2
638 , x_return_status OUT NOCOPY VARCHAR2
639 , x_msg_count OUT NOCOPY NUMBER
640 , x_msg_data OUT NOCOPY VARCHAR2)
641 RETURN BOOLEAN;
642
643 END inv_lot_api_pub;