[Home] [Help]
PACKAGE BODY: APPS.INV_DEFAULT_TROLIN
Source
1 PACKAGE BODY INV_Default_Trolin AS
2 /* $Header: INVDTRLB.pls 120.4.12000000.3 2007/10/15 09:12:41 aymohant ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'INV_Default_Trolin';
7
8 -- Package global used within the package.
9
10 g_trolin_rec INV_Move_Order_PUB.Trolin_Rec_Type;
11 g_max_line_num_header_id number := null;
12
13 -- Get functions.
14
15 FUNCTION Get_Date_Required
16 RETURN DATE
17 IS
18 l_trohdr_rec INV_Move_Order_PUB.Trohdr_Rec_Type;
19 BEGIN
20 RETURN NULL;
21
22 END Get_Date_Required;
23
24 FUNCTION Get_From_Locator
25 RETURN NUMBER
26 IS
27 BEGIN
28
29 RETURN NULL;
30
31 END Get_From_Locator;
32
33
34 FUNCTION Get_From_Subinventory_Id
35 RETURN VARCHAR2
36 IS
37 BEGIN
38
39 RETURN NULL;
40
41 END Get_From_Subinventory_Id;
42
43
44 FUNCTION Get_From_Subinventory
45 RETURN VARCHAR2
46 IS
47 l_trohdr_rec INV_Move_Order_PUB.Trohdr_Rec_Type;
48 BEGIN
49 RETURN NULL;
50
51 END Get_From_Subinventory;
52
53 /*
54 FUNCTION Get_Header
55 RETURN NUMBER
56 IS
57 BEGIN
58 -- -------------------------------------------------------
59 RETURN INV_Validate.g_TRO_GlobalAttributes.header_id;
60 END Get_Header;
61 */
62
63 FUNCTION Get_Inventory_Item
64 RETURN NUMBER
65 IS
66 BEGIN
67
68 RETURN NULL;
69
70 END Get_Inventory_Item;
71
72 FUNCTION Get_Line
73 RETURN NUMBER
74 IS
75 l_line_id number := null;
76 BEGIN
77
78 SELECT MTL_TXN_REQUEST_LINES_S.NEXTVAL
79 INTO l_line_id
80 FROM DUAL;
81
82 /* inv_debug.message(to_char(l_line_id)); */
83
84 RETURN l_line_id;
85
86 END Get_Line;
87
88
89 FUNCTION Get_Line_Number
90 RETURN NUMBER
91 IS
92 l_trohdr_rec INV_Move_Order_PUB.Trohdr_Rec_Type;
93 --Bug #4347016
94 --Initialized Max Line Number to the global variable
95 l_max_line_num number := NVL(INV_Globals.g_max_line_num, 0);
96 BEGIN
97 /* inv_debug.message('In Get Line Num for header id:'||to_char(g_trolin_rec.header_id)); */
98 /* inv_debug.message('Prev header id:'||to_char(g_max_line_num_header_id)); */
99 IF g_trolin_rec.header_id IS NOT NULL AND
100 g_trolin_rec.header_id <> FND_API.G_MISS_NUM
101 THEN
102 /*
103 l_trohdr_rec :=
104 INV_default_Trohdr.Load_Request_header(g_trolin_rec.header_id );
105 */
106
107
108 If INV_Globals.g_max_line_num is null
109 or g_max_line_num_header_id <> g_trolin_rec.header_id
110 Then
111
112 SELECT nvl(max(line_number), 0)
113 INTO l_max_line_num
114 FROM mtl_txn_request_lines_v
115 WHERE header_id = g_trolin_rec.header_id;
116
117
118 g_max_line_num_header_id := g_trolin_rec.header_id;
119 INV_Globals.g_max_line_num := l_max_line_num + 1;
120
121 End If;
122
123 IF (l_max_line_num >= nvl(INV_Globals.g_max_line_num,0)) THEN
124
125 INV_Globals.g_max_line_num := 1 + l_max_line_num;
126
127 END IF;
128
129 /* inv_debug.message('D:'||to_char(INV_GLOBALS.g_max_line_num)); */
130 return INV_Globals.g_max_line_num;
131 end if;
132 /* inv_debug.message('Returning null'); */
133 return null;
134 END Get_Line_Number;
135
136 FUNCTION Get_Line_Status
137 RETURN NUMBER
138 IS
139 BEGIN
140 IF INV_globals.G_CALL_MODE = 'FORM'
141 THEN
142 RETURN 1; /* Incomplete Status */
143 ELSE
144 RETURN 7; /* PRE-APPROVED */
145 END IF;
146 END Get_Line_Status;
147
148 FUNCTION Get_Lot_Number
149 RETURN VARCHAR2
150 IS
151 BEGIN
152
153 RETURN NULL;
154
155 END Get_Lot_Number;
156
157 FUNCTION Get_Organization
158 RETURN NUMBER
159 IS
160 BEGIN
161
162 RETURN Inv_globals.g_org_id;
163
164 END Get_Organization;
165
166 FUNCTION Get_Project
167 RETURN NUMBER
168 IS
169 BEGIN
170
171 RETURN NULL;
172
173 END Get_Project;
174
175 FUNCTION Get_Quantity
176 RETURN NUMBER
177 IS
178 BEGIN
179
180 RETURN NULL;
181
182 END Get_Quantity;
183
184 FUNCTION Get_Quantity_Delivered
185 RETURN NUMBER
186 IS
187 BEGIN
188
189 RETURN NULL;
190
191 END Get_Quantity_Delivered;
192
193 FUNCTION Get_Quantity_Detailed
194 RETURN NUMBER
195 IS
196 BEGIN
197
198 RETURN NULL;
199
200 END Get_Quantity_Detailed;
201
202 FUNCTION Get_Reason
203 RETURN NUMBER
204 IS
205 BEGIN
206
207 RETURN NULL;
208
209 END Get_Reason;
210
211 --FUNCTION Get_Reference
212 --RETURN VARCHAR2
213 --IS
214 --BEGIN
215 --
216 -- RETURN NULL;
217 --
218 --END Get_Reference;
219
220 FUNCTION Get_Reference
221 RETURN NUMBER
222 IS
223 BEGIN
224
225 RETURN NULL;
226
227 END Get_Reference;
228
229 FUNCTION Get_Reference_Type
230 RETURN NUMBER
231 IS
232 BEGIN
233
234 RETURN NULL;
235
236 END Get_Reference_Type;
237
238 FUNCTION Get_Revision
239 RETURN VARCHAR2
240 IS
241 BEGIN
242
243 RETURN NULL;
244
245 END Get_Revision;
246
247 FUNCTION Get_Serial_Number_End
248 RETURN VARCHAR2
249 IS
250 BEGIN
251
252 RETURN NULL;
253
254 END Get_Serial_Number_End;
255
256 FUNCTION Get_Serial_Number_Start
257 RETURN VARCHAR2
258 IS
259 BEGIN
260 RETURN NULL;
261
262 END Get_Serial_Number_Start;
263
264 FUNCTION Get_Status_Date
265 RETURN DATE
266 IS
267 BEGIN
268 RETURN Sysdate;
269
270 END Get_Status_Date;
271
272 FUNCTION Get_Task
273 RETURN NUMBER
274 IS
275 BEGIN
276
277 RETURN NULL;
278
279 END Get_Task;
280
281 FUNCTION Get_To_Account
282 RETURN NUMBER
283 IS
284 l_trohdr_rec INV_Move_Order_PUB.Trohdr_Rec_Type;
285 BEGIN
286 /*
287 IF g_trolin_rec.header_id IS NOT NULL AND
288 g_trolin_rec.header_id <> FND_API.G_MISS_NUM
289 THEN
290 l_trohdr_rec :=
291 INV_default_Trohdr.Load_Request_header(g_trolin_rec.header_id );
292
293 IF l_trohdr_rec.to_account_id IS NOT NULL THEN
294 RETURN l_trohdr_rec.to_account_id;
295 END IF;
296
297 END IF;
298 */
299 RETURN NULL;
300
301 END Get_To_Account;
302
303 FUNCTION Get_To_Locator
304 RETURN NUMBER
305 IS
306 BEGIN
307
308 RETURN NULL;
309
310 END Get_To_Locator;
311
312 FUNCTION Get_To_Subinventory_Id
313 RETURN NUMBER
314 IS
315 BEGIN
316
317 RETURN NULL;
318
319 END Get_To_Subinventory_Id;
320
321 FUNCTION Get_To_Subinventory
322 RETURN VARCHAR2
323 IS
324 l_trohdr_rec INV_Move_Order_PUB.Trohdr_Rec_Type;
325 BEGIN
326 /*
327 IF g_trolin_rec.header_id IS NOT NULL AND
328 g_trolin_rec.header_id <> FND_API.G_MISS_NUM
329 THEN
330 l_trohdr_rec :=
331 INV_default_Trohdr.Load_Request_header(g_trolin_rec.header_id );
332
333 IF l_trohdr_rec.to_subinventory_code IS NOT NULL THEN
334 RETURN l_trohdr_rec.to_subinventory_code;
335 END IF;
336
337 END IF;
338 */
339
340 RETURN NULL;
341
342 END Get_To_Subinventory;
343
344 FUNCTION Get_Transaction_Header
345 RETURN NUMBER
346 IS
347 BEGIN
348
349 RETURN NULL;
350
351 END Get_Transaction_Header;
352
353 FUNCTION Get_Uom
354 RETURN VARCHAR2
355 IS
356 BEGIN
357
358 RETURN NULL;
359
360 END Get_Uom;
361
362 FUNCTION Get_Transaction_Type_Id
363 RETURN NUMBER
364 IS
365 BEGIN
366 RETURN 64; /* Subinventory Transfer */
367 END Get_Transaction_Type_Id;
368
369 FUNCTION Get_To_Organization_Id
370 RETURN NUMBER
371 IS
372 BEGIN
373 Return Inv_globals.g_org_id;
374 END Get_To_Organization_Id;
375
376
377 FUNCTION Get_Primary_Quantity
378 RETURN NUMBER
379 IS
380 BEGIN
381 Return NULL;
382 END Get_Primary_Quantity;
383
384 FUNCTION Get_Txn_Source_Id
385 RETURN NUMBER
386 IS
387 BEGIN
388 Return NULL;
389 END Get_Txn_Source_Id;
390
391 FUNCTION Get_Txn_Source_Line_Id
392 RETURN NUMBER
393 IS
394 BEGIN
395 Return NULL;
396 END Get_Txn_Source_Line_Id;
397
398 FUNCTION Get_Txn_Source_Line_Detail_Id
399 RETURN NUMBER
400 IS
401 BEGIN
402 Return NULL;
403 END Get_Txn_Source_Line_Detail_Id;
404
405 FUNCTION Get_Transaction_Source_Type_ID(p_transaction_type_id in NUMBER)
406 RETURN NUMBER
407 IS
408 l_transaction_source_type_id NUMBER;
409 BEGIN
410 select transaction_source_type_id
411 into l_transaction_source_type_id
412 from mtl_transaction_types
413 where transaction_type_id = p_transaction_type_id;
414
415 Return l_transaction_source_type_id;
416 END Get_Transaction_Source_Type_ID;
417
418 FUNCTION Get_Pick_Strategy_ID
419 RETURN NUMBER
420 IS
421 BEGIN
422 Return NULL;
423 END Get_Pick_Strategy_ID;
424
425 FUNCTION Get_Put_Away_Strategy_ID
426 RETURN NUMBER
427 IS
428 BEGIN
429 Return NULL;
430 END Get_Put_Away_Strategy_ID;
431
432 FUNCTION Get_Unit_Number
433 RETURN Varchar2
434 IS
435 BEGIN
436 Return NULL;
437 END Get_Unit_Number;
438
439 PROCEDURE Get_Flex_Trolin
440 IS
441 BEGIN
442
443 -- In the future call Flex APIs for defaults
444
445 IF g_trolin_rec.attribute1 = FND_API.G_MISS_CHAR THEN
446 g_trolin_rec.attribute1 := NULL;
447 END IF;
448
449 IF g_trolin_rec.attribute10 = FND_API.G_MISS_CHAR THEN
450 g_trolin_rec.attribute10 := NULL;
451 END IF;
452
453 IF g_trolin_rec.attribute11 = FND_API.G_MISS_CHAR THEN
454 g_trolin_rec.attribute11 := NULL;
455 END IF;
456
457 IF g_trolin_rec.attribute12 = FND_API.G_MISS_CHAR THEN
458 g_trolin_rec.attribute12 := NULL;
459 END IF;
460
461 IF g_trolin_rec.attribute13 = FND_API.G_MISS_CHAR THEN
462 g_trolin_rec.attribute13 := NULL;
463 END IF;
464
465 IF g_trolin_rec.attribute14 = FND_API.G_MISS_CHAR THEN
466 g_trolin_rec.attribute14 := NULL;
467 END IF;
468
469 IF g_trolin_rec.attribute15 = FND_API.G_MISS_CHAR THEN
470 g_trolin_rec.attribute15 := NULL;
471 END IF;
472
473 IF g_trolin_rec.attribute2 = FND_API.G_MISS_CHAR THEN
474 g_trolin_rec.attribute2 := NULL;
475 END IF;
476
477 IF g_trolin_rec.attribute3 = FND_API.G_MISS_CHAR THEN
478 g_trolin_rec.attribute3 := NULL;
479 END IF;
480
481 IF g_trolin_rec.attribute4 = FND_API.G_MISS_CHAR THEN
482 g_trolin_rec.attribute4 := NULL;
483 END IF;
484
485 IF g_trolin_rec.attribute5 = FND_API.G_MISS_CHAR THEN
486 g_trolin_rec.attribute5 := NULL;
487 END IF;
488
489 IF g_trolin_rec.attribute6 = FND_API.G_MISS_CHAR THEN
490 g_trolin_rec.attribute6 := NULL;
491 END IF;
492
493 IF g_trolin_rec.attribute7 = FND_API.G_MISS_CHAR THEN
494 g_trolin_rec.attribute7 := NULL;
495 END IF;
496
497 IF g_trolin_rec.attribute8 = FND_API.G_MISS_CHAR THEN
498 g_trolin_rec.attribute8 := NULL;
499 END IF;
500
501 IF g_trolin_rec.attribute9 = FND_API.G_MISS_CHAR THEN
502 g_trolin_rec.attribute9 := NULL;
503 END IF;
504
505 IF g_trolin_rec.attribute_category = FND_API.G_MISS_CHAR THEN
506 g_trolin_rec.attribute_category := NULL;
507 END IF;
508
509 END Get_Flex_Trolin;
510 --INVCONV Added for Convergence
511 FUNCTION Get_Sec_Quantity
512 RETURN NUMBER
513 IS
514 BEGIN
515
516 RETURN NULL;
517
518 END Get_Sec_Quantity;
519
520 FUNCTION Get_Sec_Quantity_Delivered
521 RETURN NUMBER
522 IS
523 BEGIN
524
525 RETURN NULL;
526
527 END Get_Sec_Quantity_Delivered;
528
529 FUNCTION Get_Sec_Quantity_Detailed
530 RETURN NUMBER
531 IS
532 BEGIN
533
534 RETURN NULL;
535
536 END Get_Sec_Quantity_Detailed;
537
538 FUNCTION Get_Secondary_Uom
539 RETURN VARCHAR2
540 IS
541 BEGIN
542
543 RETURN NULL;
544
545 END Get_Secondary_Uom;
546
547 FUNCTION Get_Grade_Code
548 RETURN VARCHAR2
549 IS
550 BEGIN
551
552 RETURN NULL;
553
554 END Get_Grade_Code;
555
556
557 PROCEDURE convert_quantity
558 ( x_return_status OUT NOCOPY VARCHAR2,
559 p_trolin_rec IN OUT NOCOPY inv_move_order_pub.trolin_rec_type) IS
560 l_return_status VARCHAR2(1):= fnd_api.g_ret_sts_success;
561 l_primary_uom_code VARCHAR2(3);
562 l_tmp_secondary_quantity NUMBER := NULL; -- INVCONV
563 l_tmp_quantity NUMBER := NULL;
564 l_tracking_quantity_ind MTL_SYSTEM_ITEMS.tracking_quantity_ind%TYPE; --INVCONV
565 l_secondary_default_ind MTL_SYSTEM_ITEMS.secondary_default_ind%TYPE; --INVCONV
566 BEGIN
567 l_return_status := 'S';
568 -- INVCONV - Retrieve secondary uom
569 IF p_trolin_rec.uom_code IS NULL or p_trolin_rec.secondary_uom IS NULL THEN
570 SELECT primary_uom_code, secondary_uom_code,tracking_quantity_ind, secondary_default_ind
571 INTO p_trolin_rec.uom_code,
572 p_trolin_rec.secondary_uom,
573 l_tracking_quantity_ind,
574 l_secondary_default_ind
575 FROM mtl_system_items
576 WHERE inventory_item_id = p_trolin_rec.inventory_item_id
577 AND organization_id = p_trolin_rec.organization_id;
578 END IF;
579
580 /* it's possible that Secondary UOM is defined for the item but the item is tracked only in Primary */
581 IF(l_tracking_quantity_ind <> 'PS') THEN --INVCONV
582 p_trolin_rec.secondary_uom := NULL;
583 END IF;
584
585 -- INVCONV BEGIN
586 -- If dual control and secondary quantity is missing, calculate it
587 IF p_trolin_rec.secondary_uom IS NOT NULL AND
588 nvl(p_trolin_rec.secondary_quantity,0) = 0 AND ( l_secondary_default_ind in('F','D') ) THEN
589 l_tmp_secondary_quantity := inv_convert.inv_um_convert(
590 item_id => p_trolin_rec.inventory_item_id
591 , lot_number => p_trolin_rec.lot_number
592 , organization_id => p_trolin_rec.organization_id
593 , PRECISION => NULL -- use default precision
594 , from_quantity => p_trolin_rec.quantity
595 , from_unit => p_trolin_rec.uom_code
596 , to_unit => p_trolin_rec.secondary_uom
597 , from_name => NULL -- from uom name
598 , to_name => NULL -- to uom name
599 );
600
601 IF l_tmp_secondary_quantity = -99999 THEN
602 -- conversion failed
603 fnd_message.set_name('INV', 'CAN-NOT-CONVERT-TO-SECOND-UOM'); -- INVCONV NEW MESSAGE
604 fnd_msg_pub.ADD;
605 l_return_status := fnd_api.g_ret_sts_error;
606 RAISE fnd_api.g_exc_error;
607 END IF;
608 p_trolin_rec.secondary_quantity := l_tmp_secondary_quantity; -- INVCONV
609 END IF;
610
611 -- INVCONV END
612 x_return_status := l_return_status;
613 --
614 EXCEPTION
615 WHEN fnd_api.g_exc_error THEN
616 x_return_status := fnd_api.g_ret_sts_error;
617 --
618 WHEN fnd_api.g_exc_unexpected_error THEN
619 x_return_status := fnd_api.g_ret_sts_unexp_error;
620 --
621 WHEN OTHERS THEN
622 x_return_status := fnd_api.g_ret_sts_unexp_error;
623
624 --
625 /* IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
626 fnd_msg_pub.add_exc_msg(g_pkg_name, 'Convert_Quantity');
627 END IF; */
628 END convert_quantity;
629
630
631 --INVCONV Added for Convergence
632
633 -- Procedure Attributes
634
635 PROCEDURE Attributes
636 ( p_trolin_rec IN INV_Move_Order_PUB.Trolin_Rec_Type :=
637 INV_Move_Order_PUB.G_MISS_TROLIN_REC
638 , p_iteration IN NUMBER := 1
639 , x_trolin_rec OUT NOCOPY INV_Move_Order_PUB.Trolin_Rec_Type
640 )
641 IS
642 l_org inv_validate.org;
643 l_item inv_validate.item;
644 l_fsub inv_validate.sub;
645 l_tsub inv_validate.sub;
646 l_floc inv_validate.locator;
647 l_tloc inv_validate.locator;
648 l_lot inv_validate.lot;
649 l_serial inv_validate.serial;
650 l_trans inv_validate.transaction;
651 l_acct_txn NUMBER;
652
653 l_mov_order_type NUMBER;
654 l_return_status VARCHAR2(1) := fnd_api.g_ret_sts_success;
655
656 BEGIN
657 -- Check number of iterations.
658
659 IF p_iteration > INV_GLOBALS.G_MAX_DEF_ITERATIONS THEN
660
661 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
662 THEN
663
664 FND_MESSAGE.SET_NAME('INV','OE_DEF_MAX_ITERATION');
665 FND_MSG_PUB.Add;
666
667 END IF;
668
669 RAISE FND_API.G_EXC_ERROR;
670
671 END IF;
672
673 -- Initialize g_trolin_rec
674
675 g_trolin_rec := p_trolin_rec;
676
677 -- Default missing attributes.
678
679 -- Changes for bug 6441724
680 IF (g_trolin_rec.operation = inv_globals.g_opr_create)
681 AND (g_trolin_rec.project_id = FND_API.G_MISS_NUM )
682 AND (g_trolin_rec.to_locator_id IS NOT NULL)
683 AND (g_trolin_rec.to_locator_id <> FND_API.G_MISS_NUM)
684 THEN
685 select project_id,task_id
686 into g_trolin_rec.project_id,g_trolin_rec.task_id
687 from mtl_item_locations
688 where inventory_location_id = g_trolin_rec.to_locator_id;
689 IF g_trolin_rec.project_id IS NULL THEN
690 g_trolin_rec.project_id := FND_API.G_MISS_NUM;
691 g_trolin_rec.task_id := FND_API.G_MISS_NUM;
692 END IF;
693 END IF;
694
695
696 IF g_trolin_rec.organization_id = FND_API.G_MISS_NUM THEN
697
698 g_trolin_rec.organization_id := Get_Organization;
699
700 IF g_trolin_rec.organization_id IS NOT NULL THEN
701
702 l_org.organization_id := g_trolin_rec.organization_id;
703 IF INV_Validate.Organization(l_org) = inv_validate.T
704 THEN
705 INV_Trolin_Util.Clear_Dependent_Attr
706 ( p_attr_id => INV_Trolin_Util.G_ORGANIZATION
707 , p_trolin_rec => g_trolin_rec
708 , x_trolin_rec => g_trolin_rec
709 );
710 ELSE
711 g_trolin_rec.organization_id := NULL;
712 END IF;
713
714 END IF;
715
716 END IF;
717
718 IF g_trolin_rec.inventory_item_id = FND_API.G_MISS_NUM THEN
719
720 g_trolin_rec.inventory_item_id := Get_Inventory_Item;
721
722 IF g_trolin_rec.inventory_item_id IS NOT NULL THEN
723
724 l_item.inventory_item_id := g_trolin_rec.inventory_item_id;
725 IF INV_Validate.Inventory_Item(l_item, l_org)
726 = inv_validate.T
727 THEN
728 INV_Trolin_Util.Clear_Dependent_Attr
729 ( p_attr_id => INV_Trolin_Util.G_INVENTORY_ITEM
730 , p_trolin_rec => g_trolin_rec
731 , x_trolin_rec => g_trolin_rec
732 );
733 ELSE
734 g_trolin_rec.inventory_item_id := NULL;
735 END IF;
736
737 END IF;
738
739 END IF;
740
741 IF g_trolin_rec.transaction_type_id = FND_API.G_MISS_NUM THEN
742 g_trolin_rec.transaction_type_id := Get_Transaction_Type_Id;
743 END IF;
744 IF g_trolin_rec.transaction_type_id IS NOT NULL THEN
745 l_trans.transaction_type_id := g_trolin_rec.transaction_type_id;
746 IF INV_Validate.Transaction_Type(l_trans) = inv_validate.T
747 THEN
748 INV_Trolin_Util.Clear_Dependent_Attr
749 ( p_attr_id => INV_Trolin_Util.G_TRANSACTION_TYPE_ID
750 , p_trolin_rec => g_trolin_rec
751 , x_trolin_rec => g_trolin_rec
752 );
753 ELSE
754 g_trolin_rec.transaction_type_id := NULL;
755 END IF;
756 INV_Validate_Trolin.g_transaction_l := l_trans;
757 END IF;
758
759 IF l_trans.transaction_action_id = 1 THEN
760 l_acct_txn := 1;
761 ELSE
762 l_acct_txn := 0;
763 END IF;
764
765 IF g_trolin_rec.date_required = FND_API.G_MISS_DATE THEN
766
767 g_trolin_rec.date_required := Get_Date_Required;
768
769 IF g_trolin_rec.date_required IS NOT NULL THEN
770
771 IF INV_Validate_Trohdr.Date_Required(g_trolin_rec.date_required) = INV_Validate_Trohdr.T
772 THEN
773 INV_Trolin_Util.Clear_Dependent_Attr
774 ( p_attr_id => INV_Trolin_Util.G_DATE_REQUIRED
775 , p_trolin_rec => g_trolin_rec
776 , x_trolin_rec => g_trolin_rec
777 );
778 ELSE
779 g_trolin_rec.date_required := NULL;
780 END IF;
781
782 END IF;
783
784 END IF;
785
786
787 IF g_trolin_rec.from_subinventory_code = FND_API.G_MISS_CHAR THEN
788
789 g_trolin_rec.from_subinventory_code := Get_From_Subinventory;
790
791 IF g_trolin_rec.from_subinventory_code IS NOT NULL THEN
792 l_fsub.secondary_inventory_name := g_trolin_rec.from_subinventory_code;
793 IF
794 INV_Validate.From_Subinventory(l_fsub,l_org,l_item,l_acct_txn) = inv_validate.T
795 THEN
796 INV_Trolin_Util.Clear_Dependent_Attr
797 ( p_attr_id => INV_Trolin_Util.G_FROM_SUBINVENTORY
798 , p_trolin_rec => g_trolin_rec
799 , x_trolin_rec => g_trolin_rec
800 );
801
802 ELSE
803 g_trolin_rec.from_subinventory_code := NULL;
804 END IF;
805
806 END IF;
807
808 END IF;
809
810
811 IF g_trolin_rec.from_subinventory_id = FND_API.G_MISS_NUM THEN
812
813 g_trolin_rec.from_subinventory_id := Get_From_Subinventory_Id;
814
815 IF g_trolin_rec.from_subinventory_id IS NOT NULL THEN
816 l_fsub.secondary_inventory_name := g_trolin_rec.from_subinventory_code;
817 IF
818 INV_Validate.From_Subinventory(l_fsub,l_org,l_item,l_acct_txn) = inv_validate.T
819
820 THEN
821 INV_Trolin_Util.Clear_Dependent_Attr
822 ( p_attr_id => INV_Trolin_Util.G_FROM_SUBINVENTORY
823 , p_trolin_rec => g_trolin_rec
824 , x_trolin_rec => g_trolin_rec
825 );
826 ELSE
827 g_trolin_rec.from_subinventory_id := NULL;
828 END IF;
829
830 END IF;
831
832 END IF;
833
834
835 IF g_trolin_rec.from_locator_id = FND_API.G_MISS_NUM THEN
836
837 g_trolin_rec.from_locator_id := Get_From_Locator;
838
839 IF g_trolin_rec.from_locator_id IS NOT NULL THEN
840
841 l_floc.inventory_location_id := g_trolin_rec.from_locator_id;
842 IF INV_Validate.From_Locator(l_floc,l_org,l_item,l_fsub,g_trolin_rec.project_id,g_trolin_rec.task_id,l_trans.transaction_action_id) =
843 inv_validate.T
844 THEN
845 INV_Trolin_Util.Clear_Dependent_Attr
846 ( p_attr_id => INV_Trolin_Util.G_FROM_LOCATOR
847 , p_trolin_rec => g_trolin_rec
848 , x_trolin_rec => g_trolin_rec
849 );
850 ELSE
851 g_trolin_rec.from_locator_id := NULL;
852 END IF;
853
854 END IF;
855
856 END IF;
857
858 IF g_trolin_rec.line_id = FND_API.G_MISS_NUM THEN
859
860 /* inv_debug.message('Calling Get Line'); */
861 g_trolin_rec.line_id := Get_Line;
862
863 IF g_trolin_rec.line_id IS NOT NULL THEN
864
865 IF INV_Validate_trolin.Line(g_trolin_rec.line_id) = inv_validate_trolin.T
866 THEN
867 INV_Trolin_Util.Clear_Dependent_Attr
868 ( p_attr_id => INV_Trolin_Util.G_LINE
869 , p_trolin_rec => g_trolin_rec
870 , x_trolin_rec => g_trolin_rec
871 );
872 ELSE
873 g_trolin_rec.line_id := NULL;
874 END IF;
875
876 END IF;
877
878 END IF;
879
880 IF g_trolin_rec.line_number = FND_API.G_MISS_NUM THEN
881
882 g_trolin_rec.line_number := Get_Line_Number;
883
884 IF g_trolin_rec.line_number IS NOT NULL THEN
885
886 IF INV_Validate_trolin.Line_Number(g_trolin_rec.line_number,
887 g_trolin_rec.header_id,
888 l_org) = inv_validate_trolin.T
889 THEN
890 INV_Trolin_Util.Clear_Dependent_Attr
891 ( p_attr_id => INV_Trolin_Util.G_LINE_NUMBER
892 , p_trolin_rec => g_trolin_rec
893 , x_trolin_rec => g_trolin_rec
894 );
895 ELSE
896 g_trolin_rec.line_number := NULL;
897 END IF;
898
899 END IF;
900
901 END IF;
902
903 IF g_trolin_rec.line_status = FND_API.G_MISS_NUM THEN
904
905 g_trolin_rec.line_status := Get_Line_Status;
906
907 IF g_trolin_rec.line_status IS NOT NULL THEN
908
909 IF INV_Validate_trolin.Line_Status(g_trolin_rec.line_status) = inv_validate_trolin.T
910 THEN
911 INV_Trolin_Util.Clear_Dependent_Attr
912 ( p_attr_id => INV_Trolin_Util.G_LINE_STATUS
913 , p_trolin_rec => g_trolin_rec
914 , x_trolin_rec => g_trolin_rec
915 );
916 ELSE
917 g_trolin_rec.line_status := NULL;
918 END IF;
919
920 END IF;
921
922 END IF;
923
924
925 IF g_trolin_rec.lot_number = FND_API.G_MISS_CHAR THEN
926
927 g_trolin_rec.lot_number := Get_Lot_Number;
928
929 IF g_trolin_rec.lot_number IS NOT NULL THEN
930
931 l_lot.lot_number := g_trolin_rec.lot_number;
932 --Added to call new lot number function if putaway move order
933 -- this is because on hand might not have this lot already
934 -- in the case of a putaway move order
935
936 SELECT move_order_type INTO l_mov_order_type
937 FROM mtl_txn_request_headers
938 WHERE header_id=g_trolin_rec.header_id;
939
940 IF l_mov_order_type=INV_GLOBALS.g_move_order_put_away
941 THEN
942
943 IF INV_Validate.Lot_Number(l_lot, l_org, l_item) = inv_validate.T THEN
944 INV_Trolin_Util.Clear_Dependent_Attr
945 ( p_attr_id => INV_Trolin_Util.G_LOT_NUMBER
946 , p_trolin_rec => g_trolin_rec
947 , x_trolin_rec => g_trolin_rec
948 );
949 ELSE
950 g_trolin_rec.lot_number := NULL;
951 END IF;
952
953 ELSE
954
955 IF INV_Validate.Lot_Number(l_lot,l_org,l_item,l_fsub,l_floc,g_trolin_rec.revision) = inv_validate.T
956 THEN
957 INV_Trolin_Util.Clear_Dependent_Attr
958 ( p_attr_id => INV_Trolin_Util.G_LOT_NUMBER
959 , p_trolin_rec => g_trolin_rec
960 , x_trolin_rec => g_trolin_rec
961 );
962 ELSE
963 g_trolin_rec.lot_number := NULL;
964 END IF;
965 END IF;
966 END IF;
967
968 END IF;
969
970 IF g_trolin_rec.project_id = FND_API.G_MISS_NUM THEN
971
972 g_trolin_rec.project_id := Get_Project;
973
974 IF g_trolin_rec.project_id IS NOT NULL THEN
975
976 IF INV_Validate.Project(g_trolin_rec.project_id) = inv_validate.T
977 THEN
978 INV_Trolin_Util.Clear_Dependent_Attr
979 ( p_attr_id => INV_Trolin_Util.G_PROJECT
980 , p_trolin_rec => g_trolin_rec
981 , x_trolin_rec => g_trolin_rec
982 );
983 ELSE
984 g_trolin_rec.project_id := NULL;
985 END IF;
986
987 END IF;
988
989 END IF;
990
991 IF g_trolin_rec.quantity = FND_API.G_MISS_NUM THEN
992
993 g_trolin_rec.quantity := Get_Quantity;
994
995 IF g_trolin_rec.quantity IS NOT NULL THEN
996
997 IF INV_Validate.Quantity(g_trolin_rec.quantity) = inv_validate.T
998 THEN
999 INV_Trolin_Util.Clear_Dependent_Attr
1000 ( p_attr_id => INV_Trolin_Util.G_QUANTITY
1001 , p_trolin_rec => g_trolin_rec
1002 , x_trolin_rec => g_trolin_rec
1003 );
1004 ELSE
1005 g_trolin_rec.quantity := NULL;
1006 END IF;
1007
1008 END IF;
1009
1010 END IF;
1011
1012 IF g_trolin_rec.quantity_delivered = FND_API.G_MISS_NUM THEN
1013
1014 g_trolin_rec.quantity_delivered := Get_Quantity_Delivered;
1015
1016 IF g_trolin_rec.quantity_delivered IS NOT NULL THEN
1017
1018 IF
1019 INV_Validate_trolin.Quantity_Delivered(g_trolin_rec.quantity_delivered) = inv_validate_trolin.T
1020 THEN
1021 INV_Trolin_Util.Clear_Dependent_Attr
1022 ( p_attr_id => INV_Trolin_Util.G_QUANTITY_DELIVERED
1023 , p_trolin_rec => g_trolin_rec
1024 , x_trolin_rec => g_trolin_rec
1025 );
1026 ELSE
1027 g_trolin_rec.quantity_delivered := NULL;
1028 END IF;
1029
1030 END IF;
1031
1032 END IF;
1033
1034 IF g_trolin_rec.quantity_detailed = FND_API.G_MISS_NUM THEN
1035
1036 g_trolin_rec.quantity_detailed := Get_Quantity_Detailed;
1037
1038 IF g_trolin_rec.quantity_detailed IS NOT NULL THEN
1039
1040 IF
1041 INV_Validate_trolin.Quantity_Detailed(g_trolin_rec.quantity_detailed) = inv_validate_trolin.T
1042 THEN
1043 INV_Trolin_Util.Clear_Dependent_Attr
1044 ( p_attr_id => INV_Trolin_Util.G_QUANTITY_DETAILED
1045 , p_trolin_rec => g_trolin_rec
1046 , x_trolin_rec => g_trolin_rec
1047 );
1048 ELSE
1049 g_trolin_rec.quantity_detailed := NULL;
1050 END IF;
1051
1052 END IF;
1053
1054 END IF;
1055
1056 IF g_trolin_rec.reason_id = FND_API.G_MISS_NUM THEN
1057
1058 g_trolin_rec.reason_id := Get_Reason;
1059
1060 IF g_trolin_rec.reason_id IS NOT NULL THEN
1061
1062 IF INV_Validate.Reason(g_trolin_rec.reason_id) = inv_validate.T
1063 THEN
1064 INV_Trolin_Util.Clear_Dependent_Attr
1065 ( p_attr_id => INV_Trolin_Util.G_REASON
1066 , p_trolin_rec => g_trolin_rec
1067 , x_trolin_rec => g_trolin_rec
1068 );
1069 ELSE
1070 g_trolin_rec.reason_id := NULL;
1071 END IF;
1072
1073 END IF;
1074
1075 END IF;
1076
1077 IF g_trolin_rec.reference = FND_API.G_MISS_CHAR THEN
1078
1079 g_trolin_rec.reference := Get_Reference;
1080
1081 IF g_trolin_rec.reference IS NOT NULL THEN
1082
1083 IF INV_Validate.Reference(g_trolin_rec.reference) = inv_validate.T
1084 THEN
1085 INV_Trolin_Util.Clear_Dependent_Attr
1086 ( p_attr_id => INV_Trolin_Util.G_REFERENCE
1087 , p_trolin_rec => g_trolin_rec
1088 , x_trolin_rec => g_trolin_rec
1089 );
1090 ELSE
1091 g_trolin_rec.reference := NULL;
1092 END IF;
1093
1094 END IF;
1095
1096 END IF;
1097
1098
1099 IF g_trolin_rec.reference_id = FND_API.G_MISS_NUM THEN
1100
1101 g_trolin_rec.reference_id := Get_Reference;
1102
1103 IF g_trolin_rec.reference_id IS NOT NULL THEN
1104
1105 IF INV_Validate.Reference(g_trolin_rec.reference_id,g_trolin_rec.reference_type_code) = inv_validate.T
1106 THEN
1107 INV_Trolin_Util.Clear_Dependent_Attr
1108 ( p_attr_id => INV_Trolin_Util.G_REFERENCE
1109 , p_trolin_rec => g_trolin_rec
1110 , x_trolin_rec => g_trolin_rec
1111 );
1112 ELSE
1113 g_trolin_rec.reference_id := NULL;
1114 END IF;
1115
1116 END IF;
1117
1118 END IF;
1119
1120 IF g_trolin_rec.reference_type_code = FND_API.G_MISS_NUM THEN
1121
1122 g_trolin_rec.reference_type_code := Get_Reference_Type;
1123
1124 IF g_trolin_rec.reference_type_code IS NOT NULL THEN
1125
1126 IF
1127 INV_Validate.Reference_Type(g_trolin_rec.reference_type_code)
1128 = inv_validate.T
1129 THEN
1130 INV_Trolin_Util.Clear_Dependent_Attr
1131 ( p_attr_id => INV_Trolin_Util.G_REFERENCE_TYPE
1132 , p_trolin_rec => g_trolin_rec
1133 , x_trolin_rec => g_trolin_rec
1134 );
1135 ELSE
1136 g_trolin_rec.reference_type_code := NULL;
1137 END IF;
1138
1139 END IF;
1140
1141 END IF;
1142
1143 IF g_trolin_rec.revision = FND_API.G_MISS_CHAR THEN
1144
1145 g_trolin_rec.revision := Get_Revision;
1146
1147 IF g_trolin_rec.revision IS NOT NULL THEN
1148
1149 IF INV_Validate.Revision(g_trolin_rec.revision,l_org,l_item) = inv_validate.T
1150 THEN
1151 INV_Trolin_Util.Clear_Dependent_Attr
1152 ( p_attr_id => INV_Trolin_Util.G_REVISION
1153 , p_trolin_rec => g_trolin_rec
1154 , x_trolin_rec => g_trolin_rec
1155 );
1156 ELSE
1157 g_trolin_rec.revision := NULL;
1158 END IF;
1159
1160 END IF;
1161
1162 END IF;
1163
1164
1165 IF g_trolin_rec.serial_number_end = FND_API.G_MISS_CHAR THEN
1166
1167 g_trolin_rec.serial_number_end := Get_Serial_Number_End;
1168
1169 IF g_trolin_rec.serial_number_end IS NOT NULL THEN
1170
1171 l_serial.serial_number := g_trolin_rec.serial_number_end;
1172 IF
1173 INV_Validate.Serial_Number_End(l_serial,l_org,l_item,l_fsub,l_lot,l_floc,g_trolin_rec.revision) = inv_validate.T
1174 THEN
1175 INV_Trolin_Util.Clear_Dependent_Attr
1176 ( p_attr_id => INV_Trolin_Util.G_SERIAL_NUMBER_END
1177 , p_trolin_rec => g_trolin_rec
1178 , x_trolin_rec => g_trolin_rec
1179 );
1180 ELSE
1181 g_trolin_rec.serial_number_end := NULL;
1182 END IF;
1183
1184 END IF;
1185
1186 END IF;
1187
1188
1189 IF g_trolin_rec.serial_number_start = FND_API.G_MISS_CHAR THEN
1190
1191 g_trolin_rec.serial_number_start := Get_Serial_Number_Start;
1192
1193 IF g_trolin_rec.serial_number_start IS NOT NULL THEN
1194
1195 l_serial.serial_number := g_trolin_rec.serial_number_start;
1196 IF
1197 INV_Validate.Serial_Number_Start(l_serial,l_org,l_item,l_fsub,l_lot,l_floc,g_trolin_rec.revision) = inv_validate.T
1198 THEN
1199 INV_Trolin_Util.Clear_Dependent_Attr
1200 ( p_attr_id => INV_Trolin_Util.G_SERIAL_NUMBER_START
1201 , p_trolin_rec => g_trolin_rec
1202 , x_trolin_rec => g_trolin_rec
1203 );
1204 ELSE
1205 g_trolin_rec.serial_number_start := NULL;
1206 END IF;
1207
1208 END IF;
1209
1210 END IF;
1211
1212 IF g_trolin_rec.status_date = FND_API.G_MISS_DATE THEN
1213
1214 g_trolin_rec.status_date := Get_Status_Date;
1215
1216 IF g_trolin_rec.status_date IS NOT NULL THEN
1217
1218 IF INV_Validate_Trohdr.Status_Date(g_trolin_rec.status_date) = inv_validate_trohdr.T
1219 THEN
1220 INV_Trolin_Util.Clear_Dependent_Attr
1221 ( p_attr_id => INV_Trolin_Util.G_STATUS_DATE
1222 , p_trolin_rec => g_trolin_rec
1223 , x_trolin_rec => g_trolin_rec
1224 );
1225 ELSE
1226 g_trolin_rec.status_date := NULL;
1227 END IF;
1228
1229 END IF;
1230
1231 END IF;
1232
1233
1234 IF g_trolin_rec.task_id = FND_API.G_MISS_NUM THEN
1235
1236 g_trolin_rec.task_id := Get_Task;
1237
1238 IF g_trolin_rec.task_id IS NOT NULL THEN
1239
1240 IF INV_Validate.Task(g_trolin_rec.task_id,g_trolin_rec.project_id) = inv_validate.T
1241 THEN
1242 INV_Trolin_Util.Clear_Dependent_Attr
1243 ( p_attr_id => INV_Trolin_Util.G_TASK
1244 , p_trolin_rec => g_trolin_rec
1245 , x_trolin_rec => g_trolin_rec
1246 );
1247 ELSE
1248 g_trolin_rec.task_id := NULL;
1249 END IF;
1250
1251 END IF;
1252
1253 END IF;
1254
1255
1256 IF g_trolin_rec.to_account_id = FND_API.G_MISS_NUM THEN
1257
1258 g_trolin_rec.to_account_id := Get_To_Account;
1259
1260 IF g_trolin_rec.to_account_id IS NOT NULL THEN
1261
1262 IF INV_Validate.To_Account(g_trolin_rec.to_account_id) = inv_validate.T
1263 THEN
1264 INV_Trolin_Util.Clear_Dependent_Attr
1265 ( p_attr_id => INV_Trolin_Util.G_TO_ACCOUNT
1266 , p_trolin_rec => g_trolin_rec
1267 , x_trolin_rec => g_trolin_rec
1268 );
1269 ELSE
1270 g_trolin_rec.to_account_id := NULL;
1271 END IF;
1272
1273 END IF;
1274
1275 END IF;
1276
1277
1278 IF g_trolin_rec.to_locator_id = FND_API.G_MISS_NUM THEN
1279
1280 g_trolin_rec.to_locator_id := Get_To_Locator;
1281
1282 IF g_trolin_rec.to_locator_id IS NOT NULL THEN
1283 l_tloc.inventory_location_id := g_trolin_rec.to_locator_id;
1284 IF
1285 INV_Validate.To_Locator(l_tloc,l_org,l_item,l_tsub,g_trolin_rec.project_id, g_trolin_rec.task_id,l_trans.transaction_action_id) = inv_validate.T
1286 THEN
1287 INV_Trolin_Util.Clear_Dependent_Attr
1288 ( p_attr_id => INV_Trolin_Util.G_TO_LOCATOR
1289 , p_trolin_rec => g_trolin_rec
1290 , x_trolin_rec => g_trolin_rec
1291 );
1292 ELSE
1293 g_trolin_rec.to_locator_id := NULL;
1294 END IF;
1295
1296 END IF;
1297
1298 END IF;
1299
1300
1301 IF g_trolin_rec.to_subinventory_code = FND_API.G_MISS_CHAR THEN
1302
1303 g_trolin_rec.to_subinventory_code := Get_To_Subinventory;
1304
1305 IF g_trolin_rec.to_subinventory_code IS NOT NULL THEN
1306
1307 l_tsub.secondary_inventory_name := g_trolin_rec.to_subinventory_code;
1308 IF
1309 INV_Validate.To_Subinventory(l_tsub,l_org,l_item,l_fsub,l_acct_txn) = inv_validate.T
1310 THEN
1311 INV_Trolin_Util.Clear_Dependent_Attr
1312 ( p_attr_id => INV_Trolin_Util.G_TO_SUBINVENTORY
1313 , p_trolin_rec => g_trolin_rec
1314 , x_trolin_rec => g_trolin_rec
1315 );
1316 ELSE
1317 g_trolin_rec.to_subinventory_code := NULL;
1318 END IF;
1319
1320 END IF;
1321
1322 END IF;
1323
1324
1325 IF g_trolin_rec.to_subinventory_id = FND_API.G_MISS_NUM THEN
1326
1327 g_trolin_rec.to_subinventory_id := Get_To_Subinventory_Id;
1328
1329 IF g_trolin_rec.to_subinventory_id IS NOT NULL THEN
1330 l_tsub.secondary_inventory_name := g_trolin_rec.to_subinventory_code;
1331 IF
1332 INV_Validate.To_Subinventory(l_tsub,l_org,l_item,l_fsub,l_acct_txn) = inv_validate.T
1333
1334 THEN
1335 INV_Trolin_Util.Clear_Dependent_Attr
1336 ( p_attr_id => INV_Trolin_Util.G_TO_SUBINVENTORY
1337 , p_trolin_rec => g_trolin_rec
1338 , x_trolin_rec => g_trolin_rec
1339 );
1340 ELSE
1341 g_trolin_rec.to_subinventory_id := NULL;
1342 END IF;
1343
1344 END IF;
1345
1346 END IF;
1347
1348
1349 IF g_trolin_rec.transaction_header_id = FND_API.G_MISS_NUM THEN
1350
1351 g_trolin_rec.transaction_header_id := Get_Transaction_Header;
1352
1353 IF g_trolin_rec.transaction_header_id IS NOT NULL THEN
1354
1355 IF
1356 INV_Validate.Transaction_Header(g_trolin_rec.transaction_header_id) = inv_validate.T
1357 THEN
1358 INV_Trolin_Util.Clear_Dependent_Attr
1359 ( p_attr_id => INV_Trolin_Util.G_TRANSACTION_HEADER
1360 , p_trolin_rec => g_trolin_rec
1361 , x_trolin_rec => g_trolin_rec
1362 );
1363 ELSE
1364 g_trolin_rec.transaction_header_id := NULL;
1365 END IF;
1366
1367 END IF;
1368
1369 END IF;
1370
1371 IF g_trolin_rec.uom_code = FND_API.G_MISS_CHAR THEN
1372
1373 g_trolin_rec.uom_code := Get_Uom;
1374
1375 IF g_trolin_rec.uom_code IS NOT NULL THEN
1376
1377 IF INV_Validate.Uom(g_trolin_rec.uom_code, l_org, l_item) = inv_validate.T
1378 THEN
1379 INV_Trolin_Util.Clear_Dependent_Attr
1380 ( p_attr_id => INV_Trolin_Util.G_UOM
1381 , p_trolin_rec => g_trolin_rec
1382 , x_trolin_rec => g_trolin_rec
1383 );
1384 ELSE
1385 g_trolin_rec.uom_code := NULL;
1386 END IF;
1387
1388 END IF;
1389
1390 END IF;
1391
1392 IF g_trolin_rec.unit_number = FND_API.G_MISS_CHAR THEN
1393 g_trolin_rec.unit_number := Get_Unit_number;
1394 END IF;
1395
1396 IF g_trolin_rec.transaction_source_type_id = FND_API.G_MISS_NUM THEN
1397 g_trolin_rec.transaction_source_type_id := Get_Transaction_Source_Type_ID(g_trolin_rec.transaction_Type_id);
1398 IF g_trolin_rec.transaction_source_type_id IS NOT NULL THEN
1399 --IF INV_Validate.Transaction_Source_Type(g_trolin_rec.transaction_source_type_id)
1400 --THEN
1401 INV_Trolin_Util.Clear_Dependent_Attr
1402 ( p_attr_id => INV_Trolin_Util.G_TRANSACTION_SOURCE_TYPE_ID
1403 , p_trolin_rec => g_trolin_rec
1404 , x_trolin_rec => g_trolin_rec
1405 );
1406 --ELSE
1407 -- g_trolin_rec.transaction_source_type_id := NULL;
1408 --END IF;
1409 END IF;
1410 END IF;
1411
1412 IF g_trolin_rec.txn_source_id = FND_API.G_MISS_NUM THEN
1413 g_trolin_rec.txn_source_id := Get_Txn_Source_ID;
1414 IF g_trolin_rec.txn_source_id IS NOT NULL THEN
1415 --IF INV_Validate.Txn_Source(g_trolin_rec.txn_source_id)
1416 --THEN
1417 INV_Trolin_Util.Clear_Dependent_Attr
1418 ( p_attr_id => INV_Trolin_Util.G_TXN_SOURCE_ID
1419 , p_trolin_rec => g_trolin_rec
1420 , x_trolin_rec => g_trolin_rec
1421 );
1422 --ELSE
1423 -- g_trolin_rec.txn_source_id := NULL;
1424 --END IF;
1425 END IF;
1426 END IF;
1427
1428 IF g_trolin_rec.txn_source_line_id = FND_API.G_MISS_NUM THEN
1429 g_trolin_rec.txn_source_line_id := Get_Txn_Source_Line_ID;
1430 IF g_trolin_rec.txn_source_line_id IS NOT NULL THEN
1431 --IF INV_Validate.Txn_Source_Line(g_trolin_rec.txn_source_line_id)
1432 --THEN
1433 INV_Trolin_Util.Clear_Dependent_Attr
1434 ( p_attr_id => INV_Trolin_Util.G_TXN_SOURCE_LINE_ID
1435 , p_trolin_rec => g_trolin_rec
1436 , x_trolin_rec => g_trolin_rec
1437 );
1438 --ELSE
1439 -- g_trolin_rec.txn_source_line_id := NULL;
1440 --END IF;
1441 END IF;
1442 END IF;
1443
1444 IF g_trolin_rec.txn_source_line_detail_id = FND_API.G_MISS_NUM THEN
1445 g_trolin_rec.txn_source_line_detail_id := Get_Txn_Source_Line_Detail_ID;
1446 IF g_trolin_rec.txn_source_line_detail_id IS NOT NULL THEN
1447 --IF INV_Validate.Txn_Source_Line_Detail(g_trolin_rec.txn_source_line_detail_id)
1448 --THEN
1449 INV_Trolin_Util.Clear_Dependent_Attr
1450 ( p_attr_id => INV_Trolin_Util.G_TXN_SOURCE_LINE_DETAIL_ID
1451 , p_trolin_rec => g_trolin_rec
1452 , x_trolin_rec => g_trolin_rec
1453 );
1454 --ELSE
1455 -- g_trolin_rec.txn_source_line_detail_id := NULL;
1456 --END IF;
1457 END IF;
1458 END IF;
1459
1460 IF g_trolin_rec.primary_quantity = FND_API.G_MISS_NUM THEN
1461 g_trolin_rec.primary_quantity := Get_Primary_Quantity;
1462 IF g_trolin_rec.primary_quantity IS NOT NULL THEN
1463 --IF INV_Validate.Primary_Quantity(g_trolin_rec.primary_quantity)
1464 --THEN
1465 INV_Trolin_Util.Clear_Dependent_Attr
1466 ( p_attr_id => INV_Trolin_Util.G_PRIMARY_QUANTITY
1467 , p_trolin_rec => g_trolin_rec
1468 , x_trolin_rec => g_trolin_rec
1469 );
1470 --ELSE
1471 -- g_trolin_rec.primary_quantity := NULL;
1472 --END IF;
1473 END IF;
1474 END IF;
1475
1476 IF g_trolin_rec.to_organization_id = FND_API.G_MISS_NUM THEN
1477 g_trolin_rec.to_organization_id := Get_To_Organization_Id;
1478 IF g_trolin_rec.to_organization_id IS NOT NULL THEN
1479 --IF INV_Validate.To_Organization(g_trolin_rec.to_organization_id)
1480 --THEN
1481 INV_Trolin_Util.Clear_Dependent_Attr
1482 ( p_attr_id => INV_Trolin_Util.G_TO_ORGANIZATION_ID
1483 , p_trolin_rec => g_trolin_rec
1484 , x_trolin_rec => g_trolin_rec
1485 );
1486 --ELSE
1487 -- g_trolin_rec.to_organization_id := NULL;
1488 --END IF;
1489 END IF;
1490 END IF;
1491
1492 IF g_trolin_rec.pick_strategy_id = FND_API.G_MISS_NUM THEN
1493 g_trolin_rec.pick_strategy_id := Get_Pick_Strategy_Id;
1494 IF g_trolin_rec.pick_strategy_id IS NOT NULL THEN
1495 --IF INV_Validate.Pick_Strategy(g_trolin_rec.pick_strategy_id)
1496 --THEN
1497 INV_Trolin_Util.Clear_Dependent_Attr
1498 ( p_attr_id => INV_Trolin_Util.G_PICK_STRATEGY_ID
1499 , p_trolin_rec => g_trolin_rec
1500 , x_trolin_rec => g_trolin_rec
1501 );
1502 --ELSE
1503 -- g_trolin_rec.pick_strategy_id := NULL;
1504 --END IF;
1505 END IF;
1506 END IF;
1507
1508 IF g_trolin_rec.put_away_strategy_id = FND_API.G_MISS_NUM THEN
1509 g_trolin_rec.put_away_strategy_id := Get_Put_Away_Strategy_ID;
1510 IF g_trolin_rec.put_away_strategy_id IS NOT NULL THEN
1511 --IF INV_Validate.Put_Away_Strategy(g_trolin_rec.put_away_strategy_id)
1512 --THEN
1513 INV_Trolin_Util.Clear_Dependent_Attr
1514 ( p_attr_id => INV_Trolin_Util.G_PUT_AWAY_STRATEGY_ID
1515 , p_trolin_rec => g_trolin_rec
1516 , x_trolin_rec => g_trolin_rec
1517 );
1518 --ELSE
1519 -- g_trolin_rec.put_away_strategy_id := NULL;
1520 --END IF;
1521 END IF;
1522 END IF;
1523 --INVCONV
1524 IF g_trolin_rec.secondary_quantity = FND_API.G_MISS_NUM THEN
1525
1526 g_trolin_rec.secondary_quantity := Get_Quantity;
1527
1528 IF g_trolin_rec.secondary_quantity IS NOT NULL THEN
1529
1530 IF INV_Validate.Secondary_Quantity(g_trolin_rec.quantity) = inv_validate.T
1531 THEN
1532 INV_Trolin_Util.Clear_Dependent_Attr
1533 ( p_attr_id => INV_Trolin_Util.G_SECONDARY_QUANTITY
1534 , p_trolin_rec => g_trolin_rec
1535 , x_trolin_rec => g_trolin_rec
1536 );
1537 ELSE
1538 g_trolin_rec.secondary_quantity := NULL;
1539 END IF;
1540 END IF;
1541
1542 END IF;
1543
1544 IF g_trolin_rec.secondary_quantity_delivered = FND_API.G_MISS_NUM THEN
1545
1546 g_trolin_rec.secondary_quantity_delivered := Get_Quantity_Delivered;
1547
1548 IF g_trolin_rec.secondary_quantity_delivered IS NOT NULL THEN
1549
1550 IF
1551 INV_Validate_trolin.Secondary_Quantity_Delivered(g_trolin_rec.secondary_quantity_delivered) = inv_validate_trolin.T
1552 THEN
1553 INV_Trolin_Util.Clear_Dependent_Attr
1554 ( p_attr_id => INV_Trolin_Util.G_SECONDARY_QUANTITY_DELIVERED
1555 , p_trolin_rec => g_trolin_rec
1556 , x_trolin_rec => g_trolin_rec
1557 );
1558 ELSE
1559 g_trolin_rec.secondary_quantity_delivered := NULL;
1560 END IF;
1561
1562 END IF;
1563
1564 END IF;
1565
1566 IF g_trolin_rec.secondary_quantity_detailed = FND_API.G_MISS_NUM THEN
1567
1568 g_trolin_rec.secondary_quantity_detailed := Get_Quantity_Detailed;
1569
1570 IF g_trolin_rec.secondary_quantity_detailed IS NOT NULL THEN
1571
1572 IF
1573 INV_Validate_trolin.Secondary_Quantity_Detailed(g_trolin_rec.secondary_quantity_detailed) = inv_validate_trolin.T
1574 THEN
1575 INV_Trolin_Util.Clear_Dependent_Attr
1576 ( p_attr_id => INV_Trolin_Util.G_SECONDARY_QUANTITY_DETAILED
1577 , p_trolin_rec => g_trolin_rec
1578 , x_trolin_rec => g_trolin_rec
1579 );
1580 ELSE
1581 g_trolin_rec.secondary_quantity_detailed := NULL;
1582 END IF;
1583
1584 END IF;
1585
1586 END IF;
1587
1588 IF g_trolin_rec.secondary_uom = FND_API.G_MISS_CHAR THEN
1589
1590 g_trolin_rec.secondary_uom := Get_Secondary_Uom;
1591 /*
1592 IF g_trolin_rec.secondary_uom IS NOT NULL THEN
1593
1594 IF INV_Validate.Secondary_Uom(g_trolin_rec.secondary_uom, l_org, l_item) = inv_validate.T
1595 THEN
1596 INV_Trolin_Util.Clear_Dependent_Attr
1597 ( p_attr_id => INV_Trolin_Util.G_SECONDARY_UOM
1598 , p_trolin_rec => g_trolin_rec
1599 , x_trolin_rec => g_trolin_rec
1600 );
1601 ELSE
1602 g_trolin_rec.secondary_uom := NULL;
1603 END IF;
1604
1605 END IF;
1606 */
1607 ELSIF g_trolin_rec.secondary_uom IS NULL AND g_trolin_rec.secondary_quantity = 0 THEN
1608 convert_quantity(x_return_status => l_return_status, p_trolin_rec => g_trolin_rec);
1609 IF l_return_status = fnd_api.g_ret_sts_error THEN
1610 g_trolin_rec.secondary_quantity := NULL;
1611 END IF;
1612 END IF;
1613
1614 IF g_trolin_rec.grade_code = FND_API.G_MISS_CHAR THEN
1615
1616 g_trolin_rec.grade_code := Get_Grade_Code;
1617 /*
1618 IF g_trolin_rec.grade_code IS NOT NULL THEN
1619
1620 IF INV_Validate.Grade_Code(g_trolin_rec.grade_code, l_org, l_item) = inv_validate.T
1621 THEN
1622 INV_Trolin_Util.Clear_Dependent_Attr
1623 ( p_attr_id => INV_Trolin_Util.G_GRADE_CODE
1624 , p_trolin_rec => g_trolin_rec
1625 , x_trolin_rec => g_trolin_rec
1626 );
1627 ELSE
1628 g_trolin_rec.grade_code := NULL;
1629 END IF;
1630 END IF;
1631 */
1632
1633 END IF;
1634
1635 --INVCONV
1636
1637
1638 IF g_trolin_rec.ship_to_location_id = FND_API.G_MISS_NUM THEN
1639 g_trolin_rec.ship_to_location_id := NULL; -- nothing to default;
1640 END IF;
1641
1642 IF g_trolin_rec.from_cost_group_id = FND_API.G_MISS_NUM THEN
1643 g_trolin_rec.from_cost_group_id := NULL; -- nothing to default;
1644 END IF;
1645
1646 IF g_trolin_rec.to_cost_group_id = FND_API.G_MISS_NUM THEN
1647 g_trolin_rec.to_cost_group_id := NULL; -- nothing to default;
1648 END IF;
1649
1650 IF g_trolin_rec.lpn_id = FND_API.G_MISS_NUM THEN
1651 g_trolin_rec.lpn_id := NULL; -- nothing to default;
1652 END IF;
1653
1654 IF g_trolin_rec.to_lpn_id = FND_API.G_MISS_NUM THEN
1655 g_trolin_rec.to_lpn_id := NULL; -- nothing to default;
1656 END IF;
1657
1658 IF g_trolin_rec.pick_methodology_id = FND_API.G_MISS_NUM THEN
1659 g_trolin_rec.pick_methodology_id := NULL; -- nothing to default;
1660 END IF;
1661
1662 IF g_trolin_rec.container_item_id = FND_API.G_MISS_NUM THEN
1663 g_trolin_rec.container_item_id := NULL; -- nothing to default;
1664 END IF;
1665
1666 IF g_trolin_rec.carton_grouping_id = FND_API.G_MISS_NUM THEN
1667 g_trolin_rec.carton_grouping_id := NULL; -- nothing to default;
1668 END IF;
1669
1670
1671 IF g_trolin_rec.attribute1 = FND_API.G_MISS_CHAR
1672 OR g_trolin_rec.attribute10 = FND_API.G_MISS_CHAR
1673 OR g_trolin_rec.attribute11 = FND_API.G_MISS_CHAR
1674 OR g_trolin_rec.attribute12 = FND_API.G_MISS_CHAR
1675 OR g_trolin_rec.attribute13 = FND_API.G_MISS_CHAR
1676 OR g_trolin_rec.attribute14 = FND_API.G_MISS_CHAR
1677 OR g_trolin_rec.attribute15 = FND_API.G_MISS_CHAR
1678 OR g_trolin_rec.attribute2 = FND_API.G_MISS_CHAR
1679 OR g_trolin_rec.attribute3 = FND_API.G_MISS_CHAR
1680 OR g_trolin_rec.attribute4 = FND_API.G_MISS_CHAR
1681 OR g_trolin_rec.attribute5 = FND_API.G_MISS_CHAR
1682 OR g_trolin_rec.attribute6 = FND_API.G_MISS_CHAR
1683 OR g_trolin_rec.attribute7 = FND_API.G_MISS_CHAR
1684 OR g_trolin_rec.attribute8 = FND_API.G_MISS_CHAR
1685 OR g_trolin_rec.attribute9 = FND_API.G_MISS_CHAR
1686 OR g_trolin_rec.attribute_category = FND_API.G_MISS_CHAR
1687 THEN
1688
1689 Get_Flex_Trolin;
1690
1691 END IF;
1692
1693 IF g_trolin_rec.created_by = FND_API.G_MISS_NUM THEN
1694
1695 g_trolin_rec.created_by := NULL;
1696
1697 END IF;
1698
1699 IF g_trolin_rec.creation_date = FND_API.G_MISS_DATE THEN
1700
1701 g_trolin_rec.creation_date := NULL;
1702
1703 END IF;
1704
1705 IF g_trolin_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1706
1707 g_trolin_rec.last_updated_by := NULL;
1708
1709 END IF;
1710
1711 IF g_trolin_rec.last_update_date = FND_API.G_MISS_DATE THEN
1712
1713 g_trolin_rec.last_update_date := NULL;
1714
1715 END IF;
1716
1717 IF g_trolin_rec.last_update_login = FND_API.G_MISS_NUM THEN
1718
1719 g_trolin_rec.last_update_login := NULL;
1720
1721 END IF;
1722
1723 IF g_trolin_rec.program_application_id = FND_API.G_MISS_NUM THEN
1724
1725 g_trolin_rec.program_application_id := NULL;
1726
1727 END IF;
1728
1729 IF g_trolin_rec.program_id = FND_API.G_MISS_NUM THEN
1730
1731 g_trolin_rec.program_id := NULL;
1732
1733 END IF;
1734
1735 IF g_trolin_rec.program_update_date = FND_API.G_MISS_DATE THEN
1736
1737 g_trolin_rec.program_update_date := NULL;
1738
1739 END IF;
1740
1741 IF g_trolin_rec.request_id = FND_API.G_MISS_NUM THEN
1742
1743 g_trolin_rec.request_id := NULL;
1744
1745 END IF;
1746
1747 -- Redefault if there are any missing attributes.
1748
1749 IF g_trolin_rec.attribute1 = FND_API.G_MISS_CHAR
1750 OR g_trolin_rec.attribute10 = FND_API.G_MISS_CHAR
1751 OR g_trolin_rec.attribute11 = FND_API.G_MISS_CHAR
1752 OR g_trolin_rec.attribute12 = FND_API.G_MISS_CHAR
1753 OR g_trolin_rec.attribute13 = FND_API.G_MISS_CHAR
1754 OR g_trolin_rec.attribute14 = FND_API.G_MISS_CHAR
1755 OR g_trolin_rec.attribute15 = FND_API.G_MISS_CHAR
1756 OR g_trolin_rec.attribute2 = FND_API.G_MISS_CHAR
1757 OR g_trolin_rec.attribute3 = FND_API.G_MISS_CHAR
1758 OR g_trolin_rec.attribute4 = FND_API.G_MISS_CHAR
1759 OR g_trolin_rec.attribute5 = FND_API.G_MISS_CHAR
1760 OR g_trolin_rec.attribute6 = FND_API.G_MISS_CHAR
1761 OR g_trolin_rec.attribute7 = FND_API.G_MISS_CHAR
1762 OR g_trolin_rec.attribute8 = FND_API.G_MISS_CHAR
1763 OR g_trolin_rec.attribute9 = FND_API.G_MISS_CHAR
1764 OR g_trolin_rec.attribute_category = FND_API.G_MISS_CHAR
1765 OR g_trolin_rec.created_by = FND_API.G_MISS_NUM
1766 OR g_trolin_rec.creation_date = FND_API.G_MISS_DATE
1767 OR g_trolin_rec.date_required = FND_API.G_MISS_DATE
1768 OR g_trolin_rec.from_locator_id = FND_API.G_MISS_NUM
1769 OR g_trolin_rec.from_subinventory_code = FND_API.g_miss_char
1770 OR g_trolin_rec.from_subinventory_id = FND_API.G_MISS_NUM
1771 OR g_trolin_rec.header_id = FND_API.G_MISS_NUM
1772 OR g_trolin_rec.inventory_item_id = FND_API.G_MISS_NUM
1773 OR g_trolin_rec.last_updated_by = FND_API.G_MISS_NUM
1774 OR g_trolin_rec.last_update_date = FND_API.G_MISS_DATE
1775 OR g_trolin_rec.last_update_login = FND_API.G_MISS_NUM
1776 OR g_trolin_rec.line_id = FND_API.G_MISS_NUM
1777 OR g_trolin_rec.line_number = FND_API.G_MISS_NUM
1778 OR g_trolin_rec.line_status = FND_API.G_MISS_NUM
1779 OR g_trolin_rec.lot_number = FND_API.G_MISS_CHAR
1780 OR g_trolin_rec.organization_id = FND_API.G_MISS_NUM
1781 OR g_trolin_rec.program_application_id = FND_API.G_MISS_NUM
1782 OR g_trolin_rec.program_id = FND_API.G_MISS_NUM
1783 OR g_trolin_rec.program_update_date = FND_API.G_MISS_DATE
1784 OR g_trolin_rec.project_id = FND_API.G_MISS_NUM
1785 OR g_trolin_rec.quantity = FND_API.G_MISS_NUM
1786 OR g_trolin_rec.quantity_delivered = FND_API.G_MISS_NUM
1787 OR g_trolin_rec.quantity_detailed = FND_API.G_MISS_NUM
1788 OR g_trolin_rec.reason_id = FND_API.G_MISS_NUM
1789 OR g_trolin_rec.reference = FND_API.G_MISS_CHAR
1790 OR g_trolin_rec.reference_id = FND_API.G_MISS_NUM
1791 OR g_trolin_rec.reference_type_code = FND_API.G_MISS_NUM
1792 OR g_trolin_rec.request_id = FND_API.G_MISS_NUM
1793 OR g_trolin_rec.revision = FND_API.G_MISS_CHAR
1794 OR g_trolin_rec.serial_number_end = FND_API.G_MISS_CHAR
1795 OR g_trolin_rec.serial_number_start = FND_API.G_MISS_CHAR
1796 OR g_trolin_rec.status_date = FND_API.G_MISS_DATE
1797 OR g_trolin_rec.task_id = FND_API.G_MISS_NUM
1798 OR g_trolin_rec.to_account_id = FND_API.G_MISS_NUM
1799 OR g_trolin_rec.to_locator_id = FND_API.G_MISS_NUM
1800 OR g_trolin_rec.to_subinventory_code = FND_API.g_miss_char
1801 OR g_trolin_rec.to_subinventory_id = FND_API.G_MISS_NUM
1802 OR g_trolin_rec.transaction_header_id = FND_API.G_MISS_NUM
1803 OR g_trolin_rec.uom_code = FND_API.G_MISS_CHAR
1804 OR g_trolin_rec.transaction_type_id = FND_API.G_MISS_NUM
1805 OR g_trolin_rec.transaction_source_type_id = FND_API.G_MISS_NUM
1806 OR g_trolin_rec.txn_source_id = FND_API.G_MISS_NUM
1807 OR g_trolin_rec.txn_source_line_id = FND_API.G_MISS_NUM
1808 OR g_trolin_rec.txn_source_line_detail_id = FND_API.G_MISS_NUM
1809 OR g_trolin_rec.primary_quantity = FND_API.G_MISS_NUM
1810 OR g_trolin_rec.to_organization_id = FND_API.G_MISS_NUM
1811 OR g_trolin_rec.pick_strategy_id = FND_API.G_MISS_NUM
1812 OR g_trolin_rec.put_away_strategy_id = FND_API.G_MISS_NUM
1813 OR g_trolin_Rec.unit_number = FND_API.G_MISS_CHAR
1814 OR g_trolin_rec.from_cost_group_id = FND_API.G_MISS_NUM
1815 OR g_trolin_rec.to_cost_group_id = FND_API.G_MISS_NUM
1816 OR g_trolin_rec.lpn_id = FND_API.G_MISS_NUM
1817 OR g_trolin_rec.to_lpn_id = FND_API.G_MISS_NUM
1818 OR g_trolin_rec.pick_methodology_id = FND_API.G_MISS_NUM
1819 OR g_trolin_rec.container_item_id = FND_API.G_MISS_NUM
1820 OR g_trolin_rec.carton_grouping_id = FND_API.G_MISS_NUM
1821 --INVCONV
1822 OR g_trolin_rec.secondary_uom = FND_API.G_MISS_CHAR
1823 OR g_trolin_rec.grade_code = FND_API.G_MISS_CHAR
1824 OR g_trolin_rec.secondary_quantity = FND_API.G_MISS_NUM
1825 OR g_trolin_rec.secondary_quantity_delivered = FND_API.G_MISS_NUM
1826 OR g_trolin_rec.secondary_quantity_detailed = FND_API.G_MISS_NUM
1827 --INVCONV
1828 THEN
1829
1830 INV_Default_Trolin.Attributes
1831 ( p_trolin_rec => g_trolin_rec
1832 , p_iteration => p_iteration + 1
1833 , x_trolin_rec => x_trolin_rec
1834 );
1835
1836 ELSE
1837
1838 -- Done defaulting attributes
1839
1840 x_trolin_rec := g_trolin_rec;
1841
1842 END IF;
1843 END Attributes;
1844
1845 END INV_Default_Trolin;