DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_DEFAULT_LIMITS

Source


1 PACKAGE BODY QP_Default_Limits AS
2 /* $Header: QPXDLMTB.pls 120.2 2005/07/07 04:28:04 appldev ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Default_Limits';
7 
8 --  Package global used within the package.
9 
10 g_LIMITS_rec                  QP_Limits_PUB.Limits_Rec_Type;
11 
12 --  Get functions.
13 
14 FUNCTION Get_Amount
15 RETURN NUMBER
16 IS
17 BEGIN
18 
19     RETURN NULL;
20 
21 END Get_Amount;
22 
23 FUNCTION Get_Basis
24 RETURN VARCHAR2
25 IS
26 BEGIN
27 
28     RETURN NULL;
29 
30 END Get_Basis;
31 
32 FUNCTION Get_Limit_Exceed_Action
33 RETURN VARCHAR2
34 IS
35 l_limit_exceed_action_code VARCHAR2(30);
36 BEGIN
37 
38     l_limit_exceed_action_code := FND_PROFILE.VALUE('QP_LIMIT_EXCEED_ACTION');
39     RETURN l_limit_exceed_action_code;
40 
41 END Get_Limit_Exceed_Action;
42 
43 FUNCTION Get_Limit
44 RETURN NUMBER
45 IS
46 l_limit_id NUMBER;
47 BEGIN
48 
49 
50     SELECT qp_limits_s.nextval
51     INTO   l_limit_id
52     FROM   dual;
53 
54     RETURN l_limit_id;
55 
56 END Get_Limit;
57 
58 FUNCTION Get_Limit_Hold
59 RETURN VARCHAR2
60 IS
61 BEGIN
62 
63     RETURN NULL;
64 
65 END Get_Limit_Hold;
66 
67 
68 FUNCTION Get_Limit_Level
69 RETURN VARCHAR2
70 IS
71 BEGIN
72 
73     RETURN NULL;
74 
75 END Get_Limit_Level;
76 
77 FUNCTION Get_Limit_Number
78 RETURN NUMBER
79 IS
80 BEGIN
81 
82     RETURN NULL;
83 
84 END Get_Limit_Number;
85 
86 FUNCTION Get_List_Header
87 RETURN NUMBER
88 IS
89 BEGIN
90 
91     RETURN NULL;
92 
93 END Get_List_Header;
94 
95 FUNCTION Get_List_Line
96 RETURN NUMBER
97 IS
98 l_list_line_id  NUMBER;
99 BEGIN
100 
101     l_list_line_id := -1;
102     RETURN l_list_line_id;
103 
104 END Get_List_Line;
105 
106 FUNCTION Get_Multival_Attr1_Type
107 RETURN VARCHAR2
108 IS
109 BEGIN
110 
111     RETURN NULL;
112 
113 END Get_Multival_Attr1_Type;
114 
115 FUNCTION Get_Multival_Attr1_Context
116 RETURN VARCHAR2
117 IS
118 BEGIN
119 
120     RETURN NULL;
121 
122 END Get_Multival_Attr1_Context;
123 
124 FUNCTION Get_Multival_Attribute1
125 RETURN VARCHAR2
126 IS
127 BEGIN
128 
129     RETURN NULL;
130 
131 END Get_Multival_Attribute1;
132 
133 FUNCTION Get_Multival_Attr1_Datatype
134 RETURN VARCHAR2
135 IS
136 BEGIN
137 
138     RETURN NULL;
139 
140 END Get_Multival_Attr1_Datatype;
141 
142 FUNCTION Get_Multival_Attr2_Type
143 RETURN VARCHAR2
144 IS
145 BEGIN
146 
147     RETURN NULL;
148 
149 END Get_Multival_Attr2_Type;
150 
151 FUNCTION Get_Multival_Attr2_Context
152 RETURN VARCHAR2
153 IS
154 BEGIN
155 
156     RETURN NULL;
157 
158 END Get_Multival_Attr2_Context;
159 
160 FUNCTION Get_Multival_Attribute2
161 RETURN VARCHAR2
162 IS
163 BEGIN
164 
165     RETURN NULL;
166 
167 END Get_Multival_Attribute2;
168 
169 FUNCTION Get_Multival_Attr2_Datatype
170 RETURN VARCHAR2
171 IS
172 BEGIN
173 
174     RETURN NULL;
175 
176 END Get_Multival_Attr2_Datatype;
177 
178 
179 FUNCTION Get_Organization
180 RETURN VARCHAR2
181 IS
182 BEGIN
183 
184     RETURN NULL;
185 
186 END Get_Organization;
187 
188 PROCEDURE Get_Flex_Limits
189 IS
190 BEGIN
191 
192     --  In the future call Flex APIs for defaults
193 
194     IF g_LIMITS_rec.attribute1 = FND_API.G_MISS_CHAR THEN
195         g_LIMITS_rec.attribute1        := NULL;
196     END IF;
197 
198     IF g_LIMITS_rec.attribute10 = FND_API.G_MISS_CHAR THEN
199         g_LIMITS_rec.attribute10       := NULL;
200     END IF;
201 
202     IF g_LIMITS_rec.attribute11 = FND_API.G_MISS_CHAR THEN
203         g_LIMITS_rec.attribute11       := NULL;
204     END IF;
205 
206     IF g_LIMITS_rec.attribute12 = FND_API.G_MISS_CHAR THEN
207         g_LIMITS_rec.attribute12       := NULL;
208     END IF;
209 
210     IF g_LIMITS_rec.attribute13 = FND_API.G_MISS_CHAR THEN
211         g_LIMITS_rec.attribute13       := NULL;
212     END IF;
213 
214     IF g_LIMITS_rec.attribute14 = FND_API.G_MISS_CHAR THEN
215         g_LIMITS_rec.attribute14       := NULL;
216     END IF;
217 
218     IF g_LIMITS_rec.attribute15 = FND_API.G_MISS_CHAR THEN
219         g_LIMITS_rec.attribute15       := NULL;
220     END IF;
221 
222     IF g_LIMITS_rec.attribute2 = FND_API.G_MISS_CHAR THEN
223         g_LIMITS_rec.attribute2        := NULL;
224     END IF;
225 
226     IF g_LIMITS_rec.attribute3 = FND_API.G_MISS_CHAR THEN
227         g_LIMITS_rec.attribute3        := NULL;
228     END IF;
229 
230     IF g_LIMITS_rec.attribute4 = FND_API.G_MISS_CHAR THEN
231         g_LIMITS_rec.attribute4        := NULL;
232     END IF;
233 
234     IF g_LIMITS_rec.attribute5 = FND_API.G_MISS_CHAR THEN
235         g_LIMITS_rec.attribute5        := NULL;
236     END IF;
237 
238     IF g_LIMITS_rec.attribute6 = FND_API.G_MISS_CHAR THEN
239         g_LIMITS_rec.attribute6        := NULL;
240     END IF;
241 
242     IF g_LIMITS_rec.attribute7 = FND_API.G_MISS_CHAR THEN
243         g_LIMITS_rec.attribute7        := NULL;
244     END IF;
245 
246     IF g_LIMITS_rec.attribute8 = FND_API.G_MISS_CHAR THEN
247         g_LIMITS_rec.attribute8        := NULL;
248     END IF;
249 
250     IF g_LIMITS_rec.attribute9 = FND_API.G_MISS_CHAR THEN
251         g_LIMITS_rec.attribute9        := NULL;
252     END IF;
253 
254     IF g_LIMITS_rec.context = FND_API.G_MISS_CHAR THEN
255         g_LIMITS_rec.context           := NULL;
256     END IF;
257 
258 END Get_Flex_Limits;
259 
260 --  Procedure Attributes
261 
262 PROCEDURE Attributes
263 (   p_LIMITS_rec                    IN  QP_Limits_PUB.Limits_Rec_Type :=
264                                         QP_Limits_PUB.G_MISS_LIMITS_REC
265 ,   p_iteration                     IN  NUMBER := 1
266 ,   x_LIMITS_rec                    OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limits_Rec_Type
267 )
268 IS
269 l_LIMITS_rec	QP_Limits_PUB.Limits_Rec_Type; --[prarasto]
270 BEGIN
271 
272     --  Check number of iterations.
273 
274     IF p_iteration > QP_GLOBALS.G_MAX_DEF_ITERATIONS THEN
275 
276         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
277         THEN
278 
279             FND_MESSAGE.SET_NAME('QP','OE_DEF_MAX_ITERATION');
280             OE_MSG_PUB.Add;
281 
282         END IF;
283 
284         RAISE FND_API.G_EXC_ERROR;
285 
286     END IF;
287 
288     --  Initialize g_LIMITS_rec
289 
290     g_LIMITS_rec := p_LIMITS_rec;
291 
292     --  Default missing attributes.
293 
294     IF g_LIMITS_rec.amount = FND_API.G_MISS_NUM THEN
295 
296         g_LIMITS_rec.amount := Get_Amount;
297 
298         IF g_LIMITS_rec.amount IS NOT NULL THEN
299 
300             IF QP_Validate.Amount(g_LIMITS_rec.amount)
301             THEN
302 
303 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
304 
305                 QP_Limits_Util.Clear_Dependent_Attr
306                 (   p_attr_id                     => QP_Limits_Util.G_AMOUNT
307                 ,   p_LIMITS_rec                  => l_LIMITS_rec
308                 ,   x_LIMITS_rec                  => g_LIMITS_rec
309                 );
310             ELSE
311                 g_LIMITS_rec.amount := NULL;
312             END IF;
313 
314         END IF;
315 
316     END IF;
317 
318     IF g_LIMITS_rec.basis = FND_API.G_MISS_CHAR THEN
319 
320         g_LIMITS_rec.basis := Get_Basis;
321 
322         IF g_LIMITS_rec.basis IS NOT NULL THEN
323 
324             IF QP_Validate.Basis(g_LIMITS_rec.basis)
325             THEN
326 
327 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
328 
329                 QP_Limits_Util.Clear_Dependent_Attr
330                 (   p_attr_id                     => QP_Limits_Util.G_BASIS
331                 ,   p_LIMITS_rec                  => l_LIMITS_rec
332                 ,   x_LIMITS_rec                  => g_LIMITS_rec
333                 );
334             ELSE
335                 g_LIMITS_rec.basis := NULL;
336             END IF;
337 
338         END IF;
339 
340     END IF;
341 
342     IF g_LIMITS_rec.limit_exceed_action_code = FND_API.G_MISS_CHAR THEN
343 
344         g_LIMITS_rec.limit_exceed_action_code := Get_Limit_Exceed_Action;
345 
346         IF g_LIMITS_rec.limit_exceed_action_code IS NOT NULL THEN
347 
348             IF QP_Validate.Limit_Exceed_Action(g_LIMITS_rec.limit_exceed_action_code)
349             THEN
350 
351 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
352 
353                 QP_Limits_Util.Clear_Dependent_Attr
354                 (   p_attr_id                     => QP_Limits_Util.G_LIMIT_EXCEED_ACTION
355                 ,   p_LIMITS_rec                  => l_LIMITS_rec
356                 ,   x_LIMITS_rec                  => g_LIMITS_rec
357                 );
358             ELSE
359                 g_LIMITS_rec.limit_exceed_action_code := NULL;
360             END IF;
361 
362         END IF;
363 
364     END IF;
365 
366     IF g_LIMITS_rec.limit_id = FND_API.G_MISS_NUM THEN
367 
368         g_LIMITS_rec.limit_id := Get_Limit;
369         --dbms_output.put_line('Processing Limits - Inside QPXDLMTB ' || g_LIMITS_rec.limit_id);
370 
371         IF g_LIMITS_rec.limit_id IS NOT NULL THEN
372 
373             IF QP_Validate.Limit(g_LIMITS_rec.limit_id)
374             THEN
375 
376 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
377 
378                 QP_Limits_Util.Clear_Dependent_Attr
379                 (   p_attr_id                     => QP_Limits_Util.G_LIMIT
380                 ,   p_LIMITS_rec                  => l_LIMITS_rec
381                 ,   x_LIMITS_rec                  => g_LIMITS_rec
382                 );
383             ELSE
384                 g_LIMITS_rec.limit_id := NULL;
385                 --dbms_output.put_line('Processing Limits - Inside QPXDLMTB ' || g_LIMITS_rec.limit_id);
386             END IF;
387 
388         END IF;
389 
390     END IF;
391 
392     IF g_LIMITS_rec.limit_level_code = FND_API.G_MISS_CHAR THEN
393 
394         g_LIMITS_rec.limit_level_code := Get_Limit_Level;
395 
396         IF g_LIMITS_rec.limit_level_code IS NOT NULL THEN
397 
398             IF QP_Validate.Limit_Level(g_LIMITS_rec.limit_level_code)
399             THEN
400 
401 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
402 
403                 QP_Limits_Util.Clear_Dependent_Attr
404                 (   p_attr_id                     => QP_Limits_Util.G_LIMIT_LEVEL
405                 ,   p_LIMITS_rec                  => l_LIMITS_rec
406                 ,   x_LIMITS_rec                  => g_LIMITS_rec
407                 );
408             ELSE
409                 g_LIMITS_rec.limit_level_code := NULL;
410             END IF;
411 
412         END IF;
413 
414     END IF;
415 
416     IF g_LIMITS_rec.limit_number = FND_API.G_MISS_NUM THEN
417 
418         g_LIMITS_rec.limit_number := Get_Limit_Number;
419 
420         IF g_LIMITS_rec.limit_number IS NOT NULL THEN
421 
422             IF QP_Validate.Limit_Number(g_LIMITS_rec.limit_number)
423             THEN
424 
425 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
426 
427                 QP_Limits_Util.Clear_Dependent_Attr
428                 (   p_attr_id                     => QP_Limits_Util.G_LIMIT_NUMBER
429                 ,   p_LIMITS_rec                  => l_LIMITS_rec
430                 ,   x_LIMITS_rec                  => g_LIMITS_rec
431                 );
432             ELSE
433                 g_LIMITS_rec.limit_number := NULL;
434             END IF;
435 
436         END IF;
437 
438     END IF;
439 
440     IF g_LIMITS_rec.list_header_id = FND_API.G_MISS_NUM THEN
441 
442         g_LIMITS_rec.list_header_id := Get_List_Header;
443 
444         IF g_LIMITS_rec.list_header_id IS NOT NULL THEN
445 
446             IF QP_Validate.List_Header(g_LIMITS_rec.list_header_id)
447             THEN
448 
449 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
450 
451                 QP_Limits_Util.Clear_Dependent_Attr
452                 (   p_attr_id                     => QP_Limits_Util.G_LIST_HEADER
453                 ,   p_LIMITS_rec                  => l_LIMITS_rec
454                 ,   x_LIMITS_rec                  => g_LIMITS_rec
455                 );
456             ELSE
457                 g_LIMITS_rec.list_header_id := NULL;
458             END IF;
459 
460         END IF;
461 
462     END IF;
463 
464     IF g_LIMITS_rec.list_line_id = FND_API.G_MISS_NUM THEN
465 
466         g_LIMITS_rec.list_line_id := Get_List_Line;
467 
468         IF g_LIMITS_rec.list_line_id IS NOT NULL THEN
469 
470             IF QP_Validate.List_Line(g_LIMITS_rec.list_line_id)
471             THEN
472 
473 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
474 
478                 ,   x_LIMITS_rec                  => g_LIMITS_rec
475                 QP_Limits_Util.Clear_Dependent_Attr
476                 (   p_attr_id                     => QP_Limits_Util.G_LIST_LINE
477                 ,   p_LIMITS_rec                  => l_LIMITS_rec
479                 );
480             ELSE
481                 g_LIMITS_rec.list_line_id := NULL;
482             END IF;
483 
484         END IF;
485 
486     END IF;
487 
488     IF g_LIMITS_rec.limit_hold_flag = FND_API.G_MISS_CHAR THEN
489 
490         g_LIMITS_rec.limit_hold_flag := Get_Limit_Hold;
491 
492         IF g_LIMITS_rec.limit_hold_flag IS NOT NULL THEN
493 
494             IF QP_Validate.Limit_Hold(g_LIMITS_rec.limit_hold_flag)
495             THEN
496 
497 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
498 
499                 QP_Limits_Util.Clear_Dependent_Attr
500                 (   p_attr_id                     => QP_Limits_Util.G_LIMIT_HOLD
501                 ,   p_LIMITS_rec                  => l_LIMITS_rec
502                 ,   x_LIMITS_rec                  => g_LIMITS_rec
503                 );
504             ELSE
505                 g_LIMITS_rec.limit_hold_flag := NULL;
506             END IF;
507 
508         END IF;
509 
510     END IF;
511 
512 
513     IF g_LIMITS_rec.multival_attr1_type = FND_API.G_MISS_CHAR THEN
514 
515         g_LIMITS_rec.multival_attr1_type := Get_Multival_Attr1_Type;
516 
517         IF g_LIMITS_rec.multival_attr1_type IS NOT NULL THEN
518 
519             IF QP_Validate.Multival_Attr1_Type(g_LIMITS_rec.multival_attr1_type)
520             THEN
521 
522 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
523 
524                 QP_Limits_Util.Clear_Dependent_Attr
525                 (   p_attr_id                     => QP_Limits_Util.G_MULTIVAL_ATTR1_TYPE
526                 ,   p_LIMITS_rec                  => l_LIMITS_rec
527                 ,   x_LIMITS_rec                  => g_LIMITS_rec
528                 );
529             ELSE
530                 g_LIMITS_rec.multival_attr1_type := NULL;
531             END IF;
532 
533         END IF;
534 
535     END IF;
536 
537     IF g_LIMITS_rec.multival_attr1_context = FND_API.G_MISS_CHAR THEN
538 
539         g_LIMITS_rec.multival_attr1_context := Get_Multival_Attr1_Context;
540 
541         IF g_LIMITS_rec.multival_attr1_context IS NOT NULL THEN
542 
543             IF QP_Validate.Multival_Attr1_Context(g_LIMITS_rec.multival_attr1_context)
544             THEN
545 
546 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
547 
548                 QP_Limits_Util.Clear_Dependent_Attr
549                 (   p_attr_id                     => QP_Limits_Util.G_MULTIVAL_ATTR1_CONTEXT
550                 ,   p_LIMITS_rec                  => l_LIMITS_rec
551                 ,   x_LIMITS_rec                  => g_LIMITS_rec
552                 );
553             ELSE
554                 g_LIMITS_rec.multival_attr1_context := NULL;
555             END IF;
556 
557         END IF;
558 
559     END IF;
560 
561     IF g_LIMITS_rec.multival_attribute1 = FND_API.G_MISS_CHAR THEN
562 
563         g_LIMITS_rec.multival_attribute1 := Get_Multival_Attribute1;
564 
565         IF g_LIMITS_rec.multival_attribute1 IS NOT NULL THEN
566 
567             IF QP_Validate.Multival_Attribute1(g_LIMITS_rec.multival_attribute1)
568             THEN
569 
570 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
571 
572                 QP_Limits_Util.Clear_Dependent_Attr
573                 (   p_attr_id                     => QP_Limits_Util.G_MULTIVAL_ATTRIBUTE1
574                 ,   p_LIMITS_rec                  => l_LIMITS_rec
575                 ,   x_LIMITS_rec                  => g_LIMITS_rec
576                 );
577             ELSE
578                 g_LIMITS_rec.multival_attribute1 := NULL;
579             END IF;
580 
581         END IF;
582 
583     END IF;
584 
585     IF g_LIMITS_rec.multival_attr1_datatype = FND_API.G_MISS_CHAR THEN
586 
587         g_LIMITS_rec.multival_attr1_datatype := Get_Multival_Attr1_Datatype;
588 
589         IF g_LIMITS_rec.multival_attr1_datatype IS NOT NULL THEN
590 
591             IF QP_Validate.Multival_Attr1_Datatype(g_LIMITS_rec.multival_attr1_datatype)
592             THEN
593 
594 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
595 
596                 QP_Limits_Util.Clear_Dependent_Attr
597                 (   p_attr_id                     => QP_Limits_Util.G_MULTIVAL_ATTR1_DATATYPE
598                 ,   p_LIMITS_rec                  => l_LIMITS_rec
599                 ,   x_LIMITS_rec                  => g_LIMITS_rec
600                 );
601             ELSE
602                 g_LIMITS_rec.multival_attr1_datatype := NULL;
603             END IF;
604 
605         END IF;
606 
607     END IF;
608 
609 
610     IF g_LIMITS_rec.multival_attr2_type = FND_API.G_MISS_CHAR THEN
611 
612         g_LIMITS_rec.multival_attr2_type := Get_Multival_Attr2_Type;
613 
614         IF g_LIMITS_rec.multival_attr2_type IS NOT NULL THEN
615 
616             IF QP_Validate.Multival_Attr2_Type(g_LIMITS_rec.multival_attr2_type)
617             THEN
618 
619 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
620 
621                 QP_Limits_Util.Clear_Dependent_Attr
622                 (   p_attr_id                     => QP_Limits_Util.G_MULTIVAL_ATTR2_TYPE
623                 ,   p_LIMITS_rec                  => l_LIMITS_rec
624                 ,   x_LIMITS_rec                  => g_LIMITS_rec
625                 );
626             ELSE
627                 g_LIMITS_rec.multival_attr2_type := NULL;
631 
628             END IF;
629 
630         END IF;
632     END IF;
633 
634     IF g_LIMITS_rec.multival_attr2_context = FND_API.G_MISS_CHAR THEN
635 
636         g_LIMITS_rec.multival_attr2_context := Get_Multival_Attr2_Context;
637 
638         IF g_LIMITS_rec.multival_attr2_context IS NOT NULL THEN
639 
640             IF QP_Validate.Multival_Attr2_Context(g_LIMITS_rec.multival_attr2_context)
641             THEN
642 
643 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
644 
645                 QP_Limits_Util.Clear_Dependent_Attr
646                 (   p_attr_id                     => QP_Limits_Util.G_MULTIVAL_ATTR2_CONTEXT
647                 ,   p_LIMITS_rec                  => l_LIMITS_rec
648                 ,   x_LIMITS_rec                  => g_LIMITS_rec
649                 );
650             ELSE
651                 g_LIMITS_rec.multival_attr2_context := NULL;
652             END IF;
653 
654         END IF;
655 
656     END IF;
657 
658     IF g_LIMITS_rec.multival_attribute2 = FND_API.G_MISS_CHAR THEN
659 
660         g_LIMITS_rec.multival_attribute2 := Get_Multival_Attribute2;
661 
662         IF g_LIMITS_rec.multival_attribute2 IS NOT NULL THEN
663 
664             IF QP_Validate.Multival_Attribute2(g_LIMITS_rec.multival_attribute2)
665             THEN
666 
667 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
668 
669                 QP_Limits_Util.Clear_Dependent_Attr
670                 (   p_attr_id                     => QP_Limits_Util.G_MULTIVAL_ATTRIBUTE2
671                 ,   p_LIMITS_rec                  => l_LIMITS_rec
672                 ,   x_LIMITS_rec                  => g_LIMITS_rec
673                 );
674             ELSE
675                 g_LIMITS_rec.multival_attribute2 := NULL;
676             END IF;
677 
678         END IF;
679 
680     END IF;
681 
682     IF g_LIMITS_rec.multival_attr2_datatype = FND_API.G_MISS_CHAR THEN
683 
684         g_LIMITS_rec.multival_attr2_datatype := Get_Multival_Attr2_Datatype;
685 
686         IF g_LIMITS_rec.multival_attr2_datatype IS NOT NULL THEN
687 
688             IF QP_Validate.Multival_Attr2_Datatype(g_LIMITS_rec.multival_attr2_datatype)
689             THEN
690 
691 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
692 
693                 QP_Limits_Util.Clear_Dependent_Attr
694                 (   p_attr_id                     => QP_Limits_Util.G_MULTIVAL_ATTR2_DATATYPE
695                 ,   p_LIMITS_rec                  => l_LIMITS_rec
696                 ,   x_LIMITS_rec                  => g_LIMITS_rec
697                 );
698             ELSE
699                 g_LIMITS_rec.multival_attr2_datatype := NULL;
700             END IF;
701 
702         END IF;
703 
704     END IF;
705 
706 
707     IF g_LIMITS_rec.organization_flag = FND_API.G_MISS_CHAR THEN
708 
709         g_LIMITS_rec.organization_flag := Get_Organization;
710 
711         IF g_LIMITS_rec.organization_flag IS NOT NULL THEN
712 
713             IF QP_Validate.Organization(g_LIMITS_rec.organization_flag)
714             THEN
715 
716 	        l_LIMITS_rec := g_LIMITS_rec; --[prarasto]
717 
718                 QP_Limits_Util.Clear_Dependent_Attr
719                 (   p_attr_id                     => QP_Limits_Util.G_ORGANIZATION
720                 ,   p_LIMITS_rec                  => l_LIMITS_rec
721                 ,   x_LIMITS_rec                  => g_LIMITS_rec
722                 );
723             ELSE
724                 g_LIMITS_rec.organization_flag := NULL;
725             END IF;
726 
727         END IF;
728 
729     END IF;
730 
731     IF g_LIMITS_rec.attribute1 = FND_API.G_MISS_CHAR
732     OR  g_LIMITS_rec.attribute10 = FND_API.G_MISS_CHAR
733     OR  g_LIMITS_rec.attribute11 = FND_API.G_MISS_CHAR
734     OR  g_LIMITS_rec.attribute12 = FND_API.G_MISS_CHAR
735     OR  g_LIMITS_rec.attribute13 = FND_API.G_MISS_CHAR
736     OR  g_LIMITS_rec.attribute14 = FND_API.G_MISS_CHAR
737     OR  g_LIMITS_rec.attribute15 = FND_API.G_MISS_CHAR
738     OR  g_LIMITS_rec.attribute2 = FND_API.G_MISS_CHAR
739     OR  g_LIMITS_rec.attribute3 = FND_API.G_MISS_CHAR
740     OR  g_LIMITS_rec.attribute4 = FND_API.G_MISS_CHAR
741     OR  g_LIMITS_rec.attribute5 = FND_API.G_MISS_CHAR
742     OR  g_LIMITS_rec.attribute6 = FND_API.G_MISS_CHAR
743     OR  g_LIMITS_rec.attribute7 = FND_API.G_MISS_CHAR
744     OR  g_LIMITS_rec.attribute8 = FND_API.G_MISS_CHAR
745     OR  g_LIMITS_rec.attribute9 = FND_API.G_MISS_CHAR
746     OR  g_LIMITS_rec.context = FND_API.G_MISS_CHAR
747     THEN
748 
749         Get_Flex_Limits;
750 
751     END IF;
752 
753     IF g_LIMITS_rec.created_by = FND_API.G_MISS_NUM THEN
754 
755         g_LIMITS_rec.created_by := NULL;
756 
757     END IF;
758 
759     IF g_LIMITS_rec.creation_date = FND_API.G_MISS_DATE THEN
760 
761         g_LIMITS_rec.creation_date := NULL;
762 
763     END IF;
764 
765     IF g_LIMITS_rec.last_updated_by = FND_API.G_MISS_NUM THEN
766 
767         g_LIMITS_rec.last_updated_by := NULL;
768 
769     END IF;
770 
771     IF g_LIMITS_rec.last_update_date = FND_API.G_MISS_DATE THEN
772 
773         g_LIMITS_rec.last_update_date := NULL;
774 
775     END IF;
776 
777     IF g_LIMITS_rec.last_update_login = FND_API.G_MISS_NUM THEN
778 
779         g_LIMITS_rec.last_update_login := NULL;
780 
781     END IF;
782 
783     IF g_LIMITS_rec.program_application_id = FND_API.G_MISS_NUM THEN
784 
785         g_LIMITS_rec.program_application_id := NULL;
786 
787     END IF;
788 
792 
789     IF g_LIMITS_rec.program_id = FND_API.G_MISS_NUM THEN
790 
791         g_LIMITS_rec.program_id := NULL;
793     END IF;
794 
795     IF g_LIMITS_rec.program_update_date = FND_API.G_MISS_DATE THEN
796 
797         g_LIMITS_rec.program_update_date := NULL;
798 
799     END IF;
800 
801     IF g_LIMITS_rec.request_id = FND_API.G_MISS_NUM THEN
802 
803         g_LIMITS_rec.request_id := NULL;
804 
805     END IF;
806 
807     --  Redefault if there are any missing attributes.
808 
809     IF  g_LIMITS_rec.amount = FND_API.G_MISS_NUM
810     OR  g_LIMITS_rec.attribute1 = FND_API.G_MISS_CHAR
811     OR  g_LIMITS_rec.attribute10 = FND_API.G_MISS_CHAR
812     OR  g_LIMITS_rec.attribute11 = FND_API.G_MISS_CHAR
813     OR  g_LIMITS_rec.attribute12 = FND_API.G_MISS_CHAR
814     OR  g_LIMITS_rec.attribute13 = FND_API.G_MISS_CHAR
815     OR  g_LIMITS_rec.attribute14 = FND_API.G_MISS_CHAR
816     OR  g_LIMITS_rec.attribute15 = FND_API.G_MISS_CHAR
817     OR  g_LIMITS_rec.attribute2 = FND_API.G_MISS_CHAR
818     OR  g_LIMITS_rec.attribute3 = FND_API.G_MISS_CHAR
819     OR  g_LIMITS_rec.attribute4 = FND_API.G_MISS_CHAR
820     OR  g_LIMITS_rec.attribute5 = FND_API.G_MISS_CHAR
821     OR  g_LIMITS_rec.attribute6 = FND_API.G_MISS_CHAR
822     OR  g_LIMITS_rec.attribute7 = FND_API.G_MISS_CHAR
823     OR  g_LIMITS_rec.attribute8 = FND_API.G_MISS_CHAR
824     OR  g_LIMITS_rec.attribute9 = FND_API.G_MISS_CHAR
825     OR  g_LIMITS_rec.basis = FND_API.G_MISS_CHAR
826     OR  g_LIMITS_rec.context = FND_API.G_MISS_CHAR
827     OR  g_LIMITS_rec.created_by = FND_API.G_MISS_NUM
828     OR  g_LIMITS_rec.creation_date = FND_API.G_MISS_DATE
829     OR  g_LIMITS_rec.last_updated_by = FND_API.G_MISS_NUM
830     OR  g_LIMITS_rec.last_update_date = FND_API.G_MISS_DATE
831     OR  g_LIMITS_rec.last_update_login = FND_API.G_MISS_NUM
832     OR  g_LIMITS_rec.limit_exceed_action_code = FND_API.G_MISS_CHAR
833     OR  g_LIMITS_rec.limit_id = FND_API.G_MISS_NUM
834     OR  g_LIMITS_rec.limit_level_code = FND_API.G_MISS_CHAR
835     OR  g_LIMITS_rec.limit_number = FND_API.G_MISS_NUM
836     OR  g_LIMITS_rec.list_header_id = FND_API.G_MISS_NUM
837     OR  g_LIMITS_rec.list_line_id = FND_API.G_MISS_NUM
838     OR  g_LIMITS_rec.multival_attr1_type = FND_API.G_MISS_CHAR
839     OR  g_LIMITS_rec.multival_attr1_context = FND_API.G_MISS_CHAR
840     OR  g_LIMITS_rec.multival_attribute1 = FND_API.G_MISS_CHAR
841     OR  g_LIMITS_rec.multival_attr1_datatype = FND_API.G_MISS_CHAR
842     OR  g_LIMITS_rec.multival_attr2_type = FND_API.G_MISS_CHAR
843     OR  g_LIMITS_rec.multival_attr2_context = FND_API.G_MISS_CHAR
844     OR  g_LIMITS_rec.multival_attribute2 = FND_API.G_MISS_CHAR
845     OR  g_LIMITS_rec.multival_attr2_datatype = FND_API.G_MISS_CHAR
846     OR  g_LIMITS_rec.organization_flag = FND_API.G_MISS_CHAR
847     OR  g_LIMITS_rec.program_application_id = FND_API.G_MISS_NUM
848     OR  g_LIMITS_rec.program_id = FND_API.G_MISS_NUM
849     OR  g_LIMITS_rec.program_update_date = FND_API.G_MISS_DATE
850     OR  g_LIMITS_rec.request_id = FND_API.G_MISS_NUM
851     THEN
852 
853         QP_Default_Limits.Attributes
854         (   p_LIMITS_rec                  => g_LIMITS_rec
855         ,   p_iteration                   => p_iteration + 1
856         ,   x_LIMITS_rec                  => x_LIMITS_rec
857         );
858 
859     ELSE
860 
861         --  Done defaulting attributes
862 
863         x_LIMITS_rec := g_LIMITS_rec;
864 
865     END IF;
866 
867 END Attributes;
868 
869 END QP_Default_Limits;