[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;