DBA Data[Home] [Help]

PACKAGE BODY: APPS.BSC_TAB_VIEW_LABELS_PKG

Source


1 package body BSC_TAB_VIEW_LABELS_PKG as
2 /* $Header: BSCTBVLB.pls 120.0 2005/06/01 16:45:44 appldev noship $ */
3 
4 PROCEDURE TRANSLATE_ROW
5 (
6     X_TAB_ID            IN      NUMBER,
7     X_TAB_VIEW_ID       IN      NUMBER,
8     X_LABEL_ID          IN      NUMBER,
9     X_NAME              IN      VARCHAR2,
10     X_NOTE              IN      VARCHAR2,
11     X_LAST_UPDATE_DATE  IN      DATE,
12     X_LAST_UPDATED_BY   IN      NUMBER,
13     X_LAST_UPDATE_LOGIN IN      NUMBER
14 ) IS
15     L_TAB           NUMBER := -1;
16 BEGIN
17     SELECT COUNT(*) INTO L_TAB   FROM   BSC_TAB_VIEW_LABELS_TL WHERE  TAB_ID = X_TAB_ID
18                                  AND    TAB_VIEW_ID = X_TAB_VIEW_ID
19                                  AND    LABEL_ID    = X_LABEL_ID;
20     IF (L_TAB > 0) THEN
21         UPDATE  BSC_TAB_VIEW_LABELS_TL SET
22                 NAME              =   NVL(X_NAME,            NAME),
23                 NOTE              =   NVL(X_NOTE,            NOTE),
24                 LAST_UPDATE_DATE  =   NVL(X_LAST_UPDATE_DATE, SYSDATE),
25                 LAST_UPDATED_BY   =   X_LAST_UPDATED_BY,
26                 LAST_UPDATE_LOGIN =   X_LAST_UPDATE_LOGIN,
27                 SOURCE_LANG       =   USERENV('LANG')
28         WHERE   USERENV('LANG')   IN  (LANGUAGE, SOURCE_LANG)
29         AND     TAB_ID            =   X_TAB_ID
30         AND     TAB_VIEW_ID       =   X_TAB_VIEW_ID
31         AND     LABEL_ID          =   X_LABEL_ID
32         AND     LAST_UPDATE_DATE  <=  X_LAST_UPDATE_DATE;
33     ELSE
34         RAISE NO_DATA_FOUND;
35     END IF;
36 
37 END TRANSLATE_ROW;
38 
39 
40 procedure INSERT_ROW (
41   X_ROWID 		in out NOCOPY VARCHAR2,
42   X_TAB_ID 		in NUMBER,
43   X_TAB_VIEW_ID 	in NUMBER,
44   X_LABEL_ID 		in NUMBER,
45   X_LABEL_TYPE 		in NUMBER,
46   X_LINK_ID 		in NUMBER,
47   X_NAME 		in VARCHAR2,
48   X_NOTE 		in VARCHAR2,
49   X_TEXT_FLAG 		in NUMBER,
50   X_LEFT_POSITION 	in NUMBER,
51   X_TOP_POSITION 	in NUMBER,
52   X_WIDTH 		in NUMBER,
53   X_HEIGHT 		in NUMBER,
54   X_FONT_SIZE 		in NUMBER,
55   X_FONT_STYLE 		in NUMBER,
56   X_FONT_COLOR 		in NUMBER,
57   X_URL 		in VARCHAR2,
58   X_FUNCTION_ID in NUMBER,
59   X_CREATION_DATE 	in DATE,
60   X_CREATED_BY 		in NUMBER,
61   X_LAST_UPDATE_DATE 	in DATE,
62   X_LAST_UPDATED_BY 	in NUMBER,
63   X_LAST_UPDATE_LOGIN 	in NUMBER
64 ) is
65   cursor C is select ROWID from BSC_TAB_VIEW_LABELS_B
66     where TAB_ID = X_TAB_ID
67     and TAB_VIEW_ID = X_TAB_VIEW_ID
68     and LABEL_ID = X_LABEL_ID
69     ;
70 
71 begin
72 
73   insert into BSC_TAB_VIEW_LABELS_B (
74 	  TAB_ID,
75 	  TAB_VIEW_ID,
76 	  LABEL_ID,
77 	  LABEL_TYPE,
78 	  LINK_ID,
79       FUNCTION_ID,
80 	  CREATION_DATE ,
81 	  CREATED_BY,
82 	  LAST_UPDATE_DATE,
83 	  LAST_UPDATED_BY ,
84 	  LAST_UPDATE_LOGIN
85   ) values (
86 	  X_TAB_ID,
87 	  X_TAB_VIEW_ID,
88   	  X_LABEL_ID,
89 	  X_LABEL_TYPE,
90 	  X_LINK_ID,
91       X_FUNCTION_ID,
92 	  NVL(X_CREATION_DATE , SYSDATE),
93 	  X_CREATED_BY,
94 	  NVL(X_LAST_UPDATE_DATE, SYSDATE),
95 	  X_LAST_UPDATED_BY ,
96 	  X_LAST_UPDATE_LOGIN
97   );
98 
99   insert into BSC_TAB_VIEW_LABELS_TL (
100 	TAB_ID,
101 	TAB_VIEW_ID,
102 	LABEL_ID,
103 	NAME,
104 	NOTE,
105 	TEXT_FLAG,
106 	LEFT_POSITION,
107 	TOP_POSITION,
108 	WIDTH,
109 	HEIGHT,
110 	FONT_SIZE,
111 	FONT_STYLE,
112 	FONT_COLOR,
113 	URL,
114 	CREATION_DATE ,
115 	CREATED_BY,
116 	LAST_UPDATE_DATE,
117 	LAST_UPDATED_BY ,
118 	LAST_UPDATE_LOGIN,
119     	LANGUAGE,
120 	SOURCE_LANG
121   ) select
122 	X_TAB_ID,
123 	X_TAB_VIEW_ID,
124 	X_LABEL_ID,
125 	X_NAME,
126 	X_NOTE,
127 	X_TEXT_FLAG,
128 	X_LEFT_POSITION,
129 	X_TOP_POSITION,
130 	X_WIDTH,
131 	X_HEIGHT,
132 	X_FONT_SIZE,
133 	X_FONT_STYLE,
134 	X_FONT_COLOR,
135 	X_URL,
136 	NVL(X_CREATION_DATE, SYSDATE),
137 	X_CREATED_BY,
138 	NVL(X_LAST_UPDATE_DATE, SYSDATE),
139 	X_LAST_UPDATED_BY ,
140 	X_LAST_UPDATE_LOGIN,
141     L.LANGUAGE_CODE,
142     userenv('LANG')
143   from FND_LANGUAGES L
144   where L.INSTALLED_FLAG in ('I', 'B')
145   and not exists
146     (select NULL
147     from BSC_TAB_VIEW_LABELS_TL T
148     where T.TAB_ID = X_TAB_ID
149     and T.TAB_VIEW_ID = X_TAB_VIEW_ID
150     and T.LABEL_ID = X_LABEL_ID
151     and T.LANGUAGE = L.LANGUAGE_CODE);
152 
153   open c;
154   fetch c into X_ROWID;
155   if (c%notfound) then
156     close c;
157     raise no_data_found;
158   end if;
159   close c;
160 
161 end INSERT_ROW;
162 
163 procedure LOCK_ROW (
164   X_TAB_ID in NUMBER,
165   X_TAB_VIEW_ID in NUMBER,
166   X_LABEL_ID in NUMBER,
167   X_LABEL_TYPE in NUMBER,
168   X_LINK_ID in NUMBER,
169   X_NAME in VARCHAR2,
170   X_NOTE in VARCHAR2,
171   X_TEXT_FLAG in NUMBER,
172   X_LEFT_POSITION in NUMBER,
173   X_TOP_POSITION in NUMBER,
174   X_WIDTH in NUMBER,
175   X_HEIGHT in NUMBER,
176   X_FONT_SIZE in NUMBER,
177   X_FONT_STYLE in NUMBER,
178   X_FONT_COLOR in NUMBER,
179   X_URL in VARCHAR2
180 ) is
181   cursor c is select
182 	LABEL_TYPE,
183 	LINK_ID
184     from BSC_TAB_VIEW_LABELS_B
185     where TAB_ID = X_TAB_ID
186     and TAB_VIEW_ID = X_TAB_VIEW_ID
187     and LABEL_ID = X_LABEL_ID
188     for update of TAB_ID nowait;
189   recinfo c%rowtype;
190 
191   cursor c1 is select
192   	NAME,
193 	NOTE,
194 	TEXT_FLAG,
195 	LEFT_POSITION,
196 	TOP_POSITION,
197 	WIDTH,
198 	HEIGHT,
199 	FONT_SIZE,
200 	FONT_STYLE,
201 	FONT_COLOR,
202 	URL,
203       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
204     from BSC_TAB_VIEW_LABELS_TL
205     where TAB_ID = X_TAB_ID
206     and TAB_VIEW_ID = X_TAB_VIEW_ID
207     and LABEL_ID = X_LABEL_ID
208     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
209     for update of TAB_ID nowait;
210 begin
211   open c;
212   fetch c into recinfo;
213   if (c%notfound) then
214     close c;
215     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
216     app_exception.raise_exception;
217   end if;
218   close c;
219   if (    (recinfo.LABEL_TYPE = X_LABEL_TYPE)
220   ) then
221     null;
222   else
223     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
224     app_exception.raise_exception;
225   end if;
226 
227   for tlinfo in c1 loop
228     if (tlinfo.BASELANG = 'Y') then
229       if (    (tlinfo.NAME = X_NAME)
230           AND (tlinfo.NOTE = X_NOTE)
231           AND (tlinfo.TEXT_FLAG = X_TEXT_FLAG)
232           AND (tlinfo.LEFT_POSITION =  X_LEFT_POSITION)
233           AND (tlinfo.TOP_POSITION = X_TOP_POSITION)
234           AND (tlinfo.WIDTH = X_WIDTH)
235           AND (tlinfo.HEIGHT = X_HEIGHT)
236           AND (tlinfo.FONT_SIZE = X_FONT_SIZE)
237           AND (tlinfo.FONT_STYLE = X_FONT_STYLE)
238           AND (tlinfo.FONT_COLOR = X_FONT_COLOR)
239           AND (tlinfo.URL= X_URL)
240       ) then
241         null;
242       else
243         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
244         app_exception.raise_exception;
245       end if;
246     end if;
247   end loop;
248   return;
249 end LOCK_ROW;
250 
251 procedure UPDATE_ROW (
252   X_TAB_ID 		in NUMBER,
253   X_TAB_VIEW_ID 	in NUMBER,
254   X_LABEL_ID 		in NUMBER,
255   X_LABEL_TYPE 		in NUMBER,
256   X_LINK_ID 		in NUMBER,
257   X_NAME 		in VARCHAR2,
258   X_NOTE 		in VARCHAR2,
259   X_TEXT_FLAG 		in NUMBER,
260   X_LEFT_POSITION 	in NUMBER,
261   X_TOP_POSITION 	in NUMBER,
262   X_WIDTH 		in NUMBER,
263   X_HEIGHT 		in NUMBER,
264   X_FONT_SIZE 		in NUMBER,
265   X_FONT_STYLE 		in NUMBER,
266   X_FONT_COLOR 		in NUMBER,
267   X_URL 		in VARCHAR2,
268   X_FUNCTION_ID     in NUMBER,
269   X_CREATION_DATE 	in DATE,
270   X_CREATED_BY 		in NUMBER,
271   X_LAST_UPDATE_DATE 	in DATE,
272   X_LAST_UPDATED_BY 	in NUMBER,
273   X_LAST_UPDATE_LOGIN 	in NUMBER
274 ) is
275 
276 begin
277 
278   update BSC_TAB_VIEW_LABELS_B set
279 	LABEL_TYPE = NVL(X_LABEL_TYPE, LABEL_TYPE),
280 	LINK_ID = X_LINK_ID,
281     FUNCTION_ID = X_FUNCTION_ID,
282 	LAST_UPDATE_DATE = NVL(X_LAST_UPDATE_DATE, LAST_UPDATE_DATE),
283 	LAST_UPDATED_BY = NVL(X_LAST_UPDATED_BY, LAST_UPDATED_BY),
284 	LAST_UPDATE_LOGIN = NVL(X_LAST_UPDATE_LOGIN, LAST_UPDATE_LOGIN)
285   where TAB_ID = X_TAB_ID
286   and LABEL_ID = X_LABEL_ID
287   and TAB_VIEW_ID = X_TAB_VIEW_ID;
288 
289   if (sql%notfound) then
290     raise no_data_found;
291   end if;
292 
293   update BSC_TAB_VIEW_LABELS_TL set
294   	NAME = X_NAME,
295 	NOTE = X_NOTE,
296 	TEXT_FLAG = X_TEXT_FLAG,
297 	LEFT_POSITION = X_LEFT_POSITION,
298 	TOP_POSITION = X_TOP_POSITION,
299 	WIDTH = X_WIDTH,
300 	HEIGHT = X_HEIGHT,
301 	FONT_SIZE = X_FONT_SIZE,
302 	FONT_STYLE = X_FONT_STYLE,
303 	FONT_COLOR = X_FONT_COLOR,
304 	URL = X_URL,
305         LAST_UPDATE_DATE    =   NVL(X_LAST_UPDATE_DATE, SYSDATE),
306         LAST_UPDATED_BY     =   X_LAST_UPDATED_BY,
307         LAST_UPDATE_LOGIN   =   X_LAST_UPDATE_LOGIN,
308     SOURCE_LANG = userenv('LANG')
309   where TAB_ID = X_TAB_ID
310   and TAB_VIEW_ID = X_TAB_VIEW_ID
311   and LABEL_ID = X_LABEL_ID
312   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
313 
314   if (sql%notfound) then
315     raise no_data_found;
316   end if;
317 end UPDATE_ROW;
318 
319 procedure DELETE_ROW (
320   X_TAB_ID in NUMBER,
321   X_TAB_VIEW_ID in NUMBER,
322   X_LABEL_ID in NUMBER
323 ) is
324 begin
325   delete from BSC_TAB_VIEW_LABELS_TL
326   where TAB_ID = X_TAB_ID
327   and LABEL_ID = X_LABEL_ID
328   and TAB_VIEW_ID = X_TAB_VIEW_ID;
329 
330   if (sql%notfound) then
331     raise no_data_found;
332   end if;
333 
334   delete from BSC_TAB_VIEW_LABELS_B
335   where TAB_ID = X_TAB_ID
336   and LABEL_ID = X_LABEL_ID
337   and TAB_VIEW_ID = X_TAB_VIEW_ID;
338 
339   if (sql%notfound) then
340     raise no_data_found;
341   end if;
342 end DELETE_ROW;
343 
344 procedure ADD_LANGUAGE is
345 l_user NUMBER;
346 begin
347   SELECT VS.USER#
348   INTO  l_user
349   FROM V$SESSION VS WHERE VS.AUDSID =USERENV('SESSIONID');
350 
351   delete from BSC_TAB_VIEW_LABELS_TL T
352   where not exists
353     (select NULL
354     from BSC_TAB_VIEW_LABELS_B B
355     where B.TAB_ID = T.TAB_ID
356     and B.LABEL_ID = T.LABEL_ID
357     and B.TAB_VIEW_ID = T.TAB_VIEW_ID
358     );
359 
360   update BSC_TAB_VIEW_LABELS_TL T set (
361   	NAME,
362 	NOTE,
363 	TEXT_FLAG,
364 	LEFT_POSITION,
365 	TOP_POSITION,
366 	WIDTH,
367 	HEIGHT,
368 	FONT_SIZE,
369 	FONT_STYLE,
370 	FONT_COLOR,
371 	URL
372     ) = (select
373   	B.NAME,
374 	B.NOTE,
375 	B.TEXT_FLAG,
376 	B.LEFT_POSITION,
377 	B.TOP_POSITION,
378 	B.WIDTH,
379 	B.HEIGHT,
380 	B.FONT_SIZE,
381 	B.FONT_STYLE,
382 	B.FONT_COLOR,
383 	B.URL
384     from BSC_TAB_VIEW_LABELS_TL B
385     where B.TAB_ID = T.TAB_ID
386     and B.LABEL_ID = T.LABEL_ID
387     and B.TAB_VIEW_ID = T.TAB_VIEW_ID
388     and B.LANGUAGE = T.SOURCE_LANG)
389   where (
390       T.TAB_ID,
391       T.TAB_VIEW_ID,
392       T.LABEL_ID,
393       T.LANGUAGE
394   ) in (select
395       SUBT.TAB_ID,
396       SUBT.TAB_VIEW_ID,
397       SUBT.LABEL_ID,
398       SUBT.LANGUAGE
399     from BSC_TAB_VIEW_LABELS_TL SUBB, BSC_TAB_VIEW_LABELS_TL SUBT
400     where SUBB.TAB_ID = SUBT.TAB_ID
401     and SUBB.TAB_VIEW_ID = SUBT.TAB_VIEW_ID
402     and SUBB.LABEL_ID = SUBT.LABEL_ID
403     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
404     and (SUBB.NAME <> SUBT.NAME
405       or SUBB.NOTE <> SUBT.NOTE
406       or SUBB.TEXT_FLAG <> SUBT.TEXT_FLAG
407       or SUBB.LEFT_POSITION <> SUBT.LEFT_POSITION
408       or SUBB.TOP_POSITION <> SUBT.TOP_POSITION
409       or SUBB.WIDTH <> SUBT.WIDTH
410       or SUBB.HEIGHT <> SUBT.HEIGHT
411       or SUBB.FONT_SIZE <> SUBT.FONT_SIZE
412       or SUBB.FONT_STYLE <> SUBT.FONT_STYLE
413       or SUBB.FONT_COLOR <> SUBT.FONT_COLOR
414       or SUBB.URL <> SUBT.URL
415   ));
416 
417   insert into BSC_TAB_VIEW_LABELS_TL (
418 	TAB_ID,
419 	TAB_VIEW_ID,
420 	LABEL_ID,
421 	NAME,
422 	NOTE,
423 	TEXT_FLAG,
424 	LEFT_POSITION,
425 	TOP_POSITION,
426 	WIDTH,
427 	HEIGHT,
428 	FONT_SIZE,
429 	FONT_STYLE,
430 	FONT_COLOR,
431 	URL,
432 	CREATION_DATE ,
433 	CREATED_BY,
434 	LAST_UPDATE_DATE,
435 	LAST_UPDATED_BY ,
436 	LAST_UPDATE_LOGIN,
437 	LANGUAGE,
438 	SOURCE_LANG
439   ) select
440     B.TAB_ID,
441     B.TAB_VIEW_ID,
442     B.LABEL_ID,
443     B.NAME,
444     B.NOTE,
445     B.TEXT_FLAG,
446     B.LEFT_POSITION,
447     B.TOP_POSITION,
448     B.WIDTH,
449     B.HEIGHT,
450     B.FONT_SIZE,
451     B.FONT_STYLE,
452     B.FONT_COLOR,
453     B.URL,
454     SYSDATE,
455     l_user,
456     SYSDATE,
457     l_user,
458     l_user,
459     L.LANGUAGE_CODE,
460     B.SOURCE_LANG
461   from BSC_TAB_VIEW_LABELS_TL B, FND_LANGUAGES L
462   where L.INSTALLED_FLAG in ('I', 'B')
463   and B.LANGUAGE = userenv('LANG')
464   and not exists
465     (select NULL
466     from BSC_TAB_VIEW_LABELS_TL T
467     where T.TAB_ID = B.TAB_ID
468     and T.TAB_VIEW_ID = B.TAB_VIEW_ID
469     and T.LABEL_ID = B.LABEL_ID
470     and T.LANGUAGE = L.LANGUAGE_CODE);
471 end ADD_LANGUAGE;
472 
473 PROCEDURE UPDATE_LINK
474 (
475         X_SHORT_NAME        IN  VARCHAR2,
476         X_TAB_VIEW_ID       IN  NUMBER,
477         X_LABEL_ID          IN  NUMBER,
478         X_MENU_ID           IN  NUMBER,
479         X_LAST_UPDATE_DATE  IN  DATE
480 ) IS
481     L_SHORT         NUMBER := -1;
482 BEGIN
483     SELECT COUNT(*) INTO L_SHORT FROM BSC_TAB_VIEW_LABELS_B
484                                  WHERE  TAB_ID = (SELECT TAB_ID FROM BSC_TABS_B WHERE SHORT_NAME = X_SHORT_NAME)
485                                  AND TAB_VIEW_ID = X_TAB_VIEW_ID
486                                  AND LABEL_ID    = X_LABEL_ID;
487     IF (L_SHORT > 0) THEN
488         UPDATE BSC_TAB_VIEW_LABELS_B
489         SET    LINK_ID          =   X_MENU_ID
490         WHERE  TAB_ID           =   (SELECT TAB_ID FROM BSC_TABS_B WHERE SHORT_NAME = X_SHORT_NAME)
491         AND    TAB_VIEW_ID      =   X_TAB_VIEW_ID
492         AND    LABEL_ID         =   X_LABEL_ID
493         AND    LABEL_TYPE       =   2;
494       --  AND    LAST_UPDATE_DATE <=   X_LAST_UPDATE_DATE;
495     ELSE
496         FND_MESSAGE.SET_NAME('BSC',     'NO DATA FOUND');
497         FND_MESSAGE.SET_TOKEN('PACKAGE',  'BSC_TAB_VIEW_LABELS_PKG');
498         FND_MESSAGE.SET_TOKEN('TABLE',  'BSC_TAB_VIEW_LABELS_B');
499         FND_MESSAGE.SET_TOKEN('COLUMN', 'TAB_ID');
500         FND_MESSAGE.SET_TOKEN('VALUE',   X_SHORT_NAME);
501         FND_MESSAGE.SET_TOKEN('COLUMN', 'X_TAB_VIEW_ID');
502         FND_MESSAGE.SET_TOKEN('VALUE',   X_TAB_VIEW_ID);
503         FND_MESSAGE.SET_TOKEN('COLUMN', 'X_LABEL_ID');
504         FND_MESSAGE.SET_TOKEN('VALUE',   X_LABEL_ID);
505         APP_EXCEPTION.RAISE_EXCEPTION;
506     END IF;
507 END UPDATE_LINK;
508 
509 
510 end BSC_TAB_VIEW_LABELS_PKG;