DBA Data[Home] [Help]

PACKAGE BODY: APPS.AHL_DOC_FILE_ASSOC_PKG

Source


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