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