DBA Data[Home] [Help]

PACKAGE BODY: APPS.FEM_MAP_RULE_TYPES_PKG

Source


1 package body FEM_MAP_RULE_TYPES_PKG as
2 /* $Header: fem_maprltyp_pkb.plb 120.2 2008/02/20 07:00:47 jcliving ship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_MAP_RULE_TYPE_CODE in VARCHAR2,
6   X_ENABLED_FLAG in VARCHAR2,
7   X_OBJECT_VERSION_NUMBER in NUMBER,
8   X_MAP_RULE_TYPE_NAME in VARCHAR2,
9   X_DESCRIPTION in VARCHAR2,
10   X_CREATION_DATE in DATE,
11   X_CREATED_BY in NUMBER,
12   X_LAST_UPDATE_DATE in DATE,
13   X_LAST_UPDATED_BY in NUMBER,
14   X_LAST_UPDATE_LOGIN in NUMBER
15 ) is
16   cursor C is select ROWID from FEM_MAP_RULE_TYPES_B
17     where MAP_RULE_TYPE_CODE = X_MAP_RULE_TYPE_CODE
18     ;
19 begin
20   insert into FEM_MAP_RULE_TYPES_B (
21     MAP_RULE_TYPE_CODE,
22     ENABLED_FLAG,
23     OBJECT_VERSION_NUMBER,
24     CREATION_DATE,
25     CREATED_BY,
26     LAST_UPDATE_DATE,
27     LAST_UPDATED_BY,
28     LAST_UPDATE_LOGIN
29   ) values (
30     X_MAP_RULE_TYPE_CODE,
31     X_ENABLED_FLAG,
32     X_OBJECT_VERSION_NUMBER,
33     X_CREATION_DATE,
34     X_CREATED_BY,
35     X_LAST_UPDATE_DATE,
36     X_LAST_UPDATED_BY,
37     X_LAST_UPDATE_LOGIN
38   );
39 
40   insert into FEM_MAP_RULE_TYPES_TL (
41     MAP_RULE_TYPE_CODE,
42     MAP_RULE_TYPE_NAME,
43     DESCRIPTION,
44     CREATION_DATE,
45     CREATED_BY,
46     LAST_UPDATED_BY,
47     LAST_UPDATE_DATE,
48     LAST_UPDATE_LOGIN,
49     LANGUAGE,
50     SOURCE_LANG
51   ) select
52     X_MAP_RULE_TYPE_CODE,
53     X_MAP_RULE_TYPE_NAME,
54     X_DESCRIPTION,
55     X_CREATION_DATE,
56     X_CREATED_BY,
57     X_LAST_UPDATED_BY,
58     X_LAST_UPDATE_DATE,
59     X_LAST_UPDATE_LOGIN,
60     L.LANGUAGE_CODE,
61     userenv('LANG')
62   from FND_LANGUAGES L
63   where L.INSTALLED_FLAG in ('I', 'B')
64   and not exists
65     (select NULL
66     from FEM_MAP_RULE_TYPES_TL T
67     where T.MAP_RULE_TYPE_CODE = X_MAP_RULE_TYPE_CODE
68     and T.LANGUAGE = L.LANGUAGE_CODE);
69 
70   open c;
71   fetch c into X_ROWID;
72   if (c%notfound) then
73     close c;
74     raise no_data_found;
75   end if;
76   close c;
77 
78 end INSERT_ROW;
79 
80 procedure LOCK_ROW (
81   X_MAP_RULE_TYPE_CODE in VARCHAR2,
82   X_ENABLED_FLAG in VARCHAR2,
83   X_OBJECT_VERSION_NUMBER in NUMBER,
84   X_MAP_RULE_TYPE_NAME in VARCHAR2,
85   X_DESCRIPTION in VARCHAR2
86 ) is
87   cursor c is select
88       ENABLED_FLAG,
89       OBJECT_VERSION_NUMBER
90     from FEM_MAP_RULE_TYPES_B
91     where MAP_RULE_TYPE_CODE = X_MAP_RULE_TYPE_CODE
92     for update of MAP_RULE_TYPE_CODE nowait;
93   recinfo c%rowtype;
94 
95   cursor c1 is select
96       MAP_RULE_TYPE_NAME,
97       DESCRIPTION,
98       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
99     from FEM_MAP_RULE_TYPES_TL
100     where MAP_RULE_TYPE_CODE = X_MAP_RULE_TYPE_CODE
101     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
102     for update of MAP_RULE_TYPE_CODE nowait;
103 begin
104   open c;
105   fetch c into recinfo;
106   if (c%notfound) then
107     close c;
108     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
109     app_exception.raise_exception;
110   end if;
111   close c;
112   if (    (recinfo.ENABLED_FLAG = X_ENABLED_FLAG)
113       AND (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
114   ) then
115     null;
116   else
117     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
118     app_exception.raise_exception;
119   end if;
120 
121   for tlinfo in c1 loop
122     if (tlinfo.BASELANG = 'Y') then
123       if (    (tlinfo.MAP_RULE_TYPE_NAME = X_MAP_RULE_TYPE_NAME)
124           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
125                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
126       ) then
127         null;
128       else
129         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
130         app_exception.raise_exception;
131       end if;
132     end if;
133   end loop;
134   return;
135 end LOCK_ROW;
136 
137 procedure UPDATE_ROW (
138   X_MAP_RULE_TYPE_CODE in VARCHAR2,
139   X_ENABLED_FLAG in VARCHAR2,
140   X_OBJECT_VERSION_NUMBER in NUMBER,
141   X_MAP_RULE_TYPE_NAME in VARCHAR2,
142   X_DESCRIPTION in VARCHAR2,
143   X_LAST_UPDATE_DATE in DATE,
144   X_LAST_UPDATED_BY in NUMBER,
145   X_LAST_UPDATE_LOGIN in NUMBER
146 ) is
147 begin
148   update FEM_MAP_RULE_TYPES_B set
149     ENABLED_FLAG = X_ENABLED_FLAG,
150     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
151     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
152     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
153     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
154   where MAP_RULE_TYPE_CODE = X_MAP_RULE_TYPE_CODE;
155 
156   if (sql%notfound) then
157     raise no_data_found;
158   end if;
159 
160   update FEM_MAP_RULE_TYPES_TL set
161     MAP_RULE_TYPE_NAME = X_MAP_RULE_TYPE_NAME,
162     DESCRIPTION = X_DESCRIPTION,
163     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
164     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
165     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
166     SOURCE_LANG = userenv('LANG')
167   where MAP_RULE_TYPE_CODE = X_MAP_RULE_TYPE_CODE
168   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
169 
170   if (sql%notfound) then
171     raise no_data_found;
172   end if;
173 end UPDATE_ROW;
174 
175 procedure DELETE_ROW (
176   X_MAP_RULE_TYPE_CODE in VARCHAR2
177 ) is
178 begin
179   delete from FEM_MAP_RULE_TYPES_TL
180   where MAP_RULE_TYPE_CODE = X_MAP_RULE_TYPE_CODE;
181 
182   if (sql%notfound) then
183     raise no_data_found;
184   end if;
185 
186   delete from FEM_MAP_RULE_TYPES_B
187   where MAP_RULE_TYPE_CODE = X_MAP_RULE_TYPE_CODE;
188 
189   if (sql%notfound) then
190     raise no_data_found;
191   end if;
192 end DELETE_ROW;
193 
194 procedure ADD_LANGUAGE
195 is
196 begin
197   delete from FEM_MAP_RULE_TYPES_TL T
198   where not exists
199     (select NULL
200     from FEM_MAP_RULE_TYPES_B B
201     where B.MAP_RULE_TYPE_CODE = T.MAP_RULE_TYPE_CODE
202     );
203 
204   update FEM_MAP_RULE_TYPES_TL T set (
205       MAP_RULE_TYPE_NAME,
206       DESCRIPTION
207     ) = (select
208       B.MAP_RULE_TYPE_NAME,
209       B.DESCRIPTION
210     from FEM_MAP_RULE_TYPES_TL B
211     where B.MAP_RULE_TYPE_CODE = T.MAP_RULE_TYPE_CODE
212     and B.LANGUAGE = T.SOURCE_LANG)
213   where (
214       T.MAP_RULE_TYPE_CODE,
215       T.LANGUAGE
216   ) in (select
217       SUBT.MAP_RULE_TYPE_CODE,
218       SUBT.LANGUAGE
219     from FEM_MAP_RULE_TYPES_TL SUBB, FEM_MAP_RULE_TYPES_TL SUBT
220     where SUBB.MAP_RULE_TYPE_CODE = SUBT.MAP_RULE_TYPE_CODE
221     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
222     and (SUBB.MAP_RULE_TYPE_NAME <> SUBT.MAP_RULE_TYPE_NAME
223       or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
224       or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
225       or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
226   ));
227 
228   insert into FEM_MAP_RULE_TYPES_TL (
229     MAP_RULE_TYPE_CODE,
230     MAP_RULE_TYPE_NAME,
231     DESCRIPTION,
232     CREATION_DATE,
233     CREATED_BY,
234     LAST_UPDATED_BY,
235     LAST_UPDATE_DATE,
236     LAST_UPDATE_LOGIN,
237     LANGUAGE,
238     SOURCE_LANG
239   ) select /*+ ORDERED */
240     B.MAP_RULE_TYPE_CODE,
241     B.MAP_RULE_TYPE_NAME,
242     B.DESCRIPTION,
243     B.CREATION_DATE,
244     B.CREATED_BY,
245     B.LAST_UPDATED_BY,
246     B.LAST_UPDATE_DATE,
247     B.LAST_UPDATE_LOGIN,
248     L.LANGUAGE_CODE,
249     B.SOURCE_LANG
250   from FEM_MAP_RULE_TYPES_TL B, FND_LANGUAGES L
251   where L.INSTALLED_FLAG in ('I', 'B')
252   and B.LANGUAGE = userenv('LANG')
253   and not exists
254     (select NULL
255     from FEM_MAP_RULE_TYPES_TL T
256     where T.MAP_RULE_TYPE_CODE = B.MAP_RULE_TYPE_CODE
257     and T.LANGUAGE = L.LANGUAGE_CODE);
258 end ADD_LANGUAGE;
259 PROCEDURE TRANSLATE_ROW(
260         x_MAP_RULE_TYPE_CODE in varchar2,
261         x_owner in varchar2,
262         x_last_update_date in varchar2,
263         x_MAP_RULE_TYPE_NAME in varchar2,
264         x_description in varchar2,
265         x_custom_mode in varchar2) is
266 
267         owner_id number;
268         ludate date;
269         row_id varchar2(64);
270         f_luby    number;  -- entity owner in file
271         f_ludate  date;    -- entity update date in file
272         db_luby   number;  -- entity owner in db
273         db_ludate date;    -- entity update date in db
274     begin
275 
276 
277         -- Translate owner to file_last_updated_by
278         f_luby := fnd_load_util.owner_id(x_owner);
279 
280         -- Translate char last_update_date to date
281         f_ludate := nvl(to_date(x_last_update_date, 'YYYY/MM/DD'), sysdate);
282         begin
283           select LAST_UPDATED_BY, LAST_UPDATE_DATE
284           into db_luby, db_ludate
285           from FEM_MAP_RULE_TYPES_TL
286           where MAP_RULE_TYPE_CODE = x_MAP_RULE_TYPE_CODE
287           and LANGUAGE = userenv('LANG');
288 
289 	  -- Test for customization and version
290           if (fnd_load_util.upload_test(f_luby, f_ludate, db_luby,
291                                         db_ludate, x_custom_mode)) then
292             -- Update translations for this language
293             update FEM_MAP_RULE_TYPES_TL set
294               MAP_RULE_TYPE_NAME = decode(x_MAP_RULE_TYPE_NAME,
295 			       fnd_load_util.null_value, null, -- Real null
296 			       null, x_MAP_RULE_TYPE_NAME,                  -- No change
297 			       x_MAP_RULE_TYPE_NAME),
298               DESCRIPTION = nvl(x_description, DESCRIPTION),
299               LAST_UPDATE_DATE = f_ludate,
300               LAST_UPDATED_BY = f_luby,
301               LAST_UPDATE_LOGIN = 0,
302               SOURCE_LANG = userenv('LANG')
303             where userenv('LANG') in (LANGUAGE, SOURCE_LANG)
304             and MAP_RULE_TYPE_CODE = x_MAP_RULE_TYPE_CODE;
305          end if;
306         exception
307           when no_data_found then
308             -- Do not insert missing translations, skip this row
309             null;
310         end;
311      end TRANSLATE_ROW;
312 
313 
314 end FEM_MAP_RULE_TYPES_PKG;