[Home] [Help]
PACKAGE BODY: APPS.FEM_USER_LOV11_PKG
Source
1 package body FEM_USER_LOV11_PKG as
2 /* $Header: fem_usrlv11_pkb.plb 120.0 2005/06/06 19:28:49 appldev noship $ */
3 procedure INSERT_ROW (
4 X_ROWID in out NOCOPY VARCHAR2,
5 X_USER_LOV11_CODE in VARCHAR2,
6 X_ENABLED_FLAG in VARCHAR2,
7 X_PERSONAL_FLAG in VARCHAR2,
8 X_OBJECT_VERSION_NUMBER in NUMBER,
9 X_READ_ONLY_FLAG in VARCHAR2,
10 X_USER_LOV11_NAME in VARCHAR2,
11 X_DESCRIPTION in VARCHAR2,
12 X_CREATION_DATE in DATE,
13 X_CREATED_BY in NUMBER,
14 X_LAST_UPDATE_DATE in DATE,
15 X_LAST_UPDATED_BY in NUMBER,
16 X_LAST_UPDATE_LOGIN in NUMBER
17 ) is
18 cursor C is select ROWID from FEM_USER_LOV11_B
19 where USER_LOV11_CODE = X_USER_LOV11_CODE
20 ;
21 begin
22 insert into FEM_USER_LOV11_B (
23 USER_LOV11_CODE,
24 ENABLED_FLAG,
25 PERSONAL_FLAG,
26 OBJECT_VERSION_NUMBER,
27 READ_ONLY_FLAG,
28 CREATION_DATE,
29 CREATED_BY,
30 LAST_UPDATE_DATE,
31 LAST_UPDATED_BY,
32 LAST_UPDATE_LOGIN
33 ) values (
34 X_USER_LOV11_CODE,
35 X_ENABLED_FLAG,
36 X_PERSONAL_FLAG,
37 X_OBJECT_VERSION_NUMBER,
38 X_READ_ONLY_FLAG,
39 X_CREATION_DATE,
40 X_CREATED_BY,
41 X_LAST_UPDATE_DATE,
42 X_LAST_UPDATED_BY,
43 X_LAST_UPDATE_LOGIN
44 );
45
46 insert into FEM_USER_LOV11_TL (
47 USER_LOV11_CODE,
48 USER_LOV11_NAME,
49 DESCRIPTION,
50 CREATION_DATE,
51 CREATED_BY,
52 LAST_UPDATED_BY,
53 LAST_UPDATE_DATE,
54 LAST_UPDATE_LOGIN,
55 LANGUAGE,
56 SOURCE_LANG
57 ) select
58 X_USER_LOV11_CODE,
59 X_USER_LOV11_NAME,
60 X_DESCRIPTION,
61 X_CREATION_DATE,
62 X_CREATED_BY,
63 X_LAST_UPDATED_BY,
64 X_LAST_UPDATE_DATE,
65 X_LAST_UPDATE_LOGIN,
66 L.LANGUAGE_CODE,
67 userenv('LANG')
68 from FND_LANGUAGES L
69 where L.INSTALLED_FLAG in ('I', 'B')
70 and not exists
71 (select NULL
72 from FEM_USER_LOV11_TL T
73 where T.USER_LOV11_CODE = X_USER_LOV11_CODE
74 and T.LANGUAGE = L.LANGUAGE_CODE);
75
76 open c;
77 fetch c into X_ROWID;
78 if (c%notfound) then
79 close c;
80 raise no_data_found;
81 end if;
82 close c;
83
84 end INSERT_ROW;
85
86 procedure LOCK_ROW (
87 X_USER_LOV11_CODE in VARCHAR2,
88 X_ENABLED_FLAG in VARCHAR2,
89 X_PERSONAL_FLAG in VARCHAR2,
90 X_OBJECT_VERSION_NUMBER in NUMBER,
91 X_READ_ONLY_FLAG in VARCHAR2,
92 X_USER_LOV11_NAME in VARCHAR2,
93 X_DESCRIPTION in VARCHAR2
94 ) is
95 cursor c is select
96 ENABLED_FLAG,
97 PERSONAL_FLAG,
98 OBJECT_VERSION_NUMBER,
99 READ_ONLY_FLAG
100 from FEM_USER_LOV11_B
101 where USER_LOV11_CODE = X_USER_LOV11_CODE
102 for update of USER_LOV11_CODE nowait;
103 recinfo c%rowtype;
104
105 cursor c1 is select
106 USER_LOV11_NAME,
107 DESCRIPTION,
108 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
109 from FEM_USER_LOV11_TL
110 where USER_LOV11_CODE = X_USER_LOV11_CODE
111 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
112 for update of USER_LOV11_CODE nowait;
113 begin
114 open c;
115 fetch c into recinfo;
116 if (c%notfound) then
117 close c;
118 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
119 app_exception.raise_exception;
120 end if;
121 close c;
122 if ( (recinfo.ENABLED_FLAG = X_ENABLED_FLAG)
123 AND (recinfo.PERSONAL_FLAG = X_PERSONAL_FLAG)
124 AND (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
125 AND (recinfo.READ_ONLY_FLAG = X_READ_ONLY_FLAG)
126 ) then
127 null;
128 else
129 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
130 app_exception.raise_exception;
131 end if;
132
133 for tlinfo in c1 loop
134 if (tlinfo.BASELANG = 'Y') then
135 if ( (tlinfo.USER_LOV11_NAME = X_USER_LOV11_NAME)
136 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
137 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
138 ) then
139 null;
140 else
141 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
142 app_exception.raise_exception;
143 end if;
144 end if;
145 end loop;
146 return;
147 end LOCK_ROW;
148
149 procedure UPDATE_ROW (
150 X_USER_LOV11_CODE in VARCHAR2,
151 X_ENABLED_FLAG in VARCHAR2,
152 X_PERSONAL_FLAG in VARCHAR2,
153 X_OBJECT_VERSION_NUMBER in NUMBER,
154 X_READ_ONLY_FLAG in VARCHAR2,
155 X_USER_LOV11_NAME in VARCHAR2,
156 X_DESCRIPTION in VARCHAR2,
157 X_LAST_UPDATE_DATE in DATE,
158 X_LAST_UPDATED_BY in NUMBER,
159 X_LAST_UPDATE_LOGIN in NUMBER
160 ) is
161 begin
162 update FEM_USER_LOV11_B set
163 ENABLED_FLAG = X_ENABLED_FLAG,
164 PERSONAL_FLAG = X_PERSONAL_FLAG,
165 OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
166 READ_ONLY_FLAG = X_READ_ONLY_FLAG,
167 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
168 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
169 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
170 where USER_LOV11_CODE = X_USER_LOV11_CODE;
171
172 if (sql%notfound) then
173 raise no_data_found;
174 end if;
175
176 update FEM_USER_LOV11_TL set
177 USER_LOV11_NAME = X_USER_LOV11_NAME,
178 DESCRIPTION = X_DESCRIPTION,
179 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
180 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
181 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
182 SOURCE_LANG = userenv('LANG')
183 where USER_LOV11_CODE = X_USER_LOV11_CODE
184 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
185
186 if (sql%notfound) then
187 raise no_data_found;
188 end if;
189 end UPDATE_ROW;
190
191 procedure DELETE_ROW (
192 X_USER_LOV11_CODE in VARCHAR2
193 ) is
194 begin
195 delete from FEM_USER_LOV11_TL
196 where USER_LOV11_CODE = X_USER_LOV11_CODE;
197
198 if (sql%notfound) then
199 raise no_data_found;
200 end if;
201
202 delete from FEM_USER_LOV11_B
203 where USER_LOV11_CODE = X_USER_LOV11_CODE;
204
205 if (sql%notfound) then
206 raise no_data_found;
207 end if;
208 end DELETE_ROW;
209
210 procedure ADD_LANGUAGE
211 is
212 begin
213 delete from FEM_USER_LOV11_TL T
214 where not exists
215 (select NULL
216 from FEM_USER_LOV11_B B
217 where B.USER_LOV11_CODE = T.USER_LOV11_CODE
218 );
219
220 update FEM_USER_LOV11_TL T set (
221 USER_LOV11_NAME,
222 DESCRIPTION
223 ) = (select
224 B.USER_LOV11_NAME,
225 B.DESCRIPTION
226 from FEM_USER_LOV11_TL B
227 where B.USER_LOV11_CODE = T.USER_LOV11_CODE
228 and B.LANGUAGE = T.SOURCE_LANG)
229 where (
230 T.USER_LOV11_CODE,
231 T.LANGUAGE
232 ) in (select
233 SUBT.USER_LOV11_CODE,
234 SUBT.LANGUAGE
235 from FEM_USER_LOV11_TL SUBB, FEM_USER_LOV11_TL SUBT
236 where SUBB.USER_LOV11_CODE = SUBT.USER_LOV11_CODE
237 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
238 and (SUBB.USER_LOV11_NAME <> SUBT.USER_LOV11_NAME
239 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
240 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
241 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
242 ));
243
244 insert into FEM_USER_LOV11_TL (
245 USER_LOV11_CODE,
246 USER_LOV11_NAME,
247 DESCRIPTION,
248 CREATION_DATE,
249 CREATED_BY,
250 LAST_UPDATED_BY,
251 LAST_UPDATE_DATE,
252 LAST_UPDATE_LOGIN,
253 LANGUAGE,
254 SOURCE_LANG
255 ) select /*+ ORDERED */
256 B.USER_LOV11_CODE,
257 B.USER_LOV11_NAME,
258 B.DESCRIPTION,
259 B.CREATION_DATE,
260 B.CREATED_BY,
261 B.LAST_UPDATED_BY,
262 B.LAST_UPDATE_DATE,
263 B.LAST_UPDATE_LOGIN,
264 L.LANGUAGE_CODE,
265 B.SOURCE_LANG
266 from FEM_USER_LOV11_TL B, FND_LANGUAGES L
267 where L.INSTALLED_FLAG in ('I', 'B')
268 and B.LANGUAGE = userenv('LANG')
269 and not exists
270 (select NULL
271 from FEM_USER_LOV11_TL T
272 where T.USER_LOV11_CODE = B.USER_LOV11_CODE
273 and T.LANGUAGE = L.LANGUAGE_CODE);
274 end ADD_LANGUAGE;
275 PROCEDURE TRANSLATE_ROW(
276 x_USER_LOV11_CODE in varchar2,
277 x_owner in varchar2,
278 x_last_update_date in varchar2,
279 x_USER_LOV11_NAME in varchar2,
280 x_description in varchar2,
281 x_custom_mode in varchar2) is
282
283 owner_id number;
284 ludate date;
285 row_id varchar2(64);
286 f_luby number; -- entity owner in file
287 f_ludate date; -- entity update date in file
288 db_luby number; -- entity owner in db
289 db_ludate date; -- entity update date in db
290 begin
291
292
293 -- Translate owner to file_last_updated_by
294 f_luby := fnd_load_util.owner_id(x_owner);
295
296 -- Translate char last_update_date to date
297 f_ludate := nvl(to_date(x_last_update_date, 'YYYY/MM/DD'), sysdate);
298 begin
299 select LAST_UPDATED_BY, LAST_UPDATE_DATE
300 into db_luby, db_ludate
301 from FEM_USER_LOV11_TL
302 where USER_LOV11_CODE = x_USER_LOV11_CODE
303 and LANGUAGE = userenv('LANG');
304
305 -- Test for customization and version
306 if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
307 db_ludate, x_custom_mode)) then
308 -- Update translations for this language
309 update FEM_USER_LOV11_TL set
310 USER_LOV11_NAME = decode(x_USER_LOV11_NAME,
311 fnd_load_util.null_value, null, -- Real null
312 null, x_USER_LOV11_NAME, -- No change
313 x_USER_LOV11_NAME),
314 DESCRIPTION = nvl(x_description, DESCRIPTION),
315 LAST_UPDATE_DATE = f_ludate,
316 LAST_UPDATED_BY = f_luby,
317 LAST_UPDATE_LOGIN = 0,
318 SOURCE_LANG = userenv('LANG')
319 where userenv('LANG') in (LANGUAGE, SOURCE_LANG)
320 and USER_LOV11_CODE = x_USER_LOV11_CODE;
321 end if;
322 exception
323 when no_data_found then
324 -- Do not insert missing translations, skip this row
325 null;
326 end;
327 end TRANSLATE_ROW;
328
329
330 end FEM_USER_LOV11_PKG;