DBA Data[Home] [Help]

PACKAGE BODY: APPS.QP_CURRENCY_PUB

Source


1 PACKAGE BODY QP_Currency_PUB AS
2 /* $Header: QPXPCURB.pls 120.2 2005/07/07 04:06:38 appldev ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'QP_Currency_PUB';
7 
8 --  Forward declaration of Procedure Id_To_Value
9 
10 PROCEDURE Id_To_Value
11 (   p_CURR_LISTS_rec                IN  Curr_Lists_Rec_Type
12 ,   p_CURR_DETAILS_tbl              IN  Curr_Details_Tbl_Type
13 ,   x_CURR_LISTS_val_rec            OUT NOCOPY /* file.sql.39 change */ Curr_Lists_Val_Rec_Type
14 ,   x_CURR_DETAILS_val_tbl          OUT NOCOPY /* file.sql.39 change */ Curr_Details_Val_Tbl_Type
15 );
16 
17 --  Forward declaration of procedure Value_To_Id
18 
19 PROCEDURE Value_To_Id
20 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
21 ,   p_CURR_LISTS_rec                IN  Curr_Lists_Rec_Type
22 ,   p_CURR_LISTS_val_rec            IN  Curr_Lists_Val_Rec_Type
23 ,   p_CURR_DETAILS_tbl              IN  Curr_Details_Tbl_Type
24 ,   p_CURR_DETAILS_val_tbl          IN  Curr_Details_Val_Tbl_Type
25 ,   x_CURR_LISTS_rec                OUT NOCOPY /* file.sql.39 change */ Curr_Lists_Rec_Type
26 ,   x_CURR_DETAILS_tbl              OUT NOCOPY /* file.sql.39 change */ Curr_Details_Tbl_Type
27 );
28 
29 --  Start of Comments
30 --  API name    Process_Currency
31 --  Type        Public
32 --  Function
33 --
34 --  Pre-reqs
35 --
36 --  Parameters
37 --
38 --  Version     Current version = 1.0
39 --              Initial version = 1.0
40 --
41 --  Notes
42 --
43 --  End of Comments
44 
45 PROCEDURE Process_Currency
46 (   p_api_version_number            IN  NUMBER
47 ,   p_init_msg_list                 IN  VARCHAR2 := FND_API.G_FALSE
48 ,   p_return_values                 IN  VARCHAR2 := FND_API.G_FALSE
49 ,   p_commit                        IN  VARCHAR2 := FND_API.G_FALSE
50 ,   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
51 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
52 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
53 ,   p_CURR_LISTS_rec                IN  Curr_Lists_Rec_Type :=
54                                         G_MISS_CURR_LISTS_REC
55 ,   p_CURR_LISTS_val_rec            IN  Curr_Lists_Val_Rec_Type :=
56                                         G_MISS_CURR_LISTS_VAL_REC
57 ,   p_CURR_DETAILS_tbl              IN  Curr_Details_Tbl_Type :=
58                                         G_MISS_CURR_DETAILS_TBL
59 ,   p_CURR_DETAILS_val_tbl          IN  Curr_Details_Val_Tbl_Type :=
60                                         G_MISS_CURR_DETAILS_VAL_TBL
61 ,   x_CURR_LISTS_rec                OUT NOCOPY /* file.sql.39 change */ Curr_Lists_Rec_Type
62 ,   x_CURR_LISTS_val_rec            OUT NOCOPY /* file.sql.39 change */ Curr_Lists_Val_Rec_Type
63 ,   x_CURR_DETAILS_tbl              OUT NOCOPY /* file.sql.39 change */ Curr_Details_Tbl_Type
64 ,   x_CURR_DETAILS_val_tbl          OUT NOCOPY /* file.sql.39 change */ Curr_Details_Val_Tbl_Type
65 )
66 IS
67 l_api_version_number          CONSTANT NUMBER := 1.0;
68 l_api_name                    CONSTANT VARCHAR2(30):= 'Process_Currency';
69 l_control_rec                 QP_GLOBALS.Control_Rec_Type;
70 l_return_status               VARCHAR2(1);
71 l_CURR_LISTS_rec              Curr_Lists_Rec_Type;
72 l_p_CURR_LISTS_rec              Curr_Lists_Rec_Type;
73 l_CURR_DETAILS_tbl            Curr_Details_Tbl_Type;
74 l_p_CURR_DETAILS_tbl            Curr_Details_Tbl_Type;
75 BEGIN
76 
77     --  Standard call to check for call compatibility
78 
79     IF NOT FND_API.Compatible_API_Call
80            (   l_api_version_number
81            ,   p_api_version_number
82            ,   l_api_name
83            ,   G_PKG_NAME
84            )
85     THEN
86         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
87     END IF;
88 
89     --  Perform Value to Id conversion
90 
91     Value_To_Id
92     (   x_return_status               => l_return_status
93     ,   p_CURR_LISTS_rec              => p_CURR_LISTS_rec
94     ,   p_CURR_LISTS_val_rec          => p_CURR_LISTS_val_rec
95     ,   p_CURR_DETAILS_tbl            => p_CURR_DETAILS_tbl
96     ,   p_CURR_DETAILS_val_tbl        => p_CURR_DETAILS_val_tbl
97     ,   x_CURR_LISTS_rec              => l_CURR_LISTS_rec
98     ,   x_CURR_DETAILS_tbl            => l_CURR_DETAILS_tbl
99     );
100 
101     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
102         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
103     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
104         RAISE FND_API.G_EXC_ERROR;
105     END IF;
106 
107 
108     -- Added by Sunil Pandey
109     -- Set control_rec flag to N to identify that the API is not called from UI
110     l_control_rec.called_from_ui := 'N';
111 
112     --  Call QP_Currency_PVT.Process_Currency
113     l_p_CURR_LISTS_rec := l_CURR_LISTS_rec;
114     l_p_CURR_DETAILS_tbl := l_CURR_DETAILS_tbl;
115     QP_Currency_PVT.Process_Currency
116     (   p_api_version_number          => 1.0
117     ,   p_init_msg_list               => p_init_msg_list
118     ,   p_validation_level            => FND_API.G_VALID_LEVEL_FULL
119     ,   p_commit                      => p_commit
120     ,   x_return_status               => x_return_status
121     ,   x_msg_count                   => x_msg_count
122     ,   x_msg_data                    => x_msg_data
123     ,   p_control_rec                 => l_control_rec
124     ,   p_CURR_LISTS_rec              => l_p_CURR_LISTS_rec
125     ,   p_CURR_DETAILS_tbl            => l_p_CURR_DETAILS_tbl
126     ,   x_CURR_LISTS_rec              => l_CURR_LISTS_rec
127     ,   x_CURR_DETAILS_tbl            => l_CURR_DETAILS_tbl
128     );
129 
130     --  Load Id OUT parameters.
131 
132     x_CURR_LISTS_rec               := l_CURR_LISTS_rec;
133     x_CURR_DETAILS_tbl             := l_CURR_DETAILS_tbl;
134 
135     --  If p_return_values is TRUE then convert Ids to Values.
136 
137     IF FND_API.to_Boolean(p_return_values) THEN
138 
139         Id_To_Value
140         (   p_CURR_LISTS_rec              => l_CURR_LISTS_rec
141         ,   p_CURR_DETAILS_tbl            => l_CURR_DETAILS_tbl
142         ,   x_CURR_LISTS_val_rec          => x_CURR_LISTS_val_rec
143         ,   x_CURR_DETAILS_val_tbl        => x_CURR_DETAILS_val_tbl
144         );
145 
146     END IF;
147 
148 EXCEPTION
149 
150     WHEN FND_API.G_EXC_ERROR THEN
151 
152         x_return_status := FND_API.G_RET_STS_ERROR;
153 
154         --  Get message count and data
155 
156         OE_MSG_PUB.Count_And_Get
157         (   p_count                       => x_msg_count
158         ,   p_data                        => x_msg_data
159         );
160 
161     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
162 
163         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
164 
165         --  Get message count and data
166 
167         OE_MSG_PUB.Count_And_Get
168         (   p_count                       => x_msg_count
169         ,   p_data                        => x_msg_data
170         );
171 
172     WHEN OTHERS THEN
173 
174         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
175 
176         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
177         THEN
178             OE_MSG_PUB.Add_Exc_Msg
179             (   G_PKG_NAME
180             ,   'Process_Currency'
181             );
182         END IF;
183 
184         --  Get message count and data
185 
186         OE_MSG_PUB.Count_And_Get
187         (   p_count                       => x_msg_count
188         ,   p_data                        => x_msg_data
189         );
190 
191 END Process_Currency;
192 
193 --  Start of Comments
194 --  API name    Lock_Currency
195 --  Type        Public
196 --  Function
197 --
198 --  Pre-reqs
199 --
200 --  Parameters
201 --
202 --  Version     Current version = 1.0
203 --              Initial version = 1.0
204 --
205 --  Notes
206 --
207 --  End of Comments
208 
209 PROCEDURE Lock_Currency
210 (   p_api_version_number            IN  NUMBER
211 ,   p_init_msg_list                 IN  VARCHAR2 := FND_API.G_FALSE
212 ,   p_return_values                 IN  VARCHAR2 := FND_API.G_FALSE
213 ,   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
214 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
215 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
216 ,   p_CURR_LISTS_rec                IN  Curr_Lists_Rec_Type :=
217                                         G_MISS_CURR_LISTS_REC
218 ,   p_CURR_LISTS_val_rec            IN  Curr_Lists_Val_Rec_Type :=
219                                         G_MISS_CURR_LISTS_VAL_REC
220 ,   p_CURR_DETAILS_tbl              IN  Curr_Details_Tbl_Type :=
221                                         G_MISS_CURR_DETAILS_TBL
222 ,   p_CURR_DETAILS_val_tbl          IN  Curr_Details_Val_Tbl_Type :=
223                                         G_MISS_CURR_DETAILS_VAL_TBL
224 ,   x_CURR_LISTS_rec                OUT NOCOPY /* file.sql.39 change */ Curr_Lists_Rec_Type
225 ,   x_CURR_LISTS_val_rec            OUT NOCOPY /* file.sql.39 change */ Curr_Lists_Val_Rec_Type
226 ,   x_CURR_DETAILS_tbl              OUT NOCOPY /* file.sql.39 change */ Curr_Details_Tbl_Type
227 ,   x_CURR_DETAILS_val_tbl          OUT NOCOPY /* file.sql.39 change */ Curr_Details_Val_Tbl_Type
228 )
229 IS
230 l_api_version_number          CONSTANT NUMBER := 1.0;
231 l_api_name                    CONSTANT VARCHAR2(30):= 'Lock_Currency';
232 l_return_status               VARCHAR2(1);
233 l_CURR_LISTS_rec              Curr_Lists_Rec_Type;
234 l_p_CURR_LISTS_rec              Curr_Lists_Rec_Type;
235 l_CURR_DETAILS_tbl            Curr_Details_Tbl_Type;
236 l_p_CURR_DETAILS_tbl            Curr_Details_Tbl_Type;
237 BEGIN
238 
239     --  Standard call to check for call compatibility
240 
241     IF NOT FND_API.Compatible_API_Call
242            (   l_api_version_number
243            ,   p_api_version_number
244            ,   l_api_name
245            ,   G_PKG_NAME
246            )
247     THEN
248         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
249     END IF;
250 
251     --  Perform Value to Id conversion
252 
253     Value_To_Id
254     (   x_return_status               => l_return_status
255     ,   p_CURR_LISTS_rec              => p_CURR_LISTS_rec
256     ,   p_CURR_LISTS_val_rec          => p_CURR_LISTS_val_rec
257     ,   p_CURR_DETAILS_tbl            => p_CURR_DETAILS_tbl
258     ,   p_CURR_DETAILS_val_tbl        => p_CURR_DETAILS_val_tbl
259     ,   x_CURR_LISTS_rec              => l_CURR_LISTS_rec
260     ,   x_CURR_DETAILS_tbl            => l_CURR_DETAILS_tbl
261     );
262 
263     IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
264         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
265     ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
266         RAISE FND_API.G_EXC_ERROR;
267     END IF;
268 
269 
270     --  Call QP_Currency_PVT.Lock_Currency
271     l_p_CURR_LISTS_rec := l_CURR_LISTS_rec;
272     l_p_CURR_DETAILS_tbl := l_CURR_DETAILS_tbl;
273     QP_Currency_PVT.Lock_Currency
274     (   p_api_version_number          => 1.0
275     ,   p_init_msg_list               => p_init_msg_list
276     ,   x_return_status               => x_return_status
277     ,   x_msg_count                   => x_msg_count
278     ,   x_msg_data                    => x_msg_data
279     ,   p_CURR_LISTS_rec              => l_p_CURR_LISTS_rec
280     ,   p_CURR_DETAILS_tbl            => l_p_CURR_DETAILS_tbl
281     ,   x_CURR_LISTS_rec              => l_CURR_LISTS_rec
282     ,   x_CURR_DETAILS_tbl            => l_CURR_DETAILS_tbl
283     );
284 
285     --  Load Id OUT parameters.
286 
287     x_CURR_LISTS_rec               := l_CURR_LISTS_rec;
288     x_CURR_DETAILS_tbl             := l_CURR_DETAILS_tbl;
289 
290     --  If p_return_values is TRUE then convert Ids to Values.
291 
292     IF FND_API.to_Boolean(p_return_values) THEN
293 
294         Id_To_Value
295         (   p_CURR_LISTS_rec              => l_CURR_LISTS_rec
296         ,   p_CURR_DETAILS_tbl            => l_CURR_DETAILS_tbl
297         ,   x_CURR_LISTS_val_rec          => x_CURR_LISTS_val_rec
298         ,   x_CURR_DETAILS_val_tbl        => x_CURR_DETAILS_val_tbl
299         );
300 
301     END IF;
302 
303 EXCEPTION
304 
305     WHEN FND_API.G_EXC_ERROR THEN
306 
307         x_return_status := FND_API.G_RET_STS_ERROR;
308 
309         --  Get message count and data
310 
311         OE_MSG_PUB.Count_And_Get
312         (   p_count                       => x_msg_count
313         ,   p_data                        => x_msg_data
314         );
315 
316     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
317 
318         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
319 
320         --  Get message count and data
321 
322         OE_MSG_PUB.Count_And_Get
323         (   p_count                       => x_msg_count
324         ,   p_data                        => x_msg_data
325         );
326 
327     WHEN OTHERS THEN
328 
329         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
330 
331         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
332         THEN
333             OE_MSG_PUB.Add_Exc_Msg
334             (   G_PKG_NAME
335             ,   'Lock_Currency'
336             );
337         END IF;
338 
339         --  Get message count and data
340 
341         OE_MSG_PUB.Count_And_Get
342         (   p_count                       => x_msg_count
343         ,   p_data                        => x_msg_data
344         );
345 
346 END Lock_Currency;
347 
348 --  Start of Comments
349 --  API name    Get_Currency
350 --  Type        Public
351 --  Function
352 --
353 --  Pre-reqs
354 --
355 --  Parameters
356 --
357 --  Version     Current version = 1.0
358 --              Initial version = 1.0
359 --
360 --  Notes
361 --
362 --  End of Comments
363 
364 PROCEDURE Get_Currency
365 (   p_api_version_number            IN  NUMBER
366 ,   p_init_msg_list                 IN  VARCHAR2 := FND_API.G_FALSE
367 ,   p_return_values                 IN  VARCHAR2 := FND_API.G_FALSE
368 ,   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
369 ,   x_msg_count                     OUT NOCOPY /* file.sql.39 change */ NUMBER
370 ,   x_msg_data                      OUT NOCOPY /* file.sql.39 change */ VARCHAR2
371 ,   p_currency_header_id            IN  NUMBER :=
372                                         FND_API.G_MISS_NUM
373 ,   p_currency_header               IN  VARCHAR2 :=
374                                         FND_API.G_MISS_CHAR
375 ,   x_CURR_LISTS_rec                OUT NOCOPY /* file.sql.39 change */ Curr_Lists_Rec_Type
376 ,   x_CURR_LISTS_val_rec            OUT NOCOPY /* file.sql.39 change */ Curr_Lists_Val_Rec_Type
377 ,   x_CURR_DETAILS_tbl              OUT NOCOPY /* file.sql.39 change */ Curr_Details_Tbl_Type
378 ,   x_CURR_DETAILS_val_tbl          OUT NOCOPY /* file.sql.39 change */ Curr_Details_Val_Tbl_Type
379 )
380 IS
381 l_api_version_number          CONSTANT NUMBER := 1.0;
382 l_api_name                    CONSTANT VARCHAR2(30):= 'Get_Currency';
383 l_currency_header_id          NUMBER := p_currency_header_id;
384 l_CURR_LISTS_rec              QP_Currency_PUB.Curr_Lists_Rec_Type;
385 l_CURR_DETAILS_tbl            QP_Currency_PUB.Curr_Details_Tbl_Type;
386 BEGIN
387 
388     --  Standard call to check for call compatibility
389 
390     IF NOT FND_API.Compatible_API_Call
391            (   l_api_version_number
392            ,   p_api_version_number
393            ,   l_api_name
394            ,   G_PKG_NAME
395            )
396     THEN
400     --  Standard check for Val/ID conversion
397         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
398     END IF;
399 
401 
402     IF  p_currency_header = FND_API.G_MISS_CHAR
403     THEN
404 
405         l_currency_header_id := p_currency_header_id;
406 
407     ELSIF p_currency_header_id <> FND_API.G_MISS_NUM THEN
408 
409         l_currency_header_id := p_currency_header_id;
410 
411         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_SUCCESS)
412         THEN
413 
414             FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
415             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','currency_header');
416             OE_MSG_PUB.Add;
417 
418         END IF;
419 
420     ELSE
421 
422         --  Convert Value to Id
423 
424         l_currency_header_id := QP_Value_To_Id.currency_header
425         (   p_currency_header             => p_currency_header
426         );
427 
428         IF l_currency_header_id = FND_API.G_MISS_NUM THEN
429             IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
430             THEN
431 
432                 FND_MESSAGE.SET_NAME('QP','Invalid Business Object Value');
433                 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','currency_header');
434                 OE_MSG_PUB.Add;
435 
436             END IF;
437         END IF;
438 
439         RAISE FND_API.G_EXC_ERROR;
440 
441     END IF;
442 
443 
444     --  Call QP_Currency_PVT.Get_Currency
445 
446     QP_Currency_PVT.Get_Currency
447     (   p_api_version_number          => 1.0
448     ,   p_init_msg_list               => p_init_msg_list
449     ,   x_return_status               => x_return_status
450     ,   x_msg_count                   => x_msg_count
451     ,   x_msg_data                    => x_msg_data
452     ,   p_currency_header_id          => l_currency_header_id
453     ,   x_CURR_LISTS_rec              => l_CURR_LISTS_rec
454     ,   x_CURR_DETAILS_tbl            => l_CURR_DETAILS_tbl
455     );
456 
457     --  Load Id OUT parameters.
458 
459     x_CURR_LISTS_rec               := l_CURR_LISTS_rec;
460     x_CURR_DETAILS_tbl             := l_CURR_DETAILS_tbl;
461 
462     --  If p_return_values is TRUE then convert Ids to Values.
463 
464     IF FND_API.TO_BOOLEAN(p_return_values) THEN
465 
466         Id_To_Value
467         (   p_CURR_LISTS_rec              => l_CURR_LISTS_rec
468         ,   p_CURR_DETAILS_tbl            => l_CURR_DETAILS_tbl
469         ,   x_CURR_LISTS_val_rec          => x_CURR_LISTS_val_rec
470         ,   x_CURR_DETAILS_val_tbl        => x_CURR_DETAILS_val_tbl
471         );
472 
473     END IF;
474 
475     --  Set return status
476 
477     x_return_status := FND_API.G_RET_STS_SUCCESS;
478 
479     --  Get message count and data
480 
481     OE_MSG_PUB.Count_And_Get
482     (   p_count                       => x_msg_count
483     ,   p_data                        => x_msg_data
484     );
485 
486 
487 EXCEPTION
488 
489     WHEN FND_API.G_EXC_ERROR THEN
490 
491         x_return_status := FND_API.G_RET_STS_ERROR;
492 
493         --  Get message count and data
494 
495         OE_MSG_PUB.Count_And_Get
496         (   p_count                       => x_msg_count
497         ,   p_data                        => x_msg_data
498         );
499 
500     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
501 
502         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
503 
504         --  Get message count and data
505 
506         OE_MSG_PUB.Count_And_Get
507         (   p_count                       => x_msg_count
508         ,   p_data                        => x_msg_data
509         );
510 
511     WHEN OTHERS THEN
512 
513         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
514 
515         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
516         THEN
517             OE_MSG_PUB.Add_Exc_Msg
518             (   G_PKG_NAME
519             ,   'Get_Currency'
520             );
521         END IF;
522 
523         --  Get message count and data
524 
525         OE_MSG_PUB.Count_And_Get
526         (   p_count                       => x_msg_count
527         ,   p_data                        => x_msg_data
528         );
529 
530 END Get_Currency;
531 
532 --  Procedure Id_To_Value
533 
534 PROCEDURE Id_To_Value
535 (   p_CURR_LISTS_rec                IN  Curr_Lists_Rec_Type
536 ,   p_CURR_DETAILS_tbl              IN  Curr_Details_Tbl_Type
537 ,   x_CURR_LISTS_val_rec            OUT NOCOPY /* file.sql.39 change */ Curr_Lists_Val_Rec_Type
538 ,   x_CURR_DETAILS_val_tbl          OUT NOCOPY /* file.sql.39 change */ Curr_Details_Val_Tbl_Type
539 )
540 IS
541 BEGIN
542 
543     --  Convert CURR_LISTS
544 
545     x_CURR_LISTS_val_rec := QP_Curr_Lists_Util.Get_Values(p_CURR_LISTS_rec);
546 
547     --  Convert CURR_DETAILS
548 
549     FOR I IN 1..p_CURR_DETAILS_tbl.COUNT LOOP
550         x_CURR_DETAILS_val_tbl(I) :=
554 EXCEPTION
551             QP_Curr_Details_Util.Get_Values(p_CURR_DETAILS_tbl(I));
552     END LOOP;
553 
555 
556     WHEN OTHERS THEN
557 
558         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
559         THEN
560             OE_MSG_PUB.Add_Exc_Msg
561             (   G_PKG_NAME
562             ,   'Id_To_Value'
563             );
564         END IF;
565 
566         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
567 
568 END Id_To_Value;
569 
570 --  Procedure Value_To_Id
571 
572 PROCEDURE Value_To_Id
573 (   x_return_status                 OUT NOCOPY /* file.sql.39 change */ VARCHAR2
574 ,   p_CURR_LISTS_rec                IN  Curr_Lists_Rec_Type
575 ,   p_CURR_LISTS_val_rec            IN  Curr_Lists_Val_Rec_Type
576 ,   p_CURR_DETAILS_tbl              IN  Curr_Details_Tbl_Type
577 ,   p_CURR_DETAILS_val_tbl          IN  Curr_Details_Val_Tbl_Type
578 ,   x_CURR_LISTS_rec                OUT NOCOPY /* file.sql.39 change */ Curr_Lists_Rec_Type
579 ,   x_CURR_DETAILS_tbl              OUT NOCOPY /* file.sql.39 change */ Curr_Details_Tbl_Type
580 )
581 IS
582 l_CURR_LISTS_rec              Curr_Lists_Rec_Type;
583 l_CURR_DETAILS_rec            Curr_Details_Rec_Type;
584 l_index                       BINARY_INTEGER;
585 BEGIN
586 
587     --  Init x_return_status.
588 
589     x_return_status := FND_API.G_RET_STS_SUCCESS;
590 
591     --  Convert CURR_LISTS
592 
593     l_CURR_LISTS_rec := QP_Curr_Lists_Util.Get_Ids
594     (   p_CURR_LISTS_rec              => p_CURR_LISTS_rec
595     ,   p_CURR_LISTS_val_rec          => p_CURR_LISTS_val_rec
596     );
597 
598     x_CURR_LISTS_rec               := l_CURR_LISTS_rec;
599 
600     IF l_CURR_LISTS_rec.return_status = FND_API.G_RET_STS_ERROR THEN
601         x_return_status := FND_API.G_RET_STS_ERROR;
602     END IF;
603 
604     --  Convert CURR_DETAILS
605 
606     x_CURR_DETAILS_tbl := p_CURR_DETAILS_tbl;
607 
608     l_index := p_CURR_DETAILS_val_tbl.FIRST;
609 
610     WHILE l_index IS NOT NULL LOOP
611 
612         l_CURR_DETAILS_rec := QP_Curr_Details_Util.Get_Ids
613         (   p_CURR_DETAILS_rec            => p_CURR_DETAILS_tbl(l_index)
614         ,   p_CURR_DETAILS_val_rec        => p_CURR_DETAILS_val_tbl(l_index)
615         );
616 
617         x_CURR_DETAILS_tbl(l_index)    := l_CURR_DETAILS_rec;
618 
619         IF l_CURR_DETAILS_rec.return_status = FND_API.G_RET_STS_ERROR THEN
620             x_return_status := FND_API.G_RET_STS_ERROR;
621         END IF;
622 
623         l_index := p_CURR_DETAILS_val_tbl.NEXT(l_index);
624 
625     END LOOP;
626 
627 EXCEPTION
628 
629     WHEN OTHERS THEN
630 
631         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
632         THEN
633             OE_MSG_PUB.Add_Exc_Msg
634             (   G_PKG_NAME
635             ,   'Value_To_Id'
636             );
637         END IF;
638 
639         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
640 
641 END Value_To_Id;
642 
643 END QP_Currency_PUB;