DBA Data[Home] [Help]

PACKAGE BODY: APPS.BSC_TABS_PKG

Source


1 package body BSC_TABS_PKG as
2 /* $Header: BSCTABB.pls 115.9 2003/02/12 14:29:43 adeulgao ship $ */
3 
4 PROCEDURE TRANSLATE_ROW
5 (
6     X_SHORT_NAME              IN VARCHAR2,
7     X_NAME                    IN VARCHAR2,
8     X_HELP                    IN VARCHAR2,
9     X_ADDITIONAL_INFO         IN VARCHAR2
10 )IS
11 BEGIN
12     UPDATE BSC_TABS_TL SET
13             NAME            =   NVL(X_NAME,            NAME),
14             HELP            =   NVL(X_HELP,            HELP),
15             ADDITIONAL_INFO =   NVL(X_ADDITIONAL_INFO, ADDITIONAL_INFO),
16             SOURCE_LANG     =   USERENV('LANG')
17     WHERE   USERENV('LANG') IN  (LANGUAGE, SOURCE_LANG)
18     AND     TAB_ID          =   (SELECT TAB_ID FROM BSC_TABS_B WHERE SHORT_NAME = X_SHORT_NAME);
19 
20     IF (SQL%NOTFOUND) THEN
21         RAISE NO_DATA_FOUND;
22     END IF;
23 
24 END TRANSLATE_ROW;
25 
26 
27 PROCEDURE INSERT_ROW
28 (
29     X_ROWID 		in out NOCOPY VARCHAR2,
30     X_TAB_ID            IN      NUMBER,
31     X_KPI_MODEL         IN      NUMBER,
32     X_BSC_MODEL         IN      NUMBER,
33     X_CROSS_MODEL       IN      NUMBER,
34     X_DEFAULT_MODEL     IN      NUMBER,
35     X_ZOOM_FACTOR       IN      NUMBER,
36     X_CREATED_BY        IN      NUMBER,
37     X_LAST_UPDATED_BY   IN      NUMBER,
38     X_LAST_UPDATE_LOGIN IN      NUMBER,  /* DEFAULT 0  */
39     X_PARENT_TAB_ID     IN      NUMBER,
40     X_OWNER_ID          IN      NUMBER,
41     X_SHORT_NAME        IN      VARCHAR2,
42     X_NAME              IN      VARCHAR2,
43     X_HELP              IN      VARCHAR2,
44     X_ADDITIONAL_INFO   IN      VARCHAR2
45 ) IS
46     CURSOR C IS SELECT ROWID FROM BSC_TABS_B WHERE TAB_ID = X_TAB_ID;
47 
48 BEGIN
49         INSERT INTO BSC_TABS_B
50         (
51             TAB_ID,
52             KPI_MODEL,
53             BSC_MODEL,
54             CROSS_MODEL,
55             DEFAULT_MODEL,
56             ZOOM_FACTOR,
57             CREATION_DATE,
58             CREATED_BY,
59             LAST_UPDATE_DATE,
60             LAST_UPDATED_BY,
61             LAST_UPDATE_LOGIN,
62             PARENT_TAB_ID,
63             OWNER_ID,
64             SHORT_NAME
65         )
66         VALUES
67         (
68             X_TAB_ID,
69             X_KPI_MODEL,
70             X_BSC_MODEL,
71             X_CROSS_MODEL,
72             X_DEFAULT_MODEL,
73             X_ZOOM_FACTOR,
74             SYSDATE,
75             X_CREATED_BY,
76             SYSDATE,
77             X_LAST_UPDATED_BY,
78             X_LAST_UPDATE_LOGIN,
79             X_PARENT_TAB_ID,
80             X_OWNER_ID,
81             X_SHORT_NAME
82         );
83         INSERT INTO BSC_TABS_TL
84         (
85             TAB_ID,
86             NAME,
87             HELP,
88             ADDITIONAL_INFO,
89             LANGUAGE,
90             SOURCE_LANG
91         ) SELECT
92             X_TAB_ID,
93             X_NAME,
94             X_HELP,
95             X_ADDITIONAL_INFO,
96             L.LANGUAGE_CODE,
97             USERENV('LANG')
98         FROM      FND_LANGUAGES L
99         WHERE     L.INSTALLED_FLAG IN ('I', 'B')
100         AND NOT EXISTS
101         (
102             SELECT NULL
103             FROM    BSC_TABS_TL T
104             WHERE   T.TAB_ID    = X_TAB_ID
105             AND     T.LANGUAGE  = L.LANGUAGE_CODE
106         );
107     OPEN C;
108         FETCH C INTO X_ROWID;
109         IF (C%NOTFOUND) THEN
110             CLOSE C;
111             RAISE NO_DATA_FOUND;
112         END IF;
113     CLOSE C;
114 
115 END INSERT_ROW;
116 
117 
118 procedure LOCK_ROW (
119   X_TAB_ID in NUMBER,
120   X_KPI_MODEL in NUMBER,
121   X_BSC_MODEL in NUMBER,
122   X_CROSS_MODEL in NUMBER,
123   X_DEFAULT_MODEL in NUMBER,
124   X_ZOOM_FACTOR in NUMBER,
125   X_NAME in VARCHAR2,
126   X_HELP in VARCHAR2
127 ) is
128   cursor c is select
129       KPI_MODEL,
130       BSC_MODEL,
131       CROSS_MODEL,
132       DEFAULT_MODEL,
133       ZOOM_FACTOR
134     from BSC_TABS_B
135     where TAB_ID = X_TAB_ID
136     for update of TAB_ID nowait;
137   recinfo c%rowtype;
138 
139   cursor c1 is select
140       NAME,
141       HELP,
142       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
143     from BSC_TABS_TL
144     where TAB_ID = X_TAB_ID
145     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
146     for update of TAB_ID nowait;
147 begin
148   open c;
149   fetch c into recinfo;
150   if (c%notfound) then
151     close c;
152     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
153     app_exception.raise_exception;
154   end if;
155   close c;
156   if (    ((recinfo.KPI_MODEL = X_KPI_MODEL)
157            OR ((recinfo.KPI_MODEL is null) AND (X_KPI_MODEL is null)))
158       AND ((recinfo.BSC_MODEL = X_BSC_MODEL)
159            OR ((recinfo.BSC_MODEL is null) AND (X_BSC_MODEL is null)))
160       AND ((recinfo.CROSS_MODEL = X_CROSS_MODEL)
161            OR ((recinfo.CROSS_MODEL is null) AND (X_CROSS_MODEL is null)))
162       AND ((recinfo.DEFAULT_MODEL = X_DEFAULT_MODEL)
163            OR ((recinfo.DEFAULT_MODEL is null) AND (X_DEFAULT_MODEL is null)))
164       AND ((recinfo.ZOOM_FACTOR = X_ZOOM_FACTOR)
165            OR ((recinfo.ZOOM_FACTOR is null) AND (X_ZOOM_FACTOR is null)))
166   ) then
167     null;
168   else
169     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
170     app_exception.raise_exception;
171   end if;
172 
173   for tlinfo in c1 loop
174     if (tlinfo.BASELANG = 'Y') then
175       if (    (tlinfo.NAME = X_NAME)
176           AND ((tlinfo.HELP = X_HELP)
177                OR ((tlinfo.HELP is null) AND (X_HELP is null)))
178       ) then
179         null;
180       else
181         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
182         app_exception.raise_exception;
183       end if;
184     end if;
185   end loop;
186   return;
187 end LOCK_ROW;
188 
189 PROCEDURE UPDATE_ROW
190 (
191     X_TAB_ID                  IN NUMBER,
192     X_SHORT_NAME              IN VARCHAR2,
193     X_KPI_MODEL               IN NUMBER,
194     X_BSC_MODEL               IN NUMBER,
195     X_CROSS_MODEL             IN NUMBER,
196     X_DEFAULT_MODEL           IN NUMBER,
197     X_ZOOM_FACTOR             IN NUMBER,
198     X_TAB_INDEX               IN NUMBER,
199     X_PARENT_TAB_ID           IN NUMBER,
200     X_OWNER_ID                IN NUMBER,
201     X_LAST_UPDATE_DATE        IN DATE,     /*  DEFAULT SYSDATE */
202     X_LAST_UPDATED_BY         IN NUMBER,
203     X_NAME                    IN VARCHAR2,
204     X_HELP                    IN VARCHAR2,
205     X_LAST_UPDATE_LOGIN       IN NUMBER,
206     X_ADDITIONAL_INFO         IN VARCHAR2
207 ) IS
208 
209 BEGIN
210 
211 IF X_TAB_ID IS NULL THEN
212   IF X_SHORT_NAME IS NOT NULL THEN
213     UPDATE  BSC_TABS_B
214     SET     KPI_MODEL               =   NVL(X_KPI_MODEL, KPI_MODEL),
215             BSC_MODEL               =   NVL(X_BSC_MODEL, BSC_MODEL),
216             CROSS_MODEL             =   NVL(X_CROSS_MODEL, CROSS_MODEL),
217             DEFAULT_MODEL           =   NVL(X_DEFAULT_MODEL, DEFAULT_MODEL),
218             ZOOM_FACTOR             =   NVL(X_ZOOM_FACTOR, ZOOM_FACTOR),
219             TAB_INDEX               =   NVL(X_TAB_INDEX, TAB_INDEX),
220             PARENT_TAB_ID           =   X_PARENT_TAB_ID,
221             OWNER_ID                =   X_OWNER_ID,
222             SHORT_NAME              =   X_SHORT_NAME,
223             LAST_UPDATE_DATE        =   NVL(X_LAST_UPDATE_DATE, SYSDATE),
224             LAST_UPDATED_BY         =   X_LAST_UPDATED_BY,
225             LAST_UPDATE_LOGIN       =   X_LAST_UPDATE_LOGIN
226     WHERE   SHORT_NAME              =   X_SHORT_NAME
227     AND     LAST_UPDATE_DATE        <   X_LAST_UPDATE_DATE;
228     IF (NOT SQL%NOTFOUND) THEN
229         UPDATE   BSC_TABS_TL
230         SET      NAME                 =  NVL(X_NAME, NAME),
231                  HELP                 =  X_HELP,
232                  ADDITIONAL_INFO      =  X_ADDITIONAL_INFO,
233                  SOURCE_LANG          =  USERENV('LANG')
234         WHERE    TAB_ID               =  (SELECT TAB_ID FROM BSC_TABS_B WHERE SHORT_NAME = X_SHORT_NAME)
235         AND      USERENV('LANG')     IN  (LANGUAGE, SOURCE_LANG);
236     END IF;
237   END IF;
238 ELSE
239 
240     UPDATE  BSC_TABS_B
241     SET     KPI_MODEL               =   NVL(X_KPI_MODEL, KPI_MODEL),
242             BSC_MODEL               =   NVL(X_BSC_MODEL, BSC_MODEL),
243             CROSS_MODEL             =   NVL(X_CROSS_MODEL, CROSS_MODEL),
244             DEFAULT_MODEL           =   NVL(X_DEFAULT_MODEL, DEFAULT_MODEL),
245             ZOOM_FACTOR             =   NVL(X_ZOOM_FACTOR, ZOOM_FACTOR),
246             TAB_INDEX               =   NVL(X_TAB_INDEX, TAB_INDEX),
247             PARENT_TAB_ID           =   X_PARENT_TAB_ID,
248             OWNER_ID                =   X_OWNER_ID,
249             SHORT_NAME              =   X_SHORT_NAME,
250             LAST_UPDATE_DATE        =   NVL(X_LAST_UPDATE_DATE, SYSDATE),
251             LAST_UPDATED_BY         =   X_LAST_UPDATED_BY,
252             LAST_UPDATE_LOGIN       =   X_LAST_UPDATE_LOGIN
253     WHERE   TAB_ID                  =   X_TAB_ID;
254     IF (NOT SQL%NOTFOUND) THEN
255         UPDATE   BSC_TABS_TL
256         SET      NAME                 =  NVL(X_NAME, NAME),
257                  HELP                 =  HELP,
258                  ADDITIONAL_INFO      =  X_ADDITIONAL_INFO,
259                  SOURCE_LANG          =  USERENV('LANG')
260         WHERE    TAB_ID               =  X_TAB_ID
261         AND      USERENV('LANG')     IN  (LANGUAGE, SOURCE_LANG);
262     END IF;
263 
264 END IF;
265 
266 END UPDATE_ROW;
267 
268 procedure DELETE_ROW (
269   X_TAB_ID in NUMBER
270 ) is
271 begin
272   delete from BSC_TABS_TL
273   where TAB_ID = X_TAB_ID;
274 
275   if (sql%notfound) then
276     raise no_data_found;
277   end if;
278 
279   delete from BSC_TABS_B
280   where TAB_ID = X_TAB_ID;
281 
282   if (sql%notfound) then
283     raise no_data_found;
284   end if;
285 end DELETE_ROW;
286 
287 procedure ADD_LANGUAGE
288 is
289 begin
290   delete from BSC_TABS_TL T
291   where not exists
292     (select NULL
293     from BSC_TABS_B B
294     where B.TAB_ID = T.TAB_ID
295     );
296 
297   update BSC_TABS_TL T set (
298       NAME,
299       HELP,
300       ADDITIONAL_INFO
301     ) = (select
302       B.NAME,
303       B.HELP,
304       ADDITIONAL_INFO
305     from BSC_TABS_TL B
306     where B.TAB_ID = T.TAB_ID
307     and B.LANGUAGE = T.SOURCE_LANG)
308   where (
309       T.TAB_ID,
310       T.LANGUAGE
311   ) in (select
312       SUBT.TAB_ID,
313       SUBT.LANGUAGE
314     from BSC_TABS_TL SUBB, BSC_TABS_TL SUBT
315     where SUBB.TAB_ID = SUBT.TAB_ID
316     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
317     and (SUBB.NAME <> SUBT.NAME
318       or SUBB.HELP <> SUBT.HELP
319       or SUBB.ADDITIONAL_INFO <> SUBT.ADDITIONAL_INFO
320       or (SUBB.HELP is null and SUBT.HELP is not null)
321       or (SUBB.HELP is not null and SUBT.HELP is null)
322       or (SUBB.ADDITIONAL_INFO is not null and SUBT.ADDITIONAL_INFO is null)
323   ));
324 
325   insert into BSC_TABS_TL (
326     TAB_ID,
327     NAME,
328     HELP,
329     ADDITIONAL_INFO,
330     LANGUAGE,
331     SOURCE_LANG
332   ) select
333     B.TAB_ID,
334     B.NAME,
335     B.HELP,
336     ADDITIONAL_INFO,
337     L.LANGUAGE_CODE,
338     B.SOURCE_LANG
339   from BSC_TABS_TL B, FND_LANGUAGES L
340   where L.INSTALLED_FLAG in ('I', 'B')
341   and B.LANGUAGE = userenv('LANG')
342   and not exists
343     (select NULL
344     from BSC_TABS_TL T
345     where T.TAB_ID = B.TAB_ID
346     and T.LANGUAGE = L.LANGUAGE_CODE);
347 end ADD_LANGUAGE;
348 
349 end BSC_TABS_PKG;