DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_CON_UTIL

Source


1 PACKAGE BODY QP_Con_Util AS
2 /* $Header: QPXUCONB.pls 120.2 2006/07/11 22:54:29 hwong noship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Con_Util';
7 
8 --  Procedure Clear_Dependent_Attr
9 
10 PROCEDURE Clear_Dependent_Attr
11 (   p_attr_id                       IN  NUMBER := FND_API.G_MISS_NUM
12 ,   p_CON_rec                       IN  QP_Attributes_PUB.Con_Rec_Type
13 ,   p_old_CON_rec                   IN  QP_Attributes_PUB.Con_Rec_Type :=
14                                         QP_Attributes_PUB.G_MISS_CON_REC
15 ,   x_CON_rec                       OUT NOCOPY /* file.sql.39 change */ QP_Attributes_PUB.Con_Rec_Type
16 )
17 IS
18 l_index                       NUMBER := 0;
19 l_src_attr_tbl                QP_GLOBALS.NUMBER_Tbl_Type;
20 l_dep_attr_tbl                QP_GLOBALS.NUMBER_Tbl_Type;
21 BEGIN
22 
23     --  Load out record
24 
25     x_CON_rec := p_CON_rec;
26 
27     --  If attr_id is missing compare old and new records and for
28     --  every changed attribute clear its dependent fields.
29 
30     IF p_attr_id = FND_API.G_MISS_NUM THEN
31 
32         IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute1,p_old_CON_rec.attribute1)
33         THEN
34             l_index := l_index + 1;
35             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE1;
36         END IF;
37 
38         IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute10,p_old_CON_rec.attribute10)
39         THEN
40             l_index := l_index + 1;
41             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE10;
42         END IF;
43 
44         IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute11,p_old_CON_rec.attribute11)
45         THEN
46             l_index := l_index + 1;
47             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE11;
48         END IF;
49 
50         IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute12,p_old_CON_rec.attribute12)
51         THEN
52             l_index := l_index + 1;
53             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE12;
54         END IF;
55 
56         IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute13,p_old_CON_rec.attribute13)
57         THEN
58             l_index := l_index + 1;
59             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE13;
60         END IF;
61 
62         IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute14,p_old_CON_rec.attribute14)
63         THEN
64             l_index := l_index + 1;
65             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE14;
66         END IF;
67 
68         IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute15,p_old_CON_rec.attribute15)
69         THEN
70             l_index := l_index + 1;
71             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE15;
72         END IF;
73 
74         IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute2,p_old_CON_rec.attribute2)
75         THEN
76             l_index := l_index + 1;
77             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE2;
78         END IF;
79 
80         IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute3,p_old_CON_rec.attribute3)
81         THEN
82             l_index := l_index + 1;
83             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE3;
84         END IF;
85 
86         IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute4,p_old_CON_rec.attribute4)
87         THEN
88             l_index := l_index + 1;
89             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE4;
90         END IF;
91 
92         IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute5,p_old_CON_rec.attribute5)
93         THEN
94             l_index := l_index + 1;
95             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE5;
96         END IF;
97 
98         IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute6,p_old_CON_rec.attribute6)
99         THEN
100             l_index := l_index + 1;
101             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE6;
102         END IF;
103 
104         IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute7,p_old_CON_rec.attribute7)
105         THEN
106             l_index := l_index + 1;
107             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE7;
108         END IF;
109 
110         IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute8,p_old_CON_rec.attribute8)
111         THEN
112             l_index := l_index + 1;
113             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE8;
114         END IF;
115 
116         IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute9,p_old_CON_rec.attribute9)
117         THEN
118             l_index := l_index + 1;
119             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE9;
120         END IF;
121 
122         IF NOT QP_GLOBALS.Equal(p_CON_rec.context,p_old_CON_rec.context)
123         THEN
124             l_index := l_index + 1;
125             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_CONTEXT;
126         END IF;
127 
128         IF NOT QP_GLOBALS.Equal(p_CON_rec.created_by,p_old_CON_rec.created_by)
129         THEN
130             l_index := l_index + 1;
131             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_CREATED_BY;
132         END IF;
133 
134         IF NOT QP_GLOBALS.Equal(p_CON_rec.creation_date,p_old_CON_rec.creation_date)
135         THEN
136             l_index := l_index + 1;
137             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_CREATION_DATE;
138         END IF;
139 
140         IF NOT QP_GLOBALS.Equal(p_CON_rec.enabled_flag,p_old_CON_rec.enabled_flag)
141         THEN
142             l_index := l_index + 1;
143             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ENABLED;
144         END IF;
145 
146         IF NOT QP_GLOBALS.Equal(p_CON_rec.last_updated_by,p_old_CON_rec.last_updated_by)
147         THEN
148             l_index := l_index + 1;
149             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_LAST_UPDATED_BY;
150         END IF;
151 
152         IF NOT QP_GLOBALS.Equal(p_CON_rec.last_update_date,p_old_CON_rec.last_update_date)
153         THEN
154             l_index := l_index + 1;
155             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_LAST_UPDATE_DATE;
156         END IF;
157 
158         IF NOT QP_GLOBALS.Equal(p_CON_rec.last_update_login,p_old_CON_rec.last_update_login)
159         THEN
160             l_index := l_index + 1;
161             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_LAST_UPDATE_LOGIN;
162         END IF;
163 
164         IF NOT QP_GLOBALS.Equal(p_CON_rec.prc_context_code,p_old_CON_rec.prc_context_code)
165         THEN
166             l_index := l_index + 1;
167             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_PRC_CONTEXT_code;
168         END IF;
169 
170         IF NOT QP_GLOBALS.Equal(p_CON_rec.prc_context_id,p_old_CON_rec.prc_context_id)
171         THEN
172             l_index := l_index + 1;
173             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_PRC_CONTEXT;
174         END IF;
175 
176         IF NOT QP_GLOBALS.Equal(p_CON_rec.prc_context_type,p_old_CON_rec.prc_context_type)
177         THEN
178             l_index := l_index + 1;
179             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_PRC_CONTEXT_TYPE;
180         END IF;
181 
182         IF NOT QP_GLOBALS.Equal(p_CON_rec.program_application_id,p_old_CON_rec.program_application_id)
183         THEN
184             l_index := l_index + 1;
185             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_PROGRAM_APPLICATION;
186         END IF;
187 
188         IF NOT QP_GLOBALS.Equal(p_CON_rec.program_id,p_old_CON_rec.program_id)
189         THEN
190             l_index := l_index + 1;
191             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_PROGRAM;
192         END IF;
193 
194         IF NOT QP_GLOBALS.Equal(p_CON_rec.program_update_date,p_old_CON_rec.program_update_date)
195         THEN
196             l_index := l_index + 1;
197             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_PROGRAM_UPDATE_DATE;
198         END IF;
199 
200         IF NOT QP_GLOBALS.Equal(p_CON_rec.seeded_description,p_old_CON_rec.seeded_description)
201         THEN
202             l_index := l_index + 1;
203             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_SEEDED_DESCRIPTION;
204         END IF;
205 
206         IF NOT QP_GLOBALS.Equal(p_CON_rec.seeded_flag,p_old_CON_rec.seeded_flag)
207         THEN
208             l_index := l_index + 1;
209             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_SEEDED;
210         END IF;
211 
212         IF NOT QP_GLOBALS.Equal(p_CON_rec.seeded_prc_context_name,p_old_CON_rec.seeded_prc_context_name)
213         THEN
214             l_index := l_index + 1;
215             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_SEEDED_PRC_CONTEXT_NAME;
216         END IF;
217 
218         IF NOT QP_GLOBALS.Equal(p_CON_rec.user_description,p_old_CON_rec.user_description)
219         THEN
220             l_index := l_index + 1;
221             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_USER_DESCRIPTION;
222         END IF;
223 
224         IF NOT QP_GLOBALS.Equal(p_CON_rec.user_prc_context_name,p_old_CON_rec.user_prc_context_name)
225         THEN
226             l_index := l_index + 1;
227             l_src_attr_tbl(l_index) := QP_CON_UTIL.G_USER_PRC_CONTEXT_NAME;
228         END IF;
229 
230     ELSIF p_attr_id = G_ATTRIBUTE1 THEN
231         l_index := l_index + 1;
232         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE1;
233     ELSIF p_attr_id = G_ATTRIBUTE10 THEN
234         l_index := l_index + 1;
235         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE10;
236     ELSIF p_attr_id = G_ATTRIBUTE11 THEN
237         l_index := l_index + 1;
238         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE11;
239     ELSIF p_attr_id = G_ATTRIBUTE12 THEN
240         l_index := l_index + 1;
241         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE12;
242     ELSIF p_attr_id = G_ATTRIBUTE13 THEN
243         l_index := l_index + 1;
244         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE13;
245     ELSIF p_attr_id = G_ATTRIBUTE14 THEN
246         l_index := l_index + 1;
247         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE14;
248     ELSIF p_attr_id = G_ATTRIBUTE15 THEN
249         l_index := l_index + 1;
250         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE15;
251     ELSIF p_attr_id = G_ATTRIBUTE2 THEN
252         l_index := l_index + 1;
253         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE2;
254     ELSIF p_attr_id = G_ATTRIBUTE3 THEN
255         l_index := l_index + 1;
256         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE3;
257     ELSIF p_attr_id = G_ATTRIBUTE4 THEN
258         l_index := l_index + 1;
259         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE4;
260     ELSIF p_attr_id = G_ATTRIBUTE5 THEN
261         l_index := l_index + 1;
262         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE5;
263     ELSIF p_attr_id = G_ATTRIBUTE6 THEN
264         l_index := l_index + 1;
265         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE6;
266     ELSIF p_attr_id = G_ATTRIBUTE7 THEN
267         l_index := l_index + 1;
268         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE7;
269     ELSIF p_attr_id = G_ATTRIBUTE8 THEN
270         l_index := l_index + 1;
271         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE8;
272     ELSIF p_attr_id = G_ATTRIBUTE9 THEN
273         l_index := l_index + 1;
274         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ATTRIBUTE9;
275     ELSIF p_attr_id = G_CONTEXT THEN
276         l_index := l_index + 1;
277         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_CONTEXT;
278     ELSIF p_attr_id = G_CREATED_BY THEN
279         l_index := l_index + 1;
280         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_CREATED_BY;
281     ELSIF p_attr_id = G_CREATION_DATE THEN
282         l_index := l_index + 1;
283         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_CREATION_DATE;
284     ELSIF p_attr_id = G_ENABLED THEN
285         l_index := l_index + 1;
286         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_ENABLED;
287     ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
288         l_index := l_index + 1;
289         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_LAST_UPDATED_BY;
290     ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
291         l_index := l_index + 1;
292         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_LAST_UPDATE_DATE;
293     ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
294         l_index := l_index + 1;
295         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_LAST_UPDATE_LOGIN;
296     ELSIF p_attr_id = G_PRC_CONTEXT_code THEN
297         l_index := l_index + 1;
298         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_PRC_CONTEXT_code;
299     ELSIF p_attr_id = G_PRC_CONTEXT THEN
300         l_index := l_index + 1;
301         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_PRC_CONTEXT;
302     ELSIF p_attr_id = G_PRC_CONTEXT_TYPE THEN
303         l_index := l_index + 1;
304         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_PRC_CONTEXT_TYPE;
305     ELSIF p_attr_id = G_PROGRAM_APPLICATION THEN
306         l_index := l_index + 1;
307         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_PROGRAM_APPLICATION;
308     ELSIF p_attr_id = G_PROGRAM THEN
309         l_index := l_index + 1;
310         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_PROGRAM;
311     ELSIF p_attr_id = G_PROGRAM_UPDATE_DATE THEN
312         l_index := l_index + 1;
313         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_PROGRAM_UPDATE_DATE;
314     ELSIF p_attr_id = G_SEEDED_DESCRIPTION THEN
315         l_index := l_index + 1;
316         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_SEEDED_DESCRIPTION;
317     ELSIF p_attr_id = G_SEEDED THEN
318         l_index := l_index + 1;
319         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_SEEDED;
320     ELSIF p_attr_id = G_SEEDED_PRC_CONTEXT_NAME THEN
321         l_index := l_index + 1;
322         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_SEEDED_PRC_CONTEXT_NAME;
323     ELSIF p_attr_id = G_USER_DESCRIPTION THEN
324         l_index := l_index + 1;
325         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_USER_DESCRIPTION;
326     ELSIF p_attr_id = G_USER_PRC_CONTEXT_NAME THEN
327         l_index := l_index + 1;
328         l_src_attr_tbl(l_index) := QP_CON_UTIL.G_USER_PRC_CONTEXT_NAME;
329     END IF;
330 
331 END Clear_Dependent_Attr;
332 
333 --  Procedure Apply_Attribute_Changes
334 
335 PROCEDURE Apply_Attribute_Changes
336 (   p_CON_rec                       IN  QP_Attributes_PUB.Con_Rec_Type
337 ,   p_old_CON_rec                   IN  QP_Attributes_PUB.Con_Rec_Type :=
338                                         QP_Attributes_PUB.G_MISS_CON_REC
339 ,   x_CON_rec                       OUT NOCOPY /* file.sql.39 change */ QP_Attributes_PUB.Con_Rec_Type
340 )
341 IS
342 BEGIN
343 
344     --  Load out record
345 
346     x_CON_rec := p_CON_rec;
347 
348     IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute1,p_old_CON_rec.attribute1)
349     THEN
350         NULL;
351     END IF;
352 
353     IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute10,p_old_CON_rec.attribute10)
354     THEN
355         NULL;
356     END IF;
357 
358     IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute11,p_old_CON_rec.attribute11)
359     THEN
360         NULL;
361     END IF;
362 
363     IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute12,p_old_CON_rec.attribute12)
364     THEN
365         NULL;
366     END IF;
367 
368     IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute13,p_old_CON_rec.attribute13)
369     THEN
370         NULL;
371     END IF;
372 
373     IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute14,p_old_CON_rec.attribute14)
374     THEN
375         NULL;
376     END IF;
377 
378     IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute15,p_old_CON_rec.attribute15)
379     THEN
380         NULL;
381     END IF;
382 
383     IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute2,p_old_CON_rec.attribute2)
384     THEN
385         NULL;
386     END IF;
387 
388     IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute3,p_old_CON_rec.attribute3)
389     THEN
390         NULL;
391     END IF;
392 
393     IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute4,p_old_CON_rec.attribute4)
394     THEN
395         NULL;
396     END IF;
397 
398     IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute5,p_old_CON_rec.attribute5)
399     THEN
400         NULL;
401     END IF;
402 
403     IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute6,p_old_CON_rec.attribute6)
404     THEN
405         NULL;
406     END IF;
407 
408     IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute7,p_old_CON_rec.attribute7)
409     THEN
410         NULL;
411     END IF;
412 
413     IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute8,p_old_CON_rec.attribute8)
414     THEN
415         NULL;
416     END IF;
417 
418     IF NOT QP_GLOBALS.Equal(p_CON_rec.attribute9,p_old_CON_rec.attribute9)
419     THEN
420         NULL;
421     END IF;
422 
423     IF NOT QP_GLOBALS.Equal(p_CON_rec.context,p_old_CON_rec.context)
424     THEN
425         NULL;
426     END IF;
427 
428     IF NOT QP_GLOBALS.Equal(p_CON_rec.created_by,p_old_CON_rec.created_by)
429     THEN
430         NULL;
431     END IF;
432 
433     IF NOT QP_GLOBALS.Equal(p_CON_rec.creation_date,p_old_CON_rec.creation_date)
434     THEN
435         NULL;
436     END IF;
437 
438     IF NOT QP_GLOBALS.Equal(p_CON_rec.enabled_flag,p_old_CON_rec.enabled_flag)
439     THEN
440         NULL;
441     END IF;
442 
443     IF NOT QP_GLOBALS.Equal(p_CON_rec.last_updated_by,p_old_CON_rec.last_updated_by)
444     THEN
445         NULL;
446     END IF;
447 
448     IF NOT QP_GLOBALS.Equal(p_CON_rec.last_update_date,p_old_CON_rec.last_update_date)
449     THEN
450         NULL;
451     END IF;
452 
453     IF NOT QP_GLOBALS.Equal(p_CON_rec.last_update_login,p_old_CON_rec.last_update_login)
454     THEN
455         NULL;
456     END IF;
457 
458     IF NOT QP_GLOBALS.Equal(p_CON_rec.prc_context_code,p_old_CON_rec.prc_context_code)
459     THEN
460         NULL;
461     END IF;
462 
463     IF NOT QP_GLOBALS.Equal(p_CON_rec.prc_context_id,p_old_CON_rec.prc_context_id)
464     THEN
465         NULL;
466     END IF;
467 
468     IF NOT QP_GLOBALS.Equal(p_CON_rec.prc_context_type,p_old_CON_rec.prc_context_type)
469     THEN
470         NULL;
471     END IF;
472 
473     IF NOT QP_GLOBALS.Equal(p_CON_rec.program_application_id,p_old_CON_rec.program_application_id)
474     THEN
475         NULL;
476     END IF;
477 
478     IF NOT QP_GLOBALS.Equal(p_CON_rec.program_id,p_old_CON_rec.program_id)
479     THEN
480         NULL;
481     END IF;
482 
483     IF NOT QP_GLOBALS.Equal(p_CON_rec.program_update_date,p_old_CON_rec.program_update_date)
484     THEN
485         NULL;
486     END IF;
487 
488     IF NOT QP_GLOBALS.Equal(p_CON_rec.seeded_description,p_old_CON_rec.seeded_description)
489     THEN
490         NULL;
491     END IF;
492 
493     IF NOT QP_GLOBALS.Equal(p_CON_rec.seeded_flag,p_old_CON_rec.seeded_flag)
494     THEN
495         NULL;
496     END IF;
497 
498     IF NOT QP_GLOBALS.Equal(p_CON_rec.seeded_prc_context_name,p_old_CON_rec.seeded_prc_context_name)
499     THEN
500         NULL;
501     END IF;
502 
503     IF NOT QP_GLOBALS.Equal(p_CON_rec.user_description,p_old_CON_rec.user_description)
504     THEN
505         NULL;
506     END IF;
507 
508     IF NOT QP_GLOBALS.Equal(p_CON_rec.user_prc_context_name,p_old_CON_rec.user_prc_context_name)
509     THEN
510         NULL;
511     END IF;
512 
513 END Apply_Attribute_Changes;
514 
515 --  Function Complete_Record
516 
517 FUNCTION Complete_Record
518 (   p_CON_rec                       IN  QP_Attributes_PUB.Con_Rec_Type
519 ,   p_old_CON_rec                   IN  QP_Attributes_PUB.Con_Rec_Type
520 ) RETURN QP_Attributes_PUB.Con_Rec_Type
521 IS
522 l_CON_rec                     QP_Attributes_PUB.Con_Rec_Type := p_CON_rec;
523 BEGIN
524 
525     IF l_CON_rec.attribute1 = FND_API.G_MISS_CHAR THEN
526         l_CON_rec.attribute1 := p_old_CON_rec.attribute1;
527     END IF;
528 
529     IF l_CON_rec.attribute10 = FND_API.G_MISS_CHAR THEN
530         l_CON_rec.attribute10 := p_old_CON_rec.attribute10;
531     END IF;
532 
533     IF l_CON_rec.attribute11 = FND_API.G_MISS_CHAR THEN
534         l_CON_rec.attribute11 := p_old_CON_rec.attribute11;
535     END IF;
536 
537     IF l_CON_rec.attribute12 = FND_API.G_MISS_CHAR THEN
538         l_CON_rec.attribute12 := p_old_CON_rec.attribute12;
539     END IF;
540 
541     IF l_CON_rec.attribute13 = FND_API.G_MISS_CHAR THEN
542         l_CON_rec.attribute13 := p_old_CON_rec.attribute13;
543     END IF;
544 
545     IF l_CON_rec.attribute14 = FND_API.G_MISS_CHAR THEN
546         l_CON_rec.attribute14 := p_old_CON_rec.attribute14;
547     END IF;
548 
549     IF l_CON_rec.attribute15 = FND_API.G_MISS_CHAR THEN
550         l_CON_rec.attribute15 := p_old_CON_rec.attribute15;
551     END IF;
552 
553     IF l_CON_rec.attribute2 = FND_API.G_MISS_CHAR THEN
554         l_CON_rec.attribute2 := p_old_CON_rec.attribute2;
555     END IF;
556 
557     IF l_CON_rec.attribute3 = FND_API.G_MISS_CHAR THEN
558         l_CON_rec.attribute3 := p_old_CON_rec.attribute3;
559     END IF;
560 
561     IF l_CON_rec.attribute4 = FND_API.G_MISS_CHAR THEN
562         l_CON_rec.attribute4 := p_old_CON_rec.attribute4;
563     END IF;
564 
565     IF l_CON_rec.attribute5 = FND_API.G_MISS_CHAR THEN
566         l_CON_rec.attribute5 := p_old_CON_rec.attribute5;
567     END IF;
568 
569     IF l_CON_rec.attribute6 = FND_API.G_MISS_CHAR THEN
570         l_CON_rec.attribute6 := p_old_CON_rec.attribute6;
571     END IF;
572 
573     IF l_CON_rec.attribute7 = FND_API.G_MISS_CHAR THEN
574         l_CON_rec.attribute7 := p_old_CON_rec.attribute7;
575     END IF;
576 
577     IF l_CON_rec.attribute8 = FND_API.G_MISS_CHAR THEN
578         l_CON_rec.attribute8 := p_old_CON_rec.attribute8;
579     END IF;
580 
581     IF l_CON_rec.attribute9 = FND_API.G_MISS_CHAR THEN
582         l_CON_rec.attribute9 := p_old_CON_rec.attribute9;
583     END IF;
584 
585     IF l_CON_rec.context = FND_API.G_MISS_CHAR THEN
586         l_CON_rec.context := p_old_CON_rec.context;
587     END IF;
588 
589     IF l_CON_rec.created_by = FND_API.G_MISS_NUM THEN
590         l_CON_rec.created_by := p_old_CON_rec.created_by;
591     END IF;
592 
593     IF l_CON_rec.creation_date = FND_API.G_MISS_DATE THEN
594         l_CON_rec.creation_date := p_old_CON_rec.creation_date;
595     END IF;
596 
597     IF l_CON_rec.enabled_flag = FND_API.G_MISS_CHAR THEN
598         l_CON_rec.enabled_flag := p_old_CON_rec.enabled_flag;
599     END IF;
600 
601     IF l_CON_rec.last_updated_by = FND_API.G_MISS_NUM THEN
602         l_CON_rec.last_updated_by := p_old_CON_rec.last_updated_by;
603     END IF;
604 
605     IF l_CON_rec.last_update_date = FND_API.G_MISS_DATE THEN
606         l_CON_rec.last_update_date := p_old_CON_rec.last_update_date;
607     END IF;
608 
609     IF l_CON_rec.last_update_login = FND_API.G_MISS_NUM THEN
610         l_CON_rec.last_update_login := p_old_CON_rec.last_update_login;
611     END IF;
612 
613     IF l_CON_rec.prc_context_code = FND_API.G_MISS_CHAR THEN
614         l_CON_rec.prc_context_code := p_old_CON_rec.prc_context_code;
615     END IF;
616 
617     IF l_CON_rec.prc_context_id = FND_API.G_MISS_NUM THEN
618         l_CON_rec.prc_context_id := p_old_CON_rec.prc_context_id;
619     END IF;
620 
621     IF l_CON_rec.prc_context_type = FND_API.G_MISS_CHAR THEN
622         l_CON_rec.prc_context_type := p_old_CON_rec.prc_context_type;
623     END IF;
624 
625     IF l_CON_rec.program_application_id = FND_API.G_MISS_NUM THEN
626         l_CON_rec.program_application_id := p_old_CON_rec.program_application_id;
627     END IF;
628 
629     IF l_CON_rec.program_id = FND_API.G_MISS_NUM THEN
630         l_CON_rec.program_id := p_old_CON_rec.program_id;
631     END IF;
632 
633     IF l_CON_rec.program_update_date = FND_API.G_MISS_DATE THEN
634         l_CON_rec.program_update_date := p_old_CON_rec.program_update_date;
635     END IF;
636 
637     IF l_CON_rec.seeded_description = FND_API.G_MISS_CHAR THEN
638         l_CON_rec.seeded_description := p_old_CON_rec.seeded_description;
639     END IF;
640 
641     IF l_CON_rec.seeded_flag = FND_API.G_MISS_CHAR THEN
642         l_CON_rec.seeded_flag := p_old_CON_rec.seeded_flag;
643     END IF;
644 
645     IF l_CON_rec.seeded_prc_context_name = FND_API.G_MISS_CHAR THEN
646         l_CON_rec.seeded_prc_context_name := p_old_CON_rec.seeded_prc_context_name;
647     END IF;
648 
649     IF l_CON_rec.user_description = FND_API.G_MISS_CHAR THEN
650         l_CON_rec.user_description := p_old_CON_rec.user_description;
651     END IF;
652 
653     IF l_CON_rec.user_prc_context_name = FND_API.G_MISS_CHAR THEN
654         l_CON_rec.user_prc_context_name := p_old_CON_rec.user_prc_context_name;
655     END IF;
656 
657     RETURN l_CON_rec;
658 
659 END Complete_Record;
660 
661 --  Function Convert_Miss_To_Null
662 
663 FUNCTION Convert_Miss_To_Null
664 (   p_CON_rec                       IN  QP_Attributes_PUB.Con_Rec_Type
665 ) RETURN QP_Attributes_PUB.Con_Rec_Type
666 IS
667 l_CON_rec                     QP_Attributes_PUB.Con_Rec_Type := p_CON_rec;
668 BEGIN
669 
670     IF l_CON_rec.attribute1 = FND_API.G_MISS_CHAR THEN
671         l_CON_rec.attribute1 := NULL;
672     END IF;
673 
674     IF l_CON_rec.attribute10 = FND_API.G_MISS_CHAR THEN
675         l_CON_rec.attribute10 := NULL;
676     END IF;
677 
678     IF l_CON_rec.attribute11 = FND_API.G_MISS_CHAR THEN
679         l_CON_rec.attribute11 := NULL;
680     END IF;
681 
682     IF l_CON_rec.attribute12 = FND_API.G_MISS_CHAR THEN
683         l_CON_rec.attribute12 := NULL;
684     END IF;
685 
686     IF l_CON_rec.attribute13 = FND_API.G_MISS_CHAR THEN
687         l_CON_rec.attribute13 := NULL;
688     END IF;
689 
690     IF l_CON_rec.attribute14 = FND_API.G_MISS_CHAR THEN
691         l_CON_rec.attribute14 := NULL;
692     END IF;
693 
694     IF l_CON_rec.attribute15 = FND_API.G_MISS_CHAR THEN
695         l_CON_rec.attribute15 := NULL;
696     END IF;
697 
698     IF l_CON_rec.attribute2 = FND_API.G_MISS_CHAR THEN
699         l_CON_rec.attribute2 := NULL;
700     END IF;
701 
702     IF l_CON_rec.attribute3 = FND_API.G_MISS_CHAR THEN
703         l_CON_rec.attribute3 := NULL;
704     END IF;
705 
706     IF l_CON_rec.attribute4 = FND_API.G_MISS_CHAR THEN
707         l_CON_rec.attribute4 := NULL;
708     END IF;
709 
710     IF l_CON_rec.attribute5 = FND_API.G_MISS_CHAR THEN
711         l_CON_rec.attribute5 := NULL;
712     END IF;
713 
714     IF l_CON_rec.attribute6 = FND_API.G_MISS_CHAR THEN
715         l_CON_rec.attribute6 := NULL;
716     END IF;
717 
718     IF l_CON_rec.attribute7 = FND_API.G_MISS_CHAR THEN
719         l_CON_rec.attribute7 := NULL;
720     END IF;
721 
722     IF l_CON_rec.attribute8 = FND_API.G_MISS_CHAR THEN
723         l_CON_rec.attribute8 := NULL;
724     END IF;
725 
726     IF l_CON_rec.attribute9 = FND_API.G_MISS_CHAR THEN
727         l_CON_rec.attribute9 := NULL;
728     END IF;
729 
730     IF l_CON_rec.context = FND_API.G_MISS_CHAR THEN
731         l_CON_rec.context := NULL;
732     END IF;
733 
734     IF l_CON_rec.created_by = FND_API.G_MISS_NUM THEN
735         l_CON_rec.created_by := NULL;
736     END IF;
737 
738     IF l_CON_rec.creation_date = FND_API.G_MISS_DATE THEN
739         l_CON_rec.creation_date := NULL;
740     END IF;
741 
742     IF l_CON_rec.enabled_flag = FND_API.G_MISS_CHAR THEN
743         l_CON_rec.enabled_flag := NULL;
744     END IF;
745 
746     IF l_CON_rec.last_updated_by = FND_API.G_MISS_NUM THEN
747         l_CON_rec.last_updated_by := NULL;
748     END IF;
749 
750     IF l_CON_rec.last_update_date = FND_API.G_MISS_DATE THEN
751         l_CON_rec.last_update_date := NULL;
752     END IF;
753 
754     IF l_CON_rec.last_update_login = FND_API.G_MISS_NUM THEN
755         l_CON_rec.last_update_login := NULL;
756     END IF;
757 
758     IF l_CON_rec.prc_context_code = FND_API.G_MISS_CHAR THEN
759         l_CON_rec.prc_context_code := NULL;
760     END IF;
761 
762     IF l_CON_rec.prc_context_id = FND_API.G_MISS_NUM THEN
763         l_CON_rec.prc_context_id := NULL;
764     END IF;
765 
766     IF l_CON_rec.prc_context_type = FND_API.G_MISS_CHAR THEN
767         l_CON_rec.prc_context_type := NULL;
768     END IF;
769 
770     IF l_CON_rec.program_application_id = FND_API.G_MISS_NUM THEN
771         l_CON_rec.program_application_id := NULL;
772     END IF;
773 
774     IF l_CON_rec.program_id = FND_API.G_MISS_NUM THEN
775         l_CON_rec.program_id := NULL;
776     END IF;
777 
778     IF l_CON_rec.program_update_date = FND_API.G_MISS_DATE THEN
779         l_CON_rec.program_update_date := NULL;
780     END IF;
781 
782     IF l_CON_rec.seeded_description = FND_API.G_MISS_CHAR THEN
783         l_CON_rec.seeded_description := NULL;
784     END IF;
785 
786     IF l_CON_rec.seeded_flag = FND_API.G_MISS_CHAR THEN
787         l_CON_rec.seeded_flag := NULL;
788     END IF;
789 
790     IF l_CON_rec.seeded_prc_context_name = FND_API.G_MISS_CHAR THEN
791         l_CON_rec.seeded_prc_context_name := NULL;
792     END IF;
793 
794     IF l_CON_rec.user_description = FND_API.G_MISS_CHAR THEN
795         l_CON_rec.user_description := NULL;
796     END IF;
797 
798     IF l_CON_rec.user_prc_context_name = FND_API.G_MISS_CHAR THEN
799         l_CON_rec.user_prc_context_name := NULL;
800     END IF;
801 
802     RETURN l_CON_rec;
803 
804 END Convert_Miss_To_Null;
805 
806 --  Procedure Update_Row
807 
808 PROCEDURE Update_Row
809 (   p_CON_rec                       IN  QP_Attributes_PUB.Con_Rec_Type
810 )
811 IS
812 BEGIN
813 
814     UPDATE  QP_PRC_CONTEXTS_b
815     SET     ATTRIBUTE1                     = p_CON_rec.attribute1
816     ,       ATTRIBUTE10                    = p_CON_rec.attribute10
817     ,       ATTRIBUTE11                    = p_CON_rec.attribute11
818     ,       ATTRIBUTE12                    = p_CON_rec.attribute12
819     ,       ATTRIBUTE13                    = p_CON_rec.attribute13
820     ,       ATTRIBUTE14                    = p_CON_rec.attribute14
821     ,       ATTRIBUTE15                    = p_CON_rec.attribute15
822     ,       ATTRIBUTE2                     = p_CON_rec.attribute2
823     ,       ATTRIBUTE3                     = p_CON_rec.attribute3
824     ,       ATTRIBUTE4                     = p_CON_rec.attribute4
825     ,       ATTRIBUTE5                     = p_CON_rec.attribute5
826     ,       ATTRIBUTE6                     = p_CON_rec.attribute6
827     ,       ATTRIBUTE7                     = p_CON_rec.attribute7
828     ,       ATTRIBUTE8                     = p_CON_rec.attribute8
829     ,       ATTRIBUTE9                     = p_CON_rec.attribute9
830     ,       CONTEXT                        = p_CON_rec.context
831     ,       CREATED_BY                     = p_CON_rec.created_by
832     ,       CREATION_DATE                  = p_CON_rec.creation_date
833     ,       ENABLED_FLAG                   = p_CON_rec.enabled_flag
834     ,       LAST_UPDATED_BY                = p_CON_rec.last_updated_by
835     ,       LAST_UPDATE_DATE               = p_CON_rec.last_update_date
836     ,       LAST_UPDATE_LOGIN              = p_CON_rec.last_update_login
837     ,       PRC_CONTEXT_CODE               = p_CON_rec.prc_context_code
838     ,       PRC_CONTEXT_ID                 = p_CON_rec.prc_context_id
839     ,       PRC_CONTEXT_TYPE               = p_CON_rec.prc_context_type
840     ,       PROGRAM_APPLICATION_ID         = p_CON_rec.program_application_id
841     ,       PROGRAM_ID                     = p_CON_rec.program_id
842     ,       PROGRAM_UPDATE_DATE            = p_CON_rec.program_update_date
843     ,       SEEDED_FLAG                    = p_CON_rec.seeded_flag
844     WHERE   PRC_CONTEXT_ID = p_CON_rec.prc_context_id ;
845 
846   update  qp_prc_contexts_tl
847       set     created_by                     = p_con_rec.created_by
848       ,       creation_date                  = p_con_rec.creation_date
849       ,       last_updated_by                = p_con_rec.last_updated_by
850       ,       last_update_date               = p_con_rec.last_update_date
851       ,       last_update_login              = p_con_rec.last_update_login
852       ,       seeded_prc_context_name        = p_con_rec.seeded_prc_context_name
853       ,       user_prc_context_name          = p_con_rec.user_prc_context_name
854       ,       seeded_description             = p_con_rec.seeded_description
855       ,       user_description               = p_con_rec.user_description
856       ,       source_lang                    = userenv('LANG')
857       where   prc_context_id = p_con_rec.prc_context_id and
858               source_lang = userenv('LANG');
859 
860     -- Added by Abhijit. Create Pricing Contexts in Flex field
861     --
862     if p_CON_rec.prc_context_type = 'PRICING_ATTRIBUTE' then
863       FND_DESCR_FLEX_CONTEXTS_PKG.UPDATE_ROW(
864          X_APPLICATION_ID => 661, --:CONTEXT.APPLICATION_ID,
865          X_DESCRIPTIVE_FLEXFIELD_NAME => 'QP_ATTR_DEFNS_PRICING',
866          X_DESCRIPTIVE_FLEX_CONTEXT_COD => p_CON_rec.prc_context_code,
867          X_ENABLED_FLAG => p_CON_rec.ENABLED_FLAG,
868          X_GLOBAL_FLAG => 'N',
869          X_DESCRIPTION => substr(p_CON_rec.user_description,1,240),
870          X_DESCRIPTIVE_FLEX_CONTEXT_NAM => substr(p_CON_rec.user_prc_context_name,1,80),
871          X_LAST_UPDATE_DATE => p_CON_rec.LAST_UPDATE_DATE,
872          X_LAST_UPDATED_BY => p_CON_rec.LAST_UPDATED_BY,
873          X_LAST_UPDATE_LOGIN => p_CON_rec.LAST_UPDATE_LOGIN);
874     end if;
875 
876 EXCEPTION
877 
878     WHEN OTHERS THEN
879 
880         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
881         THEN
882             OE_MSG_PUB.Add_Exc_Msg
883             (   G_PKG_NAME
884             ,   'Update_Row'
885             );
886         END IF;
887 
888         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
889 
890 END Update_Row;
891 
892 --  Procedure Insert_Row
893 
894 PROCEDURE Insert_Row
895 (   p_CON_rec                       IN  QP_Attributes_PUB.Con_Rec_Type
896 )
897 IS
898    l_row_id    varchar2(25);
899 BEGIN
900 
901 /*
902     oe_debug_pub.add('reached here_b ......................................');
903     oe_debug_pub.add('prc_context_id=' || p_CON_rec.prc_context_id);
904     oe_debug_pub.add('prc_context_code=' || p_CON_rec.prc_context_code);
905     oe_debug_pub.add('prc_context_type=' || p_CON_rec.prc_context_type);
906     oe_debug_pub.add('seeded_flag=' || p_CON_rec.seeded_flag);
907     oe_debug_pub.add('enabled_flag=' || p_CON_rec.enabled_flag);
908     oe_debug_pub.add('created_by=' || p_CON_rec.created_by);
909     oe_debug_pub.add('creation_date=' || p_CON_rec.creation_date);
910     oe_debug_pub.add('last_update_date=' || p_CON_rec.last_update_date);
911     oe_debug_pub.add('last_updated_by=' || p_CON_rec.last_updated_by);
912 */
913 
914     INSERT  INTO QP_PRC_CONTEXTS_b
915     (       ATTRIBUTE1
916     ,       ATTRIBUTE10
917     ,       ATTRIBUTE11
918     ,       ATTRIBUTE12
919     ,       ATTRIBUTE13
920     ,       ATTRIBUTE14
921     ,       ATTRIBUTE15
922     ,       ATTRIBUTE2
923     ,       ATTRIBUTE3
924     ,       ATTRIBUTE4
925     ,       ATTRIBUTE5
926     ,       ATTRIBUTE6
927     ,       ATTRIBUTE7
928     ,       ATTRIBUTE8
929     ,       ATTRIBUTE9
930     ,       CONTEXT
931     ,       CREATED_BY
932     ,       CREATION_DATE
933     ,       ENABLED_FLAG
934     ,       LAST_UPDATED_BY
935     ,       LAST_UPDATE_DATE
936     ,       LAST_UPDATE_LOGIN
937     ,       PRC_CONTEXT_code
938     ,       PRC_CONTEXT_ID
939     ,       PRC_CONTEXT_TYPE
940     ,       PROGRAM_APPLICATION_ID
941     ,       PROGRAM_ID
942     ,       PROGRAM_UPDATE_DATE
943     ,       SEEDED_FLAG
944     )
945     VALUES
946     (       p_CON_rec.attribute1
947     ,       p_CON_rec.attribute10
948     ,       p_CON_rec.attribute11
949     ,       p_CON_rec.attribute12
950     ,       p_CON_rec.attribute13
951     ,       p_CON_rec.attribute14
952     ,       p_CON_rec.attribute15
953     ,       p_CON_rec.attribute2
954     ,       p_CON_rec.attribute3
955     ,       p_CON_rec.attribute4
956     ,       p_CON_rec.attribute5
957     ,       p_CON_rec.attribute6
958     ,       p_CON_rec.attribute7
959     ,       p_CON_rec.attribute8
960     ,       p_CON_rec.attribute9
961     ,       p_CON_rec.context
962     ,       p_CON_rec.created_by
963     ,       p_CON_rec.creation_date
964     ,       p_CON_rec.enabled_flag
965     ,       p_CON_rec.last_updated_by
966     ,       p_CON_rec.last_update_date
967     ,       p_CON_rec.last_update_login
968     ,       p_CON_rec.prc_context_code
969     ,       p_CON_rec.prc_context_id
970     ,       p_CON_rec.prc_context_type
971     ,       p_CON_rec.program_application_id
972     ,       p_CON_rec.program_id
973     ,       p_CON_rec.program_update_date
974     ,       p_CON_rec.seeded_flag
975     );
976 
977     INSERT  INTO qp_prc_contexts_tl
978     (       CREATED_BY
979     ,       CREATION_DATE
980     ,       LAST_UPDATED_BY
981     ,       LAST_UPDATE_DATE
982     ,       LAST_UPDATE_LOGIN
983     ,       prc_context_id
984     ,       seeded_prc_context_name
985     ,       user_prc_context_name
986     ,       seeded_description
987     ,       user_description
988     ,       language
989     ,       source_lang
990     )
991     SELECT  p_CON_rec.created_by
992     ,       p_CON_rec.creation_date
993     ,       p_CON_rec.last_updated_by
994     ,       p_CON_rec.last_update_date
995     ,       p_CON_rec.last_update_login
996     ,       p_CON_rec.prc_context_id
997     ,       p_CON_rec.seeded_prc_context_name
998     ,       p_CON_rec.user_prc_context_name
999     ,       p_CON_rec.seeded_description
1000     ,       p_CON_rec.user_description
1001     ,       L.language_code
1002     ,       userenv('LANG')
1003     from  FND_LANGUAGES  L
1004     where  L.INSTALLED_FLAG in ('I', 'B')
1005     and    not exists
1006            ( select NULL
1007              from  qp_prc_contexts_tl T
1008              where  T.prc_context_id = p_CON_rec.prc_context_id
1009              and  T.LANGUAGE = L.LANGUAGE_CODE );
1010 
1011     -- Abhijit : Add Pricing Attribute type Context to flexfield.
1012     if p_CON_rec.prc_context_type = 'PRICING_ATTRIBUTE' then
1013       FND_DESCR_FLEX_CONTEXTS_PKG.INSERT_ROW(
1014           X_ROWID => l_row_id,
1015           X_APPLICATION_ID => 661, --:CONTEXT.APPLICATION_ID,
1016           X_DESCRIPTIVE_FLEXFIELD_NAME => 'QP_ATTR_DEFNS_PRICING',
1017           X_DESCRIPTIVE_FLEX_CONTEXT_COD => p_CON_rec.prc_context_code,
1018           X_ENABLED_FLAG => p_CON_rec.ENABLED_FLAG,
1019           X_GLOBAL_FLAG => 'N',
1020           X_DESCRIPTION => substr(p_CON_rec.user_description,1,240),
1021           X_DESCRIPTIVE_FLEX_CONTEXT_NAM => substr(p_CON_rec.user_prc_context_name,1,80),
1022           X_CREATION_DATE => p_CON_rec.CREATION_DATE,
1023           X_CREATED_BY => p_CON_rec.CREATED_BY,
1024           X_LAST_UPDATE_DATE => p_CON_rec.LAST_UPDATE_DATE,
1025           X_LAST_UPDATED_BY => p_CON_rec.LAST_UPDATED_BY,
1026           X_LAST_UPDATE_LOGIN => p_CON_rec.LAST_UPDATE_LOGIN);
1027     end if;
1028 
1029 EXCEPTION
1030 
1031     WHEN OTHERS THEN
1032 
1033         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1034         THEN
1035             OE_MSG_PUB.Add_Exc_Msg
1036             (   G_PKG_NAME
1037             ,   'Insert_Row'
1038             );
1039         END IF;
1040 
1041         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1042 
1043 END Insert_Row;
1044 
1045 --  Procedure Delete_Row
1046 
1047 PROCEDURE Delete_Row
1048 (   p_prc_context_id                IN  NUMBER
1049 )
1050 IS
1051    l_qp_prc_contexts_rec     qp_prc_contexts_b%rowtype;
1052 BEGIN
1053       select *
1054       into l_qp_prc_contexts_rec
1055       from qp_prc_contexts_b
1056       where prc_context_id =  p_prc_context_id;
1057       --
1058     DELETE  FROM QP_PRC_CONTEXTS_tl
1059     WHERE   PRC_CONTEXT_ID = p_prc_context_id ;
1060     DELETE  FROM QP_PRC_CONTEXTS_b
1061     WHERE   PRC_CONTEXT_ID = p_prc_context_id ;
1062 
1063     -- Added by Abhijit. Create Pricing Contexts in Flex field
1064     --
1065     if l_qp_prc_contexts_rec.prc_context_type = 'PRICING_ATTRIBUTE' and
1066        l_qp_prc_contexts_rec.seeded_flag = 'N' then
1067 
1068       begin
1069         FND_DESCR_FLEX_CONTEXTS_PKG.DELETE_ROW(
1070           X_APPLICATION_ID => 661, --:CONTEXT.APPLICATION_ID,
1071           X_DESCRIPTIVE_FLEXFIELD_NAME => 'QP_ATTR_DEFNS_PRICING',
1072           X_DESCRIPTIVE_FLEX_CONTEXT_COD => l_qp_prc_contexts_rec.prc_context_code);
1073       exception
1074         when no_data_found then
1075           null;
1076       end;
1077     end if;
1078 
1079 EXCEPTION
1080 
1081     WHEN OTHERS THEN
1082 
1083         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1084         THEN
1085             OE_MSG_PUB.Add_Exc_Msg
1086             (   G_PKG_NAME
1087             ,   'Delete_Row'
1088             );
1089         END IF;
1090 
1091         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1092 
1093 END Delete_Row;
1094 
1095 --  Function Query_Row
1096 
1097 FUNCTION Query_Row
1098 (   p_prc_context_id                IN  NUMBER
1099 ) RETURN QP_Attributes_PUB.Con_Rec_Type
1100 IS
1101 l_CON_rec                     QP_Attributes_PUB.Con_Rec_Type;
1102 BEGIN
1103 
1104     SELECT  ATTRIBUTE1
1105     ,       ATTRIBUTE10
1106     ,       ATTRIBUTE11
1107     ,       ATTRIBUTE12
1108     ,       ATTRIBUTE13
1109     ,       ATTRIBUTE14
1110     ,       ATTRIBUTE15
1111     ,       ATTRIBUTE2
1112     ,       ATTRIBUTE3
1113     ,       ATTRIBUTE4
1114     ,       ATTRIBUTE5
1115     ,       ATTRIBUTE6
1116     ,       ATTRIBUTE7
1117     ,       ATTRIBUTE8
1118     ,       ATTRIBUTE9
1119     ,       CONTEXT
1120     ,       CREATED_BY
1121     ,       CREATION_DATE
1122     ,       ENABLED_FLAG
1123     ,       LAST_UPDATED_BY
1124     ,       LAST_UPDATE_DATE
1125     ,       LAST_UPDATE_LOGIN
1126     ,       PRC_CONTEXT_code
1127     ,       PRC_CONTEXT_ID
1128     ,       PRC_CONTEXT_TYPE
1129     ,       PROGRAM_APPLICATION_ID
1130     ,       PROGRAM_ID
1131     ,       PROGRAM_UPDATE_DATE
1132     ,       SEEDED_DESCRIPTION
1133     ,       SEEDED_FLAG
1134     ,       SEEDED_PRC_CONTEXT_NAME
1135     ,       USER_DESCRIPTION
1136     ,       USER_PRC_CONTEXT_NAME
1137     INTO    l_CON_rec.attribute1
1138     ,       l_CON_rec.attribute10
1139     ,       l_CON_rec.attribute11
1140     ,       l_CON_rec.attribute12
1141     ,       l_CON_rec.attribute13
1142     ,       l_CON_rec.attribute14
1143     ,       l_CON_rec.attribute15
1144     ,       l_CON_rec.attribute2
1145     ,       l_CON_rec.attribute3
1146     ,       l_CON_rec.attribute4
1147     ,       l_CON_rec.attribute5
1148     ,       l_CON_rec.attribute6
1149     ,       l_CON_rec.attribute7
1150     ,       l_CON_rec.attribute8
1151     ,       l_CON_rec.attribute9
1152     ,       l_CON_rec.context
1153     ,       l_CON_rec.created_by
1154     ,       l_CON_rec.creation_date
1155     ,       l_CON_rec.enabled_flag
1156     ,       l_CON_rec.last_updated_by
1157     ,       l_CON_rec.last_update_date
1158     ,       l_CON_rec.last_update_login
1159     ,       l_CON_rec.prc_context_code
1160     ,       l_CON_rec.prc_context_id
1161     ,       l_CON_rec.prc_context_type
1162     ,       l_CON_rec.program_application_id
1163     ,       l_CON_rec.program_id
1164     ,       l_CON_rec.program_update_date
1165     ,       l_CON_rec.seeded_description
1166     ,       l_CON_rec.seeded_flag
1167     ,       l_CON_rec.seeded_prc_context_name
1168     ,       l_CON_rec.user_description
1169     ,       l_CON_rec.user_prc_context_name
1170     FROM    QP_PRC_CONTEXTS_V
1171     WHERE   PRC_CONTEXT_ID = p_prc_context_id
1172     ;
1173 
1174     RETURN l_CON_rec;
1175 
1176 EXCEPTION
1177 
1178     WHEN OTHERS THEN
1179 
1180         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1181         THEN
1182             OE_MSG_PUB.Add_Exc_Msg
1183             (   G_PKG_NAME
1184             ,   'Query_Row'
1185             );
1186         END IF;
1187 
1188         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1189 
1190 END Query_Row;
1191 
1192 --  Procedure       lock_Row
1193 --
1194 
1195 PROCEDURE Lock_Row
1196 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1197 ,   p_CON_rec                       IN  QP_Attributes_PUB.Con_Rec_Type
1198 ,   x_CON_rec                       OUT NOCOPY /* file.sql.39 change */ QP_Attributes_PUB.Con_Rec_Type
1199 )
1200 IS
1201 l_CON_rec                     QP_Attributes_PUB.Con_Rec_Type;
1202 BEGIN
1203 
1204     SELECT  ATTRIBUTE1
1205     ,       ATTRIBUTE10
1206     ,       ATTRIBUTE11
1207     ,       ATTRIBUTE12
1208     ,       ATTRIBUTE13
1209     ,       ATTRIBUTE14
1210     ,       ATTRIBUTE15
1211     ,       ATTRIBUTE2
1212     ,       ATTRIBUTE3
1213     ,       ATTRIBUTE4
1214     ,       ATTRIBUTE5
1215     ,       ATTRIBUTE6
1216     ,       ATTRIBUTE7
1217     ,       ATTRIBUTE8
1218     ,       ATTRIBUTE9
1219     ,       CONTEXT
1220     ,       CREATED_BY
1221     ,       CREATION_DATE
1222     ,       ENABLED_FLAG
1223     ,       LAST_UPDATED_BY
1224     ,       LAST_UPDATE_DATE
1225     ,       LAST_UPDATE_LOGIN
1226     ,       PRC_CONTEXT_code
1227     ,       PRC_CONTEXT_ID
1228     ,       PRC_CONTEXT_TYPE
1229     ,       PROGRAM_APPLICATION_ID
1230     ,       PROGRAM_ID
1231     ,       PROGRAM_UPDATE_DATE
1232     ,       SEEDED_DESCRIPTION
1233     ,       SEEDED_FLAG
1234     ,       SEEDED_PRC_CONTEXT_NAME
1235     ,       USER_DESCRIPTION
1236     ,       USER_PRC_CONTEXT_NAME
1237     INTO    l_CON_rec.attribute1
1238     ,       l_CON_rec.attribute10
1239     ,       l_CON_rec.attribute11
1240     ,       l_CON_rec.attribute12
1241     ,       l_CON_rec.attribute13
1242     ,       l_CON_rec.attribute14
1243     ,       l_CON_rec.attribute15
1244     ,       l_CON_rec.attribute2
1245     ,       l_CON_rec.attribute3
1246     ,       l_CON_rec.attribute4
1247     ,       l_CON_rec.attribute5
1248     ,       l_CON_rec.attribute6
1249     ,       l_CON_rec.attribute7
1250     ,       l_CON_rec.attribute8
1251     ,       l_CON_rec.attribute9
1252     ,       l_CON_rec.context
1253     ,       l_CON_rec.created_by
1254     ,       l_CON_rec.creation_date
1255     ,       l_CON_rec.enabled_flag
1256     ,       l_CON_rec.last_updated_by
1257     ,       l_CON_rec.last_update_date
1258     ,       l_CON_rec.last_update_login
1259     ,       l_CON_rec.prc_context_code
1260     ,       l_CON_rec.prc_context_id
1261     ,       l_CON_rec.prc_context_type
1262     ,       l_CON_rec.program_application_id
1263     ,       l_CON_rec.program_id
1264     ,       l_CON_rec.program_update_date
1265     ,       l_CON_rec.seeded_description
1266     ,       l_CON_rec.seeded_flag
1267     ,       l_CON_rec.seeded_prc_context_name
1268     ,       l_CON_rec.user_description
1269     ,       l_CON_rec.user_prc_context_name
1270     FROM    QP_PRC_CONTEXTS_V
1271     WHERE   PRC_CONTEXT_ID = p_CON_rec.prc_context_id
1272         FOR UPDATE NOWAIT;
1273 
1274     --  Row locked. Compare IN attributes to DB attributes.
1275 
1276     IF  QP_GLOBALS.Equal(p_CON_rec.attribute1,
1277                          l_CON_rec.attribute1)
1278     AND QP_GLOBALS.Equal(p_CON_rec.attribute10,
1279                          l_CON_rec.attribute10)
1280     AND QP_GLOBALS.Equal(p_CON_rec.attribute11,
1281                          l_CON_rec.attribute11)
1282     AND QP_GLOBALS.Equal(p_CON_rec.attribute12,
1283                          l_CON_rec.attribute12)
1284     AND QP_GLOBALS.Equal(p_CON_rec.attribute13,
1285                          l_CON_rec.attribute13)
1286     AND QP_GLOBALS.Equal(p_CON_rec.attribute14,
1287                          l_CON_rec.attribute14)
1288     AND QP_GLOBALS.Equal(p_CON_rec.attribute15,
1289                          l_CON_rec.attribute15)
1290     AND QP_GLOBALS.Equal(p_CON_rec.attribute2,
1291                          l_CON_rec.attribute2)
1292     AND QP_GLOBALS.Equal(p_CON_rec.attribute3,
1293                          l_CON_rec.attribute3)
1294     AND QP_GLOBALS.Equal(p_CON_rec.attribute4,
1295                          l_CON_rec.attribute4)
1296     AND QP_GLOBALS.Equal(p_CON_rec.attribute5,
1297                          l_CON_rec.attribute5)
1298     AND QP_GLOBALS.Equal(p_CON_rec.attribute6,
1299                          l_CON_rec.attribute6)
1300     AND QP_GLOBALS.Equal(p_CON_rec.attribute7,
1301                          l_CON_rec.attribute7)
1302     AND QP_GLOBALS.Equal(p_CON_rec.attribute8,
1303                          l_CON_rec.attribute8)
1304     AND QP_GLOBALS.Equal(p_CON_rec.attribute9,
1305                          l_CON_rec.attribute9)
1306     AND QP_GLOBALS.Equal(p_CON_rec.context,
1307                          l_CON_rec.context)
1308     AND QP_GLOBALS.Equal(p_CON_rec.created_by,
1309                          l_CON_rec.created_by)
1310     AND QP_GLOBALS.Equal(p_CON_rec.creation_date,
1311                          l_CON_rec.creation_date)
1312     AND QP_GLOBALS.Equal(p_CON_rec.enabled_flag,
1313                          l_CON_rec.enabled_flag)
1314     AND QP_GLOBALS.Equal(p_CON_rec.last_updated_by,
1315                          l_CON_rec.last_updated_by)
1316     AND QP_GLOBALS.Equal(p_CON_rec.last_update_date,
1317                          l_CON_rec.last_update_date)
1318     AND QP_GLOBALS.Equal(p_CON_rec.last_update_login,
1319                          l_CON_rec.last_update_login)
1320     AND QP_GLOBALS.Equal(p_CON_rec.prc_context_code,
1321                          l_CON_rec.prc_context_code)
1322     AND QP_GLOBALS.Equal(p_CON_rec.prc_context_id,
1323                          l_CON_rec.prc_context_id)
1324     AND QP_GLOBALS.Equal(p_CON_rec.prc_context_type,
1325                          l_CON_rec.prc_context_type)
1326     AND QP_GLOBALS.Equal(p_CON_rec.program_application_id,
1327                          l_CON_rec.program_application_id)
1328     AND QP_GLOBALS.Equal(p_CON_rec.program_id,
1329                          l_CON_rec.program_id)
1330     AND QP_GLOBALS.Equal(p_CON_rec.program_update_date,
1331                          l_CON_rec.program_update_date)
1332     AND QP_GLOBALS.Equal(p_CON_rec.seeded_description,
1333                          l_CON_rec.seeded_description)
1334     AND QP_GLOBALS.Equal(p_CON_rec.seeded_flag,
1335                          l_CON_rec.seeded_flag)
1336     AND QP_GLOBALS.Equal(p_CON_rec.seeded_prc_context_name,
1337                          l_CON_rec.seeded_prc_context_name)
1338     AND QP_GLOBALS.Equal(p_CON_rec.user_description,
1339                          l_CON_rec.user_description)
1340     AND QP_GLOBALS.Equal(p_CON_rec.user_prc_context_name,
1341                          l_CON_rec.user_prc_context_name)
1342     THEN
1343 
1344         --  Row has not changed. Set out parameter.
1345 
1346         x_CON_rec                      := l_CON_rec;
1347 
1348         --  Set return status
1349 
1350         x_return_status                := FND_API.G_RET_STS_SUCCESS;
1351         x_CON_rec.return_status        := FND_API.G_RET_STS_SUCCESS;
1352 
1353     ELSE
1354 
1355         --  Row has changed by another user.
1356 
1357         x_return_status                := FND_API.G_RET_STS_ERROR;
1358         x_CON_rec.return_status        := FND_API.G_RET_STS_ERROR;
1359 
1360         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1361         THEN
1362 
1363             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_CHANGED');
1364             OE_MSG_PUB.Add;
1365 
1366         END IF;
1367 
1368     END IF;
1369 
1370 EXCEPTION
1371 
1372     WHEN NO_DATA_FOUND THEN
1373 
1374         x_return_status                := FND_API.G_RET_STS_ERROR;
1375         x_CON_rec.return_status        := FND_API.G_RET_STS_ERROR;
1376 
1377         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1378         THEN
1379 
1380             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_DELETED');
1381             OE_MSG_PUB.Add;
1382 
1383         END IF;
1384     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
1385 
1386         x_return_status                := FND_API.G_RET_STS_ERROR;
1387         x_CON_rec.return_status        := FND_API.G_RET_STS_ERROR;
1388 
1389         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1390         THEN
1391 
1392             FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_ALREADY_LOCKED');
1393             OE_MSG_PUB.Add;
1394 
1395         END IF;
1396     WHEN OTHERS THEN
1397 
1398         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
1399         x_CON_rec.return_status        := FND_API.G_RET_STS_UNEXP_ERROR;
1400 
1401         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1402         THEN
1403             OE_MSG_PUB.Add_Exc_Msg
1404             (   G_PKG_NAME
1405             ,   'Lock_Row'
1406             );
1407         END IF;
1408 
1409 END Lock_Row;
1410 
1411 --  Function Get_Values
1412 
1413 FUNCTION Get_Values
1414 (   p_CON_rec                       IN  QP_Attributes_PUB.Con_Rec_Type
1415 ,   p_old_CON_rec                   IN  QP_Attributes_PUB.Con_Rec_Type :=
1416                                         QP_Attributes_PUB.G_MISS_CON_REC
1417 ) RETURN QP_Attributes_PUB.Con_Val_Rec_Type
1418 IS
1419 l_CON_val_rec                 QP_Attributes_PUB.Con_Val_Rec_Type;
1420 BEGIN
1421 
1422     IF p_CON_rec.enabled_flag IS NOT NULL AND
1423         p_CON_rec.enabled_flag <> FND_API.G_MISS_CHAR AND
1424         NOT QP_GLOBALS.Equal(p_CON_rec.enabled_flag,
1425         p_old_CON_rec.enabled_flag)
1426     THEN
1427         l_CON_val_rec.enabled := QP_Id_To_Value.Enabled
1428         (   p_enabled_flag                => p_CON_rec.enabled_flag
1429         );
1430     END IF;
1431 
1432     IF p_CON_rec.prc_context_id IS NOT NULL AND
1433         p_CON_rec.prc_context_id <> FND_API.G_MISS_NUM AND
1434         NOT QP_GLOBALS.Equal(p_CON_rec.prc_context_id,
1435         p_old_CON_rec.prc_context_id)
1436     THEN
1437         l_CON_val_rec.prc_context := QP_Id_To_Value.Prc_Context
1438         (   p_prc_context_id              => p_CON_rec.prc_context_id
1439         );
1440     END IF;
1441 
1442     IF p_CON_rec.seeded_flag IS NOT NULL AND
1443         p_CON_rec.seeded_flag <> FND_API.G_MISS_CHAR AND
1444         NOT QP_GLOBALS.Equal(p_CON_rec.seeded_flag,
1445         p_old_CON_rec.seeded_flag)
1446     THEN
1447         l_CON_val_rec.seeded := QP_Id_To_Value.Seeded
1448         (   p_seeded_flag                 => p_CON_rec.seeded_flag
1449         );
1450     END IF;
1451 
1452     RETURN l_CON_val_rec;
1453 
1454 END Get_Values;
1455 
1456 --  Function Get_Ids
1457 
1458 FUNCTION Get_Ids
1459 (   p_CON_rec                       IN  QP_Attributes_PUB.Con_Rec_Type
1460 ,   p_CON_val_rec                   IN  QP_Attributes_PUB.Con_Val_Rec_Type
1461 ) RETURN QP_Attributes_PUB.Con_Rec_Type
1462 IS
1463 l_CON_rec                     QP_Attributes_PUB.Con_Rec_Type;
1464 BEGIN
1465 
1466     --  initialize  return_status.
1467 
1468     l_CON_rec.return_status := FND_API.G_RET_STS_SUCCESS;
1469 
1470     --  initialize l_CON_rec.
1471 
1472     l_CON_rec := p_CON_rec;
1473 
1474     IF  p_CON_val_rec.enabled <> FND_API.G_MISS_CHAR
1475     THEN
1476 
1477         IF p_CON_rec.enabled_flag <> FND_API.G_MISS_CHAR THEN
1478 
1479             l_CON_rec.enabled_flag := p_CON_rec.enabled_flag;
1480 
1481             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1482             THEN
1483 
1484                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1485                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','enabled');
1486                 OE_MSG_PUB.Add;
1487 
1488             END IF;
1489 
1490         ELSE
1491 
1492             l_CON_rec.enabled_flag := QP_Value_To_Id.enabled
1493             (   p_enabled                     => p_CON_val_rec.enabled
1494             );
1495 
1496             IF l_CON_rec.enabled_flag = FND_API.G_MISS_CHAR THEN
1497                 l_CON_rec.return_status := FND_API.G_RET_STS_ERROR;
1498             END IF;
1499 
1500         END IF;
1501 
1502     END IF;
1503 
1504     IF  p_CON_val_rec.prc_context <> FND_API.G_MISS_CHAR
1505     THEN
1506 
1507         IF p_CON_rec.prc_context_id <> FND_API.G_MISS_NUM THEN
1508 
1509             l_CON_rec.prc_context_id := p_CON_rec.prc_context_id;
1510 
1511             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1512             THEN
1513 
1514                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1515                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','prc_context');
1516                 OE_MSG_PUB.Add;
1517 
1518             END IF;
1519 
1520         ELSE
1521 
1522             l_CON_rec.prc_context_id := QP_Value_To_Id.prc_context
1523             (   p_prc_context                 => p_CON_val_rec.prc_context
1524             );
1525 
1526             IF l_CON_rec.prc_context_id = FND_API.G_MISS_NUM THEN
1527                 l_CON_rec.return_status := FND_API.G_RET_STS_ERROR;
1528             END IF;
1529 
1530         END IF;
1531 
1532     END IF;
1533 
1534     IF  p_CON_val_rec.seeded <> FND_API.G_MISS_CHAR
1535     THEN
1536 
1537         IF p_CON_rec.seeded_flag <> FND_API.G_MISS_CHAR THEN
1538 
1539             l_CON_rec.seeded_flag := p_CON_rec.seeded_flag;
1540 
1541             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1542             THEN
1543 
1544                 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
1545                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','seeded');
1546                 OE_MSG_PUB.Add;
1547 
1548             END IF;
1549 
1550         ELSE
1551 
1552             l_CON_rec.seeded_flag := QP_Value_To_Id.seeded
1553             (   p_seeded                      => p_CON_val_rec.seeded
1554             );
1555 
1556             IF l_CON_rec.seeded_flag = FND_API.G_MISS_CHAR THEN
1557                 l_CON_rec.return_status := FND_API.G_RET_STS_ERROR;
1558             END IF;
1559 
1560         END IF;
1561 
1562     END IF;
1563 
1564 
1565     RETURN l_CON_rec;
1566 
1567 END Get_Ids;
1568 
1569 END QP_Con_Util;