DBA Data[Home] [Help]

PACKAGE BODY: APPS.EDR_FILES_PKG

Source


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