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