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