1 PACKAGE BODY FII_CURRENCY_API AS
2 /* $Header: FIICAC1B.pls 120.4 2005/10/30 05:07:42 appldev noship $ */
3
4 -- -------------------------------------------------------------------
5 -- Name: get_display_name
6 -- Desc: Returns the display name of a currency code in a specific format.
7 -- Info is cached after initial access
8 -- Output: Display name of a given currency at the given rate type. e.g. given USD
9 -- as the currency code and Corporate Rate as the rate type, it returns
10 -- USD at Corporate Rate
11 -- Error: If any sql errors occurs, an exception is raised.
12 -- --------------------------------------------------------------------
13 Function get_display_name(currency_code varchar2, rate varchar2) return varchar2 is
14 l_name varchar2(100);
15 begin
16
17 fnd_message.set_name('FII','FII_CURRENCY_DISPLAY_NAME');
18 fnd_message.set_token('CURRENCY_CODE',currency_code,FALSE);
19 fnd_message.set_token('RATE',rate,FALSE);
20 l_name := fnd_message.get;
21
22 return l_name;
23 end get_display_name;
24
25 Function get_prim_curr_name return varchar2 is
26 l_name varchar2(100);
27 l_currency_code varchar2(100);
28 l_secondary_currency_code varchar2(100);
29 l_rate varchar2(100);
30 begin
31
32 IF bis_common_parameters.get_primary_curdis_name IS NOT NULL THEN
33 l_name := bis_common_parameters.get_primary_curdis_name;
34 ELSE
35 SELECT bis_common_parameters.get_currency_code,
36 bis_common_parameters.get_secondary_currency_code,
37 user_conversion_type
38 into l_currency_code,
39 l_secondary_currency_code,
40 l_rate
41 FROM gl_daily_conversion_types
42 WHERE bis_common_parameters.get_currency_code is not null
43 AND bis_common_parameters.get_rate_type = conversion_type;
44
45 -- bug 3887180: if primary not same as secondary, just display the code
46 if l_secondary_currency_code is NULL OR
47 l_secondary_currency_code <> l_currency_code then
48 l_name := l_currency_code;
49 else
50 l_name := get_display_name(l_currency_code, l_rate);
51 end if;
52
53 END IF;
54
55 return l_name;
56
57 EXCEPTION
58 WHEN OTHERS THEN
59 return NULL;
60
61 end get_prim_curr_name;
62
63 Function get_sec_curr_name return varchar2 is
64 l_name varchar2(100);
65 l_currency_code varchar2(100);
66 l_secondary_currency_code varchar2(100);
67 l_secondary_rate varchar2(100);
68 begin
69
70 IF bis_common_parameters.get_secondary_curdis_name IS NOT NULL THEN
71 l_name := bis_common_parameters.get_secondary_curdis_name;
72 ELSE
73 SELECT bis_common_parameters.get_currency_code,
74 bis_common_parameters.get_secondary_currency_code,
75 user_conversion_type
76 into l_currency_code,
77 l_secondary_currency_code,
78 l_secondary_rate
79 FROM gl_daily_conversion_types
80 WHERE bis_common_parameters.get_secondary_currency_code is not null
81 AND bis_common_parameters.get_secondary_rate_type = conversion_type;
82
83 -- bug 3887180: if secondary not same as primary, just display the code
84 if l_secondary_currency_code <> l_currency_code then
85 l_name := l_secondary_currency_code;
86 else
87 l_name := get_display_name(l_secondary_currency_code, l_secondary_rate);
88 end if;
89
90 END IF;
91
92 return l_name;
93
94 EXCEPTION
95 WHEN OTHERS THEN
96 return NULL;
97
98 end get_sec_curr_name;
99
100
101 /* Enh#3659270 : This function returns the annualized currency name */
102 Function get_annualized_curr_name return varchar2 is
103 l_name varchar2(100):=null;
104 l_currency_code varchar2(15);
105 l_rate varchar2(30);
106 begin
107
108 l_name := fnd_profile.value('BIS_ANNUALIZED_CURDISP_NAME');
109 IF l_name is not null THEN
110 return l_name;
111 ELSE
112 l_currency_code := fnd_profile.value('BIS_ANNUALIZED_CURRENCY_CODE');
113 if l_currency_code is not null then
114 SELECT user_conversion_type
115 into
116 l_rate
117 FROM gl_daily_conversion_types
118 WHERE conversion_type=fnd_profile.value('BIS_ANNUALIZED_RATE_TYPE');
119
120 fnd_message.set_name('FII','FII_ANNUALIZED_CURR_DISP_NAME');
121 fnd_message.set_token('CURRENCY_CODE',l_currency_code,FALSE);
122 fnd_message.set_token('RATE',l_rate,FALSE);
123 l_name := fnd_message.get;
124
125 end if;
126
127 END IF;
128
129 return l_name;
130 exception
131 WHEN NO_DATA_FOUND THEN
132 return null;
133 WHEN OTHERS THEN
134 raise;
135 end;
136
137
138 end;