DBA Data[Home] [Help]

PACKAGE BODY: APPS.PRP_COMPONENTS_PKG

Source


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