DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_DEFAULT_LIMIT_ATTRS

Source


1 PACKAGE BODY QP_Default_Limit_Attrs AS
2 /* $Header: QPXDLATB.pls 120.2 2005/07/07 04:27:11 appldev ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Default_Limit_Attrs';
7 
8 --  Package global used within the package.
9 
10 g_LIMIT_ATTRS_rec             QP_Limits_PUB.Limit_Attrs_Rec_Type;
11 
12 --  Get functions.
13 
14 FUNCTION Get_Comparison_Operator
15 RETURN VARCHAR2
16 IS
17 BEGIN
18 
19     RETURN NULL;
20 
21 END Get_Comparison_Operator;
22 
23 
24 FUNCTION Get_Limit_Attribute
25 RETURN VARCHAR2
26 IS
27 BEGIN
28 
29 	RETURN NULL;
30 
31 END Get_Limit_Attribute;
32 
33 
34 FUNCTION Get_Limit_Attribute_Context
35 RETURN VARCHAR2
36 IS
37 BEGIN
38 
39     RETURN NULL;
40 
41 END Get_Limit_Attribute_Context;
42 
43 FUNCTION Get_Limit_Attribute_Id
44 RETURN NUMBER
45 IS
46 l_limit_attribute_id   NUMBER;
47 BEGIN
48 
49     SELECT qp_limit_attributes_s.nextval
50     INTO   l_limit_attribute_id
51     FROM   dual;
52 
53     RETURN l_limit_attribute_id;
54 
55 END Get_Limit_Attribute_Id;
56 
57 
58 FUNCTION Get_Limit_Attribute_Type
59 RETURN VARCHAR2
60 IS
61 BEGIN
62 
63     RETURN NULL;
64 
65 END Get_Limit_Attribute_Type;
66 
67 FUNCTION Get_Limit_Attr_Datatype
68 RETURN VARCHAR2
69 IS
70 BEGIN
71 
72     RETURN NULL;
73 
74 END Get_Limit_Attr_Datatype;
75 
76 FUNCTION Get_Limit_Attr_Value
77 RETURN VARCHAR2
78 IS
79 BEGIN
80 
81     RETURN NULL;
82 
83 END Get_Limit_Attr_Value;
84 
85 FUNCTION Get_Limit
86 RETURN NUMBER
87 IS
88 BEGIN
89 
90     RETURN NULL;
91 
92 END Get_Limit;
93 
94 PROCEDURE Get_Flex_Limit_Attrs
95 IS
96 BEGIN
97 
98     --  In the future call Flex APIs for defaults
99 
100     IF g_LIMIT_ATTRS_rec.attribute1 = FND_API.G_MISS_CHAR THEN
101         g_LIMIT_ATTRS_rec.attribute1   := NULL;
102     END IF;
103 
104     IF g_LIMIT_ATTRS_rec.attribute10 = FND_API.G_MISS_CHAR THEN
105         g_LIMIT_ATTRS_rec.attribute10  := NULL;
106     END IF;
107 
108     IF g_LIMIT_ATTRS_rec.attribute11 = FND_API.G_MISS_CHAR THEN
109         g_LIMIT_ATTRS_rec.attribute11  := NULL;
110     END IF;
111 
112     IF g_LIMIT_ATTRS_rec.attribute12 = FND_API.G_MISS_CHAR THEN
113         g_LIMIT_ATTRS_rec.attribute12  := NULL;
114     END IF;
115 
116     IF g_LIMIT_ATTRS_rec.attribute13 = FND_API.G_MISS_CHAR THEN
117         g_LIMIT_ATTRS_rec.attribute13  := NULL;
118     END IF;
119 
120     IF g_LIMIT_ATTRS_rec.attribute14 = FND_API.G_MISS_CHAR THEN
121         g_LIMIT_ATTRS_rec.attribute14  := NULL;
122     END IF;
123 
124     IF g_LIMIT_ATTRS_rec.attribute15 = FND_API.G_MISS_CHAR THEN
125         g_LIMIT_ATTRS_rec.attribute15  := NULL;
126     END IF;
127 
128     IF g_LIMIT_ATTRS_rec.attribute2 = FND_API.G_MISS_CHAR THEN
129         g_LIMIT_ATTRS_rec.attribute2   := NULL;
130     END IF;
131 
132     IF g_LIMIT_ATTRS_rec.attribute3 = FND_API.G_MISS_CHAR THEN
133         g_LIMIT_ATTRS_rec.attribute3   := NULL;
134     END IF;
135 
136     IF g_LIMIT_ATTRS_rec.attribute4 = FND_API.G_MISS_CHAR THEN
137         g_LIMIT_ATTRS_rec.attribute4   := NULL;
138     END IF;
139 
140     IF g_LIMIT_ATTRS_rec.attribute5 = FND_API.G_MISS_CHAR THEN
141         g_LIMIT_ATTRS_rec.attribute5   := NULL;
142     END IF;
143 
144     IF g_LIMIT_ATTRS_rec.attribute6 = FND_API.G_MISS_CHAR THEN
145         g_LIMIT_ATTRS_rec.attribute6   := NULL;
146     END IF;
147 
148     IF g_LIMIT_ATTRS_rec.attribute7 = FND_API.G_MISS_CHAR THEN
149         g_LIMIT_ATTRS_rec.attribute7   := NULL;
150     END IF;
151 
152     IF g_LIMIT_ATTRS_rec.attribute8 = FND_API.G_MISS_CHAR THEN
153         g_LIMIT_ATTRS_rec.attribute8   := NULL;
154     END IF;
155 
156     IF g_LIMIT_ATTRS_rec.attribute9 = FND_API.G_MISS_CHAR THEN
157         g_LIMIT_ATTRS_rec.attribute9   := NULL;
158     END IF;
159 
160     IF g_LIMIT_ATTRS_rec.context = FND_API.G_MISS_CHAR THEN
161         g_LIMIT_ATTRS_rec.context      := NULL;
162     END IF;
163 
164 END Get_Flex_Limit_Attrs;
165 
166 --  Procedure Attributes
167 
168 PROCEDURE Attributes
169 (   p_LIMIT_ATTRS_rec               IN  QP_Limits_PUB.Limit_Attrs_Rec_Type :=
170                                         QP_Limits_PUB.G_MISS_LIMIT_ATTRS_REC
171 ,   p_iteration                     IN  NUMBER := 1
172 ,   x_LIMIT_ATTRS_rec               OUT NOCOPY /* file.sql.39 change */ QP_Limits_PUB.Limit_Attrs_Rec_Type
173 )
174 IS
175 l_LIMIT_ATTRS_rec	QP_Limits_PUB.Limit_Attrs_Rec_Type; --[prarasto]
176 BEGIN
177 
178     --  Check number of iterations.
179 
180     IF p_iteration > QP_GLOBALS.G_MAX_DEF_ITERATIONS THEN
181 
182         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
183         THEN
184 
185             FND_MESSAGE.SET_NAME('QP','OE_DEF_MAX_ITERATION');
186             OE_MSG_PUB.Add;
187 
188         END IF;
189 
190         RAISE FND_API.G_EXC_ERROR;
191 
192     END IF;
193 
194     --  Initialize g_LIMIT_ATTRS_rec
195 
196     g_LIMIT_ATTRS_rec := p_LIMIT_ATTRS_rec;
197 
198     --  Default missing attributes.
199 
200     IF g_LIMIT_ATTRS_rec.comparison_operator_code = FND_API.G_MISS_CHAR THEN
201 
202         g_LIMIT_ATTRS_rec.comparison_operator_code := Get_Comparison_Operator;
203 
204         IF g_LIMIT_ATTRS_rec.comparison_operator_code IS NOT NULL THEN
205 
206             IF QP_Validate.Comparison_Operator(g_LIMIT_ATTRS_rec.comparison_operator_code)
207             THEN
208 
209 	        l_LIMIT_ATTRS_rec := g_LIMIT_ATTRS_rec; --[prarasto]
210 
211                 QP_Limit_Attrs_Util.Clear_Dependent_Attr
212                 (   p_attr_id                     => QP_Limit_Attrs_Util.G_COMPARISON_OPERATOR
213                 ,   p_LIMIT_ATTRS_rec             => l_LIMIT_ATTRS_rec
214                 ,   x_LIMIT_ATTRS_rec             => g_LIMIT_ATTRS_rec
215                 );
216             ELSE
217                 g_LIMIT_ATTRS_rec.comparison_operator_code := NULL;
218             END IF;
219 
220         END IF;
221 
222     END IF;
223 
224     IF g_LIMIT_ATTRS_rec.limit_attribute = FND_API.G_MISS_CHAR THEN
225 
226         g_LIMIT_ATTRS_rec.limit_attribute := Get_Limit_Attribute;
227 
228         IF g_LIMIT_ATTRS_rec.limit_attribute IS NOT NULL THEN
229 
230             IF QP_Validate.Limit_Attribute(g_LIMIT_ATTRS_rec.limit_attribute)
231             THEN
232 
233 	        l_LIMIT_ATTRS_rec := g_LIMIT_ATTRS_rec; --[prarasto]
234 
235                 QP_Limit_Attrs_Util.Clear_Dependent_Attr
236                 (   p_attr_id                     => QP_Limit_Attrs_Util.G_LIMIT_ATTRIBUTE
237                 ,   p_LIMIT_ATTRS_rec             => l_LIMIT_ATTRS_rec
238                 ,   x_LIMIT_ATTRS_rec             => g_LIMIT_ATTRS_rec
239                 );
240             ELSE
241                 g_LIMIT_ATTRS_rec.limit_attribute := NULL;
242             END IF;
243 
244         END IF;
245 
246     END IF;
247 
248     IF g_LIMIT_ATTRS_rec.limit_attribute_context = FND_API.G_MISS_CHAR THEN
249 
250         g_LIMIT_ATTRS_rec.limit_attribute_context := Get_Limit_Attribute_Context;
251 
252         IF g_LIMIT_ATTRS_rec.limit_attribute_context IS NOT NULL THEN
253 
254             IF QP_Validate.Limit_Attribute_Context(g_LIMIT_ATTRS_rec.limit_attribute_context)
255             THEN
256 
257 	        l_LIMIT_ATTRS_rec := g_LIMIT_ATTRS_rec; --[prarasto]
258 
259                 QP_Limit_Attrs_Util.Clear_Dependent_Attr
260                 (   p_attr_id                     => QP_Limit_Attrs_Util.G_LIMIT_ATTRIBUTE_CONTEXT
261                 ,   p_LIMIT_ATTRS_rec             => l_LIMIT_ATTRS_rec
262                 ,   x_LIMIT_ATTRS_rec             => g_LIMIT_ATTRS_rec
263                 );
264             ELSE
265                 g_LIMIT_ATTRS_rec.limit_attribute_context := NULL;
266             END IF;
267 
268         END IF;
269 
270     END IF;
271 
272     IF g_LIMIT_ATTRS_rec.limit_attribute_id = FND_API.G_MISS_NUM THEN
273 
274         g_LIMIT_ATTRS_rec.limit_attribute_id := Get_Limit_Attribute_Id;
275 
276         IF g_LIMIT_ATTRS_rec.limit_attribute_id IS NOT NULL THEN
277 
278             IF QP_Validate.Limit_Attribute(g_LIMIT_ATTRS_rec.limit_attribute_id)
279             THEN
280 
281 	        l_LIMIT_ATTRS_rec := g_LIMIT_ATTRS_rec; --[prarasto]
282 
283                 QP_Limit_Attrs_Util.Clear_Dependent_Attr
284                 (   p_attr_id                     => QP_Limit_Attrs_Util.G_LIMIT_ATTRIBUTE
285                 ,   p_LIMIT_ATTRS_rec             => l_LIMIT_ATTRS_rec
286                 ,   x_LIMIT_ATTRS_rec             => g_LIMIT_ATTRS_rec
287                 );
288             ELSE
289                 g_LIMIT_ATTRS_rec.limit_attribute_id := NULL;
290             END IF;
291 
292         END IF;
293 
294     END IF;
295 
296     IF g_LIMIT_ATTRS_rec.limit_attribute_type = FND_API.G_MISS_CHAR THEN
297 
298         g_LIMIT_ATTRS_rec.limit_attribute_type := Get_Limit_Attribute_Type;
299 
300         IF g_LIMIT_ATTRS_rec.limit_attribute_type IS NOT NULL THEN
301 
302             IF QP_Validate.Limit_Attribute_Type(g_LIMIT_ATTRS_rec.limit_attribute_type)
303             THEN
304 
305 	        l_LIMIT_ATTRS_rec := g_LIMIT_ATTRS_rec; --[prarasto]
306 
307                 QP_Limit_Attrs_Util.Clear_Dependent_Attr
308                 (   p_attr_id                     => QP_Limit_Attrs_Util.G_LIMIT_ATTRIBUTE_TYPE
309                 ,   p_LIMIT_ATTRS_rec             => l_LIMIT_ATTRS_rec
310                 ,   x_LIMIT_ATTRS_rec             => g_LIMIT_ATTRS_rec
311                 );
312             ELSE
313                 g_LIMIT_ATTRS_rec.limit_attribute_type := NULL;
314             END IF;
315 
316         END IF;
317 
318     END IF;
319 
320     IF g_LIMIT_ATTRS_rec.limit_attr_datatype = FND_API.G_MISS_CHAR THEN
321 
322         g_LIMIT_ATTRS_rec.limit_attr_datatype := Get_Limit_Attr_Datatype;
323 
324         IF g_LIMIT_ATTRS_rec.limit_attr_datatype IS NOT NULL THEN
325 
326             IF QP_Validate.Limit_Attr_Datatype(g_LIMIT_ATTRS_rec.limit_attr_datatype)
327             THEN
328 
329 	        l_LIMIT_ATTRS_rec := g_LIMIT_ATTRS_rec; --[prarasto]
330 
331                 QP_Limit_Attrs_Util.Clear_Dependent_Attr
332                 (   p_attr_id                     => QP_Limit_Attrs_Util.G_LIMIT_ATTR_DATATYPE
333                 ,   p_LIMIT_ATTRS_rec             => l_LIMIT_ATTRS_rec
334                 ,   x_LIMIT_ATTRS_rec             => g_LIMIT_ATTRS_rec
335                 );
336             ELSE
337                 g_LIMIT_ATTRS_rec.limit_attr_datatype := NULL;
338             END IF;
339 
340         END IF;
341 
342     END IF;
343 
344     IF g_LIMIT_ATTRS_rec.limit_attr_value = FND_API.G_MISS_CHAR THEN
345 
346         g_LIMIT_ATTRS_rec.limit_attr_value := Get_Limit_Attr_Value;
347 
348         IF g_LIMIT_ATTRS_rec.limit_attr_value IS NOT NULL THEN
349 
350             IF QP_Validate.Limit_Attr_Value(g_LIMIT_ATTRS_rec.limit_attr_value)
351             THEN
352 
353 	        l_LIMIT_ATTRS_rec := g_LIMIT_ATTRS_rec; --[prarasto]
354 
355                 QP_Limit_Attrs_Util.Clear_Dependent_Attr
356                 (   p_attr_id                     => QP_Limit_Attrs_Util.G_LIMIT_ATTR_VALUE
357                 ,   p_LIMIT_ATTRS_rec             => l_LIMIT_ATTRS_rec
358                 ,   x_LIMIT_ATTRS_rec             => g_LIMIT_ATTRS_rec
359                 );
360             ELSE
361                 g_LIMIT_ATTRS_rec.limit_attr_value := NULL;
362             END IF;
363 
364         END IF;
365 
366     END IF;
367 
368     IF g_LIMIT_ATTRS_rec.limit_id = FND_API.G_MISS_NUM THEN
369 
370         g_LIMIT_ATTRS_rec.limit_id := Get_Limit;
371 
372         IF g_LIMIT_ATTRS_rec.limit_id IS NOT NULL THEN
373 
374             IF QP_Validate.Limit(g_LIMIT_ATTRS_rec.limit_id)
375             THEN
376 
377 	        l_LIMIT_ATTRS_rec := g_LIMIT_ATTRS_rec; --[prarasto]
378 
379                 QP_Limit_Attrs_Util.Clear_Dependent_Attr
380                 (   p_attr_id                     => QP_Limit_Attrs_Util.G_LIMIT
381                 ,   p_LIMIT_ATTRS_rec             => l_LIMIT_ATTRS_rec
382                 ,   x_LIMIT_ATTRS_rec             => g_LIMIT_ATTRS_rec
383                 );
384             ELSE
385                 g_LIMIT_ATTRS_rec.limit_id := NULL;
386             END IF;
387 
388         END IF;
389 
390     END IF;
391 
392     IF g_LIMIT_ATTRS_rec.attribute1 = FND_API.G_MISS_CHAR
393     OR  g_LIMIT_ATTRS_rec.attribute10 = FND_API.G_MISS_CHAR
394     OR  g_LIMIT_ATTRS_rec.attribute11 = FND_API.G_MISS_CHAR
395     OR  g_LIMIT_ATTRS_rec.attribute12 = FND_API.G_MISS_CHAR
396     OR  g_LIMIT_ATTRS_rec.attribute13 = FND_API.G_MISS_CHAR
397     OR  g_LIMIT_ATTRS_rec.attribute14 = FND_API.G_MISS_CHAR
398     OR  g_LIMIT_ATTRS_rec.attribute15 = FND_API.G_MISS_CHAR
399     OR  g_LIMIT_ATTRS_rec.attribute2 = FND_API.G_MISS_CHAR
400     OR  g_LIMIT_ATTRS_rec.attribute3 = FND_API.G_MISS_CHAR
401     OR  g_LIMIT_ATTRS_rec.attribute4 = FND_API.G_MISS_CHAR
402     OR  g_LIMIT_ATTRS_rec.attribute5 = FND_API.G_MISS_CHAR
403     OR  g_LIMIT_ATTRS_rec.attribute6 = FND_API.G_MISS_CHAR
404     OR  g_LIMIT_ATTRS_rec.attribute7 = FND_API.G_MISS_CHAR
405     OR  g_LIMIT_ATTRS_rec.attribute8 = FND_API.G_MISS_CHAR
406     OR  g_LIMIT_ATTRS_rec.attribute9 = FND_API.G_MISS_CHAR
407     OR  g_LIMIT_ATTRS_rec.context = FND_API.G_MISS_CHAR
408     THEN
409 
410         Get_Flex_Limit_Attrs;
411 
412     END IF;
413 
414     IF g_LIMIT_ATTRS_rec.created_by = FND_API.G_MISS_NUM THEN
415 
416         g_LIMIT_ATTRS_rec.created_by := NULL;
417 
418     END IF;
419 
420     IF g_LIMIT_ATTRS_rec.creation_date = FND_API.G_MISS_DATE THEN
421 
422         g_LIMIT_ATTRS_rec.creation_date := NULL;
423 
424     END IF;
425 
426     IF g_LIMIT_ATTRS_rec.last_updated_by = FND_API.G_MISS_NUM THEN
427 
428         g_LIMIT_ATTRS_rec.last_updated_by := NULL;
429 
430     END IF;
431 
432     IF g_LIMIT_ATTRS_rec.last_update_date = FND_API.G_MISS_DATE THEN
433 
434         g_LIMIT_ATTRS_rec.last_update_date := NULL;
435 
436     END IF;
437 
438     IF g_LIMIT_ATTRS_rec.last_update_login = FND_API.G_MISS_NUM THEN
439 
440         g_LIMIT_ATTRS_rec.last_update_login := NULL;
441 
442     END IF;
443 
444     IF g_LIMIT_ATTRS_rec.program_application_id = FND_API.G_MISS_NUM THEN
445 
446         g_LIMIT_ATTRS_rec.program_application_id := NULL;
447 
448     END IF;
449 
450     IF g_LIMIT_ATTRS_rec.program_id = FND_API.G_MISS_NUM THEN
451 
452         g_LIMIT_ATTRS_rec.program_id := NULL;
453 
454     END IF;
455 
456     IF g_LIMIT_ATTRS_rec.program_update_date = FND_API.G_MISS_DATE THEN
457 
458         g_LIMIT_ATTRS_rec.program_update_date := NULL;
459 
460     END IF;
461 
462     IF g_LIMIT_ATTRS_rec.request_id = FND_API.G_MISS_NUM THEN
463 
464         g_LIMIT_ATTRS_rec.request_id := NULL;
465 
466     END IF;
467 
468     --  Redefault if there are any missing attributes.
469 
470     IF  g_LIMIT_ATTRS_rec.attribute1 = FND_API.G_MISS_CHAR
471     OR  g_LIMIT_ATTRS_rec.attribute10 = FND_API.G_MISS_CHAR
472     OR  g_LIMIT_ATTRS_rec.attribute11 = FND_API.G_MISS_CHAR
473     OR  g_LIMIT_ATTRS_rec.attribute12 = FND_API.G_MISS_CHAR
474     OR  g_LIMIT_ATTRS_rec.attribute13 = FND_API.G_MISS_CHAR
475     OR  g_LIMIT_ATTRS_rec.attribute14 = FND_API.G_MISS_CHAR
476     OR  g_LIMIT_ATTRS_rec.attribute15 = FND_API.G_MISS_CHAR
477     OR  g_LIMIT_ATTRS_rec.attribute2 = FND_API.G_MISS_CHAR
478     OR  g_LIMIT_ATTRS_rec.attribute3 = FND_API.G_MISS_CHAR
479     OR  g_LIMIT_ATTRS_rec.attribute4 = FND_API.G_MISS_CHAR
480     OR  g_LIMIT_ATTRS_rec.attribute5 = FND_API.G_MISS_CHAR
481     OR  g_LIMIT_ATTRS_rec.attribute6 = FND_API.G_MISS_CHAR
482     OR  g_LIMIT_ATTRS_rec.attribute7 = FND_API.G_MISS_CHAR
483     OR  g_LIMIT_ATTRS_rec.attribute8 = FND_API.G_MISS_CHAR
484     OR  g_LIMIT_ATTRS_rec.attribute9 = FND_API.G_MISS_CHAR
485     OR  g_LIMIT_ATTRS_rec.comparison_operator_code = FND_API.G_MISS_CHAR
486     OR  g_LIMIT_ATTRS_rec.context = FND_API.G_MISS_CHAR
487     OR  g_LIMIT_ATTRS_rec.created_by = FND_API.G_MISS_NUM
488     OR  g_LIMIT_ATTRS_rec.creation_date = FND_API.G_MISS_DATE
489     OR  g_LIMIT_ATTRS_rec.last_updated_by = FND_API.G_MISS_NUM
490     OR  g_LIMIT_ATTRS_rec.last_update_date = FND_API.G_MISS_DATE
491     OR  g_LIMIT_ATTRS_rec.last_update_login = FND_API.G_MISS_NUM
492     OR  g_LIMIT_ATTRS_rec.limit_attribute = FND_API.G_MISS_CHAR
493     OR  g_LIMIT_ATTRS_rec.limit_attribute_context = FND_API.G_MISS_CHAR
494     OR  g_LIMIT_ATTRS_rec.limit_attribute_id = FND_API.G_MISS_NUM
495     OR  g_LIMIT_ATTRS_rec.limit_attribute_type = FND_API.G_MISS_CHAR
496     OR  g_LIMIT_ATTRS_rec.limit_attr_datatype = FND_API.G_MISS_CHAR
497     OR  g_LIMIT_ATTRS_rec.limit_attr_value = FND_API.G_MISS_CHAR
498     OR  g_LIMIT_ATTRS_rec.limit_id = FND_API.G_MISS_NUM
499     OR  g_LIMIT_ATTRS_rec.program_application_id = FND_API.G_MISS_NUM
500     OR  g_LIMIT_ATTRS_rec.program_id = FND_API.G_MISS_NUM
501     OR  g_LIMIT_ATTRS_rec.program_update_date = FND_API.G_MISS_DATE
502     OR  g_LIMIT_ATTRS_rec.request_id = FND_API.G_MISS_NUM
503     THEN
504 
505         QP_Default_Limit_Attrs.Attributes
506         (   p_LIMIT_ATTRS_rec             => g_LIMIT_ATTRS_rec
507         ,   p_iteration                   => p_iteration + 1
508         ,   x_LIMIT_ATTRS_rec             => x_LIMIT_ATTRS_rec
509         );
510 
511     ELSE
512 
513         --  Done defaulting attributes
514 
515         x_LIMIT_ATTRS_rec := g_LIMIT_ATTRS_rec;
516 
517     END IF;
518 
519 END Attributes;
520 
521 END QP_Default_Limit_Attrs;