DBA Data[Home] [Help]

PACKAGE BODY: APPS.FII_CURRENCY_API

Source


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;