DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_CURR_LISTS_UTIL

Source


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