[Home] [Help]
PACKAGE BODY: APPS.JTF_NAV_TABS_PKG
Source
1 package body JTF_NAV_TABS_PKG AS
2 /* $Header: jtfntabb.pls 120.2 2005/12/12 15:19:48 stopiwal ship $ */
3
4 PROCEDURE INSERT_ROW (X_TAB_VALUE in VARCHAR2,
5 X_NAVIGATOR_TYPE IN VARCHAR2,
6 X_APPLICATION_ID in NUMBER,
7 X_ICON_NAME in VARCHAR2,
8 X_SEQUENCE_NUMBER in NUMBER,
9 X_TAB_LABEL in VARCHAR2,
10 X_CREATION_DATE in DATE,
11 X_CREATED_BY in NUMBER,
12 X_LAST_UPDATE_DATE in DATE,
13 X_LAST_UPDATED_BY in NUMBER,
14 X_LAST_UPDATE_LOGIN in NUMBER)
15 IS
16
17 l_tab_id number := 0;
18
19 BEGIN
20 -- since our view is based on two tables, make sure the right columns
21 -- of each table get updated
22
23 SELECT jtf_nav_tabs_s.nextval
24 INTO l_tab_id
25 FROM dual;
26 insert into JTF_NAV_TABS_b
27 (tab_id,
28 TAB_VALUE,
29 NAVIGATOR_TYPE,
30 APPLICATION_ID,
31 ICON_NAME,
32 SEQUENCE_NUMBER,
33 CREATION_DATE,
34 CREATED_BY,
35 LAST_UPDATE_DATE,
36 LAST_UPDATED_BY,
37 LAST_UPDATE_LOGIN
38 ) values (
39 l_tab_id,
40 X_TAB_VALUE,
41 x_navigator_type,
42 X_APPLICATION_ID,
43 X_ICON_NAME,
44 X_SEQUENCE_NUMBER,
45 X_CREATION_DATE,
46 X_CREATED_BY,
47 X_LAST_UPDATE_DATE,
48 X_LAST_UPDATED_BY,
49 X_LAST_UPDATE_LOGIN);
50
51 insert into JTF_NAV_TABS_TL (
52 CREATED_BY,
53 CREATION_DATE,
54 LAST_UPDATE_LOGIN,
55 LAST_UPDATE_DATE,
56 LAST_UPDATED_BY,
57 tab_id,
58 TAB_LABEL,
59 LANGUAGE,
60 SOURCE_LANG
61 ) select
62 X_CREATED_BY,
63 X_CREATION_DATE,
64 X_LAST_UPDATE_LOGIN,
65 X_LAST_UPDATE_DATE,
66 X_LAST_UPDATED_BY,
67 l_tab_id,
68 X_TAB_LABEL,
69 L.LANGUAGE_CODE,
70 userenv('LANG')
71 from FND_LANGUAGES L
72 where L.INSTALLED_FLAG in ('I', 'B')
73 and not exists
74 (select NULL
75 from JTF_NAV_TABS_TL T
76 where T.TAB_id = l_tab_id
77 and T.LANGUAGE = L.LANGUAGE_CODE);
78
79 end INSERT_ROW;
80
81 procedure UPDATE_ROW
82 (x_tab_id IN number,
83 X_TAB_VALUE in VARCHAR2,
84 X_NAVIGATOR_TYPE IN VARCHAR2,
85 X_APPLICATION_ID in NUMBER,
86 X_ICON_NAME in VARCHAR2,
87 X_SEQUENCE_NUMBER in NUMBER,
88 X_TAB_LABEL in VARCHAR2,
89 X_LAST_UPDATE_DATE in DATE,
90 X_LAST_UPDATED_BY in NUMBER,
91 X_LAST_UPDATE_LOGIN in NUMBER) IS
92 begin
93 update JTF_NAV_TABS_B SET
94 tab_value = x_tab_value,
95 NAVIGATOR_type = X_NAVIGATOR_TYPE,
96 APPLICATION_ID = X_APPLICATION_ID,
97 ICON_NAME = X_ICON_NAME,
98 SEQUENCE_NUMBER = X_SEQUENCE_NUMBER,
99 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
100 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
101 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
102 where TAB_id = X_TAB_id;
103
104 if (sql%notfound) then
105 raise no_data_found;
106 end if;
107
108 update JTF_NAV_TABS_TL set
109 TAB_LABEL = X_TAB_LABEL,
110 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
111 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
112 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
113 SOURCE_LANG = userenv('LANG')
114 where TAB_id = X_TAB_id
115 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
116
117 if (sql%notfound) then
118 raise no_data_found;
119 end if;
120 end UPDATE_ROW;
121
122 procedure LOCK_ROW
123 (X_TAB_ID in NUMBER,
124 X_TAB_VALUE in VARCHAR2,
125 X_NAVIGATOR_TYPE IN VARCHAR2,
126 X_APPLICATION_ID in NUMBER,
127 X_ICON_NAME in VARCHAR2,
128 X_SEQUENCE_NUMBER in NUMBER,
129 X_TAB_LABEL in VARCHAR2) IS
130 cursor c IS
131 SELECT tab_value, APPLICATION_ID, ICON_NAME,
132 sequence_number, navigator_type
133 FROM JTF_NAV_TABS_B
134 WHERE TAB_id = X_TAB_id
135 FOR UPDATE OF TAB_ID nowait;
136 recinfo c%rowtype;
137
138 cursor c1 is select
139 TAB_LABEL,
140 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
141 from JTF_NAV_TABS_TL
142 where TAB_id = X_TAB_id
143 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
144 for update of TAB_id nowait;
145 begin
146 open c;
147 fetch c into recinfo;
148 if (c%notfound) then
149 close c;
150 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
151 app_exception.raise_exception;
152 end if;
153 close c;
154 if ( (recinfo.APPLICATION_ID = X_APPLICATION_ID)
155 AND (recinfo.ICON_NAME = X_ICON_NAME)
156 AND (recinfo.SEQUENCE_NUMBER = X_SEQUENCE_NUMBER)
157 AND (recinfo.tab_value = x_tab_value)
158 AND ((recinfo.navigator_type = x_navigator_type) OR
159 (x_navigator_type IS NULL AND recinfo.navigator_type IS null))
160 ) then
161 null;
162 else
163 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
164 app_exception.raise_exception;
165 end if;
166
167 for tlinfo in c1 loop
168 if (tlinfo.BASELANG = 'Y') then
169 if ( (tlinfo.TAB_LABEL = X_TAB_LABEL)
170 ) then
171 null;
172 else
173 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
174 app_exception.raise_exception;
175 end if;
176 end if;
177 end loop;
178 return;
179 end LOCK_ROW;
180
181 procedure DELETE_ROW (X_TAB_id in NUMBER) IS
182 begin
183 delete from JTF_NAV_TABS_TL
184 where TAB_id = X_TAB_id;
185
186 if (sql%notfound) then
187 raise no_data_found;
188 end if;
189
190 delete from JTF_NAV_TABS_B
191 where TAB_id = X_TAB_id;
192
193 if (sql%notfound) then
194 raise no_data_found;
195 end if;
196 end DELETE_ROW;
197
198 procedure ADD_LANGUAGE
199 is
200 begin
201 delete from JTF_NAV_TABS_TL T
202 where not exists
203 (select NULL
204 from JTF_NAV_TABS_B B
205 where B.TAB_id = T.TAB_id
206 );
207
208 update JTF_NAV_TABS_TL T set (
209 TAB_LABEL
210 ) = (select
211 B.TAB_LABEL
212 from JTF_NAV_TABS_TL B
213 where B.TAB_id = T.TAB_id
214 and B.LANGUAGE = T.SOURCE_LANG)
215 where (
216 T.TAB_id,
217 T.LANGUAGE
218 ) in (select
219 SUBT.TAB_id,
220 SUBT.LANGUAGE
221 from JTF_NAV_TABS_TL SUBB, JTF_NAV_TABS_TL SUBT
222 where SUBB.TAB_id = SUBT.TAB_id
223 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
224 and (SUBB.TAB_LABEL <> SUBT.TAB_LABEL
225 ));
226
227 insert into JTF_NAV_TABS_TL (
228 CREATED_BY,
229 CREATION_DATE,
230 LAST_UPDATE_LOGIN,
231 LAST_UPDATE_DATE,
232 LAST_UPDATED_BY,
233 TAB_id,
234 TAB_LABEL,
235 LANGUAGE,
236 SOURCE_LANG
237 ) select
238 B.CREATED_BY,
239 B.CREATION_DATE,
240 B.LAST_UPDATE_LOGIN,
241 B.LAST_UPDATE_DATE,
242 B.LAST_UPDATED_BY,
243 B.TAB_id,
244 B.TAB_LABEL,
245 L.LANGUAGE_CODE,
246 B.SOURCE_LANG
247 from JTF_NAV_TABS_TL B, FND_LANGUAGES L
248 where L.INSTALLED_FLAG in ('I', 'B')
249 and B.LANGUAGE = userenv('LANG')
250 and not exists
251 (select NULL
252 from JTF_NAV_TABS_TL T
253 where T.TAB_id = B.TAB_id
254 and T.LANGUAGE = L.LANGUAGE_CODE);
255 end ADD_LANGUAGE;
256
257 -- --------------------------------------------------------------------
258 -- Procedure : LOAD_ROW
259 -- Description : Called by FNDLOAD to upload seed datas, this procedure
260 -- only handle seed data.
261 -- --------------------------------------------------------------------
262 PROCEDURE LOAD_row
263 (X_TAB_VALUE in VARCHAR2,
264 X_NAVIGATOR_TYPE IN varchar2,
265 X_APPLICATION_ID in NUMBER,
266 X_ICON_NAME in VARCHAR2,
267 X_SEQUENCE_NUMBER in NUMBER,
268 X_TAB_LABEL in VARCHAR2,
269 X_OWNER in VARCHAR2) IS
270 user_id NUMBER;
271 l_tab_id number;
272
273 BEGIN
274 -- Validate input data
275 IF (x_tab_value IS NULL) OR (x_application_id IS NULL)
276 OR (x_tab_label IS NULL) THEN
277 GOTO end_load_row;
278 END IF;
279
280 /*
281 IF (x_owner IS NOT NULL) AND (x_owner = 'SEED') THEN
282 user_id := 1;
283 ELSE
284 user_id := 0;
285 END IF;
286 */
287 user_id := fnd_load_util.owner_id(x_owner);
288
289 -- Load The record to _B table
290 UPDATE jtf_nav_tabs_b SET
291 navigator_type = x_navigator_type,
292 application_id = x_application_id,
293 icon_name = x_icon_name,
294 sequence_number = x_sequence_number,
295 last_update_date = sysdate,
296 last_updated_by = user_id,
297 last_update_login = 0
298 WHERE tab_value = x_tab_value;
299
300 IF (SQL%NOTFOUND) THEN
301 -- Insert new record to _B table
302 SELECT jtf_nav_tabs_s.nextval
303 INTO l_tab_id
304 FROM dual;
305
306 INSERT INTO jtf_nav_tabs_b
307 (tab_id,
308 tab_value,
309 navigator_type,
310 application_id,
311 icon_name,
312 sequence_number,
313 creation_date,
314 created_by,
315 last_update_date,
316 last_updated_by,
317 last_update_login
318 ) VALUES
319 (l_tab_id,
320 x_tab_value,
321 x_navigator_type,
322 x_application_id,
323 x_icon_name,
324 x_sequence_number,
325 sysdate,
326 user_id,
327 sysdate,
328 user_id,
329 0
330 );
331 END IF;
332
333 SELECT tab_id
334 INTO l_tab_id
335 FROM jtf_nav_tabs_b
336 WHERE tab_value = x_tab_value;
337
338 -- Load The record to _TL table
339 UPDATE jtf_nav_tabs_tl SET
340 tab_label = x_tab_label,
341 last_update_date = sysdate,
342 last_updated_by = user_id,
343 last_update_login = 0,
344 source_lang = userenv('LANG')
345 WHERE tab_id = l_tab_id
346 AND userenv('LANG') IN (LANGUAGE, SOURCE_LANG);
347
348 IF (SQL%NOTFOUND) THEN
349 -- Insert new record to _TL table
350 INSERT INTO jtf_nav_tabs_tl
351 (tab_id,
352 tab_label,
353 creation_date,
354 created_by,
355 last_update_date,
356 last_updated_by,
357 last_update_login,
358 language,
359 source_lang)
360 SELECT
361 l_tab_id,
362 x_tab_label,
363 sysdate,
364 user_id,
365 sysdate,
366 user_id,
367 0,
368 l.language_code,
369 userenv('LANG')
370 FROM fnd_languages l
371 WHERE l.installed_flag IN ('I', 'B')
372 AND NOT EXISTS
373 (SELECT NULL
374 FROM jtf_nav_tabs_tl t
375 WHERE t.tab_id = l_tab_id
376 AND t.language = l.language_code);
377 END IF;
378 << end_load_row >>
379 NULL;
380 END LOAD_ROW ;
381
382 -- --------------------------------------------------------------------
383 -- Procedure : TRANSLATE_ROW
384 -- Description : Called by FNDLOAD to translate seed datas, this procedure
385 -- only handle seed datas.
386 -- --------------------------------------------------------------------
387 PROCEDURE TRANSLATE_ROW
388 ( x_tab_value IN VARCHAR2,
389 x_tab_label IN VARCHAR2,
390 x_owner IN VARCHAR2) IS
391 user_id NUMBER;
392 l_tab_id number;
393
394 BEGIN
395 -- Validate input data
396 IF (x_tab_value IS NULL) OR (x_tab_label IS NULL) THEN
397 GOTO end_translate_row;
398 END IF;
399
400 /*
401 IF (x_owner IS NOT NULL) AND (x_owner = 'SEED') THEN
402 user_id := 1;
403 ELSE
404 user_id := 0;
405 END IF;
406 */
407 user_id := fnd_load_util.owner_id(x_owner);
408
409 --find the correct tab id
410 SELECT tab_id
411 INTO l_tab_id
412 FROM jtf_nav_tabs_b
413 WHERE tab_value = x_tab_value;
414
415 -- Update the translation
416 UPDATE jtf_nav_tabs_tl SET
417 tab_label = x_tab_label,
418 last_update_date = sysdate,
419 last_updated_by = user_id,
420 last_update_login = 0,
421 source_lang = userenv('LANG')
422 WHERE tab_id = l_tab_id
423 AND userenv('LANG') IN (LANGUAGE, SOURCE_LANG);
424
425 << end_translate_row >>
426 NULL;
427 END TRANSLATE_ROW ;
428
429 END JTF_NAV_TABS_PKG;