DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_DEFAULT_PSG

Source


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