[Home] [Help]
PACKAGE BODY: APPS.QP_QP_FORM_CURR_DETAILS
Source
1 PACKAGE BODY QP_QP_Form_Curr_Details AS
2 /* $Header: QPXFCDTB.pls 120.1 2005/06/12 23:57:58 appldev $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'QP_QP_Form_Curr_Details';
7
8 -- Global variables holding cached record.
9
10 g_CURR_DETAILS_rec QP_Currency_PUB.Curr_Details_Rec_Type;
11 g_db_CURR_DETAILS_rec QP_Currency_PUB.Curr_Details_Rec_Type;
12
13 -- Forward declaration of procedures maintaining entity record cache.
14
15 PROCEDURE Write_CURR_DETAILS
16 ( p_CURR_DETAILS_rec IN QP_Currency_PUB.Curr_Details_Rec_Type
17 , p_db_record IN BOOLEAN := FALSE
18 );
19
20 FUNCTION Get_CURR_DETAILS
21 ( p_db_record IN BOOLEAN := FALSE
22 , p_currency_detail_id IN NUMBER
23 )
24 RETURN QP_Currency_PUB.Curr_Details_Rec_Type;
25
26 PROCEDURE Clear_CURR_DETAILS;
27
28 -- Global variable holding performed operations.
29
30 g_opr__tbl QP_Currency_PUB.Curr_Details_Tbl_Type;
31
32 -- Procedure : Default_Attributes
33 --
34
35 PROCEDURE Default_Attributes
36 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
37 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
38 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
39 , p_currency_header_id IN NUMBER -- Added by Sunil
40 , x_attribute1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
41 , x_attribute10 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
42 , x_attribute11 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
43 , x_attribute12 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
44 , x_attribute13 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
45 , x_attribute14 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
46 , x_attribute15 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
47 , x_attribute2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
48 , x_attribute3 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
49 , x_attribute4 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
50 , x_attribute5 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
51 , x_attribute6 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
52 , x_attribute7 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
53 , x_attribute8 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
54 , x_attribute9 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
55 , x_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
56 , x_conversion_date OUT NOCOPY /* file.sql.39 change */ DATE
57 , x_conversion_date_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
58 --, x_conversion_method OUT NOCOPY /* file.sql.39 change */ VARCHAR2
59 , x_conversion_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
60 , x_currency_detail_id OUT NOCOPY /* file.sql.39 change */ NUMBER
61 , x_currency_header_id OUT NOCOPY /* file.sql.39 change */ NUMBER
62 , x_end_date_active OUT NOCOPY /* file.sql.39 change */ DATE
63 , x_fixed_value OUT NOCOPY /* file.sql.39 change */ NUMBER
64 , x_markup_formula_id OUT NOCOPY /* file.sql.39 change */ NUMBER
65 , x_markup_operator OUT NOCOPY /* file.sql.39 change */ VARCHAR2
66 , x_markup_value OUT NOCOPY /* file.sql.39 change */ NUMBER
67 , x_price_formula_id OUT NOCOPY /* file.sql.39 change */ NUMBER
68 , x_rounding_factor OUT NOCOPY /* file.sql.39 change */ NUMBER
69 , x_selling_rounding_factor OUT NOCOPY /* file.sql.39 change */ NUMBER
70 , x_start_date_active OUT NOCOPY /* file.sql.39 change */ DATE
71 , x_to_currency_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
72 , x_currency_detail OUT NOCOPY /* file.sql.39 change */ VARCHAR2
73 , x_currency_header OUT NOCOPY /* file.sql.39 change */ VARCHAR2
74 , x_markup_formula OUT NOCOPY /* file.sql.39 change */ VARCHAR2
75 , x_price_formula OUT NOCOPY /* file.sql.39 change */ VARCHAR2
76 , x_to_currency OUT NOCOPY /* file.sql.39 change */ VARCHAR2
77 , x_curr_attribute_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
78 , x_curr_attribute_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
79 , x_curr_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2
80 , x_curr_attribute_value OUT NOCOPY /* file.sql.39 change */ VARCHAR2
81 , x_precedence OUT NOCOPY /* file.sql.39 change */ NUMBER
82 )
83 IS
84 l_CURR_DETAILS_rec QP_Currency_PUB.Curr_Details_Rec_Type;
85 l_CURR_DETAILS_val_rec QP_Currency_PUB.Curr_Details_Val_Rec_Type;
86 l_CURR_DETAILS_tbl QP_Currency_PUB.Curr_Details_Tbl_Type;
87 l_control_rec QP_GLOBALS.Control_Rec_Type;
88 l_return_status VARCHAR2(1);
89 l_x_CURR_LISTS_rec QP_Currency_PUB.Curr_Lists_Rec_Type;
90 l_x_CURR_DETAILS_rec QP_Currency_PUB.Curr_Details_Rec_Type;
91 l_x_CURR_DETAILS_tbl QP_Currency_PUB.Curr_Details_Tbl_Type;
92 BEGIN
93
94 -- oe_debug_pub.add('Inside CDT-F Default_Attributes');
95 -- Set control flags.
96
97 l_control_rec.controlled_operation := TRUE;
98 l_control_rec.default_attributes := TRUE;
99
100 l_control_rec.change_attributes := FALSE;
101 l_control_rec.validate_entity := FALSE;
102 l_control_rec.write_to_DB := FALSE;
103 l_control_rec.process := FALSE;
104
105 -- Instruct API to retain its caches
106
107 l_control_rec.clear_api_cache := FALSE;
108 l_control_rec.clear_api_requests := FALSE;
109
110 -- Load IN parameters if any exist
111 l_CURR_DETAILS_rec.currency_header_id := p_currency_header_id; -- Added by Sunil
112
113
114 -- Defaulting of flex values is currently done by the form.
115 -- Set flex attributes to NULL in order to avoid defaulting them.
116
117 l_CURR_DETAILS_rec.attribute1 := NULL;
118 l_CURR_DETAILS_rec.attribute10 := NULL;
119 l_CURR_DETAILS_rec.attribute11 := NULL;
120 l_CURR_DETAILS_rec.attribute12 := NULL;
121 l_CURR_DETAILS_rec.attribute13 := NULL;
122 l_CURR_DETAILS_rec.attribute14 := NULL;
123 l_CURR_DETAILS_rec.attribute15 := NULL;
124 l_CURR_DETAILS_rec.attribute2 := NULL;
125 l_CURR_DETAILS_rec.attribute3 := NULL;
126 l_CURR_DETAILS_rec.attribute4 := NULL;
127 l_CURR_DETAILS_rec.attribute5 := NULL;
128 l_CURR_DETAILS_rec.attribute6 := NULL;
129 l_CURR_DETAILS_rec.attribute7 := NULL;
130 l_CURR_DETAILS_rec.attribute8 := NULL;
131 l_CURR_DETAILS_rec.attribute9 := NULL;
132 l_CURR_DETAILS_rec.context := NULL;
133
134 -- Set Operation to Create
135
136 l_CURR_DETAILS_rec.operation := QP_GLOBALS.G_OPR_CREATE;
137
138 -- Populate CURR_DETAILS table
139
140 l_CURR_DETAILS_tbl(1) := l_CURR_DETAILS_rec;
141
142 -- Call QP_Currency_PVT.Process_Currency
143
144 -- oe_debug_pub.add('BEF CDT F package; l_x_CURR_LISTS_rec.currency_header_id : '||l_x_CURR_LISTS_rec.currency_header_id);
145 -- oe_debug_pub.add('l_CURR_LISTS_rec.currency_header_id : '||l_CURR_DETAILS_rec.currency_header_id);
146 QP_Currency_PVT.Process_Currency
147 ( p_api_version_number => 1.0
148 , p_init_msg_list => FND_API.G_TRUE
149 , x_return_status => l_return_status
150 , x_msg_count => x_msg_count
151 , x_msg_data => x_msg_data
152 , p_control_rec => l_control_rec
153 , p_CURR_DETAILS_tbl => l_CURR_DETAILS_tbl
154 , x_CURR_LISTS_rec => l_x_CURR_LISTS_rec
155 , x_CURR_DETAILS_tbl => l_x_CURR_DETAILS_tbl
156 );
157 -- oe_debug_pub.add('AFT CDT F package; currency_header_id: '||l_x_CURR_DETAILS_tbl(1).currency_header_id);
158
159
160 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
161 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
162 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
163 RAISE FND_API.G_EXC_ERROR;
164 END IF;
165
166
167 -- Unload out tbl
168
169 l_x_CURR_DETAILS_rec := l_x_CURR_DETAILS_tbl(1);
170
171 -- Load OUT parameters.
172
173 x_attribute1 := l_x_CURR_DETAILS_rec.attribute1;
174 x_attribute10 := l_x_CURR_DETAILS_rec.attribute10;
175 x_attribute11 := l_x_CURR_DETAILS_rec.attribute11;
176 x_attribute12 := l_x_CURR_DETAILS_rec.attribute12;
177 x_attribute13 := l_x_CURR_DETAILS_rec.attribute13;
178 x_attribute14 := l_x_CURR_DETAILS_rec.attribute14;
179 x_attribute15 := l_x_CURR_DETAILS_rec.attribute15;
180 x_attribute2 := l_x_CURR_DETAILS_rec.attribute2;
181 x_attribute3 := l_x_CURR_DETAILS_rec.attribute3;
182 x_attribute4 := l_x_CURR_DETAILS_rec.attribute4;
183 x_attribute5 := l_x_CURR_DETAILS_rec.attribute5;
184 x_attribute6 := l_x_CURR_DETAILS_rec.attribute6;
185 x_attribute7 := l_x_CURR_DETAILS_rec.attribute7;
186 x_attribute8 := l_x_CURR_DETAILS_rec.attribute8;
187 x_attribute9 := l_x_CURR_DETAILS_rec.attribute9;
188 x_context := l_x_CURR_DETAILS_rec.context;
189 x_conversion_date := l_x_CURR_DETAILS_rec.conversion_date;
190 x_conversion_date_type := l_x_CURR_DETAILS_rec.conversion_date_type;
191 --x_conversion_method := l_x_CURR_DETAILS_rec.conversion_method;
192 x_conversion_type := l_x_CURR_DETAILS_rec.conversion_type;
193 x_currency_detail_id := l_x_CURR_DETAILS_rec.currency_detail_id;
194 x_currency_header_id := l_x_CURR_DETAILS_rec.currency_header_id;
195 x_end_date_active := l_x_CURR_DETAILS_rec.end_date_active;
196 x_fixed_value := l_x_CURR_DETAILS_rec.fixed_value;
197 x_markup_formula_id := l_x_CURR_DETAILS_rec.markup_formula_id;
198 x_markup_operator := l_x_CURR_DETAILS_rec.markup_operator;
199 x_markup_value := l_x_CURR_DETAILS_rec.markup_value;
200 x_price_formula_id := l_x_CURR_DETAILS_rec.price_formula_id;
201 x_rounding_factor := l_x_CURR_DETAILS_rec.rounding_factor;
202 x_selling_rounding_factor := l_x_CURR_DETAILS_rec.selling_rounding_factor;
203 x_start_date_active := l_x_CURR_DETAILS_rec.start_date_active;
204 x_to_currency_code := l_x_CURR_DETAILS_rec.to_currency_code;
205 x_curr_attribute_type := l_x_CURR_DETAILS_rec.curr_attribute_type;
206 x_curr_attribute_context := l_x_CURR_DETAILS_rec.curr_attribute_context;
207 x_curr_attribute := l_x_CURR_DETAILS_rec.curr_attribute;
208 x_curr_attribute_value := l_x_CURR_DETAILS_rec.curr_attribute_value;
209 x_precedence := l_x_CURR_DETAILS_rec.precedence;
210
211 -- Load display out parameters if any
212
213 l_CURR_DETAILS_val_rec := QP_Curr_Details_Util.Get_Values
214 ( p_CURR_DETAILS_rec => l_x_CURR_DETAILS_rec
215 );
216 x_currency_detail := l_CURR_DETAILS_val_rec.currency_detail;
217 x_currency_header := l_CURR_DETAILS_val_rec.currency_header;
218 x_markup_formula := l_CURR_DETAILS_val_rec.markup_formula;
219 x_price_formula := l_CURR_DETAILS_val_rec.price_formula;
220 x_to_currency := l_CURR_DETAILS_val_rec.to_currency;
221
222 -- Write to cache.
223 -- Set db_flag to False before writing to cache
224
225 l_x_CURR_DETAILS_rec.db_flag := FND_API.G_FALSE;
226
227 Write_CURR_DETAILS
228 ( p_CURR_DETAILS_rec => l_x_CURR_DETAILS_rec
229 );
230
231 -- Set return status.
232
233 x_return_status := FND_API.G_RET_STS_SUCCESS;
234
235 -- Get message count and data
236
237 OE_MSG_PUB.Count_And_Get
238 ( p_count => x_msg_count
239 , p_data => x_msg_data
240 );
241
242
243 EXCEPTION
244
245 WHEN FND_API.G_EXC_ERROR THEN
246
247 x_return_status := FND_API.G_RET_STS_ERROR;
248
249 -- Get message count and data
250
251 OE_MSG_PUB.Count_And_Get
252 ( p_count => x_msg_count
253 , p_data => x_msg_data
254 );
255
256 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
257
258 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
259
260 -- Get message count and data
261
262 OE_MSG_PUB.Count_And_Get
263 ( p_count => x_msg_count
264 , p_data => x_msg_data
265 );
266
267 WHEN OTHERS THEN
268
269 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
270
271 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
272 THEN
273 OE_MSG_PUB.Add_Exc_Msg
274 ( G_PKG_NAME
275 , 'Default_Attributes'
276 );
277 END IF;
278
279 -- Get message count and data
280
281 OE_MSG_PUB.Count_And_Get
282 ( p_count => x_msg_count
283 , p_data => x_msg_data
284 );
285
286 END Default_Attributes;
287
288 -- Procedure : Change_Attribute
289 --
290
291 PROCEDURE Change_Attribute
292 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
293 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
294 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
295 , p_currency_detail_id IN NUMBER
296 , p_attr_id IN NUMBER
297 , p_attr_value IN VARCHAR2
298 , p_attribute1 IN VARCHAR2
299 , p_attribute10 IN VARCHAR2
300 , p_attribute11 IN VARCHAR2
301 , p_attribute12 IN VARCHAR2
302 , p_attribute13 IN VARCHAR2
303 , p_attribute14 IN VARCHAR2
304 , p_attribute15 IN VARCHAR2
305 , p_attribute2 IN VARCHAR2
306 , p_attribute3 IN VARCHAR2
307 , p_attribute4 IN VARCHAR2
308 , p_attribute5 IN VARCHAR2
309 , p_attribute6 IN VARCHAR2
310 , p_attribute7 IN VARCHAR2
311 , p_attribute8 IN VARCHAR2
312 , p_attribute9 IN VARCHAR2
313 , p_context IN VARCHAR2
314 , x_attribute1 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
315 , x_attribute10 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
316 , x_attribute11 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
317 , x_attribute12 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
318 , x_attribute13 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
319 , x_attribute14 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
320 , x_attribute15 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
321 , x_attribute2 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
322 , x_attribute3 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
323 , x_attribute4 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
324 , x_attribute5 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
325 , x_attribute6 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
326 , x_attribute7 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
327 , x_attribute8 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
328 , x_attribute9 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
329 , x_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
330 , x_conversion_date OUT NOCOPY /* file.sql.39 change */ DATE
331 , x_conversion_date_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
332 --, x_conversion_method OUT NOCOPY /* file.sql.39 change */ VARCHAR2
333 , x_conversion_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
334 , x_currency_detail_id OUT NOCOPY /* file.sql.39 change */ NUMBER
335 , x_currency_header_id OUT NOCOPY /* file.sql.39 change */ NUMBER
336 , x_end_date_active OUT NOCOPY /* file.sql.39 change */ DATE
337 , x_fixed_value OUT NOCOPY /* file.sql.39 change */ NUMBER
338 , x_markup_formula_id OUT NOCOPY /* file.sql.39 change */ NUMBER
339 , x_markup_operator OUT NOCOPY /* file.sql.39 change */ VARCHAR2
340 , x_markup_value OUT NOCOPY /* file.sql.39 change */ NUMBER
341 , x_price_formula_id OUT NOCOPY /* file.sql.39 change */ NUMBER
342 , x_rounding_factor OUT NOCOPY /* file.sql.39 change */ NUMBER
343 , x_selling_rounding_factor OUT NOCOPY /* file.sql.39 change */ NUMBER
344 , x_start_date_active OUT NOCOPY /* file.sql.39 change */ DATE
345 , x_to_currency_code OUT NOCOPY /* file.sql.39 change */ VARCHAR2
346 , x_currency_detail OUT NOCOPY /* file.sql.39 change */ VARCHAR2
347 , x_currency_header OUT NOCOPY /* file.sql.39 change */ VARCHAR2
348 , x_markup_formula OUT NOCOPY /* file.sql.39 change */ VARCHAR2
349 , x_price_formula OUT NOCOPY /* file.sql.39 change */ VARCHAR2
350 , x_to_currency OUT NOCOPY /* file.sql.39 change */ VARCHAR2
351 , x_curr_attribute_type OUT NOCOPY /* file.sql.39 change */ VARCHAR2
352 , x_curr_attribute_context OUT NOCOPY /* file.sql.39 change */ VARCHAR2
353 , x_curr_attribute OUT NOCOPY /* file.sql.39 change */ VARCHAR2
354 , x_curr_attribute_value OUT NOCOPY /* file.sql.39 change */ VARCHAR2
355 , x_precedence OUT NOCOPY /* file.sql.39 change */ NUMBER
356 )
357 IS
358 l_CURR_DETAILS_rec QP_Currency_PUB.Curr_Details_Rec_Type;
359 l_old_CURR_DETAILS_rec QP_Currency_PUB.Curr_Details_Rec_Type;
360 l_CURR_DETAILS_val_rec QP_Currency_PUB.Curr_Details_Val_Rec_Type;
361 l_CURR_DETAILS_tbl QP_Currency_PUB.Curr_Details_Tbl_Type;
362 l_old_CURR_DETAILS_tbl QP_Currency_PUB.Curr_Details_Tbl_Type;
363 l_control_rec QP_GLOBALS.Control_Rec_Type;
364 l_return_status VARCHAR2(1);
365 l_x_CURR_LISTS_rec QP_Currency_PUB.Curr_Lists_Rec_Type;
366 l_x_CURR_DETAILS_rec QP_Currency_PUB.Curr_Details_Rec_Type;
367 l_x_CURR_DETAILS_tbl QP_Currency_PUB.Curr_Details_Tbl_Type;
368 BEGIN
369
370 -- oe_debug_pub.add('Inside CDT-F Change_Attribute');
371 -- Set control flags.
372
373 l_control_rec.controlled_operation := TRUE;
374 l_control_rec.change_attributes := TRUE;
375
376 l_control_rec.default_attributes := FALSE;
377 l_control_rec.validate_entity := FALSE;
378 l_control_rec.write_to_DB := FALSE;
379 l_control_rec.process := FALSE;
380
381 -- Instruct API to retain its caches
382
383 l_control_rec.clear_api_cache := FALSE;
384 l_control_rec.clear_api_requests := FALSE;
385
386 -- Read CURR_DETAILS from cache
387
388 l_CURR_DETAILS_rec := Get_CURR_DETAILS
389 ( p_db_record => FALSE
390 , p_currency_detail_id => p_currency_detail_id
391 );
392
393 l_old_CURR_DETAILS_rec := l_CURR_DETAILS_rec;
394
395 IF p_attr_id = QP_Curr_Details_Util.G_CONVERSION_DATE THEN
396 l_CURR_DETAILS_rec.conversion_date := TO_DATE(p_attr_value,'DD/MM/YYYY');
397 ELSIF p_attr_id = QP_Curr_Details_Util.G_CONVERSION_DATE_TYPE THEN
398 l_CURR_DETAILS_rec.conversion_date_type := p_attr_value;
399 --ELSIF p_attr_id = QP_Curr_Details_Util.G_CONVERSION_METHOD THEN
400 --l_CURR_DETAILS_rec.conversion_method := p_attr_value;
401 ELSIF p_attr_id = QP_Curr_Details_Util.G_CONVERSION_TYPE THEN
402 l_CURR_DETAILS_rec.conversion_type := p_attr_value;
403 ELSIF p_attr_id = QP_Curr_Details_Util.G_CURRENCY_DETAIL THEN
404 l_CURR_DETAILS_rec.currency_detail_id := TO_NUMBER(p_attr_value);
405 ELSIF p_attr_id = QP_Curr_Details_Util.G_CURRENCY_HEADER THEN
406 l_CURR_DETAILS_rec.currency_header_id := TO_NUMBER(p_attr_value);
407 ELSIF p_attr_id = QP_Curr_Details_Util.G_END_DATE_ACTIVE THEN
408 l_CURR_DETAILS_rec.end_date_active := TO_DATE(p_attr_value,'DD/MM/YYYY');
409 ELSIF p_attr_id = QP_Curr_Details_Util.G_FIXED_VALUE THEN
410 l_CURR_DETAILS_rec.fixed_value := TO_NUMBER(p_attr_value);
411 ELSIF p_attr_id = QP_Curr_Details_Util.G_MARKUP_FORMULA THEN
412 l_CURR_DETAILS_rec.markup_formula_id := TO_NUMBER(p_attr_value);
413 ELSIF p_attr_id = QP_Curr_Details_Util.G_MARKUP_OPERATOR THEN
414 l_CURR_DETAILS_rec.markup_operator := p_attr_value;
415 ELSIF p_attr_id = QP_Curr_Details_Util.G_MARKUP_VALUE THEN
416 l_CURR_DETAILS_rec.markup_value := TO_NUMBER(p_attr_value);
417 ELSIF p_attr_id = QP_Curr_Details_Util.G_PRICE_FORMULA THEN
418 l_CURR_DETAILS_rec.price_formula_id := TO_NUMBER(p_attr_value);
419 ELSIF p_attr_id = QP_Curr_Details_Util.G_ROUNDING_FACTOR THEN
420 l_CURR_DETAILS_rec.rounding_factor := TO_NUMBER(p_attr_value);
421 ELSIF p_attr_id = QP_Curr_Details_Util.G_SELLING_ROUNDING_FACTOR THEN
422 l_CURR_DETAILS_rec.selling_rounding_factor := TO_NUMBER(p_attr_value);
423 ELSIF p_attr_id = QP_Curr_Details_Util.G_START_DATE_ACTIVE THEN
424 l_CURR_DETAILS_rec.start_date_active := TO_DATE(p_attr_value,'DD/MM/YYYY');
425 ELSIF p_attr_id = QP_Curr_Details_Util.G_TO_CURRENCY THEN
426 l_CURR_DETAILS_rec.to_currency_code := p_attr_value;
427 ELSIF p_attr_id = QP_Curr_Details_Util.G_CURR_ATTRIBUTE_TYPE THEN
428 l_CURR_DETAILS_rec.curr_attribute_type := p_attr_value;
429 ELSIF p_attr_id = QP_Curr_Details_Util.G_CURR_ATTRIBUTE_CONTEXT THEN
430 l_CURR_DETAILS_rec.curr_attribute_context := p_attr_value;
431 ELSIF p_attr_id = QP_Curr_Details_Util.G_CURR_ATTRIBUTE THEN
432 l_CURR_DETAILS_rec.curr_attribute := p_attr_value;
433 ELSIF p_attr_id = QP_Curr_Details_Util.G_CURR_ATTRIBUTE_VALUE THEN
434 l_CURR_DETAILS_rec.curr_attribute_value := p_attr_value;
435 ELSIF p_attr_id = QP_Curr_Details_Util.G_PRECEDENCE THEN
436 l_CURR_DETAILS_rec.precedence := p_attr_value;
437 ELSIF p_attr_id = QP_Curr_Details_Util.G_ATTRIBUTE1
438 OR p_attr_id = QP_Curr_Details_Util.G_ATTRIBUTE10
439 OR p_attr_id = QP_Curr_Details_Util.G_ATTRIBUTE11
440 OR p_attr_id = QP_Curr_Details_Util.G_ATTRIBUTE12
441 OR p_attr_id = QP_Curr_Details_Util.G_ATTRIBUTE13
442 OR p_attr_id = QP_Curr_Details_Util.G_ATTRIBUTE14
443 OR p_attr_id = QP_Curr_Details_Util.G_ATTRIBUTE15
444 OR p_attr_id = QP_Curr_Details_Util.G_ATTRIBUTE2
445 OR p_attr_id = QP_Curr_Details_Util.G_ATTRIBUTE3
446 OR p_attr_id = QP_Curr_Details_Util.G_ATTRIBUTE4
447 OR p_attr_id = QP_Curr_Details_Util.G_ATTRIBUTE5
448 OR p_attr_id = QP_Curr_Details_Util.G_ATTRIBUTE6
449 OR p_attr_id = QP_Curr_Details_Util.G_ATTRIBUTE7
450 OR p_attr_id = QP_Curr_Details_Util.G_ATTRIBUTE8
451 OR p_attr_id = QP_Curr_Details_Util.G_ATTRIBUTE9
452 OR p_attr_id = QP_Curr_Details_Util.G_CONTEXT
453 THEN
454
455 l_CURR_DETAILS_rec.attribute1 := p_attribute1;
456 l_CURR_DETAILS_rec.attribute10 := p_attribute10;
457 l_CURR_DETAILS_rec.attribute11 := p_attribute11;
458 l_CURR_DETAILS_rec.attribute12 := p_attribute12;
459 l_CURR_DETAILS_rec.attribute13 := p_attribute13;
460 l_CURR_DETAILS_rec.attribute14 := p_attribute14;
461 l_CURR_DETAILS_rec.attribute15 := p_attribute15;
462 l_CURR_DETAILS_rec.attribute2 := p_attribute2;
463 l_CURR_DETAILS_rec.attribute3 := p_attribute3;
464 l_CURR_DETAILS_rec.attribute4 := p_attribute4;
465 l_CURR_DETAILS_rec.attribute5 := p_attribute5;
466 l_CURR_DETAILS_rec.attribute6 := p_attribute6;
467 l_CURR_DETAILS_rec.attribute7 := p_attribute7;
468 l_CURR_DETAILS_rec.attribute8 := p_attribute8;
469 l_CURR_DETAILS_rec.attribute9 := p_attribute9;
470 l_CURR_DETAILS_rec.context := p_context;
471
472 ELSE
473
474 -- Unexpected error, unrecognized attribute
475
476 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
477 THEN
478 OE_MSG_PUB.Add_Exc_Msg
479 ( G_PKG_NAME
480 , 'Change_Attribute'
481 , 'Unrecognized attribute'
482 );
483 END IF;
484
485 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
486
487 END IF;
488
489 -- Set Operation.
490
491 IF FND_API.To_Boolean(l_CURR_DETAILS_rec.db_flag) THEN
492 l_CURR_DETAILS_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
493 ELSE
494 l_CURR_DETAILS_rec.operation := QP_GLOBALS.G_OPR_CREATE;
495 END IF;
496
497 -- Populate CURR_DETAILS table
498
499 l_CURR_DETAILS_tbl(1) := l_CURR_DETAILS_rec;
500 l_old_CURR_DETAILS_tbl(1) := l_old_CURR_DETAILS_rec;
501
502 -- Call QP_Currency_PVT.Process_Currency
503
504 QP_Currency_PVT.Process_Currency
505 ( p_api_version_number => 1.0
506 , p_init_msg_list => FND_API.G_TRUE
507 , p_validation_level => FND_API.G_VALID_LEVEL_NONE
508 , x_return_status => l_return_status
509 , x_msg_count => x_msg_count
510 , x_msg_data => x_msg_data
511 , p_control_rec => l_control_rec
512 , p_CURR_DETAILS_tbl => l_CURR_DETAILS_tbl
513 , p_old_CURR_DETAILS_tbl => l_old_CURR_DETAILS_tbl
514 , x_CURR_LISTS_rec => l_x_CURR_LISTS_rec
515 , x_CURR_DETAILS_tbl => l_x_CURR_DETAILS_tbl
516 );
517
518 -- oe_debug_pub.add(' Insdie F package inside Change_Attributes; G_MSG_COUNT: '||OE_MSG_PUB.G_MSG_COUNT);
519
520 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
521 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
522 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
523 RAISE FND_API.G_EXC_ERROR;
524 END IF;
525
526
527 -- Unload out tbl
528
529 l_x_CURR_DETAILS_rec := l_x_CURR_DETAILS_tbl(1);
530
531 -- Init OUT parameters to missing.
532
533 x_attribute1 := FND_API.G_MISS_CHAR;
534 x_attribute10 := FND_API.G_MISS_CHAR;
535 x_attribute11 := FND_API.G_MISS_CHAR;
536 x_attribute12 := FND_API.G_MISS_CHAR;
537 x_attribute13 := FND_API.G_MISS_CHAR;
538 x_attribute14 := FND_API.G_MISS_CHAR;
539 x_attribute15 := FND_API.G_MISS_CHAR;
540 x_attribute2 := FND_API.G_MISS_CHAR;
541 x_attribute3 := FND_API.G_MISS_CHAR;
542 x_attribute4 := FND_API.G_MISS_CHAR;
543 x_attribute5 := FND_API.G_MISS_CHAR;
544 x_attribute6 := FND_API.G_MISS_CHAR;
545 x_attribute7 := FND_API.G_MISS_CHAR;
546 x_attribute8 := FND_API.G_MISS_CHAR;
547 x_attribute9 := FND_API.G_MISS_CHAR;
548 x_context := FND_API.G_MISS_CHAR;
549 x_conversion_date := FND_API.G_MISS_DATE;
550 x_conversion_date_type := FND_API.G_MISS_CHAR;
551 --x_conversion_method := FND_API.G_MISS_CHAR;
552 x_conversion_type := FND_API.G_MISS_CHAR;
553 x_currency_detail_id := FND_API.G_MISS_NUM;
554 x_currency_header_id := FND_API.G_MISS_NUM;
555 x_end_date_active := FND_API.G_MISS_DATE;
556 x_fixed_value := FND_API.G_MISS_NUM;
557 x_markup_formula_id := FND_API.G_MISS_NUM;
558 x_markup_operator := FND_API.G_MISS_CHAR;
559 x_markup_value := FND_API.G_MISS_NUM;
560 x_price_formula_id := FND_API.G_MISS_NUM;
561 x_rounding_factor := FND_API.G_MISS_NUM;
562 x_selling_rounding_factor := FND_API.G_MISS_NUM;
563 x_start_date_active := FND_API.G_MISS_DATE;
564 x_to_currency_code := FND_API.G_MISS_CHAR;
565 x_currency_detail := FND_API.G_MISS_CHAR;
566 x_currency_header := FND_API.G_MISS_CHAR;
567 x_markup_formula := FND_API.G_MISS_CHAR;
568 x_price_formula := FND_API.G_MISS_CHAR;
569 x_to_currency := FND_API.G_MISS_CHAR;
570 x_curr_attribute_type := FND_API.G_MISS_CHAR;
571 x_curr_attribute_context := FND_API.G_MISS_CHAR;
572 x_curr_attribute := FND_API.G_MISS_CHAR;
573 x_curr_attribute_value := FND_API.G_MISS_CHAR;
574 x_precedence := FND_API.G_MISS_NUM;
575
576 -- Load display out parameters if any
577
578 l_CURR_DETAILS_val_rec := QP_Curr_Details_Util.Get_Values
579 ( p_CURR_DETAILS_rec => l_x_CURR_DETAILS_rec
580 , p_old_CURR_DETAILS_rec => l_CURR_DETAILS_rec
581 );
582
583 -- Return changed attributes.
584
585 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.attribute1,
586 l_CURR_DETAILS_rec.attribute1)
587 THEN
588 x_attribute1 := l_x_CURR_DETAILS_rec.attribute1;
589 END IF;
590
591 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.attribute10,
592 l_CURR_DETAILS_rec.attribute10)
593 THEN
594 x_attribute10 := l_x_CURR_DETAILS_rec.attribute10;
595 END IF;
596
597 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.attribute11,
598 l_CURR_DETAILS_rec.attribute11)
599 THEN
600 x_attribute11 := l_x_CURR_DETAILS_rec.attribute11;
601 END IF;
602
603 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.attribute12,
604 l_CURR_DETAILS_rec.attribute12)
605 THEN
606 x_attribute12 := l_x_CURR_DETAILS_rec.attribute12;
607 END IF;
608
609 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.attribute13,
610 l_CURR_DETAILS_rec.attribute13)
611 THEN
612 x_attribute13 := l_x_CURR_DETAILS_rec.attribute13;
613 END IF;
614
615 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.attribute14,
616 l_CURR_DETAILS_rec.attribute14)
617 THEN
618 x_attribute14 := l_x_CURR_DETAILS_rec.attribute14;
619 END IF;
620
621 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.attribute15,
622 l_CURR_DETAILS_rec.attribute15)
623 THEN
624 x_attribute15 := l_x_CURR_DETAILS_rec.attribute15;
625 END IF;
626
627 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.attribute2,
628 l_CURR_DETAILS_rec.attribute2)
629 THEN
630 x_attribute2 := l_x_CURR_DETAILS_rec.attribute2;
631 END IF;
632
633 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.attribute3,
634 l_CURR_DETAILS_rec.attribute3)
635 THEN
636 x_attribute3 := l_x_CURR_DETAILS_rec.attribute3;
637 END IF;
638
639 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.attribute4,
640 l_CURR_DETAILS_rec.attribute4)
641 THEN
642 x_attribute4 := l_x_CURR_DETAILS_rec.attribute4;
643 END IF;
644
645 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.attribute5,
646 l_CURR_DETAILS_rec.attribute5)
647 THEN
648 x_attribute5 := l_x_CURR_DETAILS_rec.attribute5;
649 END IF;
650
651 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.attribute6,
652 l_CURR_DETAILS_rec.attribute6)
653 THEN
654 x_attribute6 := l_x_CURR_DETAILS_rec.attribute6;
655 END IF;
656
657 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.attribute7,
658 l_CURR_DETAILS_rec.attribute7)
659 THEN
660 x_attribute7 := l_x_CURR_DETAILS_rec.attribute7;
661 END IF;
662
663 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.attribute8,
664 l_CURR_DETAILS_rec.attribute8)
665 THEN
666 x_attribute8 := l_x_CURR_DETAILS_rec.attribute8;
667 END IF;
668
669 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.attribute9,
670 l_CURR_DETAILS_rec.attribute9)
671 THEN
672 x_attribute9 := l_x_CURR_DETAILS_rec.attribute9;
673 END IF;
674
675 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.context,
676 l_CURR_DETAILS_rec.context)
677 THEN
678 x_context := l_x_CURR_DETAILS_rec.context;
679 END IF;
680
681 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.conversion_date,
682 l_CURR_DETAILS_rec.conversion_date)
683 THEN
684 x_conversion_date := l_x_CURR_DETAILS_rec.conversion_date;
685 END IF;
686
687 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.conversion_date_type,
688 l_CURR_DETAILS_rec.conversion_date_type)
689 THEN
690 x_conversion_date_type := l_x_CURR_DETAILS_rec.conversion_date_type;
691 END IF;
692
693 /*
694 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.conversion_method,
695 l_CURR_DETAILS_rec.conversion_method)
696 THEN
697 x_conversion_method := l_x_CURR_DETAILS_rec.conversion_method;
698 END IF;
699 */
700
701 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.conversion_type,
702 l_CURR_DETAILS_rec.conversion_type)
703 THEN
704 x_conversion_type := l_x_CURR_DETAILS_rec.conversion_type;
705 END IF;
706
707 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.currency_detail_id,
708 l_CURR_DETAILS_rec.currency_detail_id)
709 THEN
710 x_currency_detail_id := l_x_CURR_DETAILS_rec.currency_detail_id;
711 x_currency_detail := l_CURR_DETAILS_val_rec.currency_detail;
712 END IF;
713
714 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.currency_header_id,
715 l_CURR_DETAILS_rec.currency_header_id)
716 THEN
717 x_currency_header_id := l_x_CURR_DETAILS_rec.currency_header_id;
718 x_currency_header := l_CURR_DETAILS_val_rec.currency_header;
719 END IF;
720
721 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.end_date_active,
722 l_CURR_DETAILS_rec.end_date_active)
723 THEN
724 x_end_date_active := l_x_CURR_DETAILS_rec.end_date_active;
725 END IF;
726
727 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.fixed_value,
728 l_CURR_DETAILS_rec.fixed_value)
729 THEN
730 x_fixed_value := l_x_CURR_DETAILS_rec.fixed_value;
731 END IF;
732
733 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.markup_formula_id,
734 l_CURR_DETAILS_rec.markup_formula_id)
735 THEN
736 x_markup_formula_id := l_x_CURR_DETAILS_rec.markup_formula_id;
737 x_markup_formula := l_CURR_DETAILS_val_rec.markup_formula;
738 END IF;
739
740 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.markup_operator,
741 l_CURR_DETAILS_rec.markup_operator)
742 THEN
743 x_markup_operator := l_x_CURR_DETAILS_rec.markup_operator;
744 END IF;
745
746 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.markup_value,
747 l_CURR_DETAILS_rec.markup_value)
748 THEN
749 x_markup_value := l_x_CURR_DETAILS_rec.markup_value;
750 END IF;
751
752 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.price_formula_id,
753 l_CURR_DETAILS_rec.price_formula_id)
754 THEN
755 x_price_formula_id := l_x_CURR_DETAILS_rec.price_formula_id;
756 x_price_formula := l_CURR_DETAILS_val_rec.price_formula;
757 END IF;
758
759 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.rounding_factor,
760 l_CURR_DETAILS_rec.rounding_factor)
761 THEN
762 x_rounding_factor := l_x_CURR_DETAILS_rec.rounding_factor;
763 END IF;
764
765 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.selling_rounding_factor,
766 l_CURR_DETAILS_rec.selling_rounding_factor)
767 THEN
768 x_selling_rounding_factor := l_x_CURR_DETAILS_rec.selling_rounding_factor;
769 END IF;
770
771 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.start_date_active,
772 l_CURR_DETAILS_rec.start_date_active)
773 THEN
774 x_start_date_active := l_x_CURR_DETAILS_rec.start_date_active;
775 END IF;
776
777 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.to_currency_code,
778 l_CURR_DETAILS_rec.to_currency_code)
779 THEN
780 x_to_currency_code := l_x_CURR_DETAILS_rec.to_currency_code;
781 x_to_currency := l_CURR_DETAILS_val_rec.to_currency;
782 END IF;
783
784 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.curr_attribute_type,
785 l_CURR_DETAILS_rec.curr_attribute_type)
786 THEN
787 x_curr_attribute_type := l_x_CURR_DETAILS_rec.curr_attribute_type;
788 END IF;
789
790 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.curr_attribute_context,
791 l_CURR_DETAILS_rec.curr_attribute_context)
792 THEN
793 x_curr_attribute_context := l_x_CURR_DETAILS_rec.curr_attribute_context;
794 END IF;
795
796 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.curr_attribute,
797 l_CURR_DETAILS_rec.curr_attribute)
798 THEN
799 x_curr_attribute := l_x_CURR_DETAILS_rec.curr_attribute;
800 END IF;
801
802 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.curr_attribute_value,
803 l_CURR_DETAILS_rec.curr_attribute_value)
804 THEN
805 x_curr_attribute_value := l_x_CURR_DETAILS_rec.curr_attribute_value;
806 END IF;
807
808 IF NOT QP_GLOBALS.Equal(l_x_CURR_DETAILS_rec.precedence,
809 l_CURR_DETAILS_rec.precedence)
810 THEN
811 x_precedence := l_x_CURR_DETAILS_rec.precedence;
812 END IF;
813
814
815 -- Write to cache.
816
817 Write_CURR_DETAILS
818 ( p_CURR_DETAILS_rec => l_x_CURR_DETAILS_rec
819 );
820
821 -- Set return status.
822
823 x_return_status := FND_API.G_RET_STS_SUCCESS;
824
825 -- Get message count and data
826
827 OE_MSG_PUB.Count_And_Get
828 ( p_count => x_msg_count
829 , p_data => x_msg_data
830 );
831
832
833 EXCEPTION
834
835 WHEN FND_API.G_EXC_ERROR THEN
836
837 x_return_status := FND_API.G_RET_STS_ERROR;
838
839 -- Get message count and data
840
841 OE_MSG_PUB.Count_And_Get
842 ( p_count => x_msg_count
843 , p_data => x_msg_data
844 );
845
846 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
847
848 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
849
850 -- Get message count and data
851
852 OE_MSG_PUB.Count_And_Get
853 ( p_count => x_msg_count
854 , p_data => x_msg_data
855 );
856
857 WHEN OTHERS THEN
858
859 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
860
861 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
862 THEN
863 OE_MSG_PUB.Add_Exc_Msg
864 ( G_PKG_NAME
865 , 'Change_Attribute'
866 );
867 END IF;
868
869 -- Get message count and data
870
871 OE_MSG_PUB.Count_And_Get
872 ( p_count => x_msg_count
873 , p_data => x_msg_data
874 );
875
876 END Change_Attribute;
877
878 -- Procedure Validate_And_Write
879 --
880
881 PROCEDURE Validate_And_Write
882 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
883 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
884 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
885 , p_currency_detail_id IN NUMBER
886 , x_creation_date OUT NOCOPY /* file.sql.39 change */ DATE
887 , x_created_by OUT NOCOPY /* file.sql.39 change */ NUMBER
888 , x_last_update_date OUT NOCOPY /* file.sql.39 change */ DATE
889 , x_last_updated_by OUT NOCOPY /* file.sql.39 change */ NUMBER
890 , x_last_update_login OUT NOCOPY /* file.sql.39 change */ NUMBER
891 )
892 IS
893 l_CURR_DETAILS_rec QP_Currency_PUB.Curr_Details_Rec_Type;
894 l_old_CURR_DETAILS_rec QP_Currency_PUB.Curr_Details_Rec_Type;
895 l_CURR_DETAILS_tbl QP_Currency_PUB.Curr_Details_Tbl_Type;
896 l_old_CURR_DETAILS_tbl QP_Currency_PUB.Curr_Details_Tbl_Type;
897 l_control_rec QP_GLOBALS.Control_Rec_Type;
898 l_return_status VARCHAR2(1);
899 l_x_CURR_LISTS_rec QP_Currency_PUB.Curr_Lists_Rec_Type;
900 l_x_CURR_DETAILS_rec QP_Currency_PUB.Curr_Details_Rec_Type;
901 l_x_CURR_DETAILS_tbl QP_Currency_PUB.Curr_Details_Tbl_Type;
902 BEGIN
903
904 -- oe_debug_pub.add('Inside CDT-F Validate_And_Write');
905 -- Set control flags.
906
907 l_control_rec.controlled_operation := TRUE;
908 l_control_rec.validate_entity := TRUE;
909 l_control_rec.write_to_DB := TRUE;
910
911 l_control_rec.default_attributes := FALSE;
912 l_control_rec.change_attributes := FALSE;
913 l_control_rec.process := FALSE;
914
915 -- Instruct API to retain its caches
916
917 l_control_rec.clear_api_cache := FALSE;
918 l_control_rec.clear_api_requests := FALSE;
919
920 -- Read CURR_DETAILS from cache
921
922 l_old_CURR_DETAILS_rec := Get_CURR_DETAILS
923 ( p_db_record => TRUE
924 , p_currency_detail_id => p_currency_detail_id
925 );
926
927 l_CURR_DETAILS_rec := Get_CURR_DETAILS
928 ( p_db_record => FALSE
929 , p_currency_detail_id => p_currency_detail_id
930 );
931
932 -- Set Operation.
933
934 IF FND_API.To_Boolean(l_CURR_DETAILS_rec.db_flag) THEN
935 l_CURR_DETAILS_rec.operation := QP_GLOBALS.G_OPR_UPDATE;
936 ELSE
937 l_CURR_DETAILS_rec.operation := QP_GLOBALS.G_OPR_CREATE;
938 END IF;
939
940 -- Populate CURR_DETAILS table
941
942 l_CURR_DETAILS_tbl(1) := l_CURR_DETAILS_rec;
943 l_old_CURR_DETAILS_tbl(1) := l_old_CURR_DETAILS_rec;
944
945 -- Call QP_Currency_PVT.Process_Currency
946
947 QP_Currency_PVT.Process_Currency
948 ( p_api_version_number => 1.0
949 , p_init_msg_list => FND_API.G_TRUE
950 , x_return_status => l_return_status
951 , x_msg_count => x_msg_count
952 , x_msg_data => x_msg_data
953 , p_control_rec => l_control_rec
954 , p_CURR_DETAILS_tbl => l_CURR_DETAILS_tbl
955 , p_old_CURR_DETAILS_tbl => l_old_CURR_DETAILS_tbl
956 , x_CURR_LISTS_rec => l_x_CURR_LISTS_rec
957 , x_CURR_DETAILS_tbl => l_x_CURR_DETAILS_tbl
958 );
959
960 -- oe_debug_pub.add(' Insdie F package after V_A_W; G_MSG_COUNT: '||OE_MSG_PUB.G_MSG_COUNT);
961
962 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
963 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
964 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
965 RAISE FND_API.G_EXC_ERROR;
966 END IF;
967
968
969 -- Load OUT parameters.
970
971 l_x_CURR_DETAILS_rec := l_x_CURR_DETAILS_tbl(1);
972
973 x_creation_date := l_x_CURR_DETAILS_rec.creation_date;
974 x_created_by := l_x_CURR_DETAILS_rec.created_by;
975 x_last_update_date := l_x_CURR_DETAILS_rec.last_update_date;
976 x_last_updated_by := l_x_CURR_DETAILS_rec.last_updated_by;
977 x_last_update_login := l_x_CURR_DETAILS_rec.last_update_login;
978
979 -- Clear CURR_DETAILS record cache
980
981 Clear_CURR_DETAILS;
982
983 -- Keep track of performed operations.
984
985 l_old_CURR_DETAILS_rec.operation := l_CURR_DETAILS_rec.operation;
986
987
988 -- Set return status.
989
990 x_return_status := FND_API.G_RET_STS_SUCCESS;
991
992 -- Get message count and data
993
994 OE_MSG_PUB.Count_And_Get
995 ( p_count => x_msg_count
996 , p_data => x_msg_data
997 );
998
999
1000 EXCEPTION
1001
1002 WHEN FND_API.G_EXC_ERROR THEN
1003
1004 x_return_status := FND_API.G_RET_STS_ERROR;
1005
1006 -- Get message count and data
1007
1008 OE_MSG_PUB.Count_And_Get
1009 ( p_count => x_msg_count
1010 , p_data => x_msg_data
1011 );
1012
1013 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1014
1015 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1016
1017 -- Get message count and data
1018
1019 OE_MSG_PUB.Count_And_Get
1020 ( p_count => x_msg_count
1021 , p_data => x_msg_data
1022 );
1023
1024 WHEN OTHERS THEN
1025
1026 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1027
1028 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1029 THEN
1030 OE_MSG_PUB.Add_Exc_Msg
1031 ( G_PKG_NAME
1032 , 'Validate_And_Write'
1033 );
1034 END IF;
1035
1036 -- Get message count and data
1037
1038 OE_MSG_PUB.Count_And_Get
1039 ( p_count => x_msg_count
1040 , p_data => x_msg_data
1041 );
1042
1043 END Validate_And_Write;
1044
1045 -- Procedure Delete_Row
1046 --
1047
1048 PROCEDURE Delete_Row
1049 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1050 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1051 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1052 , p_currency_detail_id IN NUMBER
1053 )
1054 IS
1055 l_CURR_DETAILS_rec QP_Currency_PUB.Curr_Details_Rec_Type;
1056 l_CURR_DETAILS_tbl QP_Currency_PUB.Curr_Details_Tbl_Type;
1057 l_control_rec QP_GLOBALS.Control_Rec_Type;
1058 l_return_status VARCHAR2(1);
1059 l_x_CURR_LISTS_rec QP_Currency_PUB.Curr_Lists_Rec_Type;
1060 l_x_CURR_DETAILS_rec QP_Currency_PUB.Curr_Details_Rec_Type;
1061 l_x_CURR_DETAILS_tbl QP_Currency_PUB.Curr_Details_Tbl_Type;
1062 BEGIN
1063
1064 -- Set control flags.
1065
1066 l_control_rec.controlled_operation := TRUE;
1067 l_control_rec.validate_entity := TRUE;
1068 l_control_rec.write_to_DB := TRUE;
1069
1070 l_control_rec.default_attributes := FALSE;
1071 l_control_rec.change_attributes := FALSE;
1072 l_control_rec.process := FALSE;
1073
1074 -- Instruct API to retain its caches
1075
1076 l_control_rec.clear_api_cache := FALSE;
1077 l_control_rec.clear_api_requests := FALSE;
1078
1079 -- Read DB record from cache
1080
1081 l_CURR_DETAILS_rec := Get_CURR_DETAILS
1082 ( p_db_record => TRUE
1083 , p_currency_detail_id => p_currency_detail_id
1084 );
1085
1086 -- Set Operation.
1087
1088 l_CURR_DETAILS_rec.operation := QP_GLOBALS.G_OPR_DELETE;
1089
1090 -- Populate CURR_DETAILS table
1091
1092 l_CURR_DETAILS_tbl(1) := l_CURR_DETAILS_rec;
1093
1094 -- Call QP_Currency_PVT.Process_Currency
1095
1096 QP_Currency_PVT.Process_Currency
1097 ( p_api_version_number => 1.0
1098 , p_init_msg_list => FND_API.G_TRUE
1099 , x_return_status => l_return_status
1100 , x_msg_count => x_msg_count
1101 , x_msg_data => x_msg_data
1102 , p_control_rec => l_control_rec
1103 , p_CURR_DETAILS_tbl => l_CURR_DETAILS_tbl
1104 , x_CURR_LISTS_rec => l_x_CURR_LISTS_rec
1105 , x_CURR_DETAILS_tbl => l_x_CURR_DETAILS_tbl
1106 );
1107
1108 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1109 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1110 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1111 RAISE FND_API.G_EXC_ERROR;
1112 END IF;
1113
1114
1115 -- Clear CURR_DETAILS record cache
1116
1117 Clear_CURR_DETAILS;
1118
1119 -- Set return status.
1120
1121 x_return_status := FND_API.G_RET_STS_SUCCESS;
1122
1123 -- Get message count and data
1124
1125 OE_MSG_PUB.Count_And_Get
1126 ( p_count => x_msg_count
1127 , p_data => x_msg_data
1128 );
1129
1130
1131 EXCEPTION
1132
1133 WHEN FND_API.G_EXC_ERROR THEN
1134
1135 x_return_status := FND_API.G_RET_STS_ERROR;
1136
1137 -- Get message count and data
1138
1139 OE_MSG_PUB.Count_And_Get
1140 ( p_count => x_msg_count
1141 , p_data => x_msg_data
1142 );
1143
1144 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1145
1146 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1147
1148 -- Get message count and data
1149
1150 OE_MSG_PUB.Count_And_Get
1151 ( p_count => x_msg_count
1152 , p_data => x_msg_data
1153 );
1154
1155 WHEN OTHERS THEN
1156
1157 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1158
1159 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1160 THEN
1161 OE_MSG_PUB.Add_Exc_Msg
1162 ( G_PKG_NAME
1163 , 'Delete_Row'
1164 );
1165 END IF;
1166
1167 -- Get message count and data
1168
1169 OE_MSG_PUB.Count_And_Get
1170 ( p_count => x_msg_count
1171 , p_data => x_msg_data
1172 );
1173
1174 END Delete_Row;
1175
1176 -- Procedure Process_Entity
1177 --
1178
1179 PROCEDURE Process_Entity
1180 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1181 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1182 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1183 )
1184 IS
1185 l_control_rec QP_GLOBALS.Control_Rec_Type;
1186 l_return_status VARCHAR2(1);
1187 l_x_CURR_LISTS_rec QP_Currency_PUB.Curr_Lists_Rec_Type;
1188 l_x_CURR_DETAILS_rec QP_Currency_PUB.Curr_Details_Rec_Type;
1189 l_x_CURR_DETAILS_tbl QP_Currency_PUB.Curr_Details_Tbl_Type;
1190 BEGIN
1191
1192 -- Set control flags.
1193
1194 l_control_rec.controlled_operation := TRUE;
1195 l_control_rec.process := TRUE;
1196 l_control_rec.process_entity := QP_GLOBALS.G_ENTITY_CURR_DETAILS;
1197
1198 l_control_rec.default_attributes := FALSE;
1199 l_control_rec.change_attributes := FALSE;
1200 l_control_rec.validate_entity := FALSE;
1201 l_control_rec.write_to_DB := FALSE;
1202
1203 -- Instruct API to clear its request table
1204
1205 l_control_rec.clear_api_cache := FALSE;
1206 l_control_rec.clear_api_requests := FALSE;
1207
1208 -- Call QP_Currency_PVT.Process_Currency
1209
1210 QP_Currency_PVT.Process_Currency
1211 ( p_api_version_number => 1.0
1212 , p_init_msg_list => FND_API.G_TRUE
1213 , x_return_status => l_return_status
1214 , x_msg_count => x_msg_count
1215 , x_msg_data => x_msg_data
1216 , p_control_rec => l_control_rec
1217 , x_CURR_LISTS_rec => l_x_CURR_LISTS_rec
1218 , x_CURR_DETAILS_tbl => l_x_CURR_DETAILS_tbl
1219 );
1220
1221 IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1222 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1223 ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1224 RAISE FND_API.G_EXC_ERROR;
1225 END IF;
1226
1227
1228 -- Set return status.
1229
1230 x_return_status := FND_API.G_RET_STS_SUCCESS;
1231
1232 -- Get message count and data
1233
1234 OE_MSG_PUB.Count_And_Get
1235 ( p_count => x_msg_count
1236 , p_data => x_msg_data
1237 );
1238
1239
1240 EXCEPTION
1241
1242 WHEN FND_API.G_EXC_ERROR THEN
1243
1244 x_return_status := FND_API.G_RET_STS_ERROR;
1245
1246 -- Get message count and data
1247
1248 OE_MSG_PUB.Count_And_Get
1249 ( p_count => x_msg_count
1250 , p_data => x_msg_data
1251 );
1252
1253 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1254
1255 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1256
1257 -- Get message count and data
1258
1259 OE_MSG_PUB.Count_And_Get
1260 ( p_count => x_msg_count
1261 , p_data => x_msg_data
1262 );
1263
1264 WHEN OTHERS THEN
1265
1266 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1267
1268 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1269 THEN
1270 OE_MSG_PUB.Add_Exc_Msg
1271 ( G_PKG_NAME
1272 , 'Process_Entity'
1273 );
1274 END IF;
1275
1276 -- Get message count and data
1277
1278 OE_MSG_PUB.Count_And_Get
1279 ( p_count => x_msg_count
1280 , p_data => x_msg_data
1281 );
1282
1283 END Process_Entity;
1284
1285 -- Procedure lock_Row
1286 --
1287
1288 PROCEDURE Lock_Row
1289 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1290 , x_msg_count OUT NOCOPY /* file.sql.39 change */ NUMBER
1291 , x_msg_data OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1292 , p_attribute1 IN VARCHAR2
1293 , p_attribute10 IN VARCHAR2
1294 , p_attribute11 IN VARCHAR2
1295 , p_attribute12 IN VARCHAR2
1296 , p_attribute13 IN VARCHAR2
1297 , p_attribute14 IN VARCHAR2
1298 , p_attribute15 IN VARCHAR2
1299 , p_attribute2 IN VARCHAR2
1300 , p_attribute3 IN VARCHAR2
1301 , p_attribute4 IN VARCHAR2
1302 , p_attribute5 IN VARCHAR2
1303 , p_attribute6 IN VARCHAR2
1304 , p_attribute7 IN VARCHAR2
1305 , p_attribute8 IN VARCHAR2
1306 , p_attribute9 IN VARCHAR2
1307 , p_context IN VARCHAR2
1308 , p_conversion_date IN DATE
1309 , p_conversion_date_type IN VARCHAR2
1310 -- , p_conversion_method IN VARCHAR2
1311 , p_conversion_type IN VARCHAR2
1312 , p_created_by IN NUMBER
1313 , p_creation_date IN DATE
1314 , p_currency_detail_id IN NUMBER
1315 , p_currency_header_id IN NUMBER
1316 , p_end_date_active IN DATE
1317 , p_fixed_value IN NUMBER
1318 , p_last_updated_by IN NUMBER
1319 , p_last_update_date IN DATE
1320 , p_last_update_login IN NUMBER
1321 , p_markup_formula_id IN NUMBER
1322 , p_markup_operator IN VARCHAR2
1323 , p_markup_value IN NUMBER
1324 , p_price_formula_id IN NUMBER
1325 , p_program_application_id IN NUMBER
1326 , p_program_id IN NUMBER
1327 , p_program_update_date IN DATE
1328 , p_request_id IN NUMBER
1329 , p_rounding_factor IN NUMBER
1330 , p_selling_rounding_factor IN NUMBER
1331 , p_start_date_active IN DATE
1332 , p_to_currency_code IN VARCHAR2
1333 , p_curr_attribute_type IN VARCHAR2
1334 , p_curr_attribute_context IN VARCHAR2
1335 , p_curr_attribute IN VARCHAR2
1336 , p_curr_attribute_value IN VARCHAR2
1337 , p_precedence IN NUMBER
1338 )
1339 IS
1340 l_return_status VARCHAR2(1);
1341 l_CURR_DETAILS_rec QP_Currency_PUB.Curr_Details_Rec_Type;
1342 l_CURR_DETAILS_tbl QP_Currency_PUB.Curr_Details_Tbl_Type;
1343 l_x_CURR_LISTS_rec QP_Currency_PUB.Curr_Lists_Rec_Type;
1344 l_x_CURR_DETAILS_rec QP_Currency_PUB.Curr_Details_Rec_Type;
1345 l_x_CURR_DETAILS_tbl QP_Currency_PUB.Curr_Details_Tbl_Type;
1346 BEGIN
1347
1348 -- oe_debug_pub.add('inside lock list currency');
1349
1350 -- Load CURR_DETAILS record
1351
1352 l_CURR_DETAILS_rec.attribute1 := p_attribute1;
1353 l_CURR_DETAILS_rec.attribute10 := p_attribute10;
1354 l_CURR_DETAILS_rec.attribute11 := p_attribute11;
1355 l_CURR_DETAILS_rec.attribute12 := p_attribute12;
1356 l_CURR_DETAILS_rec.attribute13 := p_attribute13;
1357 l_CURR_DETAILS_rec.attribute14 := p_attribute14;
1358 l_CURR_DETAILS_rec.attribute15 := p_attribute15;
1359 l_CURR_DETAILS_rec.attribute2 := p_attribute2;
1360 l_CURR_DETAILS_rec.attribute3 := p_attribute3;
1361 l_CURR_DETAILS_rec.attribute4 := p_attribute4;
1362 l_CURR_DETAILS_rec.attribute5 := p_attribute5;
1363 l_CURR_DETAILS_rec.attribute6 := p_attribute6;
1364 l_CURR_DETAILS_rec.attribute7 := p_attribute7;
1365 l_CURR_DETAILS_rec.attribute8 := p_attribute8;
1366 l_CURR_DETAILS_rec.attribute9 := p_attribute9;
1367 l_CURR_DETAILS_rec.context := p_context;
1368 l_CURR_DETAILS_rec.conversion_date := p_conversion_date;
1369 l_CURR_DETAILS_rec.conversion_date_type := p_conversion_date_type;
1370 -- l_CURR_DETAILS_rec.conversion_method := p_conversion_method;
1371 l_CURR_DETAILS_rec.conversion_type := p_conversion_type;
1372 l_CURR_DETAILS_rec.created_by := p_created_by;
1373 l_CURR_DETAILS_rec.creation_date := p_creation_date;
1374 l_CURR_DETAILS_rec.currency_detail_id := p_currency_detail_id;
1375 l_CURR_DETAILS_rec.currency_header_id := p_currency_header_id;
1376 l_CURR_DETAILS_rec.end_date_active := p_end_date_active;
1377 l_CURR_DETAILS_rec.fixed_value := p_fixed_value;
1378 l_CURR_DETAILS_rec.last_updated_by := p_last_updated_by;
1379 l_CURR_DETAILS_rec.last_update_date := p_last_update_date;
1380 l_CURR_DETAILS_rec.last_update_login := p_last_update_login;
1381 l_CURR_DETAILS_rec.markup_formula_id := p_markup_formula_id;
1382 l_CURR_DETAILS_rec.markup_operator := p_markup_operator;
1383 l_CURR_DETAILS_rec.markup_value := p_markup_value;
1384 l_CURR_DETAILS_rec.price_formula_id := p_price_formula_id;
1385 l_CURR_DETAILS_rec.program_application_id := p_program_application_id;
1386 l_CURR_DETAILS_rec.program_id := p_program_id;
1387 l_CURR_DETAILS_rec.program_update_date := p_program_update_date;
1388 l_CURR_DETAILS_rec.request_id := p_request_id;
1389 l_CURR_DETAILS_rec.rounding_factor := p_rounding_factor;
1390 l_CURR_DETAILS_rec.selling_rounding_factor := p_selling_rounding_factor;
1391 l_CURR_DETAILS_rec.start_date_active := p_start_date_active;
1392 l_CURR_DETAILS_rec.to_currency_code := p_to_currency_code;
1393 l_CURR_DETAILS_rec.curr_attribute_type := p_curr_attribute_type;
1394 l_CURR_DETAILS_rec.curr_attribute_context := p_curr_attribute_context;
1395 l_CURR_DETAILS_rec.curr_attribute := p_curr_attribute;
1396 l_CURR_DETAILS_rec.curr_attribute_value := p_curr_attribute_value;
1397 l_CURR_DETAILS_rec.precedence := p_precedence;
1398
1399 -- Populate CURR_DETAILS table
1400
1401 l_CURR_DETAILS_tbl(1) := l_CURR_DETAILS_rec;
1402
1403 -- oe_debug_pub.add('before calling QP_Currency_PVT.Lock_Currency');
1404 -- Call QP_Currency_PVT.Lock_Currency
1405
1406 QP_Currency_PVT.Lock_Currency
1407 ( p_api_version_number => 1.0
1408 , p_init_msg_list => FND_API.G_TRUE
1409 , x_return_status => l_return_status
1410 , x_msg_count => x_msg_count
1411 , x_msg_data => x_msg_data
1412 , p_CURR_DETAILS_tbl => l_CURR_DETAILS_tbl
1413 , x_CURR_LISTS_rec => l_x_CURR_LISTS_rec
1414 , x_CURR_DETAILS_tbl => l_x_CURR_DETAILS_tbl
1415 );
1416 -- oe_debug_pub.add('after calling QP_Currency_PVT.Lock_Currency');
1417
1418 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
1419
1420 -- Set DB flag and write record to cache.
1421
1422 l_x_CURR_DETAILS_rec.db_flag := FND_API.G_TRUE;
1423
1424 Write_CURR_DETAILS
1425 ( p_CURR_DETAILS_rec => l_x_CURR_DETAILS_rec
1426 , p_db_record => TRUE
1427 );
1428
1429 END IF;
1430
1431 -- Set return status.
1432
1433 x_return_status := l_return_status;
1434
1435 -- Get message count and data
1436
1437 OE_MSG_PUB.Count_And_Get
1438 ( p_count => x_msg_count
1439 , p_data => x_msg_data
1440 );
1441
1442
1443 EXCEPTION
1444
1445 WHEN OTHERS THEN
1446
1447 IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1448 THEN
1449 OE_MSG_PUB.Add_Exc_Msg
1450 ( G_PKG_NAME
1451 , 'Lock_Row'
1452 );
1453 END IF;
1454
1455 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1456
1457 -- Get message count and data
1458
1459 OE_MSG_PUB.Count_And_Get
1460 ( p_count => x_msg_count
1461 , p_data => x_msg_data
1462 );
1463
1464
1465
1466 END Lock_Row;
1467
1468 -- Procedures maintaining CURR_DETAILS record cache.
1469
1470 PROCEDURE Write_CURR_DETAILS
1471 ( p_CURR_DETAILS_rec IN QP_Currency_PUB.Curr_Details_Rec_Type
1472 , p_db_record IN BOOLEAN := FALSE
1473 )
1474 IS
1475 BEGIN
1476
1477 g_CURR_DETAILS_rec := p_CURR_DETAILS_rec;
1478
1479 IF p_db_record THEN
1480
1481 g_db_CURR_DETAILS_rec := p_CURR_DETAILS_rec;
1482
1483 END IF;
1484
1485 END Write_Curr_Details;
1486
1487 FUNCTION Get_CURR_DETAILS
1488 ( p_db_record IN BOOLEAN := FALSE
1489 , p_currency_detail_id IN NUMBER
1490 )
1491 RETURN QP_Currency_PUB.Curr_Details_Rec_Type
1492 IS
1493 BEGIN
1494
1495 IF p_currency_detail_id <> g_CURR_DETAILS_rec.currency_detail_id
1496 THEN
1497
1498 -- Query row from DB
1499
1500 g_CURR_DETAILS_rec := QP_Curr_Details_Util.Query_Row
1501 ( p_currency_detail_id => p_currency_detail_id
1502 );
1503
1504 g_CURR_DETAILS_rec.db_flag := FND_API.G_TRUE;
1505
1506 -- Load DB record
1507
1508 g_db_CURR_DETAILS_rec := g_CURR_DETAILS_rec;
1509
1510 END IF;
1511
1512 IF p_db_record THEN
1513
1514 RETURN g_db_CURR_DETAILS_rec;
1515
1516 ELSE
1517
1518 RETURN g_CURR_DETAILS_rec;
1519
1520 END IF;
1521
1522 END Get_Curr_Details;
1523
1524 PROCEDURE Clear_Curr_Details
1525 IS
1526 BEGIN
1527
1528 g_CURR_DETAILS_rec := QP_Currency_PUB.G_MISS_CURR_DETAILS_REC;
1529 g_db_CURR_DETAILS_rec := QP_Currency_PUB.G_MISS_CURR_DETAILS_REC;
1530
1531 END Clear_Curr_Details;
1532
1533 END QP_QP_Form_Curr_Details;