DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_PRICE_LIST_UTIL

Source


1 PACKAGE BODY OE_Price_List_Util AS
2 /* $Header: OEXUPRHB.pls 120.2 2006/03/21 11:20:46 rnayani noship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'OE_Price_List_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_PRICE_LIST_rec                IN  OE_Price_List_PUB.Price_List_Rec_Type
13 ,   p_old_PRICE_LIST_rec            IN  OE_Price_List_PUB.Price_List_Rec_Type :=
14                                         OE_Price_List_PUB.G_MISS_PRICE_LIST_REC
15 ,   x_PRICE_LIST_rec                OUT NOCOPY /* file.sql.39 change */ OE_Price_List_PUB.Price_List_Rec_Type
16 )
17 IS
18 l_index                       NUMBER := 0;
19 l_src_attr_tbl                OE_GLOBALS.NUMBER_Tbl_Type;
20 l_dep_attr_tbl                OE_GLOBALS.NUMBER_Tbl_Type;
21 BEGIN
22 
23     --  Load out record
24 
25     x_PRICE_LIST_rec := p_PRICE_LIST_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 OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute1,p_old_PRICE_LIST_rec.attribute1)
33         THEN
34             l_index := l_index + 1;
35             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE1;
36         END IF;
37 
38         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute10,p_old_PRICE_LIST_rec.attribute10)
39         THEN
40             l_index := l_index + 1;
41             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE10;
42         END IF;
43 
44         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute11,p_old_PRICE_LIST_rec.attribute11)
45         THEN
46             l_index := l_index + 1;
47             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE11;
48         END IF;
49 
50         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute12,p_old_PRICE_LIST_rec.attribute12)
51         THEN
52             l_index := l_index + 1;
53             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE12;
54         END IF;
55 
56         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute13,p_old_PRICE_LIST_rec.attribute13)
57         THEN
58             l_index := l_index + 1;
59             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE13;
60         END IF;
61 
62         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute14,p_old_PRICE_LIST_rec.attribute14)
63         THEN
64             l_index := l_index + 1;
68         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute15,p_old_PRICE_LIST_rec.attribute15)
65             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE14;
66         END IF;
67 
69         THEN
70             l_index := l_index + 1;
71             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE15;
72         END IF;
73 
74         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute2,p_old_PRICE_LIST_rec.attribute2)
75         THEN
76             l_index := l_index + 1;
77             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE2;
78         END IF;
79 
80         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute3,p_old_PRICE_LIST_rec.attribute3)
81         THEN
82             l_index := l_index + 1;
83             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE3;
84         END IF;
85 
86         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute4,p_old_PRICE_LIST_rec.attribute4)
87         THEN
88             l_index := l_index + 1;
89             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE4;
90         END IF;
91 
92         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute5,p_old_PRICE_LIST_rec.attribute5)
93         THEN
94             l_index := l_index + 1;
95             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE5;
96         END IF;
97 
98         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute6,p_old_PRICE_LIST_rec.attribute6)
99         THEN
100             l_index := l_index + 1;
101             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE6;
102         END IF;
103 
104         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute7,p_old_PRICE_LIST_rec.attribute7)
105         THEN
106             l_index := l_index + 1;
107             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE7;
108         END IF;
109 
110         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute8,p_old_PRICE_LIST_rec.attribute8)
111         THEN
112             l_index := l_index + 1;
113             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE8;
114         END IF;
115 
116         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute9,p_old_PRICE_LIST_rec.attribute9)
117         THEN
118             l_index := l_index + 1;
119             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE9;
120         END IF;
121 
122         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.comments,p_old_PRICE_LIST_rec.comments)
123         THEN
124             l_index := l_index + 1;
125             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_COMMENTS;
126         END IF;
127 
128         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.context,p_old_PRICE_LIST_rec.context)
129         THEN
130             l_index := l_index + 1;
131             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_CONTEXT;
132         END IF;
133 
134         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.created_by,p_old_PRICE_LIST_rec.created_by)
135         THEN
136             l_index := l_index + 1;
137             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_CREATED_BY;
138         END IF;
139 
140         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.creation_date,p_old_PRICE_LIST_rec.creation_date)
141         THEN
142             l_index := l_index + 1;
143             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_CREATION_DATE;
144         END IF;
145 
146         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.currency_code,p_old_PRICE_LIST_rec.currency_code)
147         THEN
148             l_index := l_index + 1;
149             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_CURRENCY;
150         END IF;
151 
152         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.description,p_old_PRICE_LIST_rec.description)
153         THEN
154             l_index := l_index + 1;
155             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_DESCRIPTION;
156         END IF;
157 
158         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.end_date_active,p_old_PRICE_LIST_rec.end_date_active)
159         THEN
160             l_index := l_index + 1;
161             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_END_DATE_ACTIVE;
162         END IF;
163 
164         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.freight_terms_code,p_old_PRICE_LIST_rec.freight_terms_code)
165         THEN
166             l_index := l_index + 1;
167             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_FREIGHT_TERMS;
168         END IF;
169 
170         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.last_updated_by,p_old_PRICE_LIST_rec.last_updated_by)
171         THEN
172             l_index := l_index + 1;
173             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_LAST_UPDATED_BY;
174         END IF;
175 
176         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.last_update_date,p_old_PRICE_LIST_rec.last_update_date)
177         THEN
178             l_index := l_index + 1;
179             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_LAST_UPDATE_DATE;
180         END IF;
181 
182         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.last_update_login,p_old_PRICE_LIST_rec.last_update_login)
183         THEN
184             l_index := l_index + 1;
185             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_LAST_UPDATE_LOGIN;
186         END IF;
187 
188         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.name,p_old_PRICE_LIST_rec.name)
189         THEN
190             l_index := l_index + 1;
191             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_NAME;
192         END IF;
193 
194         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.price_list_id,p_old_PRICE_LIST_rec.price_list_id)
195         THEN
196             l_index := l_index + 1;
197             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_PRICE_LIST;
198         END IF;
199 
200         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.program_application_id,p_old_PRICE_LIST_rec.program_application_id)
201         THEN
202             l_index := l_index + 1;
203             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_PROGRAM_APPLICATION;
204         END IF;
205 
206         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.program_id,p_old_PRICE_LIST_rec.program_id)
207         THEN
208             l_index := l_index + 1;
209             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_PROGRAM;
210         END IF;
211 
212         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.program_update_date,p_old_PRICE_LIST_rec.program_update_date)
213         THEN
214             l_index := l_index + 1;
215             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_PROGRAM_UPDATE_DATE;
216         END IF;
217 
218         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.request_id,p_old_PRICE_LIST_rec.request_id)
219         THEN
220             l_index := l_index + 1;
221             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_REQUEST;
222         END IF;
223 
224         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.rounding_factor,p_old_PRICE_LIST_rec.rounding_factor)
225         THEN
226             l_index := l_index + 1;
227             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ROUNDING_FACTOR;
228         END IF;
229 
230         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.secondary_price_list_id,p_old_PRICE_LIST_rec.secondary_price_list_id)
231         THEN
232             l_index := l_index + 1;
233             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_SECONDARY_PRICE_LIST;
234         END IF;
235 
236         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.ship_method_code,p_old_PRICE_LIST_rec.ship_method_code)
237         THEN
238             l_index := l_index + 1;
239             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_SHIP_METHOD;
240         END IF;
241 
242         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.start_date_active,p_old_PRICE_LIST_rec.start_date_active)
243         THEN
244             l_index := l_index + 1;
245             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_START_DATE_ACTIVE;
246         END IF;
247 
248         IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.terms_id,p_old_PRICE_LIST_rec.terms_id)
249         THEN
250             l_index := l_index + 1;
251             l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_TERMS;
252         END IF;
253 
254     ELSIF p_attr_id = G_ATTRIBUTE1 THEN
255         l_index := l_index + 1;
256         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE1;
257     ELSIF p_attr_id = G_ATTRIBUTE10 THEN
258         l_index := l_index + 1;
259         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE10;
260     ELSIF p_attr_id = G_ATTRIBUTE11 THEN
261         l_index := l_index + 1;
262         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE11;
263     ELSIF p_attr_id = G_ATTRIBUTE12 THEN
264         l_index := l_index + 1;
265         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE12;
266     ELSIF p_attr_id = G_ATTRIBUTE13 THEN
267         l_index := l_index + 1;
268         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE13;
269     ELSIF p_attr_id = G_ATTRIBUTE14 THEN
270         l_index := l_index + 1;
271         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE14;
272     ELSIF p_attr_id = G_ATTRIBUTE15 THEN
273         l_index := l_index + 1;
274         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE15;
275     ELSIF p_attr_id = G_ATTRIBUTE2 THEN
276         l_index := l_index + 1;
277         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE2;
278     ELSIF p_attr_id = G_ATTRIBUTE3 THEN
279         l_index := l_index + 1;
280         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE3;
281     ELSIF p_attr_id = G_ATTRIBUTE4 THEN
282         l_index := l_index + 1;
283         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE4;
284     ELSIF p_attr_id = G_ATTRIBUTE5 THEN
285         l_index := l_index + 1;
286         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE5;
287     ELSIF p_attr_id = G_ATTRIBUTE6 THEN
288         l_index := l_index + 1;
289         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE6;
290     ELSIF p_attr_id = G_ATTRIBUTE7 THEN
291         l_index := l_index + 1;
292         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE7;
293     ELSIF p_attr_id = G_ATTRIBUTE8 THEN
294         l_index := l_index + 1;
295         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE8;
296     ELSIF p_attr_id = G_ATTRIBUTE9 THEN
297         l_index := l_index + 1;
298         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ATTRIBUTE9;
299     ELSIF p_attr_id = G_COMMENTS THEN
300         l_index := l_index + 1;
301         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_COMMENTS;
302     ELSIF p_attr_id = G_CONTEXT THEN
303         l_index := l_index + 1;
304         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_CONTEXT;
305     ELSIF p_attr_id = G_CREATED_BY THEN
306         l_index := l_index + 1;
307         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_CREATED_BY;
308     ELSIF p_attr_id = G_CREATION_DATE THEN
309         l_index := l_index + 1;
310         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_CREATION_DATE;
311     ELSIF p_attr_id = G_CURRENCY THEN
312         l_index := l_index + 1;
313         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_CURRENCY;
314     ELSIF p_attr_id = G_DESCRIPTION THEN
315         l_index := l_index + 1;
316         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_DESCRIPTION;
317     ELSIF p_attr_id = G_END_DATE_ACTIVE THEN
318         l_index := l_index + 1;
319         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_END_DATE_ACTIVE;
320     ELSIF p_attr_id = G_FREIGHT_TERMS THEN
321         l_index := l_index + 1;
322         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_FREIGHT_TERMS;
323     ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
324         l_index := l_index + 1;
325         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_LAST_UPDATED_BY;
326     ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
327         l_index := l_index + 1;
328         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_LAST_UPDATE_DATE;
329     ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
330         l_index := l_index + 1;
331         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_LAST_UPDATE_LOGIN;
332     ELSIF p_attr_id = G_NAME THEN
333         l_index := l_index + 1;
334         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_NAME;
335     ELSIF p_attr_id = G_PRICE_LIST THEN
336         l_index := l_index + 1;
337         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_PRICE_LIST;
338     ELSIF p_attr_id = G_PROGRAM_APPLICATION THEN
339         l_index := l_index + 1;
340         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_PROGRAM_APPLICATION;
341     ELSIF p_attr_id = G_PROGRAM THEN
342         l_index := l_index + 1;
343         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_PROGRAM;
344     ELSIF p_attr_id = G_PROGRAM_UPDATE_DATE THEN
345         l_index := l_index + 1;
346         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_PROGRAM_UPDATE_DATE;
347     ELSIF p_attr_id = G_REQUEST THEN
348         l_index := l_index + 1;
349         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_REQUEST;
350     ELSIF p_attr_id = G_ROUNDING_FACTOR THEN
351         l_index := l_index + 1;
352         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_ROUNDING_FACTOR;
353     ELSIF p_attr_id = G_SECONDARY_PRICE_LIST THEN
354         l_index := l_index + 1;
355         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_SECONDARY_PRICE_LIST;
356     ELSIF p_attr_id = G_SHIP_METHOD THEN
357         l_index := l_index + 1;
358         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_SHIP_METHOD;
359     ELSIF p_attr_id = G_START_DATE_ACTIVE THEN
360         l_index := l_index + 1;
361         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_START_DATE_ACTIVE;
362     ELSIF p_attr_id = G_TERMS THEN
363         l_index := l_index + 1;
364         l_src_attr_tbl(l_index) := OE_PRICE_LIST_UTIL.G_TERMS;
365     END IF;
366 
367 END Clear_Dependent_Attr;
368 
369 --  Procedure Apply_Attribute_Changes
370 
371 PROCEDURE Apply_Attribute_Changes
372 (   p_PRICE_LIST_rec                IN  OE_Price_List_PUB.Price_List_Rec_Type
373 ,   p_old_PRICE_LIST_rec            IN  OE_Price_List_PUB.Price_List_Rec_Type :=
374                                         OE_Price_List_PUB.G_MISS_PRICE_LIST_REC
375 ,   x_PRICE_LIST_rec                OUT NOCOPY /* file.sql.39 change */ OE_Price_List_PUB.Price_List_Rec_Type
376 )
377 IS
378 BEGIN
379 
380     --  Load out record
381 
382     x_PRICE_LIST_rec := p_PRICE_LIST_rec;
383 
384     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute1,p_old_PRICE_LIST_rec.attribute1)
385     THEN
386         NULL;
387     END IF;
388 
389     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute10,p_old_PRICE_LIST_rec.attribute10)
390     THEN
391         NULL;
392     END IF;
393 
394     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute11,p_old_PRICE_LIST_rec.attribute11)
395     THEN
396         NULL;
397     END IF;
398 
399     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute12,p_old_PRICE_LIST_rec.attribute12)
400     THEN
401         NULL;
402     END IF;
403 
404     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute13,p_old_PRICE_LIST_rec.attribute13)
405     THEN
406         NULL;
407     END IF;
408 
409     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute14,p_old_PRICE_LIST_rec.attribute14)
410     THEN
411         NULL;
412     END IF;
413 
414     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute15,p_old_PRICE_LIST_rec.attribute15)
415     THEN
416         NULL;
417     END IF;
418 
419     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute2,p_old_PRICE_LIST_rec.attribute2)
420     THEN
421         NULL;
422     END IF;
423 
424     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute3,p_old_PRICE_LIST_rec.attribute3)
425     THEN
426         NULL;
427     END IF;
428 
429     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute4,p_old_PRICE_LIST_rec.attribute4)
430     THEN
431         NULL;
432     END IF;
433 
434     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute5,p_old_PRICE_LIST_rec.attribute5)
435     THEN
436         NULL;
437     END IF;
438 
439     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute6,p_old_PRICE_LIST_rec.attribute6)
440     THEN
441         NULL;
442     END IF;
443 
444     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute7,p_old_PRICE_LIST_rec.attribute7)
445     THEN
446         NULL;
450     THEN
447     END IF;
448 
449     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute8,p_old_PRICE_LIST_rec.attribute8)
451         NULL;
452     END IF;
453 
454     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.attribute9,p_old_PRICE_LIST_rec.attribute9)
455     THEN
456         NULL;
457     END IF;
458 
459     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.comments,p_old_PRICE_LIST_rec.comments)
460     THEN
461         NULL;
462     END IF;
463 
464     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.context,p_old_PRICE_LIST_rec.context)
465     THEN
466         NULL;
467     END IF;
468 
469     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.created_by,p_old_PRICE_LIST_rec.created_by)
470     THEN
471         NULL;
472     END IF;
473 
474     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.creation_date,p_old_PRICE_LIST_rec.creation_date)
475     THEN
476         NULL;
477     END IF;
478 
479     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.currency_code,p_old_PRICE_LIST_rec.currency_code)
480     THEN
481         NULL;
482     END IF;
483 
484     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.description,p_old_PRICE_LIST_rec.description)
485     THEN
486         NULL;
487     END IF;
488 
489     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.end_date_active,p_old_PRICE_LIST_rec.end_date_active)
490     THEN
491         NULL;
492     END IF;
493 
494     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.freight_terms_code,p_old_PRICE_LIST_rec.freight_terms_code)
495     THEN
496         NULL;
497     END IF;
498 
499     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.last_updated_by,p_old_PRICE_LIST_rec.last_updated_by)
500     THEN
501         NULL;
502     END IF;
503 
504     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.last_update_date,p_old_PRICE_LIST_rec.last_update_date)
505     THEN
506         NULL;
507     END IF;
508 
509     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.last_update_login,p_old_PRICE_LIST_rec.last_update_login)
510     THEN
511         NULL;
512     END IF;
513 
514     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.name,p_old_PRICE_LIST_rec.name)
515     THEN
516         NULL;
517     END IF;
518 
519     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.price_list_id,p_old_PRICE_LIST_rec.price_list_id)
520     THEN
521         NULL;
522     END IF;
523 
524     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.program_application_id,p_old_PRICE_LIST_rec.program_application_id)
525     THEN
526         NULL;
527     END IF;
528 
529     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.program_id,p_old_PRICE_LIST_rec.program_id)
530     THEN
531         NULL;
532     END IF;
533 
534     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.program_update_date,p_old_PRICE_LIST_rec.program_update_date)
535     THEN
536         NULL;
537     END IF;
538 
539     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.request_id,p_old_PRICE_LIST_rec.request_id)
540     THEN
541         NULL;
542     END IF;
543 
544     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.rounding_factor,p_old_PRICE_LIST_rec.rounding_factor)
545     THEN
546         NULL;
547     END IF;
548 
549     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.secondary_price_list_id,p_old_PRICE_LIST_rec.secondary_price_list_id)
550     THEN
551         NULL;
552     END IF;
553 
554     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.ship_method_code,p_old_PRICE_LIST_rec.ship_method_code)
555     THEN
556         NULL;
557     END IF;
558 
559     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.start_date_active,p_old_PRICE_LIST_rec.start_date_active)
560     THEN
561         NULL;
562     END IF;
563 
564     IF NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.terms_id,p_old_PRICE_LIST_rec.terms_id)
565     THEN
566         NULL;
567     END IF;
568 
569 END Apply_Attribute_Changes;
570 
571 --  Function Complete_Record
572 
573 FUNCTION Complete_Record
574 (   p_PRICE_LIST_rec                IN  OE_Price_List_PUB.Price_List_Rec_Type
575 ,   p_old_PRICE_LIST_rec            IN  OE_Price_List_PUB.Price_List_Rec_Type
576 ) RETURN OE_Price_List_PUB.Price_List_Rec_Type
577 IS
578 l_PRICE_LIST_rec              OE_Price_List_PUB.Price_List_Rec_Type := p_PRICE_LIST_rec;
579 BEGIN
580 
581     IF l_PRICE_LIST_rec.attribute1 = FND_API.G_MISS_CHAR THEN
582         l_PRICE_LIST_rec.attribute1 := p_old_PRICE_LIST_rec.attribute1;
583     END IF;
584 
585     IF l_PRICE_LIST_rec.attribute10 = FND_API.G_MISS_CHAR THEN
586         l_PRICE_LIST_rec.attribute10 := p_old_PRICE_LIST_rec.attribute10;
587     END IF;
588 
589     IF l_PRICE_LIST_rec.attribute11 = FND_API.G_MISS_CHAR THEN
590         l_PRICE_LIST_rec.attribute11 := p_old_PRICE_LIST_rec.attribute11;
591     END IF;
592 
593     IF l_PRICE_LIST_rec.attribute12 = FND_API.G_MISS_CHAR THEN
594         l_PRICE_LIST_rec.attribute12 := p_old_PRICE_LIST_rec.attribute12;
595     END IF;
596 
597     IF l_PRICE_LIST_rec.attribute13 = FND_API.G_MISS_CHAR THEN
598         l_PRICE_LIST_rec.attribute13 := p_old_PRICE_LIST_rec.attribute13;
599     END IF;
600 
601     IF l_PRICE_LIST_rec.attribute14 = FND_API.G_MISS_CHAR THEN
602         l_PRICE_LIST_rec.attribute14 := p_old_PRICE_LIST_rec.attribute14;
603     END IF;
604 
605     IF l_PRICE_LIST_rec.attribute15 = FND_API.G_MISS_CHAR THEN
606         l_PRICE_LIST_rec.attribute15 := p_old_PRICE_LIST_rec.attribute15;
607     END IF;
608 
609     IF l_PRICE_LIST_rec.attribute2 = FND_API.G_MISS_CHAR THEN
610         l_PRICE_LIST_rec.attribute2 := p_old_PRICE_LIST_rec.attribute2;
611     END IF;
612 
613     IF l_PRICE_LIST_rec.attribute3 = FND_API.G_MISS_CHAR THEN
614         l_PRICE_LIST_rec.attribute3 := p_old_PRICE_LIST_rec.attribute3;
615     END IF;
616 
617     IF l_PRICE_LIST_rec.attribute4 = FND_API.G_MISS_CHAR THEN
618         l_PRICE_LIST_rec.attribute4 := p_old_PRICE_LIST_rec.attribute4;
619     END IF;
620 
621     IF l_PRICE_LIST_rec.attribute5 = FND_API.G_MISS_CHAR THEN
622         l_PRICE_LIST_rec.attribute5 := p_old_PRICE_LIST_rec.attribute5;
623     END IF;
624 
625     IF l_PRICE_LIST_rec.attribute6 = FND_API.G_MISS_CHAR THEN
626         l_PRICE_LIST_rec.attribute6 := p_old_PRICE_LIST_rec.attribute6;
627     END IF;
628 
629     IF l_PRICE_LIST_rec.attribute7 = FND_API.G_MISS_CHAR THEN
630         l_PRICE_LIST_rec.attribute7 := p_old_PRICE_LIST_rec.attribute7;
631     END IF;
632 
633     IF l_PRICE_LIST_rec.attribute8 = FND_API.G_MISS_CHAR THEN
634         l_PRICE_LIST_rec.attribute8 := p_old_PRICE_LIST_rec.attribute8;
635     END IF;
636 
637     IF l_PRICE_LIST_rec.attribute9 = FND_API.G_MISS_CHAR THEN
638         l_PRICE_LIST_rec.attribute9 := p_old_PRICE_LIST_rec.attribute9;
639     END IF;
640 
641     IF l_PRICE_LIST_rec.comments = FND_API.G_MISS_CHAR THEN
642         l_PRICE_LIST_rec.comments := p_old_PRICE_LIST_rec.comments;
643     END IF;
644 
645     IF l_PRICE_LIST_rec.context = FND_API.G_MISS_CHAR THEN
646         l_PRICE_LIST_rec.context := p_old_PRICE_LIST_rec.context;
647     END IF;
648 
649     IF l_PRICE_LIST_rec.created_by = FND_API.G_MISS_NUM THEN
650         l_PRICE_LIST_rec.created_by := p_old_PRICE_LIST_rec.created_by;
651     END IF;
652 
653     IF l_PRICE_LIST_rec.creation_date = FND_API.G_MISS_DATE THEN
654         l_PRICE_LIST_rec.creation_date := p_old_PRICE_LIST_rec.creation_date;
655     END IF;
656 
657     IF l_PRICE_LIST_rec.currency_code = FND_API.G_MISS_CHAR THEN
658         l_PRICE_LIST_rec.currency_code := p_old_PRICE_LIST_rec.currency_code;
659     END IF;
660 
661     IF l_PRICE_LIST_rec.description = FND_API.G_MISS_CHAR THEN
662         l_PRICE_LIST_rec.description := p_old_PRICE_LIST_rec.description;
663     END IF;
664 
665     IF l_PRICE_LIST_rec.end_date_active = FND_API.G_MISS_DATE THEN
666         l_PRICE_LIST_rec.end_date_active := p_old_PRICE_LIST_rec.end_date_active;
667     END IF;
668 
669     IF l_PRICE_LIST_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN
670         l_PRICE_LIST_rec.freight_terms_code := p_old_PRICE_LIST_rec.freight_terms_code;
671     END IF;
672 
673     IF l_PRICE_LIST_rec.last_updated_by = FND_API.G_MISS_NUM THEN
674         l_PRICE_LIST_rec.last_updated_by := p_old_PRICE_LIST_rec.last_updated_by;
675     END IF;
676 
677     IF l_PRICE_LIST_rec.last_update_date = FND_API.G_MISS_DATE THEN
678         l_PRICE_LIST_rec.last_update_date := p_old_PRICE_LIST_rec.last_update_date;
679     END IF;
680 
681     IF l_PRICE_LIST_rec.last_update_login = FND_API.G_MISS_NUM THEN
682         l_PRICE_LIST_rec.last_update_login := p_old_PRICE_LIST_rec.last_update_login;
683     END IF;
684 
685     IF l_PRICE_LIST_rec.name = FND_API.G_MISS_CHAR THEN
686         l_PRICE_LIST_rec.name := p_old_PRICE_LIST_rec.name;
687     END IF;
688 
689     IF l_PRICE_LIST_rec.price_list_id = FND_API.G_MISS_NUM THEN
690         l_PRICE_LIST_rec.price_list_id := p_old_PRICE_LIST_rec.price_list_id;
691     END IF;
692 
693     IF l_PRICE_LIST_rec.program_application_id = FND_API.G_MISS_NUM THEN
694         l_PRICE_LIST_rec.program_application_id := p_old_PRICE_LIST_rec.program_application_id;
695     END IF;
696 
697     IF l_PRICE_LIST_rec.program_id = FND_API.G_MISS_NUM THEN
698         l_PRICE_LIST_rec.program_id := p_old_PRICE_LIST_rec.program_id;
699     END IF;
700 
701     IF l_PRICE_LIST_rec.program_update_date = FND_API.G_MISS_DATE THEN
702         l_PRICE_LIST_rec.program_update_date := p_old_PRICE_LIST_rec.program_update_date;
703     END IF;
704 
705     IF l_PRICE_LIST_rec.request_id = FND_API.G_MISS_NUM THEN
706         l_PRICE_LIST_rec.request_id := p_old_PRICE_LIST_rec.request_id;
707     END IF;
708 
709     IF l_PRICE_LIST_rec.rounding_factor = FND_API.G_MISS_NUM THEN
710         l_PRICE_LIST_rec.rounding_factor := p_old_PRICE_LIST_rec.rounding_factor;
711     END IF;
712 
713     IF l_PRICE_LIST_rec.secondary_price_list_id = FND_API.G_MISS_NUM THEN
714         l_PRICE_LIST_rec.secondary_price_list_id := p_old_PRICE_LIST_rec.secondary_price_list_id;
715     END IF;
716 
717     IF l_PRICE_LIST_rec.ship_method_code = FND_API.G_MISS_CHAR THEN
718         l_PRICE_LIST_rec.ship_method_code := p_old_PRICE_LIST_rec.ship_method_code;
719     END IF;
720 
721     IF l_PRICE_LIST_rec.start_date_active = FND_API.G_MISS_DATE THEN
722         l_PRICE_LIST_rec.start_date_active := p_old_PRICE_LIST_rec.start_date_active;
723     END IF;
724 
725     IF l_PRICE_LIST_rec.terms_id = FND_API.G_MISS_NUM THEN
726         l_PRICE_LIST_rec.terms_id := p_old_PRICE_LIST_rec.terms_id;
727     END IF;
728 
729     RETURN l_PRICE_LIST_rec;
730 
731 END Complete_Record;
732 
733 --  Function Convert_Miss_To_Null
734 
735 FUNCTION Convert_Miss_To_Null
736 (   p_PRICE_LIST_rec                IN  OE_Price_List_PUB.Price_List_Rec_Type
737 ) RETURN OE_Price_List_PUB.Price_List_Rec_Type
738 IS
739 l_PRICE_LIST_rec              OE_Price_List_PUB.Price_List_Rec_Type := p_PRICE_LIST_rec;
740 BEGIN
741 
742     IF l_PRICE_LIST_rec.attribute1 = FND_API.G_MISS_CHAR THEN
743         l_PRICE_LIST_rec.attribute1 := NULL;
744     END IF;
745 
746     IF l_PRICE_LIST_rec.attribute10 = FND_API.G_MISS_CHAR THEN
747         l_PRICE_LIST_rec.attribute10 := NULL;
748     END IF;
749 
750     IF l_PRICE_LIST_rec.attribute11 = FND_API.G_MISS_CHAR THEN
751         l_PRICE_LIST_rec.attribute11 := NULL;
752     END IF;
753 
754     IF l_PRICE_LIST_rec.attribute12 = FND_API.G_MISS_CHAR THEN
755         l_PRICE_LIST_rec.attribute12 := NULL;
756     END IF;
757 
758     IF l_PRICE_LIST_rec.attribute13 = FND_API.G_MISS_CHAR THEN
759         l_PRICE_LIST_rec.attribute13 := NULL;
760     END IF;
761 
762     IF l_PRICE_LIST_rec.attribute14 = FND_API.G_MISS_CHAR THEN
763         l_PRICE_LIST_rec.attribute14 := NULL;
764     END IF;
765 
766     IF l_PRICE_LIST_rec.attribute15 = FND_API.G_MISS_CHAR THEN
767         l_PRICE_LIST_rec.attribute15 := NULL;
768     END IF;
769 
770     IF l_PRICE_LIST_rec.attribute2 = FND_API.G_MISS_CHAR THEN
771         l_PRICE_LIST_rec.attribute2 := NULL;
772     END IF;
773 
774     IF l_PRICE_LIST_rec.attribute3 = FND_API.G_MISS_CHAR THEN
775         l_PRICE_LIST_rec.attribute3 := NULL;
776     END IF;
777 
778     IF l_PRICE_LIST_rec.attribute4 = FND_API.G_MISS_CHAR THEN
779         l_PRICE_LIST_rec.attribute4 := NULL;
780     END IF;
781 
782     IF l_PRICE_LIST_rec.attribute5 = FND_API.G_MISS_CHAR THEN
783         l_PRICE_LIST_rec.attribute5 := NULL;
784     END IF;
785 
786     IF l_PRICE_LIST_rec.attribute6 = FND_API.G_MISS_CHAR THEN
787         l_PRICE_LIST_rec.attribute6 := NULL;
788     END IF;
789 
790     IF l_PRICE_LIST_rec.attribute7 = FND_API.G_MISS_CHAR THEN
791         l_PRICE_LIST_rec.attribute7 := NULL;
792     END IF;
793 
794     IF l_PRICE_LIST_rec.attribute8 = FND_API.G_MISS_CHAR THEN
795         l_PRICE_LIST_rec.attribute8 := NULL;
796     END IF;
797 
798     IF l_PRICE_LIST_rec.attribute9 = FND_API.G_MISS_CHAR THEN
799         l_PRICE_LIST_rec.attribute9 := NULL;
800     END IF;
801 
802     IF l_PRICE_LIST_rec.comments = FND_API.G_MISS_CHAR THEN
803         l_PRICE_LIST_rec.comments := NULL;
804     END IF;
805 
806     IF l_PRICE_LIST_rec.context = FND_API.G_MISS_CHAR THEN
807         l_PRICE_LIST_rec.context := NULL;
808     END IF;
809 
813 
810     IF l_PRICE_LIST_rec.created_by = FND_API.G_MISS_NUM THEN
811         l_PRICE_LIST_rec.created_by := NULL;
812     END IF;
814     IF l_PRICE_LIST_rec.creation_date = FND_API.G_MISS_DATE THEN
815         l_PRICE_LIST_rec.creation_date := NULL;
816     END IF;
817 
818     IF l_PRICE_LIST_rec.currency_code = FND_API.G_MISS_CHAR THEN
819         l_PRICE_LIST_rec.currency_code := NULL;
820     END IF;
821 
822     IF l_PRICE_LIST_rec.description = FND_API.G_MISS_CHAR THEN
823         l_PRICE_LIST_rec.description := NULL;
824     END IF;
825 
826     IF l_PRICE_LIST_rec.end_date_active = FND_API.G_MISS_DATE THEN
827         l_PRICE_LIST_rec.end_date_active := NULL;
828     END IF;
829 
830     IF l_PRICE_LIST_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN
831         l_PRICE_LIST_rec.freight_terms_code := NULL;
832     END IF;
833 
834     IF l_PRICE_LIST_rec.last_updated_by = FND_API.G_MISS_NUM THEN
835         l_PRICE_LIST_rec.last_updated_by := NULL;
836     END IF;
837 
838     IF l_PRICE_LIST_rec.last_update_date = FND_API.G_MISS_DATE THEN
839         l_PRICE_LIST_rec.last_update_date := NULL;
840     END IF;
841 
842     IF l_PRICE_LIST_rec.last_update_login = FND_API.G_MISS_NUM THEN
843         l_PRICE_LIST_rec.last_update_login := NULL;
844     END IF;
845 
846     IF l_PRICE_LIST_rec.name = FND_API.G_MISS_CHAR THEN
847         l_PRICE_LIST_rec.name := NULL;
848     END IF;
849 
850     IF l_PRICE_LIST_rec.price_list_id = FND_API.G_MISS_NUM THEN
851         l_PRICE_LIST_rec.price_list_id := NULL;
852     END IF;
853 
854     IF l_PRICE_LIST_rec.program_application_id = FND_API.G_MISS_NUM THEN
855         l_PRICE_LIST_rec.program_application_id := NULL;
856     END IF;
857 
858     IF l_PRICE_LIST_rec.program_id = FND_API.G_MISS_NUM THEN
859         l_PRICE_LIST_rec.program_id := NULL;
860     END IF;
861 
862     IF l_PRICE_LIST_rec.program_update_date = FND_API.G_MISS_DATE THEN
863         l_PRICE_LIST_rec.program_update_date := NULL;
864     END IF;
865 
866     IF l_PRICE_LIST_rec.request_id = FND_API.G_MISS_NUM THEN
867         l_PRICE_LIST_rec.request_id := NULL;
868     END IF;
869 
870     IF l_PRICE_LIST_rec.rounding_factor = FND_API.G_MISS_NUM THEN
871         l_PRICE_LIST_rec.rounding_factor := NULL;
872     END IF;
873 
874     IF l_PRICE_LIST_rec.secondary_price_list_id = FND_API.G_MISS_NUM THEN
875         l_PRICE_LIST_rec.secondary_price_list_id := NULL;
876     END IF;
877 
878     IF l_PRICE_LIST_rec.ship_method_code = FND_API.G_MISS_CHAR THEN
879         l_PRICE_LIST_rec.ship_method_code := NULL;
880     END IF;
881 
882     IF l_PRICE_LIST_rec.start_date_active = FND_API.G_MISS_DATE THEN
883         l_PRICE_LIST_rec.start_date_active := NULL;
884     END IF;
885 
886     IF l_PRICE_LIST_rec.terms_id = FND_API.G_MISS_NUM THEN
887         l_PRICE_LIST_rec.terms_id := NULL;
888     END IF;
889 
890     RETURN l_PRICE_LIST_rec;
891 
892 END Convert_Miss_To_Null;
893 
894 --  Procedure Update_Row
895 
896 PROCEDURE Update_Row
897 (   p_PRICE_LIST_rec                IN  OE_Price_List_PUB.Price_List_Rec_Type
898 )
899 IS
900 l_sec_price_list_id number;
901 l_context varchar2(30);
902 l_attribute varchar2(30);
903 BEGIN
904 
905   QP_LIST_HEADERS_PKG.UPDATE_ROW (
906   X_LIST_HEADER_ID 		=> p_PRICE_LIST_rec.price_list_id,
907   X_CONTEXT 			=> p_PRICE_LIST_rec.context,
908   X_ATTRIBUTE1			=> p_PRICE_LIST_rec.attribute1,
909   X_ATTRIBUTE2			=> p_PRICE_LIST_rec.attribute2,
910   X_ATTRIBUTE3			=> p_PRICE_LIST_rec.attribute3,
911   X_ATTRIBUTE4			=> p_PRICE_LIST_rec.attribute4,
912   X_ATTRIBUTE5			=> p_PRICE_LIST_rec.attribute5,
913   X_ATTRIBUTE6			=> p_PRICE_LIST_rec.attribute6,
914   X_ATTRIBUTE7			=> p_PRICE_LIST_rec.attribute7,
915   X_ATTRIBUTE8			=> p_PRICE_LIST_rec.attribute8,
916   X_ATTRIBUTE9			=> p_PRICE_LIST_rec.attribute9,
917   X_ATTRIBUTE10			=> p_PRICE_LIST_rec.attribute10,
918   X_ATTRIBUTE11			=> p_PRICE_LIST_rec.attribute11,
919   X_ATTRIBUTE12			=> p_PRICE_LIST_rec.attribute12,
920   X_ATTRIBUTE13			=> p_PRICE_LIST_rec.attribute13,
921   X_ATTRIBUTE14			=> p_PRICE_LIST_rec.attribute14,
922   X_ATTRIBUTE15			=> p_PRICE_LIST_rec.attribute15,
923   X_CURRENCY_CODE		=> p_PRICE_LIST_rec.currency_code,
924   X_SHIP_METHOD_CODE		=> p_PRICE_LIST_rec.ship_method_code,
925   X_FREIGHT_TERMS_CODE		=> p_PRICE_LIST_rec.freight_terms_code,
926   X_START_DATE_ACTIVE		=> p_PRICE_LIST_rec.start_date_active,
927   X_END_DATE_ACTIVE		=> p_PRICE_LIST_rec.end_date_active,
928   X_AUTOMATIC_FLAG		=> 'N',
929   X_LIST_TYPE_CODE		=> 'PRL',
930   X_TERMS_ID			=> p_PRICE_LIST_rec.terms_id,
931   X_ROUNDING_FACTOR		=> p_PRICE_LIST_rec.rounding_factor,
932   X_REQUEST_ID			=> p_PRICE_LIST_rec.request_id,
933   X_NAME			=> p_PRICE_LIST_rec.name,
934   X_DESCRIPTION			=> p_PRICE_LIST_rec.description,
935   X_LAST_UPDATE_DATE		=> p_PRICE_LIST_rec.last_update_date,
936   X_LAST_UPDATED_BY		=> p_PRICE_LIST_rec.last_updated_by,
937   X_LAST_UPDATE_LOGIN		=> p_PRICE_LIST_rec.last_update_login );
938 
939   /* delete qualifier for secondary price list and create a new qualifier */
940 
941    QP_UTIL.Get_Context_Attribute('PRICE_LIST_ID', l_context, l_attribute);
942 
943    l_sec_price_list_id :=
944                           QP_Price_List_PVT.Get_Secondary_Price_List(
945                                 p_Price_List_rec.price_list_id);
946 
947    IF l_sec_price_list_id is not null THEN
948 
949        delete from qp_qualifiers
950        where qualifier_context = l_context
951        and qualifier_attribute = l_attribute
952        and qualifier_attr_value = p_PRICE_LIST_rec.price_list_id
953        and list_header_id = l_sec_price_list_id
957 
954        and qualifier_rule_id is null;
955 
956        /* create a new qualifier for the new secondary price list id */
958        INSERT INTO QP_QUALIFIERS (
959          QUALIFIER_ID,
960          CREATION_DATE,
961          CREATED_BY,
962          LAST_UPDATE_DATE,
963          LAST_UPDATED_BY,
964     	 LAST_UPDATE_LOGIN,
965          LIST_HEADER_ID,
966          COMPARISON_OPERATOR_CODE,
967          QUALIFIER_CONTEXT,
968 	     QUALIFIER_ATTRIBUTE,
969          QUALIFIER_ATTR_VALUE,
970          QUALIFIER_GROUPING_NO,
971          EXCLUDER_FLAG
972          --ENH Upgrade BOAPI for orig_sys...ref RAVI
973          ,ORIG_SYS_QUALIFIER_REF
974          ,ORIG_SYS_HEADER_REF
975        )
976        VALUES (
977 		 QP_QUALIFIERS_S.nextval,
978          sysdate,
979          1,
980          sysdate,
981          1,
982 		 1,
983          p_PRICE_LIST_rec.secondary_price_list_id,
984          '=',
985 		 l_context,
986          l_attribute,
987          to_char(p_PRICE_LIST_rec.price_list_id),
988          qp.qp_qualifier_group_no_s.nextval,
989 		 'N'
990          --ENH Upgrade BOAPI for orig_sys...ref RAVI
991          ,to_char(QP_QUALIFIERS_S.CURRVAL)
992          ,(select h.ORIG_SYSTEM_HEADER_REF from qp_list_headers_b h where h.list_header_id=p_PRICE_LIST_rec.secondary_price_list_id)
993        );
994 
995      END IF;
996 
997 
998 EXCEPTION
999 
1000     WHEN OTHERS THEN
1001 
1002         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1003         THEN
1004             OE_MSG_PUB.Add_Exc_Msg
1005             (   G_PKG_NAME
1006             ,   'Update_Row'
1007             );
1008         END IF;
1009 
1010         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1011 
1012 END Update_Row;
1013 
1014 --  Procedure Insert_Row
1015 
1016 PROCEDURE Insert_Row
1017 (   p_PRICE_LIST_rec                IN  OE_Price_List_PUB.Price_List_Rec_Type
1018 )
1019 IS
1020 -- new added
1021 -- cursor not added to get rowid
1022 l_rowid varchar2(240); /* should it be varchar2(100)? */
1023 l_context varchar2(30) := NULL;
1024 l_attribute varchar2(30) := NULL;
1025 l_qualifier_grouping_no NUMBER := 0;
1026 l_sec_qualifier_grouping_no NUMBER := 0;
1027 
1028 BEGIN
1029 
1030     oe_debug_pub.add('Entering OE_Price_List_Util.Insert_Row');
1031 
1032     /* need to add x_comments,
1033                    x_program_id
1034               and tp_attributes  to the insert_row procedure */
1035 
1036     QP_LIST_HEADERS_PKG.INSERT_ROW (
1037   X_ROWID 			=> l_rowid,
1038   X_LIST_HEADER_ID 		=> p_PRICE_LIST_rec.price_list_id,
1039   X_CONTEXT 			=> p_PRICE_LIST_rec.context,
1040   X_ATTRIBUTE1			=> p_PRICE_LIST_rec.attribute1,
1041   X_ATTRIBUTE2			=> p_PRICE_LIST_rec.attribute2,
1042   X_ATTRIBUTE3			=> p_PRICE_LIST_rec.attribute3,
1043   X_ATTRIBUTE4			=> p_PRICE_LIST_rec.attribute4,
1044   X_ATTRIBUTE5			=> p_PRICE_LIST_rec.attribute5,
1045   X_ATTRIBUTE6			=> p_PRICE_LIST_rec.attribute6,
1046   X_ATTRIBUTE7			=> p_PRICE_LIST_rec.attribute7,
1047   X_ATTRIBUTE8			=> p_PRICE_LIST_rec.attribute8,
1048   X_ATTRIBUTE9			=> p_PRICE_LIST_rec.attribute9,
1049   X_ATTRIBUTE10			=> p_PRICE_LIST_rec.attribute10,
1050   X_ATTRIBUTE11			=> p_PRICE_LIST_rec.attribute11,
1051   X_ATTRIBUTE12			=> p_PRICE_LIST_rec.attribute12,
1052   X_ATTRIBUTE13			=> p_PRICE_LIST_rec.attribute13,
1053   X_ATTRIBUTE14			=> p_PRICE_LIST_rec.attribute14,
1054   X_ATTRIBUTE15			=> p_PRICE_LIST_rec.attribute15,
1055   X_CURRENCY_CODE		=> p_PRICE_LIST_rec.currency_code,
1056   X_SHIP_METHOD_CODE		=> p_PRICE_LIST_rec.ship_method_code,
1057   X_FREIGHT_TERMS_CODE		=> p_PRICE_LIST_rec.freight_terms_code,
1058   X_START_DATE_ACTIVE		=> p_PRICE_LIST_rec.start_date_active,
1059   X_END_DATE_ACTIVE		=> p_PRICE_LIST_rec.end_date_active,
1060   X_AUTOMATIC_FLAG		=> 'N',
1061   X_LIST_TYPE_CODE		=> 'PRL',
1062   X_TERMS_ID			=> p_PRICE_LIST_rec.terms_id,
1063   X_ROUNDING_FACTOR		=> p_PRICE_LIST_rec.rounding_factor,
1064   X_REQUEST_ID			=> p_PRICE_LIST_rec.request_id,
1065   X_NAME			=> p_PRICE_LIST_rec.name,
1066   X_DESCRIPTION			=> p_PRICE_LIST_rec.description,
1067   X_CREATION_DATE		=> p_PRICE_LIST_rec.creation_date,
1068   X_CREATED_BY			=> p_PRICE_LIST_rec.created_by,
1069   X_LAST_UPDATE_DATE		=> p_PRICE_LIST_rec.last_update_date,
1070   X_LAST_UPDATED_BY		=> p_PRICE_LIST_rec.last_updated_by,
1071   X_LAST_UPDATE_LOGIN		=> p_PRICE_LIST_rec.last_update_login );
1072 
1073   /* create self qualifier for price list */
1074 
1075       QP_UTIL.Get_Context_Attribute('PRICE_LIST_ID', l_context, l_attribute);
1076 
1077 
1078           INSERT INTO QP_QUALIFIERS (
1079 		QUALIFIER_ID,
1080                 CREATION_DATE,
1081                 CREATED_BY,
1082                 LAST_UPDATE_DATE,
1083                 LAST_UPDATED_BY,
1084 		LAST_UPDATE_LOGIN,
1085                 LIST_HEADER_ID,
1086                 COMPARISON_OPERATOR_CODE,
1087                 QUALIFIER_CONTEXT,
1088 		QUALIFIER_ATTRIBUTE,
1089                 QUALIFIER_ATTR_VALUE,
1090                 QUALIFIER_GROUPING_NO,
1091                 EXCLUDER_FLAG
1092          --ENH Upgrade BOAPI for orig_sys...ref RAVI
1093          ,ORIG_SYS_QUALIFIER_REF
1094          ,ORIG_SYS_HEADER_REF)
1095                 VALUES (
1096 		QP_QUALIFIERS_S.nextval,
1097                 sysdate,
1098                 1,
1099                 sysdate,
1100                 1,
1101 		1,
1102                 p_PRICE_LIST_rec.price_list_id,
1103                 '=',
1104 		l_context,
1105                 l_attribute,
1106                 to_char(p_PRICE_LIST_rec.price_list_id),
1107                 qp_qualifier_group_no_s.nextval,
1108 		'N'
1109          --ENH Upgrade BOAPI for orig_sys...ref RAVI
1110          ,to_char(QP_QUALIFIERS_S.CURRVAL)
1111          ,(select h.ORIG_SYSTEM_HEADER_REF from qp_list_headers_b h where h.list_header_id=p_PRICE_LIST_rec.price_list_id)
1112         );
1113 
1114     /* create qualifier for secondary price list */
1115 
1116      IF p_PRICE_LIST_rec.secondary_price_list_id is not null THEN
1117 
1118       INSERT INTO QP_QUALIFIERS (
1119 		QUALIFIER_ID,
1120                 CREATION_DATE,
1121                 CREATED_BY,
1122                 LAST_UPDATE_DATE,
1123                 LAST_UPDATED_BY,
1124 		LAST_UPDATE_LOGIN,
1125                 LIST_HEADER_ID,
1126                 COMPARISON_OPERATOR_CODE,
1127                 QUALIFIER_CONTEXT,
1128 		QUALIFIER_ATTRIBUTE,
1129                 QUALIFIER_ATTR_VALUE,
1130                 QUALIFIER_GROUPING_NO,
1131                 EXCLUDER_FLAG
1132          --ENH Upgrade BOAPI for orig_sys...ref RAVI
1133          ,ORIG_SYS_QUALIFIER_REF
1134          ,ORIG_SYS_HEADER_REF
1135                 )
1136                 VALUES (
1137 		QP_QUALIFIERS_S.nextval,
1138                 sysdate,
1139                 1,
1140                 sysdate,
1141                 1,
1142 		1,
1143                 p_PRICE_LIST_rec.secondary_price_list_id,
1144                 '=',
1145 		l_context,
1146                 l_attribute,
1147                 to_char(p_PRICE_LIST_rec.price_list_id),
1148                 qp_qualifier_group_no_s.nextval,
1149 		'N'
1150          --ENH Upgrade BOAPI for orig_sys...ref RAVI
1151          ,to_char(QP_QUALIFIERS_S.CURRVAL)
1152          ,(select h.ORIG_SYSTEM_HEADER_REF from qp_list_headers_b h where h.list_header_id=p_PRICE_LIST_rec.secondary_price_list_id)
1153         );
1154      END IF;
1155 
1156 
1157 /*
1158 
1159 
1160     INSERT  INTO OE_PRICE_LISTS_B
1161     (       ATTRIBUTE1
1162     ,       ATTRIBUTE10
1163     ,       ATTRIBUTE11
1164     ,       ATTRIBUTE12
1165     ,       ATTRIBUTE13
1166     ,       ATTRIBUTE14
1167     ,       ATTRIBUTE15
1168     ,       ATTRIBUTE2
1169     ,       ATTRIBUTE3
1170     ,       ATTRIBUTE4
1171     ,       ATTRIBUTE5
1172     ,       ATTRIBUTE6
1173     ,       ATTRIBUTE7
1174     ,       ATTRIBUTE8
1175     ,       ATTRIBUTE9
1176     ,       COMMENTS
1177     ,       CONTEXT
1178     ,       CREATED_BY
1179     ,       CREATION_DATE
1180     ,       CURRENCY_CODE
1181     ,       DESCRIPTION
1182     ,       END_DATE_ACTIVE
1183     ,       FREIGHT_TERMS_CODE
1184     ,       LAST_UPDATED_BY
1185     ,       LAST_UPDATE_DATE
1186     ,       LAST_UPDATE_LOGIN
1187     ,       NAME
1188     ,       PRICE_LIST_ID
1189     ,       PROGRAM_APPLICATION_ID
1190     ,       PROGRAM_ID
1191     ,       PROGRAM_UPDATE_DATE
1192     ,       REQUEST_ID
1193     ,       ROUNDING_FACTOR
1194     ,       SECONDARY_PRICE_LIST_ID
1195     ,       SHIP_METHOD_CODE
1196     ,       START_DATE_ACTIVE
1197     ,       TERMS_ID
1198     ,	  TP_ATTRIBUTE1
1199     ,	  TP_ATTRIBUTE2
1200     ,	  TP_ATTRIBUTE3
1201     ,	  TP_ATTRIBUTE4
1202     ,	  TP_ATTRIBUTE5
1203     ,	  TP_ATTRIBUTE6
1204     ,	  TP_ATTRIBUTE7
1205     ,	  TP_ATTRIBUTE8
1206     ,	  TP_ATTRIBUTE9
1207     ,	  TP_ATTRIBUTE10
1208     ,	  TP_ATTRIBUTE11
1209     ,	  TP_ATTRIBUTE12
1210     ,	  TP_ATTRIBUTE13
1211     ,	  TP_ATTRIBUTE14
1212     ,	  TP_ATTRIBUTE15
1213     ,	  TP_ATTRIBUTE_CATEGORY
1214     )
1215     VALUES
1216     (       p_PRICE_LIST_rec.attribute1
1217     ,       p_PRICE_LIST_rec.attribute10
1218     ,       p_PRICE_LIST_rec.attribute11
1219     ,       p_PRICE_LIST_rec.attribute12
1220     ,       p_PRICE_LIST_rec.attribute13
1221     ,       p_PRICE_LIST_rec.attribute14
1222     ,       p_PRICE_LIST_rec.attribute15
1223     ,       p_PRICE_LIST_rec.attribute2
1224     ,       p_PRICE_LIST_rec.attribute3
1225     ,       p_PRICE_LIST_rec.attribute4
1226     ,       p_PRICE_LIST_rec.attribute5
1227     ,       p_PRICE_LIST_rec.attribute6
1228     ,       p_PRICE_LIST_rec.attribute7
1229     ,       p_PRICE_LIST_rec.attribute8
1230     ,       p_PRICE_LIST_rec.attribute9
1231     ,       p_PRICE_LIST_rec.comments
1232     ,       p_PRICE_LIST_rec.context
1233     ,       p_PRICE_LIST_rec.created_by
1234     ,       p_PRICE_LIST_rec.creation_date
1235     ,       p_PRICE_LIST_rec.currency_code
1236     ,       p_PRICE_LIST_rec.description
1237     ,       p_PRICE_LIST_rec.end_date_active
1238     ,       p_PRICE_LIST_rec.freight_terms_code
1239     ,       p_PRICE_LIST_rec.last_updated_by
1240     ,       p_PRICE_LIST_rec.last_update_date
1241     ,       p_PRICE_LIST_rec.last_update_login
1242     ,       p_PRICE_LIST_rec.name
1243     ,       p_PRICE_LIST_rec.price_list_id
1244     ,       p_PRICE_LIST_rec.program_application_id
1245     ,       p_PRICE_LIST_rec.program_id
1246     ,       p_PRICE_LIST_rec.program_update_date
1247     ,       p_PRICE_LIST_rec.request_id
1248     ,       p_PRICE_LIST_rec.rounding_factor
1249     ,       p_PRICE_LIST_rec.secondary_price_list_id
1250     ,       p_PRICE_LIST_rec.ship_method_code
1251     ,       p_PRICE_LIST_rec.start_date_active
1252     ,       p_PRICE_LIST_rec.terms_id
1253     ,	  p_PRICE_LIST_rec.tp_attribute1
1254     ,	  p_PRICE_LIST_rec.tp_attribute2
1255     ,	  p_PRICE_LIST_rec.tp_attribute3
1256     ,	  p_PRICE_LIST_rec.tp_attribute4
1257     ,	  p_PRICE_LIST_rec.tp_attribute5
1258     ,	  p_PRICE_LIST_rec.tp_attribute6
1259     ,	  p_PRICE_LIST_rec.tp_attribute7
1260     ,	  p_PRICE_LIST_rec.tp_attribute8
1261     ,	  p_PRICE_LIST_rec.tp_attribute9
1262     ,	  p_PRICE_LIST_rec.tp_attribute10
1263     ,	  p_PRICE_LIST_rec.tp_attribute11
1264     ,	  p_PRICE_LIST_rec.tp_attribute12
1265     ,	  p_PRICE_LIST_rec.tp_attribute13
1266     ,	  p_PRICE_LIST_rec.tp_attribute14
1267     ,	  p_PRICE_LIST_rec.tp_attribute15
1268     ,	  p_PRICE_LIST_rec.tp_attribute_category
1269     );
1270 
1271 	insert into OE_PRICE_LISTS_TL (
1272     	CREATION_DATE,
1273    	CREATED_BY,
1274 	LAST_UPDATE_LOGIN,
1275 	NAME,
1276   	LAST_UPDATE_DATE,
1277   	LAST_UPDATED_BY,
1278   	PRICE_LIST_ID,
1279   	LANGUAGE,
1280 	SOURCE_LANG )
1281 	select p_PRICE_LIST_rec.creation_date ,
1282 		  p_PRICE_LIST_rec.created_by,
1283 		  p_PRICE_LIST_rec.last_update_login ,
1284 		  p_PRICE_LIST_rec.name ,
1285 		  p_PRICE_LIST_rec.last_update_date ,
1286 		  p_PRICE_LIST_rec.last_updated_by ,
1287 		  p_PRICE_LIST_rec.price_list_id ,
1288 		  L.language_code ,
1289 		  userenv('LANG')
1290 	from FND_LANGUAGES L
1291 	where L.installed_flag in ('I','B')
1292 	and not exists
1293 		 ( select NULL from oe_price_lists_tl T
1294 			where T.price_list_id = p_PRICE_LIST_rec.price_list_id
1295 			and T.language = L.language_code ) ;
1296 
1297     */
1298 
1299 
1300 
1301 
1302 
1303 
1304     oe_debug_pub.add('Exiting OE_Price_List_Util.Insert_Row');
1305 
1306 EXCEPTION
1307 
1308     WHEN OTHERS THEN
1309 
1310         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1311         THEN
1312             OE_MSG_PUB.Add_Exc_Msg
1313             (   G_PKG_NAME
1314             ,   'Insert_Row'
1315             );
1316         END IF;
1317 
1318         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1319 
1320 END Insert_Row;
1321 
1322 --  Procedure Delete_Row
1323 
1324 PROCEDURE Delete_Row
1325 (   p_name                          IN  VARCHAR2
1326 ,   p_price_list_id                 IN  NUMBER
1327 )
1328 IS
1329 l_sec_price_list_id number;
1330 l_context varchar2(30);
1331 l_attribute varchar2(30);
1332 BEGIN
1333 
1334    QP_UTIL.Get_Context_Attribute('PRICE_LIST_ID', l_context, l_attribute);
1335 
1336    l_sec_price_list_id :=
1337                           Qp_Price_List_Pvt.Get_Secondary_Price_List(
1338                                p_price_list_id);
1339 
1340     QP_LIST_HEADERS_PKG.Delete_Row(p_price_list_id);
1341 
1342        IF l_sec_price_list_id is not null THEN
1343 
1344          delete from qp_qualifiers
1345          where qualifier_context = l_context
1346          and qualifier_attribute = l_attribute
1347          and qualifier_attr_value = p_price_list_id
1348          and list_header_id = l_sec_price_list_id
1349          and qualifier_rule_id is null;
1350 
1351        END IF;
1352 
1353 EXCEPTION
1354 
1355     WHEN OTHERS THEN
1356 
1357         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1358         THEN
1359             OE_MSG_PUB.Add_Exc_Msg
1360             (   G_PKG_NAME
1361             ,   'Delete_Row'
1362             );
1363         END IF;
1364 
1365         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1366 
1367 END Delete_Row;
1368 
1369 --  Function Query_Row
1370 
1371 FUNCTION Query_Row
1372 (   p_name                          IN  VARCHAR2
1373 ,   p_price_list_id                 IN  NUMBER
1374 ) RETURN OE_Price_List_PUB.Price_List_Rec_Type
1375 IS
1376 l_PRICE_LIST_rec              OE_Price_List_PUB.Price_List_Rec_Type;
1377 BEGIN
1378 
1379     SELECT  ATTRIBUTE1
1380     ,       ATTRIBUTE10
1381     ,       ATTRIBUTE11
1382     ,       ATTRIBUTE12
1383     ,       ATTRIBUTE13
1384     ,       ATTRIBUTE14
1385     ,       ATTRIBUTE15
1386     ,       ATTRIBUTE2
1387     ,       ATTRIBUTE3
1388     ,       ATTRIBUTE4
1389     ,       ATTRIBUTE5
1390     ,       ATTRIBUTE6
1391     ,       ATTRIBUTE7
1392     ,       ATTRIBUTE8
1393     ,       ATTRIBUTE9
1394     ,       COMMENTS
1395     ,       CONTEXT
1396     ,       CREATED_BY
1397     ,       CREATION_DATE
1398     ,       CURRENCY_CODE
1399     ,       DESCRIPTION
1400     ,       END_DATE_ACTIVE
1401     ,       FREIGHT_TERMS_CODE
1402     ,       LAST_UPDATED_BY
1403     ,       LAST_UPDATE_DATE
1404     ,       LAST_UPDATE_LOGIN
1405     ,       NAME
1406     ,       LIST_HEADER_ID
1407     ,       PROGRAM_APPLICATION_ID
1408     ,       PROGRAM_ID
1409     ,       PROGRAM_UPDATE_DATE
1410     ,       REQUEST_ID
1411     ,       ROUNDING_FACTOR
1412     ,       SHIP_METHOD_CODE
1413     ,       START_DATE_ACTIVE
1414     ,       TERMS_ID
1415     INTO    l_PRICE_LIST_rec.attribute1
1416     ,       l_PRICE_LIST_rec.attribute10
1417     ,       l_PRICE_LIST_rec.attribute11
1418     ,       l_PRICE_LIST_rec.attribute12
1419     ,       l_PRICE_LIST_rec.attribute13
1420     ,       l_PRICE_LIST_rec.attribute14
1421     ,       l_PRICE_LIST_rec.attribute15
1422     ,       l_PRICE_LIST_rec.attribute2
1423     ,       l_PRICE_LIST_rec.attribute3
1424     ,       l_PRICE_LIST_rec.attribute4
1425     ,       l_PRICE_LIST_rec.attribute5
1426     ,       l_PRICE_LIST_rec.attribute6
1427     ,       l_PRICE_LIST_rec.attribute7
1428     ,       l_PRICE_LIST_rec.attribute8
1429     ,       l_PRICE_LIST_rec.attribute9
1430     ,       l_PRICE_LIST_rec.comments
1431     ,       l_PRICE_LIST_rec.context
1432     ,       l_PRICE_LIST_rec.created_by
1433     ,       l_PRICE_LIST_rec.creation_date
1434     ,       l_PRICE_LIST_rec.currency_code
1435     ,       l_PRICE_LIST_rec.description
1436     ,       l_PRICE_LIST_rec.end_date_active
1437     ,       l_PRICE_LIST_rec.freight_terms_code
1438     ,       l_PRICE_LIST_rec.last_updated_by
1439     ,       l_PRICE_LIST_rec.last_update_date
1440     ,       l_PRICE_LIST_rec.last_update_login
1441     ,       l_PRICE_LIST_rec.name
1442     ,       l_PRICE_LIST_rec.price_list_id
1443     ,       l_PRICE_LIST_rec.program_application_id
1444     ,       l_PRICE_LIST_rec.program_id
1445     ,       l_PRICE_LIST_rec.program_update_date
1446     ,       l_PRICE_LIST_rec.request_id
1447     ,       l_PRICE_LIST_rec.rounding_factor
1448     ,       l_PRICE_LIST_rec.ship_method_code
1449     ,       l_PRICE_LIST_rec.start_date_active
1450     ,       l_PRICE_LIST_rec.terms_id
1451     FROM    QP_LIST_HEADERS_VL
1452     WHERE   LIST_HEADER_ID = p_price_list_id;
1453 
1454     l_PRICE_LIST_rec.secondary_price_list_id :=
1455                           Qp_Price_List_Pvt.Get_Secondary_Price_List(
1456                                 p_price_list_id);
1457 
1458     RETURN l_PRICE_LIST_rec;
1459 
1460 EXCEPTION
1461 
1465         THEN
1462     WHEN OTHERS THEN
1463 
1464         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1466             OE_MSG_PUB.Add_Exc_Msg
1467             (   G_PKG_NAME
1468             ,   'Query_Row'
1469             );
1470         END IF;
1471 
1472         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1473 
1474 END Query_Row;
1475 
1476 --  Procedure       lock_Row
1477 --
1478 
1479 PROCEDURE Lock_Row
1480 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1481 ,   p_PRICE_LIST_rec                IN  OE_Price_List_PUB.Price_List_Rec_Type
1482 ,   x_PRICE_LIST_rec                OUT NOCOPY /* file.sql.39 change */ OE_Price_List_PUB.Price_List_Rec_Type
1483 )
1484 IS
1485 l_PRICE_LIST_rec              OE_Price_List_PUB.Price_List_Rec_Type;
1486 BEGIN
1487 
1488   QP_LIST_HEADERS_PKG.LOCK_ROW (
1489   X_LIST_HEADER_ID 		=> p_PRICE_LIST_rec.price_list_id,
1490   X_CONTEXT 			=> p_PRICE_LIST_rec.context,
1491   X_ATTRIBUTE1			=> p_PRICE_LIST_rec.attribute1,
1492   X_ATTRIBUTE2			=> p_PRICE_LIST_rec.attribute2,
1493   X_ATTRIBUTE3			=> p_PRICE_LIST_rec.attribute3,
1494   X_ATTRIBUTE4			=> p_PRICE_LIST_rec.attribute4,
1495   X_ATTRIBUTE5			=> p_PRICE_LIST_rec.attribute5,
1496   X_ATTRIBUTE6			=> p_PRICE_LIST_rec.attribute6,
1497   X_ATTRIBUTE7			=> p_PRICE_LIST_rec.attribute7,
1498   X_ATTRIBUTE8			=> p_PRICE_LIST_rec.attribute8,
1499   X_ATTRIBUTE9			=> p_PRICE_LIST_rec.attribute9,
1500   X_ATTRIBUTE10			=> p_PRICE_LIST_rec.attribute10,
1501   X_ATTRIBUTE11			=> p_PRICE_LIST_rec.attribute11,
1502   X_ATTRIBUTE12			=> p_PRICE_LIST_rec.attribute12,
1503   X_ATTRIBUTE13			=> p_PRICE_LIST_rec.attribute13,
1504   X_ATTRIBUTE14			=> p_PRICE_LIST_rec.attribute14,
1505   X_ATTRIBUTE15			=> p_PRICE_LIST_rec.attribute15,
1506   X_CURRENCY_CODE		=> p_PRICE_LIST_rec.currency_code,
1507   X_SHIP_METHOD_CODE		=> p_PRICE_LIST_rec.ship_method_code,
1508   X_FREIGHT_TERMS_CODE		=> p_PRICE_LIST_rec.freight_terms_code,
1509   X_START_DATE_ACTIVE		=> p_PRICE_LIST_rec.start_date_active,
1510   X_END_DATE_ACTIVE		=> p_PRICE_LIST_rec.end_date_active,
1511   X_AUTOMATIC_FLAG		=> 'N',
1512   X_LIST_TYPE_CODE		=> 'PRL',
1513   X_TERMS_ID			=> p_PRICE_LIST_rec.terms_id,
1514   X_ROUNDING_FACTOR		=> p_PRICE_LIST_rec.rounding_factor,
1515   X_REQUEST_ID			=> p_PRICE_LIST_rec.request_id,
1516   X_NAME			=> p_PRICE_LIST_rec.name,
1517   X_DESCRIPTION			=> p_PRICE_LIST_rec.description);
1518 
1519    x_PRICE_LIST_rec := p_PRICE_LIST_rec;
1520 
1521 EXCEPTION
1522 
1523     WHEN NO_DATA_FOUND THEN
1524 
1525         x_return_status                := FND_API.G_RET_STS_ERROR;
1526         x_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
1527 
1528         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1529         THEN
1530 
1531             FND_MESSAGE.SET_NAME('OE','OE_LOCK_ROW_DELETED');
1532             OE_MSG_PUB.Add;
1533 
1534         END IF;
1535     WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
1536 
1537         x_return_status                := FND_API.G_RET_STS_ERROR;
1538         x_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
1539 
1540         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
1541         THEN
1542 
1543             FND_MESSAGE.SET_NAME('OE','OE_LOCK_ROW_ALREADY_LOCKED');
1544             OE_MSG_PUB.Add;
1545 
1546         END IF;
1547     WHEN OTHERS THEN
1548 
1549         x_return_status                := FND_API.G_RET_STS_UNEXP_ERROR;
1550         x_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1551 
1552         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1553         THEN
1554             OE_MSG_PUB.Add_Exc_Msg
1555             (   G_PKG_NAME
1556             ,   'Lock_Row'
1557             );
1558         END IF;
1559 
1560 END Lock_Row;
1561 
1562 --  Function Get_Values
1563 
1564 FUNCTION Get_Values
1565 (   p_PRICE_LIST_rec                IN  OE_Price_List_PUB.Price_List_Rec_Type
1566 ,   p_old_PRICE_LIST_rec            IN  OE_Price_List_PUB.Price_List_Rec_Type :=
1567                                         OE_Price_List_PUB.G_MISS_PRICE_LIST_REC
1568 ) RETURN OE_Price_List_PUB.Price_List_Val_Rec_Type
1569 IS
1570 l_PRICE_LIST_val_rec          OE_Price_List_PUB.Price_List_Val_Rec_Type;
1571 BEGIN
1572 
1573     IF p_PRICE_LIST_rec.currency_code IS NOT NULL AND
1574         p_PRICE_LIST_rec.currency_code <> FND_API.G_MISS_CHAR AND
1575         NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.currency_code,
1576         p_old_PRICE_LIST_rec.currency_code)
1577     THEN
1578         l_PRICE_LIST_val_rec.currency := OE_Id_To_Value.Currency
1579         (   p_currency_code               => p_PRICE_LIST_rec.currency_code
1580         );
1581     END IF;
1582 
1583     IF p_PRICE_LIST_rec.freight_terms_code IS NOT NULL AND
1584         p_PRICE_LIST_rec.freight_terms_code <> FND_API.G_MISS_CHAR AND
1585         NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.freight_terms_code,
1586         p_old_PRICE_LIST_rec.freight_terms_code)
1587     THEN
1588         l_PRICE_LIST_val_rec.freight_terms := OE_Id_To_Value.Freight_Terms
1589         (   p_freight_terms_code          => p_PRICE_LIST_rec.freight_terms_code
1590         );
1591     END IF;
1592 
1593 /* may be commented after validation in program */
1594 /* no need to do this validation :: OEXLPLHB.pls
1595 
1596     IF p_PRICE_LIST_rec.price_list_id IS NOT NULL AND
1597         p_PRICE_LIST_rec.price_list_id <> FND_API.G_MISS_NUM AND
1598         NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.price_list_id,
1599         p_old_PRICE_LIST_rec.price_list_id)
1600     THEN
1601         l_PRICE_LIST_val_rec.price_list := OE_Id_To_Value.Price_List
1602         (   p_price_list_id               => p_PRICE_LIST_rec.price_list_id
1603         );
1604 
1605 	l_PRICE_LIST_val_rec.price_list := NULL;
1606     END IF;
1607 */
1608 
1609     IF p_PRICE_LIST_rec.secondary_price_list_id IS NOT NULL AND
1610         p_PRICE_LIST_rec.secondary_price_list_id <> FND_API.G_MISS_NUM AND
1611         NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.secondary_price_list_id,
1612         p_old_PRICE_LIST_rec.secondary_price_list_id)
1613     THEN
1614         l_PRICE_LIST_val_rec.secondary_price_list := OE_Id_To_Value.Secondary_Price_List
1615         (   p_secondary_price_list_id     => p_PRICE_LIST_rec.secondary_price_list_id
1616         );
1617     END IF;
1618 
1619     IF p_PRICE_LIST_rec.ship_method_code IS NOT NULL AND
1620         p_PRICE_LIST_rec.ship_method_code <> FND_API.G_MISS_CHAR AND
1621         NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.ship_method_code,
1622         p_old_PRICE_LIST_rec.ship_method_code)
1623     THEN
1624         l_PRICE_LIST_val_rec.ship_method := OE_Id_To_Value.Ship_Method
1625         (   p_ship_method_code            => p_PRICE_LIST_rec.ship_method_code
1626         );
1627     END IF;
1628 
1629     IF p_PRICE_LIST_rec.terms_id IS NOT NULL AND
1630         p_PRICE_LIST_rec.terms_id <> FND_API.G_MISS_NUM AND
1631         NOT OE_GLOBALS.Equal(p_PRICE_LIST_rec.terms_id,
1632         p_old_PRICE_LIST_rec.terms_id)
1633     THEN
1634         l_PRICE_LIST_val_rec.terms := OE_Id_To_Value.Terms
1635         (   p_terms_id                    => p_PRICE_LIST_rec.terms_id
1636         );
1637     END IF;
1638 
1639     RETURN l_PRICE_LIST_val_rec;
1640 
1641 END Get_Values;
1642 
1643 --  Function Get_Ids
1644 
1645 FUNCTION Get_Ids
1646 (   p_PRICE_LIST_rec                IN  OE_Price_List_PUB.Price_List_Rec_Type
1647 ,   p_PRICE_LIST_val_rec            IN  OE_Price_List_PUB.Price_List_Val_Rec_Type
1648 ) RETURN OE_Price_List_PUB.Price_List_Rec_Type
1649 IS
1650 l_PRICE_LIST_rec              OE_Price_List_PUB.Price_List_Rec_Type;
1651 BEGIN
1652 
1653     --  initialize  return_status.
1654 
1655     l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_SUCCESS;
1656 
1657     --  initialize l_PRICE_LIST_rec.
1658 
1659     l_PRICE_LIST_rec := p_PRICE_LIST_rec;
1660 
1661     IF  p_PRICE_LIST_val_rec.currency <> FND_API.G_MISS_CHAR
1662     THEN
1663 
1664         IF p_PRICE_LIST_rec.currency_code <> FND_API.G_MISS_CHAR THEN
1665 
1666             l_PRICE_LIST_rec.currency_code := p_PRICE_LIST_rec.currency_code;
1667 
1668             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1669             THEN
1670 
1671                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
1672                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','currency');
1673                 OE_MSG_PUB.Add;
1674 
1675             END IF;
1676 
1677         ELSE
1678 
1679             l_PRICE_LIST_rec.currency_code := OE_Value_To_Id.currency
1680             (   p_currency                    => p_PRICE_LIST_val_rec.currency
1681             );
1682 
1683             IF l_PRICE_LIST_rec.currency_code = FND_API.G_MISS_CHAR THEN
1684                 l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
1685             END IF;
1686 
1687         END IF;
1688 
1689     END IF;
1690 
1691     IF  p_PRICE_LIST_val_rec.freight_terms <> FND_API.G_MISS_CHAR
1692     THEN
1693 
1694         IF p_PRICE_LIST_rec.freight_terms_code <> FND_API.G_MISS_CHAR THEN
1695 
1696             l_PRICE_LIST_rec.freight_terms_code := p_PRICE_LIST_rec.freight_terms_code;
1697 
1698             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1699             THEN
1700 
1701                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
1702                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','freight_terms');
1703                 OE_MSG_PUB.Add;
1704 
1705             END IF;
1706 
1707         ELSE
1708 
1709             l_PRICE_LIST_rec.freight_terms_code := OE_Value_To_Id.freight_terms
1710             (   p_freight_terms               => p_PRICE_LIST_val_rec.freight_terms
1711             );
1712 
1713             IF l_PRICE_LIST_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN
1714                 l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
1715             END IF;
1716 
1717         END IF;
1718 
1719     END IF;
1720 
1721     IF  p_PRICE_LIST_val_rec.price_list <> FND_API.G_MISS_CHAR
1722     THEN
1723 
1724         IF p_PRICE_LIST_rec.price_list_id <> FND_API.G_MISS_NUM THEN
1725 
1726             l_PRICE_LIST_rec.price_list_id := p_PRICE_LIST_rec.price_list_id;
1727 
1728             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1729             THEN
1730 
1731                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
1732                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','price_list');
1733                 OE_MSG_PUB.Add;
1734 
1735             END IF;
1736 
1737         ELSE
1738 
1739             l_PRICE_LIST_rec.price_list_id := OE_Value_To_Id.price_list
1740             (   p_price_list                  => p_PRICE_LIST_val_rec.price_list
1741             );
1742 
1743             IF l_PRICE_LIST_rec.price_list_id = FND_API.G_MISS_NUM THEN
1744                 l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
1745             END IF;
1746 
1747         END IF;
1748 
1749     END IF;
1750 
1751     IF  p_PRICE_LIST_val_rec.secondary_price_list <> FND_API.G_MISS_CHAR
1752     THEN
1753 
1754         IF p_PRICE_LIST_rec.secondary_price_list_id <> FND_API.G_MISS_NUM THEN
1755 
1756             l_PRICE_LIST_rec.secondary_price_list_id := p_PRICE_LIST_rec.secondary_price_list_id;
1757 
1758             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1759             THEN
1760 
1761                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
1762                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','secondary_price_list');
1763                 OE_MSG_PUB.Add;
1764 
1765             END IF;
1766 
1767         ELSE
1768 
1769             l_PRICE_LIST_rec.secondary_price_list_id := OE_Value_To_Id.secondary_price_list
1770             (   p_secondary_price_list        => p_PRICE_LIST_val_rec.secondary_price_list
1771             );
1772 
1773             IF l_PRICE_LIST_rec.secondary_price_list_id = FND_API.G_MISS_NUM THEN
1774                 l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
1775             END IF;
1776 
1777         END IF;
1778 
1779     END IF;
1780 
1781     IF  p_PRICE_LIST_val_rec.ship_method <> FND_API.G_MISS_CHAR
1782     THEN
1783 
1784         IF p_PRICE_LIST_rec.ship_method_code <> FND_API.G_MISS_CHAR THEN
1785 
1786             l_PRICE_LIST_rec.ship_method_code := p_PRICE_LIST_rec.ship_method_code;
1787 
1788             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1789             THEN
1790 
1791                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
1792                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','ship_method');
1793                 OE_MSG_PUB.Add;
1794 
1795             END IF;
1796 
1797         ELSE
1798 
1799             l_PRICE_LIST_rec.ship_method_code := OE_Value_To_Id.ship_method
1800             (   p_ship_method                 => p_PRICE_LIST_val_rec.ship_method
1801             );
1802 
1803             IF l_PRICE_LIST_rec.ship_method_code = FND_API.G_MISS_CHAR THEN
1804                 l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
1805             END IF;
1806 
1807         END IF;
1808 
1809     END IF;
1810 
1811     IF  p_PRICE_LIST_val_rec.terms <> FND_API.G_MISS_CHAR
1812     THEN
1813 
1814         IF p_PRICE_LIST_rec.terms_id <> FND_API.G_MISS_NUM THEN
1815 
1816             l_PRICE_LIST_rec.terms_id := p_PRICE_LIST_rec.terms_id;
1817 
1818             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
1819             THEN
1820 
1821                 FND_MESSAGE.SET_NAME('OE','FND_BOTH_VAL_AND_ID_EXIST');
1822                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','terms');
1823                 OE_MSG_PUB.Add;
1824 
1825             END IF;
1826 
1827         ELSE
1828 
1829             l_PRICE_LIST_rec.terms_id := OE_Value_To_Id.terms
1830             (   p_terms                       => p_PRICE_LIST_val_rec.terms
1831             );
1832 
1833             IF l_PRICE_LIST_rec.terms_id = FND_API.G_MISS_NUM THEN
1834                 l_PRICE_LIST_rec.return_status := FND_API.G_RET_STS_ERROR;
1835             END IF;
1836 
1837         END IF;
1838 
1839     END IF;
1840 
1841 
1842     RETURN l_PRICE_LIST_rec;
1843 
1844 END Get_Ids;
1845 
1846 
1847 END OE_Price_List_Util;