DBA Data[Home] [Help]

PACKAGE BODY: APPS.IEC_P_RES_GRP_PARAMS_PKG

Source


1 package body IEC_P_RES_GRP_PARAMS_PKG as
2 /* $Header: IECHRGPB.pls 115.11 2004/03/15 17:51:13 jezhu ship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_RES_GROUP_PARAM_ID in NUMBER,
6   X_OBJECT_VERSION_NUMBER in NUMBER,
7   X_VDU_TYPE_ID in NUMBER,
8   X_PARAM_CODE in VARCHAR2,
9   X_LOOKUP_TYPE in VARCHAR2,
10   X_VALUE_TYPE in VARCHAR2,
11   X_VALUE_LENGTH in VARCHAR2,
12   X_REQUIRED in VARCHAR2,
13   X_DEFAULT_VALUE in VARCHAR2,
14   X_PARAM_NAME in VARCHAR2,
15   X_PARAM_DESCRIPTION in VARCHAR2,
16   X_CREATION_DATE in DATE,
17   X_CREATED_BY in NUMBER,
18   X_LAST_UPDATE_DATE in DATE,
19   X_LAST_UPDATED_BY in NUMBER,
20   X_LAST_UPDATE_LOGIN in NUMBER
21 ) is
22   cursor C is select ROWID from IEC_P_RES_GRP_PARAMS_B
23     where RES_GROUP_PARAM_ID = X_RES_GROUP_PARAM_ID
24     ;
25 begin
26   insert into IEC_P_RES_GRP_PARAMS_B (
27     RES_GROUP_PARAM_ID,
28     OBJECT_VERSION_NUMBER,
29     VDU_TYPE_ID,
30     PARAM_CODE,
31     LOOKUP_TYPE,
32     VALUE_TYPE,
33     VALUE_LENGTH,
34     REQUIRED,
35     DEFAULT_VALUE,
36     CREATION_DATE,
37     CREATED_BY,
38     LAST_UPDATE_DATE,
39     LAST_UPDATED_BY,
40     LAST_UPDATE_LOGIN
41   ) values (
42     X_RES_GROUP_PARAM_ID,
43     X_OBJECT_VERSION_NUMBER,
44     X_VDU_TYPE_ID,
45     X_PARAM_CODE,
46     X_LOOKUP_TYPE,
47     X_VALUE_TYPE,
48     X_VALUE_LENGTH,
49     X_REQUIRED,
50     X_DEFAULT_VALUE,
51     X_CREATION_DATE,
52     X_CREATED_BY,
53     X_LAST_UPDATE_DATE,
54     X_LAST_UPDATED_BY,
55     X_LAST_UPDATE_LOGIN
56   );
57 
58   insert into IEC_P_RES_GRP_PARAMS_TL (
59     RES_GROUP_PARAM_ID,
60     CREATED_BY,
61     CREATION_DATE,
62     LAST_UPDATED_BY,
63     LAST_UPDATE_DATE,
64     LAST_UPDATE_LOGIN,
65     PARAM_NAME,
66     PARAM_DESCRIPTION,
67     LANGUAGE,
68     SOURCE_LANG
69   ) select
70     X_RES_GROUP_PARAM_ID,
71     X_CREATED_BY,
72     X_CREATION_DATE,
73     X_LAST_UPDATED_BY,
74     X_LAST_UPDATE_DATE,
75     X_LAST_UPDATE_LOGIN,
76     X_PARAM_NAME,
77     X_PARAM_DESCRIPTION,
78     L.LANGUAGE_CODE,
79     userenv('LANG')
80   from FND_LANGUAGES L
81   where L.INSTALLED_FLAG in ('I', 'B')
82   and not exists
83     (select NULL
84     from IEC_P_RES_GRP_PARAMS_TL T
85     where T.RES_GROUP_PARAM_ID = X_RES_GROUP_PARAM_ID
86     and T.LANGUAGE = L.LANGUAGE_CODE);
87 
88   open c;
89   fetch c into X_ROWID;
90   if (c%notfound) then
91     close c;
92     raise no_data_found;
93   end if;
94   close c;
95 
96 end INSERT_ROW;
97 
98 procedure LOCK_ROW (
99   X_RES_GROUP_PARAM_ID in NUMBER,
100   X_OBJECT_VERSION_NUMBER in NUMBER,
101   X_VDU_TYPE_ID in NUMBER,
102   X_PARAM_CODE in VARCHAR2,
103   X_LOOKUP_TYPE in VARCHAR2,
104   X_VALUE_TYPE in VARCHAR2,
105   X_VALUE_LENGTH in VARCHAR2,
106   X_REQUIRED in VARCHAR2,
107   X_DEFAULT_VALUE in VARCHAR2,
108   X_PARAM_NAME in VARCHAR2,
109   X_PARAM_DESCRIPTION in VARCHAR2
110 ) is
111   cursor c is select
112       OBJECT_VERSION_NUMBER,
113       VDU_TYPE_ID,
114       PARAM_CODE,
115       LOOKUP_TYPE,
116       VALUE_TYPE,
117       VALUE_LENGTH,
118       REQUIRED,
119       DEFAULT_VALUE
120     from IEC_P_RES_GRP_PARAMS_B
121     where RES_GROUP_PARAM_ID = X_RES_GROUP_PARAM_ID
122     for update of RES_GROUP_PARAM_ID nowait;
123   recinfo c%rowtype;
124 
125   cursor c1 is select
126       PARAM_NAME,
127       PARAM_DESCRIPTION,
128       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
129     from IEC_P_RES_GRP_PARAMS_TL
130     where RES_GROUP_PARAM_ID = X_RES_GROUP_PARAM_ID
131     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
132     for update of RES_GROUP_PARAM_ID nowait;
133 begin
134   open c;
135   fetch c into recinfo;
136   if (c%notfound) then
137     close c;
138     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
139     app_exception.raise_exception;
140   end if;
141   close c;
142   if (    (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
143       AND (recinfo.VDU_TYPE_ID = X_VDU_TYPE_ID)
144       AND (recinfo.PARAM_CODE = X_PARAM_CODE)
145       AND ((recinfo.LOOKUP_TYPE = X_LOOKUP_TYPE)
146            OR ((recinfo.LOOKUP_TYPE is null) AND (X_LOOKUP_TYPE is null)))
147       AND ((recinfo.VALUE_TYPE = X_VALUE_TYPE)
148            OR ((recinfo.VALUE_TYPE is null) AND (X_VALUE_TYPE is null)))
149       AND ((recinfo.VALUE_LENGTH = X_VALUE_LENGTH)
150            OR ((recinfo.VALUE_LENGTH is null) AND (X_VALUE_LENGTH is null)))
151       AND ((recinfo.REQUIRED = X_REQUIRED)
152            OR ((recinfo.REQUIRED is null) AND (X_REQUIRED is null)))
153      AND ((recinfo.DEFAULT_VALUE = X_DEFAULT_VALUE)
154            OR ((recinfo.DEFAULT_VALUE is null) AND (X_DEFAULT_VALUE is null)))
155 
156   ) then
157     null;
158   else
159     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
160     app_exception.raise_exception;
161   end if;
162 
163   for tlinfo in c1 loop
164     if (tlinfo.BASELANG = 'Y') then
165       if (    (tlinfo.PARAM_NAME = X_PARAM_NAME)
166           AND ((tlinfo.PARAM_DESCRIPTION = X_PARAM_DESCRIPTION)
167                OR ((tlinfo.PARAM_DESCRIPTION is null) AND (X_PARAM_DESCRIPTION is null)))
168       ) then
169         null;
170       else
171         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
172         app_exception.raise_exception;
173       end if;
174     end if;
175   end loop;
176   return;
177 end LOCK_ROW;
178 
179 procedure UPDATE_ROW (
180   X_RES_GROUP_PARAM_ID in NUMBER,
181   X_OBJECT_VERSION_NUMBER in NUMBER,
182   X_VDU_TYPE_ID in NUMBER,
183   X_PARAM_CODE in VARCHAR2,
184   X_LOOKUP_TYPE in VARCHAR2,
185   X_VALUE_TYPE in VARCHAR2,
186   X_VALUE_LENGTH in VARCHAR2,
187   X_REQUIRED in VARCHAR2,
188   X_DEFAULT_VALUE in VARCHAR2,
189   X_PARAM_NAME in VARCHAR2,
190   X_PARAM_DESCRIPTION in VARCHAR2,
191   X_LAST_UPDATE_DATE in DATE,
192   X_LAST_UPDATED_BY in NUMBER,
193   X_LAST_UPDATE_LOGIN in NUMBER
194 ) is
195 begin
196   update IEC_P_RES_GRP_PARAMS_B set
197     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
198     VDU_TYPE_ID = X_VDU_TYPE_ID,
199     PARAM_CODE = X_PARAM_CODE,
200     LOOKUP_TYPE = X_LOOKUP_TYPE,
201     VALUE_TYPE = X_VALUE_TYPE,
202     VALUE_LENGTH = X_VALUE_LENGTH,
203     REQUIRED = X_REQUIRED,
204     DEFAULT_VALUE = X_DEFAULT_VALUE,
205     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
206     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
207     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
208   where RES_GROUP_PARAM_ID = X_RES_GROUP_PARAM_ID;
209 
210   if (sql%notfound) then
211     raise no_data_found;
212   end if;
213 
214   update IEC_P_RES_GRP_PARAMS_TL set
215     PARAM_NAME = X_PARAM_NAME,
216     PARAM_DESCRIPTION = X_PARAM_DESCRIPTION,
217     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
218     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
219     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
220     SOURCE_LANG = userenv('LANG')
221   where RES_GROUP_PARAM_ID = X_RES_GROUP_PARAM_ID
222   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
223 
224   if (sql%notfound) then
225     raise no_data_found;
226   end if;
227 end UPDATE_ROW;
228 
229 procedure DELETE_ROW (
230   X_RES_GROUP_PARAM_ID in NUMBER
231 ) is
232 begin
233   delete from IEC_P_RES_GRP_PARAMS_TL
234   where RES_GROUP_PARAM_ID = X_RES_GROUP_PARAM_ID;
235 
236   if (sql%notfound) then
237     raise no_data_found;
238   end if;
239 
240   delete from IEC_P_RES_GRP_PARAMS_B
241   where RES_GROUP_PARAM_ID = X_RES_GROUP_PARAM_ID;
242 
243   if (sql%notfound) then
244     raise no_data_found;
245   end if;
246 end DELETE_ROW;
247 
248 procedure ADD_LANGUAGE
249 is
250 begin
251   delete from IEC_P_RES_GRP_PARAMS_TL T
252   where not exists
253     (select NULL
254     from IEC_P_RES_GRP_PARAMS_B B
255     where B.RES_GROUP_PARAM_ID = T.RES_GROUP_PARAM_ID
256     );
257 
258   update IEC_P_RES_GRP_PARAMS_TL T set (
259       PARAM_NAME,
260       PARAM_DESCRIPTION
261     ) = (select
262       B.PARAM_NAME,
263       B.PARAM_DESCRIPTION
264     from IEC_P_RES_GRP_PARAMS_TL B
265     where B.RES_GROUP_PARAM_ID = T.RES_GROUP_PARAM_ID
266     and B.LANGUAGE = T.SOURCE_LANG)
267   where (
268       T.RES_GROUP_PARAM_ID,
269       T.LANGUAGE
270   ) in (select
271       SUBT.RES_GROUP_PARAM_ID,
272       SUBT.LANGUAGE
273     from IEC_P_RES_GRP_PARAMS_TL SUBB, IEC_P_RES_GRP_PARAMS_TL SUBT
274     where SUBB.RES_GROUP_PARAM_ID = SUBT.RES_GROUP_PARAM_ID
275     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
276     and (SUBB.PARAM_NAME <> SUBT.PARAM_NAME
277       or SUBB.PARAM_DESCRIPTION <> SUBT.PARAM_DESCRIPTION
278       or (SUBB.PARAM_DESCRIPTION is null and SUBT.PARAM_DESCRIPTION is not null)
279       or (SUBB.PARAM_DESCRIPTION is not null and SUBT.PARAM_DESCRIPTION is null)
280   ));
281 
282   insert into IEC_P_RES_GRP_PARAMS_TL (
283     RES_GROUP_PARAM_ID,
284     CREATED_BY,
285     CREATION_DATE,
286     LAST_UPDATED_BY,
287     LAST_UPDATE_DATE,
288     LAST_UPDATE_LOGIN,
289     PARAM_NAME,
290     PARAM_DESCRIPTION,
291     LANGUAGE,
292     SOURCE_LANG
293   ) select /*+ ORDERED */
294     B.RES_GROUP_PARAM_ID,
295     B.CREATED_BY,
296     B.CREATION_DATE,
297     B.LAST_UPDATED_BY,
298     B.LAST_UPDATE_DATE,
299     B.LAST_UPDATE_LOGIN,
300     B.PARAM_NAME,
301     B.PARAM_DESCRIPTION,
302     L.LANGUAGE_CODE,
303     B.SOURCE_LANG
304   from IEC_P_RES_GRP_PARAMS_TL B, FND_LANGUAGES L
305   where L.INSTALLED_FLAG in ('I', 'B')
306   and B.LANGUAGE = userenv('LANG')
307   and not exists
308     (select NULL
309     from IEC_P_RES_GRP_PARAMS_TL T
310     where T.RES_GROUP_PARAM_ID = B.RES_GROUP_PARAM_ID
311     and T.LANGUAGE = L.LANGUAGE_CODE);
312 end ADD_LANGUAGE;
313 
314 procedure LOAD_ROW (
315   X_RES_GROUP_PARAM_ID in NUMBER,
316   X_VDU_TYPE_ID in NUMBER,
317   X_PARAM_CODE in VARCHAR2,
318   X_LOOKUP_TYPE in VARCHAR2,
319   X_VALUE_TYPE in VARCHAR2,
320   X_VALUE_LENGTH in VARCHAR2,
321   X_REQUIRED in VARCHAR2,
322   X_DEFAULT_VALUE in VARCHAR2,
323   X_PARAM_NAME in VARCHAR2,
324   X_PARAM_DESCRIPTION in VARCHAR2,
325   X_OWNER in VARCHAR2
326 ) is
327 
328   USER_ID NUMBER := 0;
329   ROW_ID  VARCHAR2(500);
330 begin
331 
332   if (X_OWNER = 'SEED') then
333     USER_ID := 1;
334   end if;
335 
336   UPDATE_ROW ( X_RES_GROUP_PARAM_ID
337              , 0
338              , X_VDU_TYPE_ID
339              , X_PARAM_CODE
340              , X_LOOKUP_TYPE
341              , X_VALUE_TYPE
342              , X_VALUE_LENGTH
343              , X_REQUIRED
344              , X_DEFAULT_VALUE
345              , X_PARAM_NAME
346              , X_PARAM_DESCRIPTION
347              , SYSDATE
348              , USER_ID
349              , 0);
350 
351 exception
352   when no_data_found then
353     INSERT_ROW ( ROW_ID
354                , X_RES_GROUP_PARAM_ID
355                , 0
356                , X_VDU_TYPE_ID
357                , X_PARAM_CODE
358                , X_LOOKUP_TYPE
359                , X_VALUE_TYPE
360                , X_VALUE_LENGTH
361                , X_REQUIRED
362                , X_DEFAULT_VALUE
363                , X_PARAM_NAME
364                , X_PARAM_DESCRIPTION
365                , SYSDATE
366                , USER_ID
367                , SYSDATE
368                , USER_ID
369                , 0);
370 
371 end LOAD_ROW;
372 
373 
374 procedure TRANSLATE_ROW (
375   X_RES_GROUP_PARAM_ID in NUMBER,
376   X_PARAM_NAME in VARCHAR2,
377   X_PARAM_DESCRIPTION in VARCHAR2,
378   X_OWNER in VARCHAR2
379 ) is
380 begin
381 
382   -- only UPDATE rows that have not been altered by user
383 
384   update IEC_P_RES_GRP_PARAMS_TL set
385   PARAM_NAME = X_PARAM_NAME,
386   SOURCE_LANG = userenv('LANG'),
387   PARAM_DESCRIPTION = X_PARAM_DESCRIPTION,
388   LAST_UPDATE_DATE = SYSDATE,
389   LAST_UPDATED_BY = DECODE(X_OWNER, 'SEED', 1, 0),
390   LAST_UPDATE_LOGIN = 0
391   where RES_GROUP_PARAM_ID = X_RES_GROUP_PARAM_ID
392   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
393 
394 end TRANSLATE_ROW;
395 
396 end IEC_P_RES_GRP_PARAMS_PKG;