1 PACKAGE inv_lot_api_pub AUTHID CURRENT_USER AS
2 /* $Header: INVPLOTS.pls 120.13.12020000.4 2013/01/31 07:26:40 alxue 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 , p_parent_lot_number IN VARCHAR2 DEFAULT NULL -- bug 10176719 - inserting parent lot number
97 , p_origination_type IN NUMBER DEFAULT NULL -- bug 15896641 - inserting origination type
98 );
99
100 PROCEDURE inserttrxlot(
101 p_api_version IN NUMBER
102 , p_init_msg_list IN VARCHAR2 := fnd_api.g_false
103 , p_commit IN VARCHAR2 := fnd_api.g_false
104 , p_validation_level IN NUMBER := fnd_api.g_valid_level_full
105 , p_primary_quantity IN NUMBER DEFAULT NULL
106 , p_transaction_id IN NUMBER
107 , p_inventory_item_id IN NUMBER
108 , p_organization_id IN NUMBER
109 , p_transaction_date IN DATE
110 , p_transaction_source_id IN NUMBER
111 , p_transaction_source_name IN VARCHAR2
112 , p_transaction_source_type_id IN NUMBER
113 , p_transaction_temp_id IN NUMBER
114 , p_transaction_action_id IN NUMBER
115 , p_serial_transaction_id IN NUMBER
116 , p_lot_number IN VARCHAR2
117 , x_return_status OUT NOCOPY VARCHAR2
118 , x_msg_count OUT NOCOPY NUMBER
119 , x_msg_data OUT NOCOPY VARCHAR2
120 );
121
122 /* This function (validate_unique_lot) validates a given lot number for an organization and item
123 depending on the uniqueness level set
124 This function is called from auto_gen_lot function in order to check the uniqueness of
125 the generated lot number*/
126 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)
127 RETURN BOOLEAN;
128
129 /* Created a wrapper around validate_unique_lot to be able to call it thru Mobile apps */
130 PROCEDURE validate_unique_lot(
131 p_org_id IN NUMBER
132 , p_inventory_item_id IN NUMBER
133 , p_lot_uniqueness IN NUMBER
134 , p_auto_lot_number IN VARCHAR2
135 , p_check_same_item IN VARCHAR2
136 , x_is_unique OUT NOCOPY VARCHAR2
137 );
138
139
140
141 /*================================================
142 This function inserts mtl_child_lot_numbers.
143 ================================================*/
144
145 FUNCTION ins_mtl_child_lot_num (
146 p_org_id IN NUMBER
147 , p_inventory_item_id IN NUMBER
148 , p_parent_lot_number IN VARCHAR2
149 , p_last_child_lot_seq IN NUMBER
150 )
151 RETURN NUMBER;
152
153 /*================================================
154 This function updates mtl_child_lot_numbers.
155 ================================================*/
156
157 FUNCTION upd_mtl_child_lot_num (
158 p_org_id IN NUMBER
159 , p_inventory_item_id IN NUMBER
160 , p_parent_lot_number IN VARCHAR2
161 , p_last_child_lot_seq IN NUMBER
162 )
163 RETURN NUMBER;
164
165
166
167
168
169
170
171 /**
172 * This function ( auto_gen_lot) replaces the auto_gen_lot function in the INVTTELT.pld .
173 * It generates a lot number for for a given organization and item id and
174 * these 2 are the mandatory parameters.
175 * Other input parameters if not provided, are retrieved in the function .
176 * This function calls a user defined pl/sql procedure to generate lot numbers
177 * if the user_defined_proc returns a lot number then it validtes the lot_number and returns to the caller
178 * if the user_defined_proc returns null then this function generates a lot number, checks for its
179 * validity and returns the lot_number along with the return_status
180 */
181 -- Fix for Bug#12925054
182 -- Added new parameters p_transaction_source_id and p_transaction_source_line_id
183
184 FUNCTION auto_gen_lot(
185 p_org_id IN NUMBER
186 , p_inventory_item_id IN NUMBER
187 , p_lot_generation IN NUMBER := NULL
188 , p_lot_uniqueness IN NUMBER := NULL
189 , p_lot_prefix IN VARCHAR2 := NULL
190 , p_zero_pad IN NUMBER := NULL
191 , p_lot_length IN NUMBER := NULL
192 , p_transaction_date IN DATE := NULL
193 , p_revision IN VARCHAR2 := NULL
194 , p_subinventory_code IN VARCHAR2 := NULL
195 , p_locator_id IN NUMBER := NULL
196 , p_transaction_type_id IN NUMBER := NULL
197 , p_transaction_action_id IN NUMBER := NULL
198 , p_transaction_source_type_id IN NUMBER := NULL
199 , p_lot_number IN VARCHAR2 := NULL
200 , p_api_version IN NUMBER
201 , p_init_msg_list IN VARCHAR2 := fnd_api.g_false
202 , p_commit IN VARCHAR2 := fnd_api.g_false
203 , p_validation_level IN NUMBER := fnd_api.g_valid_level_full
204 , p_parent_lot_number IN VARCHAR2
205 , x_return_status OUT NOCOPY VARCHAR2
206 , x_msg_count OUT NOCOPY NUMBER
207 , x_msg_data OUT NOCOPY VARCHAR2
208 , p_transaction_source_id IN NUMBER DEFAULT NULL /* 13368816 */
209 , p_transaction_source_line_id IN NUMBER DEFAULT NULL /* 13368816 */
210 )
211 RETURN VARCHAR2;
212
213 /* This is a procedure that accepts the Named WMS attributes, C_Attributes,
214 N_Attributes, D_attributes, and INV attributes as pl/sql table input parameter
215 and validates the values passed as input parameters against the valueset attached to it.
216 This has flex Api call that does the actual validation
217 */
218
219 PROCEDURE validate_lot_attr_info(
220 x_return_status OUT NOCOPY VARCHAR2
221 , x_msg_count OUT NOCOPY NUMBER
222 , x_msg_data OUT NOCOPY VARCHAR2
223 , p_wms_is_installed IN VARCHAR2
224 , p_attribute_category IN VARCHAR2
225 , p_lot_attribute_category IN VARCHAR2
226 , p_inventory_item_id IN NUMBER
227 , p_organization_id IN NUMBER
228 , p_attributes_tbl IN inv_lot_api_pub.char_tbl
229 , p_c_attributes_tbl IN inv_lot_api_pub.char_tbl
230 , p_n_attributes_tbl IN inv_lot_api_pub.number_tbl
231 , p_d_attributes_tbl IN inv_lot_api_pub.date_tbl
232 , p_disable_flag IN NUMBER
233 , p_grade_code IN VARCHAR2
234 , p_origination_date IN DATE
235 , p_date_code IN VARCHAR2
236 , p_change_date IN DATE
237 , p_age IN NUMBER
238 , p_retest_date IN DATE
239 , p_maturity_date IN DATE
240 , p_item_size IN NUMBER
241 , p_color IN VARCHAR2
242 , p_volume IN NUMBER
243 , p_volume_uom IN VARCHAR2
244 , p_place_of_origin IN VARCHAR2
245 , p_best_by_date IN DATE
246 , p_length IN NUMBER
247 , p_length_uom IN VARCHAR2
248 , p_recycled_content IN NUMBER
249 , p_thickness IN NUMBER
250 , p_thickness_uom IN VARCHAR2
251 , p_width IN NUMBER
252 , p_width_uom IN VARCHAR2
253 , p_territory_code IN VARCHAR2
254 , p_supplier_lot_number IN VARCHAR2
255 , p_vendor_name IN VARCHAR2
256 );
257
258 /*
259
260 This is a procedure that accepts the lot attributes as input parameters.
261 This procedure validates some the input parameters like lot_number, expiration date,
262 INV attributes, C_ATTRIBUTES, N_ATTRIBUTES and D_ATTRIBUTES.
263 If all the validations go through fine, data is inserted into mtl_lot_numbers
264 */
265 -- This procedure has now be converted into a stub and it internally calls
266 -- the overloaded create_inv_lot procedure.
267
268 PROCEDURE create_inv_lot(
269 x_return_status OUT NOCOPY VARCHAR2
270 , x_msg_count OUT NOCOPY NUMBER
271 , x_msg_data OUT NOCOPY VARCHAR2
272 , p_inventory_item_id IN NUMBER
273 , p_organization_id IN NUMBER
274 , p_lot_number IN VARCHAR2
275 , p_expiration_date IN DATE
276 , p_disable_flag IN NUMBER
277 , p_attribute_category IN VARCHAR2
278 , p_lot_attribute_category IN VARCHAR2
279 , p_attributes_tbl IN inv_lot_api_pub.char_tbl
280 , p_c_attributes_tbl IN inv_lot_api_pub.char_tbl
281 , p_n_attributes_tbl IN inv_lot_api_pub.number_tbl
282 , p_d_attributes_tbl IN inv_lot_api_pub.date_tbl
283 , p_grade_code IN VARCHAR2
284 , p_origination_date IN DATE
285 , p_date_code IN VARCHAR2
286 , p_status_id IN NUMBER
287 , p_change_date IN DATE
288 , p_age IN NUMBER
289 , p_retest_date IN DATE
290 , p_maturity_date IN DATE
291 , p_item_size IN NUMBER
292 , p_color IN VARCHAR2
293 , p_volume IN NUMBER
294 , p_volume_uom IN VARCHAR2
295 , p_place_of_origin IN VARCHAR2
296 , p_best_by_date IN DATE
297 , p_length IN NUMBER
298 , p_length_uom IN VARCHAR2
299 , p_recycled_content IN NUMBER
300 , p_thickness IN NUMBER
301 , p_thickness_uom IN VARCHAR2
302 , p_width IN NUMBER
303 , p_width_uom IN VARCHAR2
304 , p_territory_code IN VARCHAR2
305 , p_supplier_lot_number IN VARCHAR2
306 , p_vendor_name IN VARCHAR2
307 , p_source IN NUMBER
308 , p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false -- bug 7513308
309 );
310
311 /*
312 This is a procedure that validates the input parameters to the API.
313 It does the following validations
314 a. Check if the item passed is a lot controlled Item
315 b. Check for lot uniqueness
316 c. Also has a call to validate the DFF attributes values against the value set
317 attached to each of the segments
318 */
319
320 PROCEDURE validate_lot_attr_in_param(
321 x_return_status OUT NOCOPY VARCHAR2
322 , x_msg_count OUT NOCOPY NUMBER
323 , x_msg_data OUT NOCOPY VARCHAR2
324 , p_inventory_item_id IN NUMBER
325 , p_organization_id IN NUMBER
326 , p_lot_number IN VARCHAR2
327 , p_attribute_category IN VARCHAR2
328 , p_lot_attribute_category IN VARCHAR2
329 , p_attributes_tbl IN inv_lot_api_pub.char_tbl
330 , p_c_attributes_tbl IN inv_lot_api_pub.char_tbl
331 , p_n_attributes_tbl IN inv_lot_api_pub.number_tbl
332 , p_d_attributes_tbl IN inv_lot_api_pub.date_tbl
333 , p_wms_is_installed IN VARCHAR2
334 , p_source IN NUMBER
335 , p_disable_flag IN NUMBER
336 , p_grade_code IN VARCHAR2
337 , p_origination_date IN DATE
338 , p_date_code IN VARCHAR2
339 , p_change_date IN DATE
340 , p_age IN NUMBER
341 , p_retest_date IN DATE
342 , p_maturity_date IN DATE
343 , p_item_size IN NUMBER
344 , p_color IN VARCHAR2
345 , p_volume IN NUMBER
346 , p_volume_uom IN VARCHAR2
347 , p_place_of_origin IN VARCHAR2
348 , p_best_by_date IN DATE
349 , p_length IN NUMBER
350 , p_length_uom IN VARCHAR2
351 , p_recycled_content IN NUMBER
352 , p_thickness IN NUMBER
353 , p_thickness_uom IN VARCHAR2
354 , p_width IN NUMBER
355 , p_width_uom IN VARCHAR2
356 , p_territory_code IN VARCHAR2
357 , p_supplier_lot_number IN VARCHAR2
358 , p_vendor_name IN VARCHAR2
359 );
360
361 /*
362 This is a procedure that accepts the lot attributes as input parameters.
363 This procedure validates some the input parameters like lot_number, expiration_date,
364 INV attributes, C_ATTRIBUTES, N_ATTRIBUTES and D_ATTRIBUTES.
365 If all the validations go through fine, data is updated in mtl_lot_numbers table
366 */
367 /*Bug 14835444 Teh default values changed to g_miss_date, g_miss_num and g_miss_char from NULL */
368 PROCEDURE update_inv_lot(
369 x_return_status OUT NOCOPY VARCHAR2
370 , x_msg_count OUT NOCOPY NUMBER
371 , x_msg_data OUT NOCOPY VARCHAR2
372 , p_inventory_item_id IN NUMBER
373 , p_organization_id IN NUMBER
374 , p_lot_number IN VARCHAR2
375 , p_expiration_date IN DATE DEFAULT NULL
376 , p_disable_flag IN NUMBER DEFAULT g_miss_num --NULL
377 , p_attribute_category IN VARCHAR2 DEFAULT g_miss_char --NULL
378 , p_lot_attribute_category IN VARCHAR2 DEFAULT g_miss_char --NULL
379 , p_attributes_tbl IN inv_lot_api_pub.char_tbl
380 , p_c_attributes_tbl IN inv_lot_api_pub.char_tbl
381 , p_n_attributes_tbl IN inv_lot_api_pub.number_tbl
382 , p_d_attributes_tbl IN inv_lot_api_pub.date_tbl
383 , p_grade_code IN VARCHAR2 DEFAULT NULL
384 , p_origination_date IN DATE DEFAULT g_miss_date --NULL
385 , p_date_code IN VARCHAR2 DEFAULT g_miss_char --NULL
386 , p_status_id IN NUMBER DEFAULT NULL
387 , p_change_date IN DATE DEFAULT g_miss_date --NULL
388 , p_age IN NUMBER DEFAULT g_miss_num --NULL
389 , p_retest_date IN DATE DEFAULT g_miss_date --NULL
390 , p_maturity_date IN DATE DEFAULT g_miss_date --NULL
391 , p_item_size IN NUMBER DEFAULT g_miss_num--NULL
392 , p_color IN VARCHAR2 DEFAULT g_miss_char --NULL
393 , p_volume IN NUMBER DEFAULT g_miss_num --NULL
394 , p_volume_uom IN VARCHAR2 DEFAULT g_miss_char --NULL
395 , p_place_of_origin IN VARCHAR2 DEFAULT g_miss_char --NULL
396 , p_best_by_date IN DATE DEFAULT g_miss_date --NULL
397 , p_length IN NUMBER DEFAULT g_miss_num --NULL
398 , p_length_uom IN VARCHAR2 DEFAULT g_miss_char --NULL
399 , p_recycled_content IN NUMBER DEFAULT g_miss_num --NULL
400 , p_thickness IN NUMBER DEFAULT g_miss_num --NULL
401 , p_thickness_uom IN VARCHAR2 DEFAULT g_miss_char --NULL
402 , p_width IN NUMBER DEFAULT g_miss_num --NULL
403 , p_width_uom IN VARCHAR2 DEFAULT g_miss_char --NULL
404 , p_territory_code IN VARCHAR2 DEFAULT g_miss_char --NULL
405 , p_supplier_lot_number IN VARCHAR2 DEFAULT g_miss_char --NULL
406 , p_vendor_name IN VARCHAR2 DEFAULT g_miss_char --NULL
407 , p_source IN NUMBER
408 );
409
410 -- nsinghi bug#5209065 START. Added following procedure.
411 /*
412 This is a procedure that accepts the lot record as input parameters.
413 This procedure validates some the input parameters like lot_number, expiration_date,
414 INV attributes, C_ATTRIBUTES, N_ATTRIBUTES and D_ATTRIBUTES.
415 If all the validations go through fine, data is updated in mtl_lot_numbers table
416 */
417
418 PROCEDURE update_inv_lot(
419 x_return_status OUT NOCOPY VARCHAR2
420 , x_msg_count OUT NOCOPY NUMBER
421 , x_msg_data OUT NOCOPY VARCHAR2
422 , x_lot_rec OUT NOCOPY MTL_LOT_NUMBERS%ROWTYPE
423 , p_lot_rec IN MTL_LOT_NUMBERS%ROWTYPE
424 , p_source IN NUMBER
425 , p_api_version IN NUMBER
426 , p_init_msg_list IN VARCHAR2 := fnd_api.g_false
427 , p_commit IN VARCHAR2 := fnd_api.g_false);
428 -- nsinghi bug#5209065 END.
429
430 /*
431 This is a procedure that accepts all the unnamed and named WMS attributes and
432 validates the values against the valueset attached to it.
433 */
434
435 PROCEDURE wms_lot_attr_validate(
436 x_return_status OUT NOCOPY VARCHAR2
437 , x_msg_count OUT NOCOPY NUMBER
438 , x_msg_data OUT NOCOPY VARCHAR2
439 , p_inventory_item_id IN NUMBER
440 , p_organization_id IN NUMBER
441 , p_disable_flag IN NUMBER
442 , p_lot_attribute_category IN VARCHAR2
443 , p_c_attributes_tbl IN inv_lot_api_pub.char_tbl
444 , p_n_attributes_tbl IN inv_lot_api_pub.number_tbl
445 , p_d_attributes_tbl IN inv_lot_api_pub.date_tbl
446 , p_grade_code IN VARCHAR2
447 , p_origination_date IN DATE
448 , p_date_code IN VARCHAR2
449 , p_change_date IN DATE
450 , p_age IN NUMBER
451 , p_retest_date IN DATE
452 , p_maturity_date IN DATE
453 , p_item_size IN NUMBER
454 , p_color IN VARCHAR2
455 , p_volume IN NUMBER
456 , p_volume_uom IN VARCHAR2
457 , p_place_of_origin IN VARCHAR2
458 , p_best_by_date IN DATE
459 , p_length IN NUMBER
460 , p_length_uom IN VARCHAR2
461 , p_recycled_content IN NUMBER
462 , p_thickness IN NUMBER
463 , p_thickness_uom IN VARCHAR2
464 , p_width IN NUMBER
465 , p_width_uom IN VARCHAR2
466 , p_territory_code IN VARCHAR2
467 , p_supplier_lot_number IN VARCHAR2
468 , p_vendor_name IN VARCHAR2
469 );
470
471 PROCEDURE set_wms_installed_flag(
472 p_wms_installed_flag IN VARCHAR2);
473
474
475
476 -- This procedure validates child lots against either org
477 -- or item setup parameters. Child lots must conform to
478 -- the setup defined for them.
479
480
481 PROCEDURE validate_child_lot
482 ( p_api_version IN NUMBER
483 , p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
484 , p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
485 , p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL
486 , p_organization_id IN NUMBER
487 , p_inventory_item_id IN NUMBER
488 , p_parent_lot_number IN VARCHAR2
489 , p_child_lot_number IN VARCHAR2
490 , x_return_status OUT NOCOPY VARCHAR2
491 , x_msg_count OUT NOCOPY NUMBER
492 , x_msg_data OUT NOCOPY VARCHAR2
493 );
494
495 -- This function validates, from the IN parameters,
496 -- whether a lot transaction can be added into the inventory
497 -- regarding the lot definition.
498 FUNCTION validate_lot_indivisible
499 ( p_api_version IN NUMBER
500 , p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
501 , p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
502 , p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL
503 , p_transaction_type_id IN NUMBER
504 , p_organization_id IN NUMBER
505 , p_inventory_item_id IN NUMBER
506 , p_revision IN VARCHAR2
507 , p_subinventory_code IN VARCHAR2
508 , p_locator_id IN NUMBER
509 , p_lot_number IN VARCHAR2
510 , p_primary_quantity IN NUMBER
511 , p_qoh IN NUMBER DEFAULT NULL
512 , p_atr IN NUMBER DEFAULT NULL
513 , x_return_status OUT NOCOPY VARCHAR2
514 , x_msg_count OUT NOCOPY NUMBER
515 , x_msg_data OUT NOCOPY VARCHAR2
516 ) RETURN BOOLEAN;
517
518 --Overloaded function which returns
519 --the Quantity as well
520 FUNCTION validate_lot_indivisible
521 ( p_api_version IN NUMBER
522 , p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
523 , p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
524 , p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL
525 , p_transaction_type_id IN NUMBER
526 , p_organization_id IN NUMBER
527 , p_inventory_item_id IN NUMBER
528 , p_revision IN VARCHAR2
529 , p_subinventory_code IN VARCHAR2
530 , p_locator_id IN NUMBER
531 , p_lot_number IN VARCHAR2
532 , p_lpn_id IN NUMBER DEFAULT NULL /*Bug#10113239 */
533 , p_primary_quantity IN NUMBER
534 , p_secondary_quantity IN NUMBER DEFAULT NULL /*Bug#11729772*/
535 , p_qoh IN NUMBER DEFAULT NULL
536 , p_atr IN NUMBER DEFAULT NULL
537 , x_primary_quantity OUT NOCOPY NUMBER
538 , x_secondary_quantity OUT NOCOPY NUMBER /*Bug#11729772*/
539 , x_return_status OUT NOCOPY VARCHAR2
540 , x_msg_count OUT NOCOPY NUMBER
541 , x_msg_data OUT NOCOPY VARCHAR2
542 ) RETURN BOOLEAN;
543
544
545 /* INVCONV, NSRIVAST, Start*/
546 -- This is the overloaded procedure for the exisiting Create_Inv_Lot procedure.
547 -- It inserts a record in mtl_lot_numbers table. Apart from this, it creates a
548 -- UOM Conversion record based on the value of copy_lot_uom_conversion.
549
550 PROCEDURE Create_Inv_lot(
551 x_return_status OUT NOCOPY VARCHAR2
552 , x_msg_count OUT NOCOPY NUMBER
553 , x_msg_data OUT NOCOPY VARCHAR2
554 , x_row_id OUT NOCOPY ROWID
555 , x_lot_rec OUT NOCOPY MTL_LOT_NUMBERS%ROWTYPE
556 , p_lot_rec IN MTL_LOT_NUMBERS%ROWTYPE
557 , p_source IN NUMBER
558 , p_api_version IN NUMBER
559 , p_init_msg_list IN VARCHAR2 := fnd_api.g_false
560 , p_commit IN VARCHAR2 := fnd_api.g_false
561 , p_validation_level IN NUMBER := fnd_api.g_valid_level_full
562 , p_origin_txn_id IN NUMBER
563 ) ;
564
565
566 --OVER LOAD 14192172
567 PROCEDURE Create_Inv_lot(
568 x_return_status OUT NOCOPY VARCHAR2
569 , x_msg_count OUT NOCOPY NUMBER
570 , x_msg_data OUT NOCOPY VARCHAR2
571 , x_row_id OUT NOCOPY ROWID
572 , x_lot_rec OUT NOCOPY MTL_LOT_NUMBERS%ROWTYPE
573 , p_lot_rec IN MTL_LOT_NUMBERS%ROWTYPE
574 , p_source IN NUMBER
575 , p_api_version IN NUMBER
576 , p_init_msg_list IN VARCHAR2 := fnd_api.g_false
577 , p_commit IN VARCHAR2 := fnd_api.g_false
578 , p_validation_level IN NUMBER := fnd_api.g_valid_level_full
579 , p_origin_txn_id IN NUMBER
580 , p_caculate_flag IN VARCHAR2 -- 14192172
581 ) ;
582
583 /* INVCONV, NSRIVAST, End*/
584
585 /* INVCONV , HVERDDIN ADDED AUTO_GEN_LOT Wrapper for MSCA, Start */
586 -- Fix for Bug#12925054
587 -- Added new parameters p_transaction_source_id and p_transaction_source_line_id
588
589
590 FUNCTION auto_gen_lot(
591 p_org_id IN NUMBER
592 , p_inventory_item_id IN NUMBER
593 , p_lot_generation IN NUMBER := NULL
594 , p_lot_uniqueness IN NUMBER := NULL
595 , p_lot_prefix IN VARCHAR2 := NULL
596 , p_zero_pad IN NUMBER := NULL
597 , p_lot_length IN NUMBER := NULL
598 , p_transaction_date IN DATE := NULL
599 , p_revision IN VARCHAR2 := NULL
600 , p_subinventory_code IN VARCHAR2 := NULL
601 , p_locator_id IN NUMBER := NULL
602 , p_transaction_type_id IN NUMBER := NULL
603 , p_transaction_action_id IN NUMBER := NULL
604 , p_transaction_source_type_id IN NUMBER := NULL
605 , p_lot_number IN VARCHAR2 := NULL
606 , p_api_version IN NUMBER
607 , p_init_msg_list IN VARCHAR2 := fnd_api.g_false
608 , p_commit IN VARCHAR2 := fnd_api.g_false
609 , p_validation_level IN NUMBER := fnd_api.g_valid_level_full
610 , x_return_status OUT NOCOPY VARCHAR2
611 , x_msg_count OUT NOCOPY NUMBER
612 , x_msg_data OUT NOCOPY VARCHAR2
613 , p_transaction_source_id IN NUMBER DEFAULT NULL /* 13368816 */
614 , p_transaction_source_line_id IN NUMBER DEFAULT NULL /* 13368816 */
615 )
616 RETURN VARCHAR2;
617
618 /* INVCONV , HVERDDIN ADDED AUTO_GEN_LOT Wrapper for MSCA , End*/
619
620 /*INVCONV, Punit Kumar*/
621
622 PROCEDURE CHECK_LOT_INDIVISIBILITY ( p_api_version IN NUMBER DEFAULT 1.0
623 ,p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE
624 ,p_commit IN VARCHAR2 DEFAULT FND_API.G_FALSE
625 ,p_validation_level IN NUMBER DEFAULT FND_API.G_VALID_LEVEL_FULL
626 ,p_rti_id IN NUMBER
627 ,p_transaction_type_id IN NUMBER
628 ,p_lot_number IN VARCHAR2
629 ,p_lot_quantity IN NUMBER
630 ,p_revision IN VARCHAR2
631 ,p_qoh IN NUMBER DEFAULT NULL
632 ,p_atr IN NUMBER DEFAULT NULL
633 ,x_return_status OUT NOCOPY VARCHAR2
634 ,x_msg_count OUT NOCOPY NUMBER
635 ,x_msg_data OUT NOCOPY VARCHAR2
636 ) ;
637 /*end, INVCONV, Punit Kumar*/
638
639 -----------------------------------------------------------------------
640 -- Name : validate_quantities
641 -- Desc : This procedure is used to validate transaction quantity2
642 --
643 -- I/P Params :
644 -- All the relevant transaction details :
645 -- - organization id
646 -- - item_id
647 -- - lot, revision, subinventory
648 -- - transaction quantities
649 -- O/P Params :
650 -- x_rerturn_status.
651 -- RETURN VALUE :
652 -- TRUE : IF the transaction is valid regarding Quantity2 and lot indivisible
653 -- FALSE : IF the transaction is NOT valid regarding Quantity2 and lot indivisible
654 --
655 -----------------------------------------------------------------------
656 FUNCTION validate_quantities(
657 p_api_version IN NUMBER
658 , p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
659 , p_transaction_type_id IN NUMBER
660 , p_organization_id IN NUMBER
661 , p_inventory_item_id IN NUMBER
662 , p_revision IN VARCHAR2
663 , p_subinventory_code IN VARCHAR2
664 , p_locator_id IN NUMBER
665 , p_lot_number IN VARCHAR2
666 , p_transaction_quantity IN OUT NOCOPY NUMBER
667 , p_transaction_uom_code IN VARCHAR2
668 , p_primary_quantity IN OUT NOCOPY NUMBER
669 , p_primary_uom_code OUT NOCOPY VARCHAR2
670 , p_secondary_quantity IN OUT NOCOPY NUMBER
671 , p_secondary_uom_code IN OUT NOCOPY VARCHAR2
672 , x_return_status OUT NOCOPY VARCHAR2
673 , x_msg_count OUT NOCOPY NUMBER
674 , x_msg_data OUT NOCOPY VARCHAR2)
675 RETURN BOOLEAN;
676
677 --This procedure checks whether lot specific conversion exist in source org or not
678 --If lot specific conversion exist then it will create the lot specific conversion
679 -- in desitnation org
680 --BUG#10202198
681
682 PROCEDURE lot_UOM_conv_OrgTxf (
683 p_organization_id IN NUMBER
684 , p_inventory_item_id IN NUMBER
685 , p_xfr_organization_id IN NUMBER
686 , p_lot_number IN VARCHAR2
687 , p_transaction_temp_id IN NUMBER
688 , p_to_UOM_code IN VARCHAR2
689 , p_from_UOM_code IN VARCHAR2
690 , x_return_status OUT NOCOPY VARCHAR2
691 , x_msg_count OUT NOCOPY NUMBER
692 , x_msg_data OUT NOCOPY VARCHAR2);
693
694 --this procedure inserts data in MTL_LOT_UOM_CLASS_CONVERSIONS table
695 --Bug#10202198
696 PROCEDURE create_lot_UOM_conv_orgtxf (
697 p_organization_id IN NUMBER
698 , p_inventory_item_id IN NUMBER
699 , p_xfr_organization_id IN NUMBER
700 , p_lot_number IN VARCHAR2
701 , p_to_UOM_code IN VARCHAR2
702 , p_from_UOM_code IN VARCHAR2
703 , x_return_status OUT NOCOPY VARCHAR2
704 , x_msg_count OUT NOCOPY NUMBER
705 , x_msg_data OUT NOCOPY VARCHAR2);
706
707 END inv_lot_api_pub;