[Home] [Help]
PACKAGE BODY: APPS.PON_LOCALE_PKG
Source
1 PACKAGE BODY PON_LOCALE_PKG as
2 /*$Header: PONLOCB.pls 120.5 2007/07/12 12:44:18 pchintap ship $ */
3
4 /**
5 * This procedure takes a first name and last name of a person.
6 * It also takes in the desired name format and the party id of
7 * the person who is receiving the email notification. It formats
8 * the name according to the locale settings of the person receiving
9 * the email.
10 */
11
12 PROCEDURE retrieve_party_display_name (
13 p_first_name IN VARCHAR2
14 , p_last_name IN VARCHAR2
15 , p_mid_name IN VARCHAR2
16 , p_prefix IN VARCHAR2
17 , p_suffix IN VARCHAR2
18 , p_party_id IN NUMBER
19 , p_name_format IN NUMBER
20 , p_language IN VARCHAR2
21 , x_display_name OUT NOCOPY VARCHAR2
22 , x_status OUT NOCOPY VARCHAR2
23 , x_exception_msg OUT NOCOPY VARCHAR2
24 )
25 IS
26 l_first_name hz_parties.PERSON_FIRST_NAME%TYPE;
27 l_last_name hz_parties.PERSON_LAST_NAME%TYPE;
28 l_mid_name hz_parties.PERSON_MIDDLE_NAME%TYPE;
29 l_prefix hz_parties.PERSON_TITLE%TYPE;
30 l_suffix hz_parties.PERSON_NAME_SUFFIX%TYPE;
31 l_prefix_space VARCHAR2(1);
32 l_prefix_comma VARCHAR2(2);
33 l_first_name_space VARCHAR2(1);
34 l_suffix_space VARCHAR2(1);
35 l_middle_name_space VARCHAR2(1);
36 l_first_name_comma VARCHAR2(2);
37 l_prefix_first_name_comma VARCHAR2(1);
38 BEGIN
39
40 IF ( p_first_name is null or p_last_name is null) THEN
41 IF (p_party_id is null) THEN
42 x_display_name := '';
43 x_exception_msg := 'Party Id can not be null if first name is missing';
44 x_status := 'E';
45 ELSE
46 select person_first_name , person_last_name, person_title,
47 person_name_suffix ,PERSON_MIDDLE_NAME
48 into l_first_name, l_last_name, l_prefix, l_suffix, l_mid_name
49 from hz_parties
50 where party_id = p_party_id;
51 END IF;
52 ELSE
53 l_first_name := p_firsT_name;
54 l_last_name := p_last_name;
55 l_mid_name := p_mid_name;
56 l_suffix := p_suffix;
57 l_prefix := p_prefix;
58 END IF;
59
60 SELECT nvl2(l_prefix,' ',''),
61 nvl2(l_prefix,', ',''),
62 nvl2(l_first_name, ' ',''),
63 nvl2(l_suffix, ' ', ''),
64 nvl2(l_mid_name, ' ',''),
65 nvl2(l_first_name, ', ',''),
66 nvl2(l_prefix,',', nvl2(l_first_name,',',''))
67 INTO
68 l_prefix_space,
69 l_prefix_comma,
70 l_first_name_space,
71 l_suffix_space,
72 l_middle_name_space,
73 l_first_name_comma,
74 l_prefix_first_name_comma
75
76 FROM dual;
77
78 -- Format the name according to the language preferences
79 -- of the person receiving the email.
80 IF (x_status = 'E') THEN
81 x_display_name := '';
82 ELSIF (p_language = 'JA' or p_language = 'ZHS' or p_language = 'ZHT' or p_language = 'KO') THEN
83 -- Name is Japanese, Chinese, or Korean
84 IF (p_name_format = NAME_LAST or -- last name alone is not allowed here
85 p_name_format = NAME_LAST_FIRST or
86 p_name_format = NAME_FIRST_LAST or
87 p_name_format = NAME_F_M_L_SUFFIX or
88 p_name_format = NAME_FIRST_M_LAST) THEN
89 x_display_name := l_last_name || l_first_name;
90
91 ELSIF (p_name_format = NAME_TITLE_LAST_FIRST or
92 p_name_format = NAME_LAST_TITLE_FIRST or
93 p_name_format = NAME_TITLE_FIRST_LAST or
94 p_name_format = NAME_TITLE_FIRST or
95 p_name_format = NAME_PREFIX_F_M_L_SUFFIX) THEN
96 x_display_name := l_last_name || l_first_name || l_prefix_space || l_prefix;
97
98 ELSIF (p_name_format = NAME_TITLE_LAST) THEN
99 x_display_name := l_last_name || l_prefix;
100 ELSIF (p_name_format = NAME_FIRST) THEN
101 IF (p_language = 'JA' or p_language = 'ZHS') THEN
102 x_display_name := l_last_name || l_first_name;
103 ELSE
104 x_display_name := l_first_name;
105 END IF;
106
107 END IF;
108
109 ELSIF p_language = 'HU' THEN
110 -- Name is Hungarian
111
112 IF p_name_format = NAME_LAST THEN
113 x_display_name := l_last_name;
114 ELSIF p_name_format = NAME_TITLE_LAST THEN
115 x_display_name := l_prefix || l_prefix_space || l_last_name;
116 ELSIF (p_name_format = NAME_TITLE_LAST_FIRST or
117 p_name_format = NAME_LAST_TITLE_FIRST or
118 p_name_format = NAME_TITLE_FIRST_LAST or
119 p_name_format = NAME_TITLE_FIRST) THEN
120 x_display_name := l_prefix || l_prefix_space || l_last_name || l_first_name_space || l_first_name;
121 ELSIF p_name_format = NAME_F_M_L_SUFFIX THEN
122 x_display_name := l_suffix || l_suffix_space || l_last_name || l_first_name_space || l_first_name || l_middle_name_space || l_mid_name;
123 ELSIF p_name_format = NAME_FIRST_M_LAST THEN
124 x_display_name := l_last_name || l_first_name_space || l_first_name || l_middle_name_space || l_mid_name;
125 ELSIF p_name_format = NAME_PREFIX_F_M_L_SUFFIX THEN
126 x_display_name := l_prefix || l_prefix_space ||l_suffix || l_suffix_space || l_last_name || l_first_name_space || l_first_name || l_middle_name_space || l_mid_name;
127 ELSE
128 x_display_name := l_last_name || l_first_name_space || l_first_name;
129 END IF;
130
131 ELSE
132 -- Name is in other languages
133 IF p_name_format = NAME_LAST_FIRST THEN
134 x_display_name := l_last_name || l_first_name_comma || l_first_name;
135 ELSIF p_name_format = NAME_FIRST_M_LAST THEN
136 x_display_name := l_first_name || l_first_name_space || l_mid_name || l_middle_name_space || l_last_name;
137 ELSIF p_name_format = NAME_TITLE_LAST_FIRST THEN
138 x_display_name := l_prefix || l_prefix_space || l_last_name || l_first_name_comma || l_first_name;
139 ELSIF p_name_format = NAME_LAST_TITLE_FIRST THEN
140 x_display_name := l_last_name || ',' || l_prefix_space || l_prefix || l_first_name_space || l_first_name;
141 ELSIF p_name_format = NAME_PREFIX_F_M_L_SUFFIX THEN
142 x_display_name := l_prefix || l_prefix_space || l_first_name || l_first_name_space || l_mid_name || l_middle_name_space || l_last_name || l_suffix_space || l_suffix;
143 ELSIF p_name_format = NAME_TITLE_FIRST_LAST THEN
144 x_display_name := l_prefix || l_prefix_space || l_first_name || l_first_name_space || l_last_name;
145 ELSIF p_name_format = NAME_TITLE_FIRST THEN
146 x_display_name := l_prefix || l_prefix_space || l_first_name;
147 ELSIF p_name_format = NAME_TITLE_LAST THEN
148 x_display_name := l_prefix || l_prefix_space || l_last_name;
149 ELSIF p_name_format = NAME_F_M_L_SUFFIX THEN
150 x_display_name := l_first_name || l_first_name_space || l_mid_name || l_middle_name_space|| l_last_name || l_suffix_space || l_suffix;
151 ELSIF p_name_format = NAME_FIRST THEN
152 x_display_name := l_first_name;
153 ELSIF p_name_format = NAME_LAST THEN
154 x_display_name := l_last_name;
155 ELSE
156 x_display_name := l_first_name || l_first_name_space || l_last_name;
157 END IF;
158 END IF;
159 x_status := 'S';
160 EXCEPTION
161 WHEN OTHERS THEN
162 x_status := 'E';
163 END retrieve_party_display_name;
164
165 PROCEDURE party_display_name (
166 p_first_name IN VARCHAR2
167 , p_last_name IN VARCHAR2
168 , p_middle_name IN VARCHAR2
169 , p_prefix IN VARCHAR2
170 , p_suffix IN VARCHAR2
171 , p_name_format IN NUMBER
172 , p_language IN VARCHAR2
173 , x_display_name OUT NOCOPY VARCHAR2
174 , x_status OUT NOCOPY VARCHAR2
175 , x_exception_msg OUT NOCOPY VARCHAR2
176 )
177 IS
178 BEGIN
179 retrieve_party_display_name (p_first_name,
180 p_last_name,
181 p_middle_name,
182 p_prefix,
183 p_suffix,
184 null,
185 p_name_format,
186 p_language,
187 x_display_name,
188 x_status,
189 x_exception_msg);
190
191 END party_display_name;
192
193
194 PROCEDURE party_display_name (
195 p_first_name IN VARCHAR2
196 , p_last_name IN VARCHAR2
197 , p_name_format IN NUMBER
198 , p_language IN VARCHAR2
199 , x_display_name OUT NOCOPY VARCHAR2
200 , x_status OUT NOCOPY VARCHAR2
201 , x_exception_msg OUT NOCOPY VARCHAR2
202 )
203 IS
204 BEGIN
205
206 party_display_name (p_first_name,
207 p_last_name,
208 '',
209 '',
210 '',
211 p_name_format,
212 p_language,
213 x_display_name,
214 x_status,
215 x_exception_msg);
216 END party_display_name;
217
218
219 /**
220 * This procedure takes in the party id and returns the display name
221 * according to the desired format and the persons locale preferences
222 */
223
224 PROCEDURE retrieve_party_display_name (
225 p_party_id IN NUMBER
226 , p_name_format IN NUMBER
227 , p_language IN VARCHAR2
228 , x_display_name OUT NOCOPY VARCHAR2
229 , x_status OUT NOCOPY VARCHAR2
230 , x_exception_msg OUT NOCOPY VARCHAR2
231 )
232 IS
233
234 l_first_name hz_parties.PERSON_FIRST_NAME%TYPE;
235 l_last_name hz_parties.PERSON_LAST_NAME%TYPE;
236 l_mid_name hz_parties.PERSON_MIDDLE_NAME%TYPE;
237 l_prefix hz_parties.PERSON_PRE_NAME_ADJUNCT%TYPE;
238 l_suffix hz_parties.PERSON_NAME_SUFFIX%TYPE;
239
240 BEGIN
241
242 -- Get the First Name and the Last Name
243 select PERSON_FIRST_NAME, PERSON_LAST_NAME , PERSON_MIDDLE_NAME,PERSON_NAME_SUFFIX, FL.MEANING
244 into l_first_name, l_last_name ,l_mid_name,l_suffix,l_prefix
245 from hz_parties, fnd_lookup_values fl
246 where PARTY_ID = p_party_id
247 AND fl.lookup_type(+) = 'CONTACT_TITLE'
248 AND fl.lookup_code(+) = person_pre_name_adjunct
249 AND fl.view_application_id(+) = 222
250 AND fl.security_group_id(+) = 0
251 AND fl.language(+) = userenv('lang');
252
253 retrieve_party_display_name(p_first_name => l_first_name,
254 p_last_name => l_last_name,
255 p_mid_name => l_mid_name,
256 p_prefix => l_prefix,
257 p_suffix => l_suffix,
258 p_party_id => p_party_id,
259 p_name_format => p_name_format,
260 p_language => p_language,
261 x_display_name => x_display_name,
262 x_status => x_status,
263 x_exception_msg => x_exception_msg);
264 EXCEPTION
265 WHEN OTHERS THEN BEGIN
266 x_status := 'E';
267 x_exception_msg := 'exception in retreiving the name';
268 END;
269 END retrieve_party_display_name;
270
271 FUNCTION get_party_display_name(
272 p_party_id NUMBER
273 , p_name_format NUMBER
274 , p_language VARCHAR2)
275 RETURN VARCHAR2
276 IS
277 v_display_name VARCHAR2(240):=null;
278 v_status VARCHAR2(240) := null;
279 v_msg VARCHAR2(240) := null;
280 BEGIN
281 retrieve_party_display_name(p_party_id , p_name_format, p_language, v_display_name,v_status, v_msg);
282 RETURN v_display_name;
283 END get_party_display_name;
284
285
286 FUNCTION get_party_display_name(p_party_id NUMBER)
287 RETURN VARCHAR2
288 IS
289 BEGIN
290 RETURN get_party_display_name(p_party_id ,
291 name_last_title_first,
292 userenv('LANG')
293 );
294 END get_party_display_name;
295
296 /**
297 Retrieves Party display name according to the given Name format.
298 Wrapper on the procedure retrieve_party_display_name
299 */
300 FUNCTION party_display_name(
301 p_first_name IN VARCHAR2
302 , p_last_name IN VARCHAR2
303 , p_middle_name IN VARCHAR2
304 , p_prefix IN VARCHAR2
305 , p_suffix IN VARCHAR2
306 , p_language IN VARCHAR2)
307 RETURN VARCHAR2
308 IS
309 v_display_name VARCHAR2(240):=null;
310 v_status VARCHAR2(240) := null;
311 v_msg VARCHAR2(240) := null;
312 BEGIN
313
314 if (fnd_log.level_statement >= fnd_log.g_current_runtime_level) then
315 fnd_log.string(
316 log_level => fnd_log.level_statement,
317 module =>'PON_LOCALE_PKG',
318 message =>'Entered the function with parameters -- ' ||
319 ' p_first_name : ' || p_first_name ||
320 ' p_last_name : ' || p_last_name ||
321 ' p_middle_name : ' || p_middle_name ||
322 ' p_prefix : ' || p_prefix ||
323 ' p_suffix : ' || p_suffix ||
324 ' p_language : ' || p_language
325 );
326 end if;
327
328 retrieve_party_display_name (p_first_name,
329 p_last_name,
330 p_middle_name,
331 p_prefix,
332 p_suffix,
333 null, -- no need of party id
334 default_name_display_pattern,
335 p_language,
336 v_display_name,
337 v_status,
338 v_msg);
339
340 if (fnd_log.level_statement >= fnd_log.g_current_runtime_level) then
341 fnd_log.string(
342 log_level => fnd_log.level_statement,
343 module =>'PON_LOCALE_PKG',
344 message =>'v_status : ' || v_status || '; v_status : ' || v_status || ' ;Returning the value v_display_name : '||v_display_name);
345 end if;
346 RETURN v_display_name;
347 END party_display_name;
348
349
350 END PON_LOCALE_PKG;