DBA Data[Home] [Help]

PACKAGE BODY: APPS.FWK_TBX_LOOKUP_TYPES_PKG

Source


1 package body FWK_TBX_LOOKUP_TYPES_PKG as
2 /* $Header: fwktbxlookuptypestlb.pls 120.2.12000000.4 2007/07/19 12:04:00 pbhamidi ship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_LOOKUP_TYPE in VARCHAR2,
6   X_DISPLAY_NAME in VARCHAR2,
7   X_DESCRIPTION in VARCHAR2,
8   X_CREATION_DATE in DATE,
9   X_CREATED_BY in NUMBER,
10   X_LAST_UPDATE_DATE in DATE,
11   X_LAST_UPDATED_BY in NUMBER,
12   X_LAST_UPDATE_LOGIN in NUMBER
13 ) is
14   cursor C is select ROWID from FWK_TBX_LOOKUP_TYPES_TL
15     where LOOKUP_TYPE = X_LOOKUP_TYPE
16     and LANGUAGE = userenv('LANG')
17     ;
18 begin
19   insert into FWK_TBX_LOOKUP_TYPES_TL (
20     LAST_UPDATE_DATE,
21     LAST_UPDATED_BY,
22     CREATION_DATE,
23     CREATED_BY,
24     LAST_UPDATE_LOGIN,
25     LOOKUP_TYPE,
26     DISPLAY_NAME,
27     DESCRIPTION,
28     LANGUAGE,
29     SOURCE_LANG
30   ) select
31     X_LAST_UPDATE_DATE,
32     X_LAST_UPDATED_BY,
33     X_CREATION_DATE,
34     X_CREATED_BY,
35     X_LAST_UPDATE_LOGIN,
36     X_LOOKUP_TYPE,
37     X_DISPLAY_NAME,
38     X_DESCRIPTION,
39     L.LANGUAGE_CODE,
40     userenv('LANG')
41   from FND_LANGUAGES L
42   where L.INSTALLED_FLAG in ('I', 'B')
43   and not exists
44     (select NULL
45     from FWK_TBX_LOOKUP_TYPES_TL T
46     where T.LOOKUP_TYPE = X_LOOKUP_TYPE
47     and T.LANGUAGE = L.LANGUAGE_CODE);
48 
49   open c;
50   fetch c into X_ROWID;
51   if (c%notfound) then
52     close c;
53     raise no_data_found;
54   end if;
55   close c;
56 
57 end INSERT_ROW;
58 
59 procedure LOCK_ROW (
60   X_LOOKUP_TYPE in VARCHAR2,
61   X_DISPLAY_NAME in VARCHAR2,
62   X_DESCRIPTION in VARCHAR2
63 ) is
64   cursor c1 is select
65       DISPLAY_NAME,
66       DESCRIPTION,
67       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
68     from FWK_TBX_LOOKUP_TYPES_TL
69     where LOOKUP_TYPE = X_LOOKUP_TYPE
70     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
71     for update of LOOKUP_TYPE nowait;
72 begin
73   for tlinfo in c1 loop
74     if (tlinfo.BASELANG = 'Y') then
75       if (    (tlinfo.DISPLAY_NAME = X_DISPLAY_NAME)
76           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
77                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
78       ) then
79         null;
80       else
81         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
82         app_exception.raise_exception;
83       end if;
84     end if;
85   end loop;
86   return;
87 end LOCK_ROW;
88 
89 procedure UPDATE_ROW (
90   X_LOOKUP_TYPE in VARCHAR2,
91   X_DISPLAY_NAME in VARCHAR2,
92   X_DESCRIPTION in VARCHAR2,
93   X_LAST_UPDATE_DATE in DATE,
94   X_LAST_UPDATED_BY in NUMBER,
95   X_LAST_UPDATE_LOGIN in NUMBER
96 ) is
97 begin
98   update FWK_TBX_LOOKUP_TYPES_TL set
99     DISPLAY_NAME = X_DISPLAY_NAME,
100     DESCRIPTION = X_DESCRIPTION,
101     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
102     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
103     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
104     SOURCE_LANG = userenv('LANG')
105   where LOOKUP_TYPE = X_LOOKUP_TYPE
106   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
107 
108   if (sql%notfound) then
109     raise no_data_found;
110   end if;
111 end UPDATE_ROW;
112 
113 procedure DELETE_ROW (
114   X_LOOKUP_TYPE in VARCHAR2
115 ) is
116 begin
117   delete from FWK_TBX_LOOKUP_TYPES_TL
118   where LOOKUP_TYPE = X_LOOKUP_TYPE;
119 
120   if (sql%notfound) then
121     raise no_data_found;
122   end if;
123 
124 end DELETE_ROW;
125 
126 procedure ADD_LANGUAGE
127 is
128 begin
129   update FWK_TBX_LOOKUP_TYPES_TL T set (
130       DISPLAY_NAME,
131       DESCRIPTION
132     ) = (select
133       B.DISPLAY_NAME,
134       B.DESCRIPTION
135     from FWK_TBX_LOOKUP_TYPES_TL B
136     where B.LOOKUP_TYPE = T.LOOKUP_TYPE
137     and B.LANGUAGE = T.SOURCE_LANG)
138   where (
139       T.LOOKUP_TYPE,
140       T.LANGUAGE
141   ) in (select
142       SUBT.LOOKUP_TYPE,
143       SUBT.LANGUAGE
144     from FWK_TBX_LOOKUP_TYPES_TL SUBB, FWK_TBX_LOOKUP_TYPES_TL SUBT
145     where SUBB.LOOKUP_TYPE = SUBT.LOOKUP_TYPE
146     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
147     and (SUBB.DISPLAY_NAME <> SUBT.DISPLAY_NAME
148       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
149       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
150       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
151   ));
152 
153   insert into FWK_TBX_LOOKUP_TYPES_TL (
154     LAST_UPDATE_DATE,
155     LAST_UPDATED_BY,
156     CREATION_DATE,
157     CREATED_BY,
158     LAST_UPDATE_LOGIN,
159     LOOKUP_TYPE,
160     DISPLAY_NAME,
161     DESCRIPTION,
162     LANGUAGE,
163     SOURCE_LANG
164   ) select /*+ ORDERED */
165     B.LAST_UPDATE_DATE,
166     B.LAST_UPDATED_BY,
167     B.CREATION_DATE,
168     B.CREATED_BY,
169     B.LAST_UPDATE_LOGIN,
170     B.LOOKUP_TYPE,
171     B.DISPLAY_NAME,
172     B.DESCRIPTION,
173     L.LANGUAGE_CODE,
174     B.SOURCE_LANG
175   from FWK_TBX_LOOKUP_TYPES_TL B, FND_LANGUAGES L
176   where L.INSTALLED_FLAG in ('I', 'B')
177   and B.LANGUAGE = userenv('LANG')
178   and not exists
179     (select NULL
180     from FWK_TBX_LOOKUP_TYPES_TL T
181     where T.LOOKUP_TYPE = B.LOOKUP_TYPE
182     and T.LANGUAGE = L.LANGUAGE_CODE);
183 end ADD_LANGUAGE;
184 
185 procedure TRANSLATE_ROW (
186   X_LOOKUP_TYPE         in VARCHAR2,
187   X_OWNER               in VARCHAR2,
188   X_DISPLAY_NAME        in VARCHAR2,
189   X_DESCRIPTION         in VARCHAR2,
190   X_LAST_UPDATE_DATE    in VARCHAR2,
191   X_CUSTOM_MODE         in VARCHAR2)
192 is
193   f_luby    number;  -- entity owner in file
194   f_ludate  date;    -- entity update date in file
195   db_luby   number;  -- entity owner in db
196   db_ludate date;    -- entity update date in db
197 begin
198   f_luby := fnd_load_util.owner_id(x_owner);
199   f_ludate := nvl(to_date(X_LAST_UPDATE_DATE, 'YYYY/MM/DD'), sysdate);
200 
201   select last_updated_by, last_update_date
202   into db_luby, db_ludate
203   from FWK_TBX_LOOKUP_TYPES_TL
204   where lookup_type       = X_LOOKUP_TYPE
205   and language            = userenv('LANG');
206 
207   -- We want the values from file to be populated, if db has null value
208   db_ludate := nvl(db_ludate, to_date('1990/01/01', 'YYYY/MM/DD'));
209   -- Default last updated by to SEED, if db has null value
210   db_luby := nvl(db_luby, fnd_load_util.owner_id('SEED'));
211 
212   if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
213                                 db_ludate, X_CUSTOM_MODE)) then
214     update FWK_TBX_LOOKUP_TYPES_TL set
215         display_name           = nvl(X_DISPLAY_NAME, display_name),
216         description       = nvl(X_DESCRIPTION, description),
217         last_update_date  = f_ludate,
218         last_updated_by   = f_luby,
219         last_update_login = 0,
220         source_lang       = userenv('LANG')
221       where lookup_type       = X_LOOKUP_TYPE
222       and userenv('LANG') in (language, source_lang);
223   end if;
224 
225 end TRANSLATE_ROW;
226 
227 procedure LOAD_ROW (
228   X_ROWID in out nocopy VARCHAR2,
229   X_LOOKUP_TYPE in VARCHAR2,
230   X_DISPLAY_NAME in VARCHAR2,
231   X_DESCRIPTION in VARCHAR2,
232   X_CREATION_DATE in DATE,
233   X_CREATED_BY in NUMBER,
234   X_LAST_UPDATE_DATE in DATE,
235   X_LAST_UPDATED_BY in NUMBER,
236   X_LAST_UPDATE_LOGIN in NUMBER,
237   X_OWNER in VARCHAR2,
238   X_CUSTOM_MODE in VARCHAR2)
239   is
240   f_luby    number;  -- entity owner in file
241   f_ludate  date;    -- entity update date in file
242   db_luby   number;  -- entity owner in db
243   db_ludate date;    -- entity update date in db
244 begin
245   f_luby := fnd_load_util.owner_id(X_OWNER);
246   f_ludate := nvl(to_date(X_LAST_UPDATE_DATE, 'YYYY/MM/DD'), sysdate);
247 
248   select last_updated_by, last_update_date
249   into db_luby, db_ludate
250   from FWK_TBX_LOOKUP_TYPES_TL
251   where lookup_type       = X_LOOKUP_TYPE
252   and language            = userenv('LANG');
253 
254   -- We want the values from file to be populated, if db has null value
255   db_ludate := nvl(db_ludate, to_date('1990/01/01', 'YYYY/MM/DD'));
256   -- Default last updated by to SEED, if db has null value
257   db_luby := nvl(db_luby, fnd_load_util.owner_id('SEED'));
258 
259   if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
260                                         db_ludate, X_CUSTOM_MODE)) then
261      FWK_TBX_LOOKUP_TYPES_PKG.UPDATE_ROW (
262            X_LOOKUP_TYPE  => X_LOOKUP_TYPE,
263            X_DISPLAY_NAME => X_DISPLAY_NAME,
264            X_DESCRIPTION  => X_DESCRIPTION,
265            X_LAST_UPDATE_DATE  => X_LAST_UPDATE_DATE,
266            X_LAST_UPDATED_BY   => X_LAST_UPDATED_BY,
267            X_LAST_UPDATE_LOGIN => X_LAST_UPDATE_LOGIN );
268   end if;
269  exception
270  when no_data_found then
271  -- Record doesn't exist - insert in all cases
272 
273   FWK_TBX_LOOKUP_TYPES_PKG.INSERT_ROW(
274           X_ROWID               => X_ROWID,
275           X_LOOKUP_TYPE         => X_LOOKUP_TYPE,
276           X_DISPLAY_NAME        => X_DISPLAY_NAME,
277           X_DESCRIPTION         => X_DESCRIPTION,
278           X_CREATION_DATE       => X_CREATION_DATE,
279           X_CREATED_BY          => X_CREATED_BY,
280           X_LAST_UPDATE_DATE    => X_LAST_UPDATE_DATE,
281           X_LAST_UPDATED_BY     => X_LAST_UPDATED_BY,
282           X_LAST_UPDATE_LOGIN   => X_LAST_UPDATE_LOGIN );
283 
284 end LOAD_ROW;
285 
286 end FWK_TBX_LOOKUP_TYPES_PKG;