DBA Data[Home] [Help]

PACKAGE BODY: APPS.ICX_CAT_CATEGORIES_PVT

Source


1 PACKAGE BODY ICX_CAT_CATEGORIES_PVT AS
2 /* $Header: ICXVCATB.pls 120.0 2005/10/20 06:48:08 srmani noship $ */
3 
4 procedure INSERT_ROW (
5   X_RT_CATEGORY_ID in NUMBER,
6   X_CATEGORY_NAME in VARCHAR2,
7   X_UPPER_CATEGORY_NAME in VARCHAR2,
8   X_DESCRIPTION in VARCHAR2,
9   X_TYPE in NUMBER,
10   X_KEY in VARCHAR2,
11   X_TITLE in VARCHAR2,
12   X_ITEM_COUNT in NUMBER,
13   X_CREATION_DATE in DATE,
14   X_CREATED_BY in NUMBER,
15   X_LAST_UPDATE_DATE in DATE,
16   X_LAST_UPDATED_BY in NUMBER,
17   X_LAST_UPDATE_LOGIN in NUMBER,
18   X_REQUEST_ID in NUMBER,
19   X_PROGRAM_APPLICATION_ID in NUMBER,
20   X_PROGRAM_ID in NUMBER,
21   X_PROGRAM_UPDATE_DATE in DATE
22 ) is
23   cursor C is select ROWID from ICX_CAT_CATEGORIES_TL
24     where RT_CATEGORY_ID = X_RT_CATEGORY_ID
25     and LANGUAGE = userenv('LANG');
26    X_ROWID   VARCHAR2(64);
27 begin
28   insert into ICX_CAT_CATEGORIES_TL (
29     RT_CATEGORY_ID,
30     CATEGORY_NAME,
31     UPPER_CATEGORY_NAME,
32     DESCRIPTION,
33     TYPE,
34     KEY,
35     UPPER_KEY,
36     TITLE,
37     ITEM_COUNT,
38     CREATION_DATE,
39     CREATED_BY,
40     LAST_UPDATE_DATE,
41     LAST_UPDATED_BY,
42     LAST_UPDATE_LOGIN,
43     REQUEST_ID,
44     PROGRAM_APPLICATION_ID,
45     PROGRAM_ID,
46     PROGRAM_UPDATE_DATE,
47     LANGUAGE,
48     SOURCE_LANG
49   ) select
50     X_RT_CATEGORY_ID,
51     X_CATEGORY_NAME,
52     upper(X_CATEGORY_NAME),
53     X_DESCRIPTION,
54     X_TYPE,
55     X_KEY,
56     upper(X_KEY),
57     X_TITLE,
58     X_ITEM_COUNT,
59     X_CREATION_DATE,
60     X_CREATED_BY,
61     X_LAST_UPDATE_DATE,
62     X_LAST_UPDATED_BY,
63     X_LAST_UPDATE_LOGIN,
64     X_REQUEST_ID,
65     X_PROGRAM_APPLICATION_ID,
66     X_PROGRAM_ID,
67     X_PROGRAM_UPDATE_DATE,
68     L.LANGUAGE_CODE,
69     userenv('LANG')
70   from FND_LANGUAGES L
71   where L.INSTALLED_FLAG in ('I', 'B')
72   and not exists
73     (select NULL
74     from ICX_CAT_CATEGORIES_TL T
75     where T.RT_CATEGORY_ID = X_RT_CATEGORY_ID
76     and T.LANGUAGE = L.LANGUAGE_CODE);
77 
78   open c;
79   fetch c into X_ROWID;
80   if (c%notfound) then
81     close c;
82     raise no_data_found;
83   end if;
84   close c;
85 
86 end INSERT_ROW;
87 
88 
89 
90 procedure LOCK_ROW (
91   X_RT_CATEGORY_ID in NUMBER,
92   X_CATEGORY_NAME in VARCHAR2,
93   X_UPPER_CATEGORY_NAME in VARCHAR2,
94   X_DESCRIPTION in VARCHAR2,
95   X_TYPE in NUMBER,
96   X_KEY in VARCHAR2,
97   X_TITLE in VARCHAR2,
98   X_ITEM_COUNT in NUMBER
99 ) is
100   cursor c1 is select
101       RT_CATEGORY_ID,
102       CATEGORY_NAME,
103       UPPER_CATEGORY_NAME,
104       DESCRIPTION,
105       TYPE,
106       KEY,
107       TITLE,
108       ITEM_COUNT,
109       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
110     from ICX_CAT_CATEGORIES_TL
111     where RT_CATEGORY_ID = X_RT_CATEGORY_ID
112     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
113     for update of RT_CATEGORY_ID nowait;
114 begin
115   for tlinfo in c1 loop
116     if (tlinfo.BASELANG = 'Y') then
117       if (    (tlinfo.CATEGORY_NAME = X_CATEGORY_NAME)
118           AND (tlinfo.UPPER_CATEGORY_NAME = X_UPPER_CATEGORY_NAME)
119           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
120                OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
121           AND (tlinfo.TYPE = X_TYPE)
122           AND (tlinfo.KEY = X_KEY)
123           AND ((tlinfo.TITLE = X_TITLE)
124                OR ((tlinfo.TITLE is null) AND (X_TITLE is null)))
125           AND ((tlinfo.ITEM_COUNT = X_ITEM_COUNT)
126                OR ((tlinfo.ITEM_COUNT is null) AND (X_ITEM_COUNT is null)))
127       ) then
128         null;
129       else
130         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
131         app_exception.raise_exception;
132       end if;
133     end if;
134   end loop;
135   return;
136 
137 end LOCK_ROW;
138 
139 
140 procedure UPDATE_ROW (
141   X_RT_CATEGORY_ID in NUMBER,
142   X_CATEGORY_NAME in VARCHAR2,
143   X_UPPER_CATEGORY_NAME in VARCHAR2,
144   X_DESCRIPTION in VARCHAR2,
145   X_TYPE in NUMBER,
146   X_KEY in VARCHAR2,
147   X_TITLE in VARCHAR2,
148   X_ITEM_COUNT in NUMBER,
149   X_LAST_UPDATE_DATE in DATE,
150   X_LAST_UPDATED_BY in NUMBER,
151   X_LAST_UPDATE_LOGIN in NUMBER,
152   X_REQUEST_ID in NUMBER,
153   X_PROGRAM_APPLICATION_ID in NUMBER,
154   X_PROGRAM_ID in NUMBER,
155   X_PROGRAM_UPDATE_DATE in DATE
156 ) is
157 begin
158   update ICX_CAT_CATEGORIES_TL set
159     CATEGORY_NAME = X_CATEGORY_NAME,
160     UPPER_CATEGORY_NAME = upper(X_CATEGORY_NAME),
161     DESCRIPTION = X_DESCRIPTION,
162     TYPE = X_TYPE,
163     KEY = X_KEY,
164     UPPER_KEY = upper(X_KEY),
165     TITLE = X_TITLE,
166     ITEM_COUNT = X_ITEM_COUNT,
167     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
168     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
169     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
170     REQUEST_ID = X_REQUEST_ID,
171     PROGRAM_APPLICATION_ID = X_PROGRAM_APPLICATION_ID,
172     PROGRAM_ID = X_PROGRAM_ID,
173     PROGRAM_UPDATE_DATE = X_PROGRAM_UPDATE_DATE,
174     SOURCE_LANG = userenv('LANG')
175   where RT_CATEGORY_ID = X_RT_CATEGORY_ID
176   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
177 
178   if (sql%notfound) then
179     raise no_data_found;
180   end if;
181 end UPDATE_ROW;
182 
183 procedure DELETE_ROW (
184   X_RT_CATEGORY_ID in NUMBER
185 ) is
186 begin
187   delete from ICX_CAT_CATEGORIES_TL
188   where RT_CATEGORY_ID = X_RT_CATEGORY_ID;
189 
190   if (sql%notfound) then
191     raise no_data_found;
192   end if;
193 
194 end DELETE_ROW;
195 
196 
197 PROCEDURE TRANSLATE_ROW
198      (X_RT_CATEGORY_ID       IN VARCHAR2,
199       X_OWNER                IN VARCHAR2,
200       X_CATEGORY_NAME        IN VARCHAR2,
201       X_UPPER_CATEGORY_NAME  IN VARCHAR2,
202       X_DESCRIPTION          IN VARCHAR2,
203       X_CUSTOM_MODE          IN VARCHAR2,
204       X_LAST_UPDATE_DATE     IN VARCHAR2)
205 IS
206 BEGIN
207   DECLARE
208      F_LUBY     NUMBER; -- entity owner in file
209      F_LUDATE   DATE; -- entity update in file
210      DB_LUBY    NUMBER; -- entity owner in db
211      DB_LUDATE  DATE; -- entity update in db
212 
213   BEGIN
214   -- Translate owner to file_last_updated_by
215     F_LUBY := FND_LOAD_UTIL.OWNER_ID(X_OWNER);
216     F_LUDATE := NVL(TO_DATE(X_LAST_UPDATE_DATE, 'YYYY/MM/DD'), SYSDATE);
217 
218     SELECT LAST_UPDATED_BY,
219            LAST_UPDATE_DATE
220     INTO   DB_LUBY,
221            DB_LUDATE
222     FROM   ICX_CAT_CATEGORIES_TL
223     WHERE  LANGUAGE = USERENV('LANG')
224            AND RT_CATEGORY_ID = TO_NUMBER(X_RT_CATEGORY_ID); -- Update record, honoring customization mode.
225     -- Record should be updated only if:
226     -- a. CUSTOM_MODE = FORCE, or
227     -- b. file owner is CUSTOM, db owner is SEED
228     -- c. owners are the same, and file_date > db_date
229 
230     IF (FND_LOAD_UTIL.UPLOAD_TEST(P_FILE_ID => F_LUBY,
231                                   P_FILE_LUD => F_LUDATE,
232                                   P_DB_ID => DB_LUBY,
233                                   P_DB_LUD => DB_LUDATE,
234                                   P_CUSTOM_MODE => X_CUSTOM_MODE)) THEN
235       UPDATE ICX_CAT_CATEGORIES_TL
236       SET    CATEGORY_NAME = X_CATEGORY_NAME,
237              UPPER_CATEGORY_NAME = UPPER(X_CATEGORY_NAME),
238              DESCRIPTION = X_DESCRIPTION,
239              LAST_UPDATE_DATE = SYSDATE,
240              LAST_UPDATED_BY = F_LUBY,
241              LAST_UPDATE_LOGIN = 0,
242              SOURCE_LANG = USERENV('LANG')
243       WHERE  RT_CATEGORY_ID = TO_NUMBER(X_RT_CATEGORY_ID)
244              AND USERENV('LANG') IN (LANGUAGE,
245                                      SOURCE_LANG);
246     END IF;
247   END;
248 END TRANSLATE_ROW;
249 
250 
251 PROCEDURE LOAD_ROW
252      (X_RT_CATEGORY_ID       IN VARCHAR2,
253       X_OWNER                IN VARCHAR2,
254       X_CATEGORY_NAME        IN VARCHAR2,
255       X_UPPER_CATEGORY_NAME  IN VARCHAR2,
256       X_DESCRIPTION          IN VARCHAR2,
257       X_TYPE                 IN VARCHAR2,
258       X_KEY                  IN VARCHAR2,
259       X_TITLE                IN VARCHAR2,
260       X_ITEM_COUNT           IN VARCHAR2,
261       X_CUSTOM_MODE          IN VARCHAR2,
262       X_LAST_UPDATE_DATE     IN VARCHAR2)
263 IS
264 BEGIN
265   DECLARE
266     ROW_ID     VARCHAR2(64);
267      F_LUBY     NUMBER; -- entity owner in file
268      F_LUDATE   DATE; -- entity update in file
269      DB_LUBY    NUMBER; -- entity owner in db
270      DB_LUDATE  DATE; -- entity update in db
271   BEGIN
272   -- Translate owner to file_last_updated_by
273     F_LUBY := FND_LOAD_UTIL.OWNER_ID(X_OWNER);
274 
275     F_LUDATE := NVL(TO_DATE(X_LAST_UPDATE_DATE,
276                             'YYYY/MM/DD'),
277                     SYSDATE);
278 
279     SELECT LAST_UPDATED_BY,
280            LAST_UPDATE_DATE
281     INTO   DB_LUBY,
282            DB_LUDATE
283     FROM   ICX_CAT_CATEGORIES_TL
284     WHERE  LANGUAGE = USERENV('LANG')
285            AND RT_CATEGORY_ID = TO_NUMBER(X_RT_CATEGORY_ID); -- Update record, honoring customization mode.
286     -- Record should be updated only if:
287     -- a. CUSTOM_MODE = FORCE, or
288     -- b. file owner is CUSTOM, db owner is SEED
289     -- c. owners are the same, and file_date > db_date
290 
291     IF (FND_LOAD_UTIL.UPLOAD_TEST(P_FILE_ID => F_LUBY,
292                                   P_FILE_LUD => F_LUDATE,
293                                   P_DB_ID => DB_LUBY,
294                                   P_DB_LUD => DB_LUDATE,
295                                   P_CUSTOM_MODE => X_CUSTOM_MODE)) THEN
296       ICX_CAT_CATEGORIES_PVT.UPDATE_ROW(X_RT_CATEGORY_ID => TO_NUMBER(X_RT_CATEGORY_ID),
297                                         X_CATEGORY_NAME => X_CATEGORY_NAME,
298                                         X_UPPER_CATEGORY_NAME => X_UPPER_CATEGORY_NAME,
299                                         X_DESCRIPTION => X_DESCRIPTION,
300                                         X_TYPE => TO_NUMBER(X_TYPE),
301                                         X_KEY => X_KEY,
302                                         X_TITLE => X_TITLE,
303                                         X_ITEM_COUNT => TO_NUMBER(X_ITEM_COUNT),
304                                         X_LAST_UPDATE_DATE => SYSDATE,
305                                         X_LAST_UPDATED_BY => F_LUBY,
306                                         X_LAST_UPDATE_LOGIN => 0,
307                                         X_REQUEST_ID => NULL,
308                                         X_PROGRAM_APPLICATION_ID => NULL,
309                                         X_PROGRAM_ID => NULL,
310                                         X_PROGRAM_UPDATE_DATE => NULL);
311     END IF;
312   EXCEPTION
313     WHEN NO_DATA_FOUND  THEN
314       ICX_CAT_CATEGORIES_PVT.INSERT_ROW(X_RT_CATEGORY_ID => TO_NUMBER(X_RT_CATEGORY_ID),
315                                         X_CATEGORY_NAME => X_CATEGORY_NAME,
316                                         X_UPPER_CATEGORY_NAME => X_UPPER_CATEGORY_NAME,
317                                         X_DESCRIPTION => X_DESCRIPTION,
318                                         X_TYPE => TO_NUMBER(X_TYPE),
319                                         X_KEY => X_KEY,
320                                         X_TITLE => X_TITLE,
321                                         X_ITEM_COUNT => TO_NUMBER(X_ITEM_COUNT),
322                                         X_CREATION_DATE => SYSDATE,
323                                         X_CREATED_BY => F_LUBY,
324                                         X_LAST_UPDATE_DATE => SYSDATE,
325                                         X_LAST_UPDATED_BY => F_LUBY,
326                                         X_LAST_UPDATE_LOGIN => 0,
327                                         X_REQUEST_ID => NULL,
328                                         X_PROGRAM_APPLICATION_ID => NULL,
329                                         X_PROGRAM_ID => NULL,
330                                         X_PROGRAM_UPDATE_DATE => NULL);
331   END;
332 END LOAD_ROW;
333 
334 
335 
336 
337 procedure ADD_LANGUAGE
338 is
339 begin
340   insert into ICX_CAT_CATEGORIES_TL (
341     RT_CATEGORY_ID,
342     CATEGORY_NAME,
343     UPPER_CATEGORY_NAME,
344     DESCRIPTION,
345     TYPE,
346     KEY,
347     UPPER_KEY,
348     TITLE,
349     ITEM_COUNT,
350     SECTION_MAP,
351     CREATED_BY,
352     CREATION_DATE,
353     LAST_UPDATED_BY,
354     LAST_UPDATE_DATE,
355     LAST_UPDATE_LOGIN,
356     REQUEST_ID,
357     PROGRAM_APPLICATION_ID,
358     PROGRAM_ID,
359     PROGRAM_UPDATE_DATE,
360     LANGUAGE,
361     SOURCE_LANG
362   ) select
363     B.RT_CATEGORY_ID,
364     B.CATEGORY_NAME,
365     upper(B.CATEGORY_NAME),
366     B.DESCRIPTION,
367     B.TYPE,
368     B.KEY,
369     upper(B.KEY),
370     B.TITLE,
371     B.ITEM_COUNT,
372     B.SECTION_MAP,
373     B.CREATED_BY,
374     B.CREATION_DATE,
375     B.LAST_UPDATED_BY,
376     B.LAST_UPDATE_DATE,
377     B.LAST_UPDATE_LOGIN,
378     B.REQUEST_ID,
379     B.PROGRAM_APPLICATION_ID,
380     B.PROGRAM_ID,
381     B.PROGRAM_UPDATE_DATE,
382     L.LANGUAGE_CODE,
383     B.SOURCE_LANG
384   from ICX_CAT_CATEGORIES_TL B, FND_LANGUAGES L
385   where L.INSTALLED_FLAG in ('I', 'B')
386   and B.LANGUAGE = userenv('LANG')
387   and not exists
388     (select NULL
389     from ICX_CAT_CATEGORIES_TL T
390     where T.RT_CATEGORY_ID = B.RT_CATEGORY_ID
391     and T.LANGUAGE = L.LANGUAGE_CODE);
392 
393 end ADD_LANGUAGE;
394 
395 
396 end ICX_CAT_CATEGORIES_PVT;