DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_FOLDERS_PVT

Source


1 PACKAGE BODY OKC_FOLDERS_PVT AS
2 /* $Header: OKCVFLDB.pls 120.1 2005/08/05 13:43:13 ssivarap noship $ */
3 
4 
5 PROCEDURE INSERT_ROW (
6   X_ROWID IN OUT nocopy VARCHAR2,
7   X_FOLDER_ID IN NUMBER,
8   X_OBJECT_VERSION_NUMBER IN NUMBER,
9   X_SAT_CODE IN VARCHAR2,
10   X_ATTRIBUTE_CATEGORY IN VARCHAR2,
11   X_ATTRIBUTE1 IN VARCHAR2,
12   X_ATTRIBUTE2 IN VARCHAR2,
13   X_ATTRIBUTE3 IN VARCHAR2,
14   X_ATTRIBUTE4 IN VARCHAR2,
15   X_ATTRIBUTE5 IN VARCHAR2,
16   X_ATTRIBUTE6 IN VARCHAR2,
17   X_ATTRIBUTE7 IN VARCHAR2,
18   X_ATTRIBUTE8 IN VARCHAR2,
19   X_ATTRIBUTE9 IN VARCHAR2,
20   X_ATTRIBUTE10 IN VARCHAR2,
21   X_ATTRIBUTE11 IN VARCHAR2,
22   X_ATTRIBUTE12 IN VARCHAR2,
23   X_ATTRIBUTE13 IN VARCHAR2,
24   X_ATTRIBUTE14 IN VARCHAR2,
25   X_ATTRIBUTE15 IN VARCHAR2,
26   X_FOLDER_NAME IN VARCHAR2,
27   X_DESCRIPTION IN VARCHAR2,
28   X_ORG_ID IN NUMBER,
29   X_CREATION_DATE IN DATE,
30   X_CREATED_BY IN NUMBER,
31   X_LAST_UPDATE_DATE IN DATE,
32   X_LAST_UPDATED_BY IN NUMBER,
33   X_LAST_UPDATE_LOGIN IN NUMBER
34 ) IS
35   CURSOR C IS SELECT ROWID FROM OKC_FOLDERS_ALL_B
36     WHERE FOLDER_ID = X_FOLDER_ID
37     ;
38 BEGIN
39   INSERT INTO OKC_FOLDERS_ALL_B (
40     FOLDER_ID,
41     OBJECT_VERSION_NUMBER,
42     ORG_ID,
43     SAT_CODE,
44     ATTRIBUTE_CATEGORY,
45     ATTRIBUTE1,
46     ATTRIBUTE2,
47     ATTRIBUTE3,
48     ATTRIBUTE4,
49     ATTRIBUTE5,
50     ATTRIBUTE6,
51     ATTRIBUTE7,
52     ATTRIBUTE8,
53     ATTRIBUTE9,
54     ATTRIBUTE10,
55     ATTRIBUTE11,
56     ATTRIBUTE12,
57     ATTRIBUTE13,
58     ATTRIBUTE14,
59     ATTRIBUTE15,
60     CREATION_DATE,
61     CREATED_BY,
62     LAST_UPDATE_DATE,
63     LAST_UPDATED_BY,
64     LAST_UPDATE_LOGIN
65   ) VALUES (
66     X_FOLDER_ID,
67     X_OBJECT_VERSION_NUMBER,
68     X_ORG_ID,
69     X_SAT_CODE,
70     X_ATTRIBUTE_CATEGORY,
71     X_ATTRIBUTE1,
72     X_ATTRIBUTE2,
73     X_ATTRIBUTE3,
74     X_ATTRIBUTE4,
75     X_ATTRIBUTE5,
76     X_ATTRIBUTE6,
77     X_ATTRIBUTE7,
78     X_ATTRIBUTE8,
79     X_ATTRIBUTE9,
80     X_ATTRIBUTE10,
81     X_ATTRIBUTE11,
82     X_ATTRIBUTE12,
83     X_ATTRIBUTE13,
84     X_ATTRIBUTE14,
85     X_ATTRIBUTE15,
86     X_CREATION_DATE,
87     X_CREATED_BY,
88     X_LAST_UPDATE_DATE,
89     X_LAST_UPDATED_BY,
90     X_LAST_UPDATE_LOGIN
91   );
92 
93   INSERT INTO OKC_FOLDERS_ALL_TL (
94     FOLDER_NAME,
95     DESCRIPTION,
96     CREATED_BY,
97     CREATION_DATE,
98     LAST_UPDATE_DATE,
99     LAST_UPDATED_BY,
100     LAST_UPDATE_LOGIN,
101     FOLDER_ID,
102     LANGUAGE,
103     SOURCE_LANG
104   ) SELECT
105     X_FOLDER_NAME,
106     X_DESCRIPTION,
107     X_CREATED_BY,
108     X_CREATION_DATE,
109     X_LAST_UPDATE_DATE,
110     X_LAST_UPDATED_BY,
111     X_LAST_UPDATE_LOGIN,
112     X_FOLDER_ID,
113     L.LANGUAGE_CODE,
114     USERENV('LANG')
115   FROM FND_LANGUAGES L
116   WHERE L.INSTALLED_FLAG IN ('I', 'B')
117   AND NOT EXISTS
118     (SELECT NULL
119     FROM OKC_FOLDERS_ALL_TL T
120     WHERE T.FOLDER_ID = X_FOLDER_ID
121     AND T.LANGUAGE = L.LANGUAGE_CODE);
122 
123   OPEN c;
124   FETCH c INTO X_ROWID;
125   IF (c%NOTFOUND) THEN
126     CLOSE c;
127     RAISE NO_DATA_FOUND;
128   END IF;
129   CLOSE c;
130 
131 END INSERT_ROW;
132 
133 PROCEDURE LOCK_ROW (
134   X_FOLDER_ID IN NUMBER,
135   X_OBJECT_VERSION_NUMBER IN NUMBER,
136   X_SAT_CODE IN VARCHAR2,
137   X_ATTRIBUTE_CATEGORY IN VARCHAR2,
138   X_ATTRIBUTE1 IN VARCHAR2,
139   X_ATTRIBUTE2 IN VARCHAR2,
140   X_ATTRIBUTE3 IN VARCHAR2,
141   X_ATTRIBUTE4 IN VARCHAR2,
142   X_ATTRIBUTE5 IN VARCHAR2,
143   X_ATTRIBUTE6 IN VARCHAR2,
144   X_ATTRIBUTE7 IN VARCHAR2,
145   X_ATTRIBUTE8 IN VARCHAR2,
146   X_ATTRIBUTE9 IN VARCHAR2,
147   X_ATTRIBUTE10 IN VARCHAR2,
148   X_ATTRIBUTE11 IN VARCHAR2,
149   X_ATTRIBUTE12 IN VARCHAR2,
150   X_ATTRIBUTE13 IN VARCHAR2,
151   X_ATTRIBUTE14 IN VARCHAR2,
152   X_ATTRIBUTE15 IN VARCHAR2,
153   X_FOLDER_NAME IN VARCHAR2,
154   X_DESCRIPTION IN VARCHAR2,
155   X_ORG_ID IN NUMBER
156 ) IS
157   CURSOR c IS SELECT
158       OBJECT_VERSION_NUMBER,
159       SAT_CODE,
160       ATTRIBUTE_CATEGORY,
161       ATTRIBUTE1,
162       ATTRIBUTE2,
163       ATTRIBUTE3,
164       ATTRIBUTE4,
165       ATTRIBUTE5,
166       ATTRIBUTE6,
167       ATTRIBUTE7,
168       ATTRIBUTE8,
169       ATTRIBUTE9,
170       ATTRIBUTE10,
171       ATTRIBUTE11,
172       ATTRIBUTE12,
173       ATTRIBUTE13,
174       ATTRIBUTE14,
175       ATTRIBUTE15,
176 	 ORG_ID
177     FROM OKC_FOLDERS_ALL_B
178     WHERE FOLDER_ID = X_FOLDER_ID
179     FOR UPDATE OF FOLDER_ID NOWAIT;
180   recinfo c%ROWTYPE;
181 
182   CURSOR c1 IS SELECT
183       FOLDER_NAME,
184       DESCRIPTION,
185       DECODE(LANGUAGE, USERENV('LANG'), 'Y', 'N') BASELANG
186     FROM OKC_FOLDERS_ALL_TL
187     WHERE FOLDER_ID = X_FOLDER_ID
188     AND USERENV('LANG') IN (LANGUAGE, SOURCE_LANG)
189     FOR UPDATE OF FOLDER_ID NOWAIT;
190 BEGIN
191   OPEN c;
192   FETCH c INTO recinfo;
193   IF (c%NOTFOUND) THEN
194     CLOSE c;
195     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
196     app_exception.raise_exception;
197   END IF;
198   CLOSE c;
199   IF (    (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
200       AND (recinfo.ORG_ID = X_ORG_ID)
201       AND ((recinfo.SAT_CODE = X_SAT_CODE)
202            OR ((recinfo.SAT_CODE IS NULL) AND (X_SAT_CODE IS NULL)))
203       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
204            OR ((recinfo.ATTRIBUTE_CATEGORY IS NULL) AND (X_ATTRIBUTE_CATEGORY IS NULL)))
205       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
206            OR ((recinfo.ATTRIBUTE1 IS NULL) AND (X_ATTRIBUTE1 IS NULL)))
207       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
208            OR ((recinfo.ATTRIBUTE2 IS NULL) AND (X_ATTRIBUTE2 IS NULL)))
209       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
210            OR ((recinfo.ATTRIBUTE3 IS NULL) AND (X_ATTRIBUTE3 IS NULL)))
211       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
212            OR ((recinfo.ATTRIBUTE4 IS NULL) AND (X_ATTRIBUTE4 IS NULL)))
213       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
214            OR ((recinfo.ATTRIBUTE5 IS NULL) AND (X_ATTRIBUTE5 IS NULL)))
215       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
216            OR ((recinfo.ATTRIBUTE6 IS NULL) AND (X_ATTRIBUTE6 IS NULL)))
217       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
218            OR ((recinfo.ATTRIBUTE7 IS NULL) AND (X_ATTRIBUTE7 IS NULL)))
219       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
220            OR ((recinfo.ATTRIBUTE8 IS NULL) AND (X_ATTRIBUTE8 IS NULL)))
221       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
222            OR ((recinfo.ATTRIBUTE9 IS NULL) AND (X_ATTRIBUTE9 IS NULL)))
223       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
224            OR ((recinfo.ATTRIBUTE10 IS NULL) AND (X_ATTRIBUTE10 IS NULL)))
225       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
226            OR ((recinfo.ATTRIBUTE11 IS NULL) AND (X_ATTRIBUTE11 IS NULL)))
227       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
228            OR ((recinfo.ATTRIBUTE12 IS NULL) AND (X_ATTRIBUTE12 IS NULL)))
229       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
230            OR ((recinfo.ATTRIBUTE13 IS NULL) AND (X_ATTRIBUTE13 IS NULL)))
231       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
232            OR ((recinfo.ATTRIBUTE14 IS NULL) AND (X_ATTRIBUTE14 IS NULL)))
233       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
234            OR ((recinfo.ATTRIBUTE15 IS NULL) AND (X_ATTRIBUTE15 IS NULL)))
235   ) THEN
236     NULL;
237   ELSE
238     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
239     app_exception.raise_exception;
240   END IF;
241 
242   FOR tlinfo IN c1 LOOP
243     IF (tlinfo.BASELANG = 'Y') THEN
244       IF (    (tlinfo.FOLDER_NAME = X_FOLDER_NAME)
245           AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
246                OR ((tlinfo.DESCRIPTION IS NULL) AND (X_DESCRIPTION IS NULL)))
247       ) THEN
248         NULL;
249       ELSE
250         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
251         app_exception.raise_exception;
252       END IF;
253     END IF;
254   END LOOP;
255   RETURN;
256 END LOCK_ROW;
257 
258 PROCEDURE UPDATE_ROW (
259   X_FOLDER_ID IN NUMBER,
260   X_OBJECT_VERSION_NUMBER IN NUMBER,
261   X_SAT_CODE IN VARCHAR2,
262   X_ATTRIBUTE_CATEGORY IN VARCHAR2,
263   X_ATTRIBUTE1 IN VARCHAR2,
264   X_ATTRIBUTE2 IN VARCHAR2,
265   X_ATTRIBUTE3 IN VARCHAR2,
266   X_ATTRIBUTE4 IN VARCHAR2,
267   X_ATTRIBUTE5 IN VARCHAR2,
268   X_ATTRIBUTE6 IN VARCHAR2,
269   X_ATTRIBUTE7 IN VARCHAR2,
270   X_ATTRIBUTE8 IN VARCHAR2,
271   X_ATTRIBUTE9 IN VARCHAR2,
272   X_ATTRIBUTE10 IN VARCHAR2,
273   X_ATTRIBUTE11 IN VARCHAR2,
274   X_ATTRIBUTE12 IN VARCHAR2,
275   X_ATTRIBUTE13 IN VARCHAR2,
276   X_ATTRIBUTE14 IN VARCHAR2,
277   X_ATTRIBUTE15 IN VARCHAR2,
278   X_FOLDER_NAME IN VARCHAR2,
279   X_DESCRIPTION IN VARCHAR2,
280   X_ORG_ID IN NUMBER,
281   X_LAST_UPDATE_DATE IN DATE,
282   X_LAST_UPDATED_BY IN NUMBER,
283   X_LAST_UPDATE_LOGIN IN NUMBER
284 ) IS
285 BEGIN
286   UPDATE OKC_FOLDERS_ALL_B SET
287     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
288     SAT_CODE = X_SAT_CODE,
289     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
290     ATTRIBUTE1 = X_ATTRIBUTE1,
291     ATTRIBUTE2 = X_ATTRIBUTE2,
292     ATTRIBUTE3 = X_ATTRIBUTE3,
293     ATTRIBUTE4 = X_ATTRIBUTE4,
294     ATTRIBUTE5 = X_ATTRIBUTE5,
295     ATTRIBUTE6 = X_ATTRIBUTE6,
296     ATTRIBUTE7 = X_ATTRIBUTE7,
297     ATTRIBUTE8 = X_ATTRIBUTE8,
298     ATTRIBUTE9 = X_ATTRIBUTE9,
299     ATTRIBUTE10 = X_ATTRIBUTE10,
300     ATTRIBUTE11 = X_ATTRIBUTE11,
301     ATTRIBUTE12 = X_ATTRIBUTE12,
302     ATTRIBUTE13 = X_ATTRIBUTE13,
303     ATTRIBUTE14 = X_ATTRIBUTE14,
304     ATTRIBUTE15 = X_ATTRIBUTE15,
305     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
306     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
307     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
308   WHERE FOLDER_ID = X_FOLDER_ID;
309 
310   IF (SQL%NOTFOUND) THEN
311     RAISE NO_DATA_FOUND;
312   END IF;
313 
314   UPDATE OKC_FOLDERS_ALL_TL SET
315     FOLDER_NAME = X_FOLDER_NAME,
316     DESCRIPTION = X_DESCRIPTION,
317     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
318     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
319     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
320     SOURCE_LANG = USERENV('LANG')
321   WHERE FOLDER_ID = X_FOLDER_ID
322   AND USERENV('LANG') IN (LANGUAGE, SOURCE_LANG);
323 
324   IF (SQL%NOTFOUND) THEN
325     RAISE NO_DATA_FOUND;
326   END IF;
327 END UPDATE_ROW;
328 
329 PROCEDURE DELETE_ROW (
330   X_FOLDER_ID IN NUMBER
331 ) IS
332 BEGIN
333   DELETE FROM OKC_FOLDERS_ALL_TL
334   WHERE FOLDER_ID = X_FOLDER_ID;
335 
336   IF (SQL%NOTFOUND) THEN
337     RAISE NO_DATA_FOUND;
338   END IF;
339 
340   DELETE FROM OKC_FOLDERS_ALL_B
341   WHERE FOLDER_ID = X_FOLDER_ID;
342 
343   IF (SQL%NOTFOUND) THEN
344     RAISE NO_DATA_FOUND;
345   END IF;
346 END DELETE_ROW;
347 
348 PROCEDURE ADD_LANGUAGE
349 IS
350 BEGIN
351   DELETE FROM OKC_FOLDERS_ALL_TL T
352   WHERE NOT EXISTS
353     (SELECT NULL
354     FROM OKC_FOLDERS_ALL_B B
355     WHERE B.FOLDER_ID = T.FOLDER_ID
356     );
357 
358   UPDATE OKC_FOLDERS_ALL_TL T SET (
359       FOLDER_NAME,
360       DESCRIPTION
361     ) = (SELECT
362       B.FOLDER_NAME,
363       B.DESCRIPTION
364     FROM OKC_FOLDERS_ALL_TL B
365     WHERE B.FOLDER_ID = T.FOLDER_ID
366     AND B.LANGUAGE = T.SOURCE_LANG)
367   WHERE (
368       T.FOLDER_ID,
369       T.LANGUAGE
370   ) IN (SELECT
371       SUBT.FOLDER_ID,
372       SUBT.LANGUAGE
373     FROM OKC_FOLDERS_ALL_TL SUBB, OKC_FOLDERS_ALL_TL SUBT
374     WHERE SUBB.FOLDER_ID = SUBT.FOLDER_ID
375     AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
376     AND (SUBB.FOLDER_NAME <> SUBT.FOLDER_NAME
377       OR SUBB.DESCRIPTION <> SUBT.DESCRIPTION
378       OR (SUBB.DESCRIPTION IS NULL AND SUBT.DESCRIPTION IS NOT NULL)
379       OR (SUBB.DESCRIPTION IS NOT NULL AND SUBT.DESCRIPTION IS NULL)
380   ));
381 
382   INSERT INTO OKC_FOLDERS_ALL_TL (
383     FOLDER_NAME,
384     DESCRIPTION,
385     CREATED_BY,
386     CREATION_DATE,
387     LAST_UPDATE_DATE,
388     LAST_UPDATED_BY,
389     LAST_UPDATE_LOGIN,
390     FOLDER_ID,
391     LANGUAGE,
392     SOURCE_LANG
393   ) SELECT /*+ ORDERED */
394     B.FOLDER_NAME,
395     B.DESCRIPTION,
396     B.CREATED_BY,
397     B.CREATION_DATE,
398     B.LAST_UPDATE_DATE,
399     B.LAST_UPDATED_BY,
400     B.LAST_UPDATE_LOGIN,
401     B.FOLDER_ID,
402     L.LANGUAGE_CODE,
403     B.SOURCE_LANG
404   FROM OKC_FOLDERS_ALL_TL B, FND_LANGUAGES L
405   WHERE L.INSTALLED_FLAG IN ('I', 'B')
406   AND B.LANGUAGE = USERENV('LANG')
407   AND NOT EXISTS
408     (SELECT NULL
409     FROM OKC_FOLDERS_ALL_TL T
410     WHERE T.FOLDER_ID = B.FOLDER_ID
411     AND T.LANGUAGE = L.LANGUAGE_CODE);
412 END ADD_LANGUAGE;
413 
414 END OKC_FOLDERS_PVT;