DBA Data[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;