DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_DEFAULT_CURR_DETAILS

Source


1 PACKAGE BODY QP_Default_Curr_Details AS
2 /* $Header: QPXDCDTB.pls 120.2 2005/07/07 04:26:12 appldev ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Default_Curr_Details';
7 
8 --  Package global used within the package.
9 
10 g_CURR_DETAILS_rec            QP_Currency_PUB.Curr_Details_Rec_Type;
11 
12 --  Get functions.
13 
14 FUNCTION Get_Conversion_Date
15 RETURN DATE
16 IS
17 BEGIN
18 
19     RETURN NULL;
20 
21 END Get_Conversion_Date;
22 
23 FUNCTION Get_Conversion_Date_Type
24 RETURN VARCHAR2
25 IS
26 BEGIN
27 
28     RETURN NULL;
29 
30 END Get_Conversion_Date_Type;
31 
32 /*
33 FUNCTION Get_Conversion_Method
34 RETURN VARCHAR2
35 IS
36 BEGIN
37 
38     RETURN NULL;
39 
40 END Get_Conversion_Method;
41 */
42 
43 FUNCTION Get_Conversion_Type
44 RETURN VARCHAR2
45 IS
46 BEGIN
47 
48     RETURN NULL;
49 
50 END Get_Conversion_Type;
51 
52 FUNCTION Get_Currency_Detail
53 RETURN NUMBER
54 IS
55 l_currency_detail_id NUMBER := FND_API.G_MISS_NUM;
56 BEGIN
57 
58     select QP_CURRENCY_DETAILS_S.nextval
59     into   l_currency_detail_id
60     from   dual;
61 
62     RETURN l_currency_detail_id;
63 
64 END Get_Currency_Detail;
65 
66 FUNCTION Get_Currency_Header
67 RETURN NUMBER
68 IS
69 BEGIN
70 
71     RETURN NULL;
72 
73 END Get_Currency_Header;
74 
75 FUNCTION Get_End_Date_Active
76 RETURN DATE
77 IS
78 BEGIN
79 
80     RETURN NULL;
81 
82 END Get_End_Date_Active;
83 
84 FUNCTION Get_Fixed_Value
85 RETURN NUMBER
86 IS
87 BEGIN
88 
89     RETURN NULL;
90 
91 END Get_Fixed_Value;
92 
93 FUNCTION Get_Markup_Formula
94 RETURN NUMBER
95 IS
96 BEGIN
97 
98     RETURN NULL;
99 
100 END Get_Markup_Formula;
101 
102 FUNCTION Get_Markup_Operator
103 RETURN VARCHAR2
104 IS
105 BEGIN
106 
107     RETURN NULL;
108 
109 END Get_Markup_Operator;
110 
111 FUNCTION Get_Markup_Value
112 RETURN NUMBER
113 IS
114 BEGIN
115 
116     RETURN NULL;
117 
118 END Get_Markup_Value;
119 
120 FUNCTION Get_Price_Formula
121 RETURN NUMBER
122 IS
123 BEGIN
124 
125     RETURN NULL;
126 
127 END Get_Price_Formula;
128 
129 FUNCTION Get_Rounding_Factor
130 RETURN NUMBER
131 IS
132 BEGIN
133 
134     RETURN NULL;
135 
136 END Get_Rounding_Factor;
137 
138 FUNCTION Get_Selling_Rounding_Factor
139 RETURN NUMBER
140 IS
141 BEGIN
142 
143     RETURN NULL;
144 
145 END Get_Selling_Rounding_Factor;
146 
147 FUNCTION Get_Start_Date_Active
148 RETURN DATE
149 IS
150 BEGIN
151 
152     RETURN NULL;
153 
154 END Get_Start_Date_Active;
155 
156 FUNCTION Get_To_Currency
157 RETURN VARCHAR2
158 IS
159 BEGIN
160 
161     RETURN NULL;
162 
163 END Get_To_Currency;
164 
165 FUNCTION Get_curr_attribute_type
166 RETURN VARCHAR2
167 IS
168 BEGIN
169 
170     RETURN NULL;
171 
172 END Get_curr_attribute_type;
173 
174 FUNCTION Get_curr_attribute_context
175 RETURN VARCHAR2
176 IS
177 BEGIN
178 
179     RETURN NULL;
180 
181 END Get_curr_attribute_context;
182 
183 FUNCTION Get_curr_attribute
184 RETURN VARCHAR2
185 IS
186 BEGIN
187 
188     RETURN NULL;
189 
190 END Get_curr_attribute;
191 
192 FUNCTION Get_curr_attribute_value
193 RETURN VARCHAR2
194 IS
195 BEGIN
196 
197     RETURN NULL;
198 
199 END Get_curr_attribute_value;
200 
201 FUNCTION Get_Precedence
202 RETURN NUMBER
203 IS
204 BEGIN
205 
206     RETURN NULL;
207 
208 END Get_Precedence;
209 
210 
211 PROCEDURE Get_Flex_Curr_Details
212 IS
213 BEGIN
214 
215     --  In the future call Flex APIs for defaults
216 
217     IF g_CURR_DETAILS_rec.attribute1 = FND_API.G_MISS_CHAR THEN
218         g_CURR_DETAILS_rec.attribute1  := NULL;
219     END IF;
220 
221     IF g_CURR_DETAILS_rec.attribute10 = FND_API.G_MISS_CHAR THEN
222         g_CURR_DETAILS_rec.attribute10 := NULL;
223     END IF;
224 
225     IF g_CURR_DETAILS_rec.attribute11 = FND_API.G_MISS_CHAR THEN
226         g_CURR_DETAILS_rec.attribute11 := NULL;
227     END IF;
228 
229     IF g_CURR_DETAILS_rec.attribute12 = FND_API.G_MISS_CHAR THEN
230         g_CURR_DETAILS_rec.attribute12 := NULL;
231     END IF;
232 
233     IF g_CURR_DETAILS_rec.attribute13 = FND_API.G_MISS_CHAR THEN
234         g_CURR_DETAILS_rec.attribute13 := NULL;
235     END IF;
236 
237     IF g_CURR_DETAILS_rec.attribute14 = FND_API.G_MISS_CHAR THEN
238         g_CURR_DETAILS_rec.attribute14 := NULL;
239     END IF;
240 
241     IF g_CURR_DETAILS_rec.attribute15 = FND_API.G_MISS_CHAR THEN
242         g_CURR_DETAILS_rec.attribute15 := NULL;
243     END IF;
244 
245     IF g_CURR_DETAILS_rec.attribute2 = FND_API.G_MISS_CHAR THEN
246         g_CURR_DETAILS_rec.attribute2  := NULL;
247     END IF;
248 
249     IF g_CURR_DETAILS_rec.attribute3 = FND_API.G_MISS_CHAR THEN
250         g_CURR_DETAILS_rec.attribute3  := NULL;
251     END IF;
252 
253     IF g_CURR_DETAILS_rec.attribute4 = FND_API.G_MISS_CHAR THEN
254         g_CURR_DETAILS_rec.attribute4  := NULL;
255     END IF;
256 
257     IF g_CURR_DETAILS_rec.attribute5 = FND_API.G_MISS_CHAR THEN
258         g_CURR_DETAILS_rec.attribute5  := NULL;
259     END IF;
260 
261     IF g_CURR_DETAILS_rec.attribute6 = FND_API.G_MISS_CHAR THEN
262         g_CURR_DETAILS_rec.attribute6  := NULL;
263     END IF;
264 
265     IF g_CURR_DETAILS_rec.attribute7 = FND_API.G_MISS_CHAR THEN
266         g_CURR_DETAILS_rec.attribute7  := NULL;
267     END IF;
268 
269     IF g_CURR_DETAILS_rec.attribute8 = FND_API.G_MISS_CHAR THEN
270         g_CURR_DETAILS_rec.attribute8  := NULL;
271     END IF;
272 
273     IF g_CURR_DETAILS_rec.attribute9 = FND_API.G_MISS_CHAR THEN
274         g_CURR_DETAILS_rec.attribute9  := NULL;
275     END IF;
276 
277     IF g_CURR_DETAILS_rec.context = FND_API.G_MISS_CHAR THEN
278         g_CURR_DETAILS_rec.context     := NULL;
279     END IF;
280 
281 END Get_Flex_Curr_Details;
282 
283 --  Procedure Attributes
284 
285 PROCEDURE Attributes
286 (   p_CURR_DETAILS_rec              IN  QP_Currency_PUB.Curr_Details_Rec_Type :=
287                                         QP_Currency_PUB.G_MISS_CURR_DETAILS_REC
288 ,   p_iteration                     IN  NUMBER := 1
289 ,   x_CURR_DETAILS_rec              OUT NOCOPY /* file.sql.39 change */ QP_Currency_PUB.Curr_Details_Rec_Type
290 )
291 IS
292 l_CURR_DETAILS_rec	QP_Currency_PUB.Curr_Details_Rec_Type; --[prarasto]
293 BEGIN
294 
295     --  Check number of iterations.
296 
297     IF p_iteration > QP_GLOBALS.G_MAX_DEF_ITERATIONS THEN
298 
299         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
300         THEN
301 
302             FND_MESSAGE.SET_NAME('QP','OE_DEF_MAX_ITERATION');
303             OE_MSG_PUB.Add;
304 
305         END IF;
306 
307         RAISE FND_API.G_EXC_ERROR;
308 
309     END IF;
310 
311     --  Initialize g_CURR_DETAILS_rec
312 
313     g_CURR_DETAILS_rec := p_CURR_DETAILS_rec;
314 
315     --  Default missing attributes.
316 
317     IF g_CURR_DETAILS_rec.conversion_date = FND_API.G_MISS_DATE THEN
318 
319         g_CURR_DETAILS_rec.conversion_date := Get_Conversion_Date;
320 
321         IF g_CURR_DETAILS_rec.conversion_date IS NOT NULL THEN
322 
323             IF QP_Validate.Conversion_Date(g_CURR_DETAILS_rec.conversion_date)
324             THEN
325 
326 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
327 
328                 QP_Curr_Details_Util.Clear_Dependent_Attr
329                 (   p_attr_id                     => QP_Curr_Details_Util.G_CONVERSION_DATE
330                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
331                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
332                 );
333             ELSE
334                 g_CURR_DETAILS_rec.conversion_date := NULL;
335             END IF;
336 
337         END IF;
338 
339     END IF;
340 
341     IF g_CURR_DETAILS_rec.conversion_date_type = FND_API.G_MISS_CHAR THEN
342 
343         g_CURR_DETAILS_rec.conversion_date_type := Get_Conversion_Date_Type;
344 
345         IF g_CURR_DETAILS_rec.conversion_date_type IS NOT NULL THEN
346 
347             IF QP_Validate.Conversion_Date_Type(g_CURR_DETAILS_rec.conversion_date_type)
348             THEN
349 
350 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
351 
352                 QP_Curr_Details_Util.Clear_Dependent_Attr
353                 (   p_attr_id                     => QP_Curr_Details_Util.G_CONVERSION_DATE_TYPE
354                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
355                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
356                 );
357             ELSE
358                 g_CURR_DETAILS_rec.conversion_date_type := NULL;
359             END IF;
360 
361         END IF;
362 
363     END IF;
364 
365     /*
366     IF g_CURR_DETAILS_rec.conversion_method = FND_API.G_MISS_CHAR THEN
367 
368         g_CURR_DETAILS_rec.conversion_method := Get_Conversion_Method;
369 
370         IF g_CURR_DETAILS_rec.conversion_method IS NOT NULL THEN
371 
372             IF QP_Validate.Conversion_Method(g_CURR_DETAILS_rec.conversion_method)
373             THEN
374 
375 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
376 
377                 QP_Curr_Details_Util.Clear_Dependent_Attr
378                 (   p_attr_id                     => QP_Curr_Details_Util.G_CONVERSION_METHOD
379                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
380                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
381                 );
382             ELSE
383                 g_CURR_DETAILS_rec.conversion_method := NULL;
384             END IF;
385 
386         END IF;
387 
388     END IF;
389     */
390 
391     IF g_CURR_DETAILS_rec.conversion_type = FND_API.G_MISS_CHAR THEN
392 
393         g_CURR_DETAILS_rec.conversion_type := Get_Conversion_Type;
394 
395         IF g_CURR_DETAILS_rec.conversion_type IS NOT NULL THEN
396 
397             IF QP_Validate.Conversion_Type(g_CURR_DETAILS_rec.conversion_type)
398             THEN
399 
400 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
401 
402                 QP_Curr_Details_Util.Clear_Dependent_Attr
403                 (   p_attr_id                     => QP_Curr_Details_Util.G_CONVERSION_TYPE
404                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
405                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
406                 );
407             ELSE
408                 g_CURR_DETAILS_rec.conversion_type := NULL;
409             END IF;
410 
411         END IF;
412 
413     END IF;
414 
415     IF g_CURR_DETAILS_rec.currency_detail_id = FND_API.G_MISS_NUM THEN
416 
417         g_CURR_DETAILS_rec.currency_detail_id := Get_Currency_Detail;
418 
419         IF g_CURR_DETAILS_rec.currency_detail_id IS NOT NULL THEN
420 
421             IF QP_Validate.Currency_Detail(g_CURR_DETAILS_rec.currency_detail_id)
422             THEN
423 
424 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
425 
426                 QP_Curr_Details_Util.Clear_Dependent_Attr
427                 (   p_attr_id                     => QP_Curr_Details_Util.G_CURRENCY_DETAIL
428                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
429                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
430                 );
431             ELSE
432                 g_CURR_DETAILS_rec.currency_detail_id := NULL;
433             END IF;
434 
435         END IF;
436 
437     END IF;
438 
439     IF g_CURR_DETAILS_rec.currency_header_id = FND_API.G_MISS_NUM THEN
440 
441         g_CURR_DETAILS_rec.currency_header_id := Get_Currency_Header;
442 
443         IF g_CURR_DETAILS_rec.currency_header_id IS NOT NULL THEN
444 
445             IF QP_Validate.Currency_Header(g_CURR_DETAILS_rec.currency_header_id)
446             THEN
447 
448 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
449 
450                 QP_Curr_Details_Util.Clear_Dependent_Attr
451                 (   p_attr_id                     => QP_Curr_Details_Util.G_CURRENCY_HEADER
452                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
453                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
454                 );
455             ELSE
456                 g_CURR_DETAILS_rec.currency_header_id := NULL;
457             END IF;
458 
459         END IF;
460 
461     END IF;
462 
463     IF g_CURR_DETAILS_rec.end_date_active = FND_API.G_MISS_DATE THEN
464 
465         g_CURR_DETAILS_rec.end_date_active := Get_End_Date_Active;
466 
467         IF g_CURR_DETAILS_rec.end_date_active IS NOT NULL THEN
468 
469             IF QP_Validate.End_Date_Active(g_CURR_DETAILS_rec.end_date_active)
470             THEN
471 
472 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
473 
474                 QP_Curr_Details_Util.Clear_Dependent_Attr
475                 (   p_attr_id                     => QP_Curr_Details_Util.G_END_DATE_ACTIVE
476                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
477                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
478                 );
479             ELSE
480                 g_CURR_DETAILS_rec.end_date_active := NULL;
481             END IF;
482 
483         END IF;
484 
485     END IF;
486 
487     IF g_CURR_DETAILS_rec.fixed_value = FND_API.G_MISS_NUM THEN
488 
489         g_CURR_DETAILS_rec.fixed_value := Get_Fixed_Value;
490 
491         IF g_CURR_DETAILS_rec.fixed_value IS NOT NULL THEN
492 
493             IF QP_Validate.Fixed_Value(g_CURR_DETAILS_rec.fixed_value)
494             THEN
495 
496 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
497 
498                 QP_Curr_Details_Util.Clear_Dependent_Attr
499                 (   p_attr_id                     => QP_Curr_Details_Util.G_FIXED_VALUE
500                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
501                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
502                 );
503             ELSE
504                 g_CURR_DETAILS_rec.fixed_value := NULL;
505             END IF;
506 
507         END IF;
508 
509     END IF;
510 
511     IF g_CURR_DETAILS_rec.markup_formula_id = FND_API.G_MISS_NUM THEN
512 
513         g_CURR_DETAILS_rec.markup_formula_id := Get_Markup_Formula;
514 
515         IF g_CURR_DETAILS_rec.markup_formula_id IS NOT NULL THEN
516 
517             IF QP_Validate.Markup_Formula(g_CURR_DETAILS_rec.markup_formula_id)
518             THEN
519 
520 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
521 
522                 QP_Curr_Details_Util.Clear_Dependent_Attr
523                 (   p_attr_id                     => QP_Curr_Details_Util.G_MARKUP_FORMULA
524                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
525                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
526                 );
527             ELSE
528                 g_CURR_DETAILS_rec.markup_formula_id := NULL;
529             END IF;
530 
531         END IF;
532 
533     END IF;
534 
535     IF g_CURR_DETAILS_rec.markup_operator = FND_API.G_MISS_CHAR THEN
536 
537         g_CURR_DETAILS_rec.markup_operator := Get_Markup_Operator;
538 
539         IF g_CURR_DETAILS_rec.markup_operator IS NOT NULL THEN
540 
541             IF QP_Validate.Markup_Operator(g_CURR_DETAILS_rec.markup_operator)
542             THEN
543 
544 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
545 
546                 QP_Curr_Details_Util.Clear_Dependent_Attr
547                 (   p_attr_id                     => QP_Curr_Details_Util.G_MARKUP_OPERATOR
548                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
549                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
550                 );
551             ELSE
552                 g_CURR_DETAILS_rec.markup_operator := NULL;
553             END IF;
554 
555         END IF;
556 
557     END IF;
558 
559     IF g_CURR_DETAILS_rec.markup_value = FND_API.G_MISS_NUM THEN
560 
561         g_CURR_DETAILS_rec.markup_value := Get_Markup_Value;
562 
563         IF g_CURR_DETAILS_rec.markup_value IS NOT NULL THEN
564 
565             IF QP_Validate.Markup_Value(g_CURR_DETAILS_rec.markup_value)
566             THEN
567 
568 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
569 
570                 QP_Curr_Details_Util.Clear_Dependent_Attr
571                 (   p_attr_id                     => QP_Curr_Details_Util.G_MARKUP_VALUE
572                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
573                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
574                 );
575             ELSE
576                 g_CURR_DETAILS_rec.markup_value := NULL;
577             END IF;
578 
579         END IF;
580 
581     END IF;
582 
583     IF g_CURR_DETAILS_rec.price_formula_id = FND_API.G_MISS_NUM THEN
584 
585         g_CURR_DETAILS_rec.price_formula_id := Get_Price_Formula;
586 
587         IF g_CURR_DETAILS_rec.price_formula_id IS NOT NULL THEN
588 
589             IF QP_Validate.Price_Formula(g_CURR_DETAILS_rec.price_formula_id)
590             THEN
591 
592 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
593 
594                 QP_Curr_Details_Util.Clear_Dependent_Attr
595                 (   p_attr_id                     => QP_Curr_Details_Util.G_PRICE_FORMULA
596                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
597                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
598                 );
599             ELSE
600                 g_CURR_DETAILS_rec.price_formula_id := NULL;
601             END IF;
602 
603         END IF;
604 
605     END IF;
606 
607     IF g_CURR_DETAILS_rec.rounding_factor = FND_API.G_MISS_NUM THEN
608 
609         g_CURR_DETAILS_rec.rounding_factor := Get_Rounding_Factor;
610 
611         IF g_CURR_DETAILS_rec.rounding_factor IS NOT NULL THEN
612 
613             IF QP_Validate.Rounding_Factor(g_CURR_DETAILS_rec.rounding_factor)
614             THEN
615 
616 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
617 
618                 QP_Curr_Details_Util.Clear_Dependent_Attr
619                 (   p_attr_id                     => QP_Curr_Details_Util.G_ROUNDING_FACTOR
620                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
621                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
622                 );
623             ELSE
624                 g_CURR_DETAILS_rec.rounding_factor := NULL;
625             END IF;
626 
627         END IF;
628 
629     END IF;
630 
631     IF g_CURR_DETAILS_rec.selling_rounding_factor = FND_API.G_MISS_NUM THEN
632 
633         g_CURR_DETAILS_rec.selling_rounding_factor := Get_Selling_Rounding_Factor;
634 
635         IF g_CURR_DETAILS_rec.selling_rounding_factor IS NOT NULL THEN
636 
637             IF QP_Validate.Rounding_Factor(g_CURR_DETAILS_rec.selling_rounding_factor)
638             THEN
639 
640 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
641 
642                 QP_Curr_Details_Util.Clear_Dependent_Attr
643                 (   p_attr_id                     => QP_Curr_Details_Util.G_SELLING_ROUNDING_FACTOR
644                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
645                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
646                 );
647             ELSE
648                 g_CURR_DETAILS_rec.selling_rounding_factor := NULL;
649             END IF;
650 
651         END IF;
652 
653     END IF;
654 
655     IF g_CURR_DETAILS_rec.start_date_active = FND_API.G_MISS_DATE THEN
656 
657         g_CURR_DETAILS_rec.start_date_active := Get_Start_Date_Active;
658 
659         IF g_CURR_DETAILS_rec.start_date_active IS NOT NULL THEN
660 
661             IF QP_Validate.Start_Date_Active(g_CURR_DETAILS_rec.start_date_active)
662             THEN
663 
664 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
665 
666                 QP_Curr_Details_Util.Clear_Dependent_Attr
667                 (   p_attr_id                     => QP_Curr_Details_Util.G_START_DATE_ACTIVE
668                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
669                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
670                 );
671             ELSE
672                 g_CURR_DETAILS_rec.start_date_active := NULL;
673             END IF;
674 
675         END IF;
676 
677     END IF;
678 
679     IF g_CURR_DETAILS_rec.to_currency_code = FND_API.G_MISS_CHAR THEN
680 
681         g_CURR_DETAILS_rec.to_currency_code := Get_To_Currency;
682 
683         IF g_CURR_DETAILS_rec.to_currency_code IS NOT NULL THEN
684 
685             IF QP_Validate.To_Currency(g_CURR_DETAILS_rec.to_currency_code)
686             THEN
687 
688 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
689 
690                 QP_Curr_Details_Util.Clear_Dependent_Attr
691                 (   p_attr_id                     => QP_Curr_Details_Util.G_TO_CURRENCY
692                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
693                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
694                 );
695             ELSE
696                 g_CURR_DETAILS_rec.to_currency_code := NULL;
697             END IF;
698 
699         END IF;
700 
701     END IF;
702 
703     IF g_CURR_DETAILS_rec.curr_attribute_type = FND_API.G_MISS_CHAR THEN
704 
705         g_CURR_DETAILS_rec.curr_attribute_type := Get_curr_attribute_type;
706 
707         IF g_CURR_DETAILS_rec.curr_attribute_type IS NOT NULL THEN
708 
709             IF QP_Validate.Curr_Attribute_Type(g_CURR_DETAILS_rec.curr_attribute_type)
710             THEN
711 
712 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
713 
714                 QP_Curr_Details_Util.Clear_Dependent_Attr
715                 (   p_attr_id                     => QP_Curr_Details_Util.G_curr_attribute_type
716                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
717                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
718                 );
719             ELSE
720                 g_CURR_DETAILS_rec.curr_attribute_type := NULL;
721             END IF;
722 
723         END IF;
724 
725     END IF;
726 
727     IF g_CURR_DETAILS_rec.curr_attribute_context = FND_API.G_MISS_CHAR THEN
728 
729         g_CURR_DETAILS_rec.curr_attribute_context := Get_curr_attribute_context;
730 
731         IF g_CURR_DETAILS_rec.curr_attribute_context IS NOT NULL THEN
732 
733             IF QP_Validate.Curr_Attribute_Context(g_CURR_DETAILS_rec.curr_attribute_context)
734             THEN
735 
736 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
737 
738                 QP_Curr_Details_Util.Clear_Dependent_Attr
739                 (   p_attr_id                     => QP_Curr_Details_Util.G_curr_attribute_context
740                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
741                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
742                 );
743             ELSE
744                 g_CURR_DETAILS_rec.curr_attribute_context := NULL;
745             END IF;
746 
747         END IF;
748 
749     END IF;
750 
751     IF g_CURR_DETAILS_rec.curr_attribute = FND_API.G_MISS_CHAR THEN
752 
753         g_CURR_DETAILS_rec.curr_attribute := Get_curr_attribute;
754 
755         IF g_CURR_DETAILS_rec.curr_attribute IS NOT NULL THEN
756 
757             IF QP_Validate.Curr_Attribute(g_CURR_DETAILS_rec.curr_attribute)
758             THEN
759 
760 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
761 
762                 QP_Curr_Details_Util.Clear_Dependent_Attr
763                 (   p_attr_id                     => QP_Curr_Details_Util.G_curr_attribute
764                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
765                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
766                 );
767             ELSE
768                 g_CURR_DETAILS_rec.curr_attribute := NULL;
769             END IF;
770 
771         END IF;
772 
773     END IF;
774 
775     IF g_CURR_DETAILS_rec.curr_attribute_value = FND_API.G_MISS_CHAR THEN
776 
777         g_CURR_DETAILS_rec.curr_attribute_value := Get_curr_attribute_value;
778 
779         IF g_CURR_DETAILS_rec.curr_attribute_value IS NOT NULL THEN
780 
781             IF QP_Validate.Curr_Attribute_Value(g_CURR_DETAILS_rec.curr_attribute_value)
782             THEN
783 
784 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
785 
786                 QP_Curr_Details_Util.Clear_Dependent_Attr
787                 (   p_attr_id                     => QP_Curr_Details_Util.G_curr_attribute_value
788                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
789                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
790                 );
791             ELSE
792                 g_CURR_DETAILS_rec.curr_attribute_value := NULL;
793             END IF;
794 
795         END IF;
796 
797     END IF;
798 
799     IF g_CURR_DETAILS_rec.precedence = FND_API.G_MISS_NUM THEN
800 
801         g_CURR_DETAILS_rec.precedence := Get_Precedence;
802 
803         IF g_CURR_DETAILS_rec.precedence IS NOT NULL THEN
804 
805             IF QP_Validate.Precedence(g_CURR_DETAILS_rec.precedence)
806             THEN
807 
808 	        l_CURR_DETAILS_rec := g_CURR_DETAILS_rec; --[prarasto]
809 
810                 QP_Curr_Details_Util.Clear_Dependent_Attr
811                 (   p_attr_id                     => QP_Curr_Details_Util.G_precedence
812                 ,   p_CURR_DETAILS_rec            => l_CURR_DETAILS_rec
813                 ,   x_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
814                 );
815             ELSE
816                 g_CURR_DETAILS_rec.precedence := NULL;
817             END IF;
818 
819         END IF;
820 
821     END IF;
822 
823 
824     IF g_CURR_DETAILS_rec.attribute1 = FND_API.G_MISS_CHAR
825     OR  g_CURR_DETAILS_rec.attribute10 = FND_API.G_MISS_CHAR
826     OR  g_CURR_DETAILS_rec.attribute11 = FND_API.G_MISS_CHAR
827     OR  g_CURR_DETAILS_rec.attribute12 = FND_API.G_MISS_CHAR
828     OR  g_CURR_DETAILS_rec.attribute13 = FND_API.G_MISS_CHAR
829     OR  g_CURR_DETAILS_rec.attribute14 = FND_API.G_MISS_CHAR
830     OR  g_CURR_DETAILS_rec.attribute15 = FND_API.G_MISS_CHAR
831     OR  g_CURR_DETAILS_rec.attribute2 = FND_API.G_MISS_CHAR
832     OR  g_CURR_DETAILS_rec.attribute3 = FND_API.G_MISS_CHAR
833     OR  g_CURR_DETAILS_rec.attribute4 = FND_API.G_MISS_CHAR
834     OR  g_CURR_DETAILS_rec.attribute5 = FND_API.G_MISS_CHAR
835     OR  g_CURR_DETAILS_rec.attribute6 = FND_API.G_MISS_CHAR
836     OR  g_CURR_DETAILS_rec.attribute7 = FND_API.G_MISS_CHAR
837     OR  g_CURR_DETAILS_rec.attribute8 = FND_API.G_MISS_CHAR
838     OR  g_CURR_DETAILS_rec.attribute9 = FND_API.G_MISS_CHAR
839     OR  g_CURR_DETAILS_rec.context = FND_API.G_MISS_CHAR
840     THEN
841 
842         Get_Flex_Curr_Details;
843 
844     END IF;
845 
846     IF g_CURR_DETAILS_rec.created_by = FND_API.G_MISS_NUM THEN
847 
848         g_CURR_DETAILS_rec.created_by := NULL;
849 
850     END IF;
851 
852     IF g_CURR_DETAILS_rec.creation_date = FND_API.G_MISS_DATE THEN
853 
854         g_CURR_DETAILS_rec.creation_date := NULL;
855 
856     END IF;
857 
858     IF g_CURR_DETAILS_rec.last_updated_by = FND_API.G_MISS_NUM THEN
859 
860         g_CURR_DETAILS_rec.last_updated_by := NULL;
861 
862     END IF;
863 
864     IF g_CURR_DETAILS_rec.last_update_date = FND_API.G_MISS_DATE THEN
865 
866         g_CURR_DETAILS_rec.last_update_date := NULL;
867 
868     END IF;
869 
870     IF g_CURR_DETAILS_rec.last_update_login = FND_API.G_MISS_NUM THEN
871 
872         g_CURR_DETAILS_rec.last_update_login := NULL;
873 
874     END IF;
875 
876     IF g_CURR_DETAILS_rec.program_application_id = FND_API.G_MISS_NUM THEN
877 
878         g_CURR_DETAILS_rec.program_application_id := NULL;
879 
880     END IF;
881 
882     IF g_CURR_DETAILS_rec.program_id = FND_API.G_MISS_NUM THEN
883 
884         g_CURR_DETAILS_rec.program_id := NULL;
885 
886     END IF;
887 
888     IF g_CURR_DETAILS_rec.program_update_date = FND_API.G_MISS_DATE THEN
889 
890         g_CURR_DETAILS_rec.program_update_date := NULL;
891 
892     END IF;
893 
894     IF g_CURR_DETAILS_rec.request_id = FND_API.G_MISS_NUM THEN
895 
896         g_CURR_DETAILS_rec.request_id := NULL;
897 
898     END IF;
899 
900     --  Redefault if there are any missing attributes.
901 
902     IF  g_CURR_DETAILS_rec.attribute1 = FND_API.G_MISS_CHAR
903     OR  g_CURR_DETAILS_rec.attribute10 = FND_API.G_MISS_CHAR
904     OR  g_CURR_DETAILS_rec.attribute11 = FND_API.G_MISS_CHAR
905     OR  g_CURR_DETAILS_rec.attribute12 = FND_API.G_MISS_CHAR
906     OR  g_CURR_DETAILS_rec.attribute13 = FND_API.G_MISS_CHAR
907     OR  g_CURR_DETAILS_rec.attribute14 = FND_API.G_MISS_CHAR
908     OR  g_CURR_DETAILS_rec.attribute15 = FND_API.G_MISS_CHAR
909     OR  g_CURR_DETAILS_rec.attribute2 = FND_API.G_MISS_CHAR
910     OR  g_CURR_DETAILS_rec.attribute3 = FND_API.G_MISS_CHAR
911     OR  g_CURR_DETAILS_rec.attribute4 = FND_API.G_MISS_CHAR
912     OR  g_CURR_DETAILS_rec.attribute5 = FND_API.G_MISS_CHAR
913     OR  g_CURR_DETAILS_rec.attribute6 = FND_API.G_MISS_CHAR
914     OR  g_CURR_DETAILS_rec.attribute7 = FND_API.G_MISS_CHAR
915     OR  g_CURR_DETAILS_rec.attribute8 = FND_API.G_MISS_CHAR
916     OR  g_CURR_DETAILS_rec.attribute9 = FND_API.G_MISS_CHAR
917     OR  g_CURR_DETAILS_rec.context = FND_API.G_MISS_CHAR
918     OR  g_CURR_DETAILS_rec.conversion_date = FND_API.G_MISS_DATE
919     OR  g_CURR_DETAILS_rec.conversion_date_type = FND_API.G_MISS_CHAR
920     --OR  g_CURR_DETAILS_rec.conversion_method = FND_API.G_MISS_CHAR
921     OR  g_CURR_DETAILS_rec.conversion_type = FND_API.G_MISS_CHAR
922     OR  g_CURR_DETAILS_rec.created_by = FND_API.G_MISS_NUM
923     OR  g_CURR_DETAILS_rec.creation_date = FND_API.G_MISS_DATE
924     OR  g_CURR_DETAILS_rec.currency_detail_id = FND_API.G_MISS_NUM
925     OR  g_CURR_DETAILS_rec.currency_header_id = FND_API.G_MISS_NUM
926     OR  g_CURR_DETAILS_rec.end_date_active = FND_API.G_MISS_DATE
927     OR  g_CURR_DETAILS_rec.fixed_value = FND_API.G_MISS_NUM
928     OR  g_CURR_DETAILS_rec.last_updated_by = FND_API.G_MISS_NUM
929     OR  g_CURR_DETAILS_rec.last_update_date = FND_API.G_MISS_DATE
930     OR  g_CURR_DETAILS_rec.last_update_login = FND_API.G_MISS_NUM
931     OR  g_CURR_DETAILS_rec.markup_formula_id = FND_API.G_MISS_NUM
932     OR  g_CURR_DETAILS_rec.markup_operator = FND_API.G_MISS_CHAR
933     OR  g_CURR_DETAILS_rec.markup_value = FND_API.G_MISS_NUM
934     OR  g_CURR_DETAILS_rec.price_formula_id = FND_API.G_MISS_NUM
935     OR  g_CURR_DETAILS_rec.program_application_id = FND_API.G_MISS_NUM
936     OR  g_CURR_DETAILS_rec.program_id = FND_API.G_MISS_NUM
937     OR  g_CURR_DETAILS_rec.program_update_date = FND_API.G_MISS_DATE
938     OR  g_CURR_DETAILS_rec.request_id = FND_API.G_MISS_NUM
939     OR  g_CURR_DETAILS_rec.rounding_factor = FND_API.G_MISS_NUM
940     OR  g_CURR_DETAILS_rec.selling_rounding_factor = FND_API.G_MISS_NUM
941     OR  g_CURR_DETAILS_rec.start_date_active = FND_API.G_MISS_DATE
942     OR  g_CURR_DETAILS_rec.to_currency_code = FND_API.G_MISS_CHAR
943     OR  g_CURR_DETAILS_rec.curr_attribute_type = FND_API.G_MISS_CHAR
944     OR  g_CURR_DETAILS_rec.curr_attribute_context = FND_API.G_MISS_CHAR
945     OR  g_CURR_DETAILS_rec.curr_attribute = FND_API.G_MISS_CHAR
946     OR  g_CURR_DETAILS_rec.curr_attribute_value = FND_API.G_MISS_CHAR
947     OR  g_CURR_DETAILS_rec.precedence = FND_API.G_MISS_NUM
948     THEN
949 
950         QP_Default_Curr_Details.Attributes
951         (   p_CURR_DETAILS_rec            => g_CURR_DETAILS_rec
952         ,   p_iteration                   => p_iteration + 1
953         ,   x_CURR_DETAILS_rec            => x_CURR_DETAILS_rec
954         );
955 
956     ELSE
957 
958         --  Done defaulting attributes
959 
960         x_CURR_DETAILS_rec := g_CURR_DETAILS_rec;
961 
962     END IF;
963 
964 END Attributes;
965 
966 END QP_Default_Curr_Details;