DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_DEFAULT_LIMIT_BALANCES

Source


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