DBA Data[Home] [Help]

PACKAGE BODY: APPS.AHL_DOC_REVISIONS_PKG

Source


1 package body AHL_DOC_REVISIONS_PKG as
2 /* $Header: AHLLDORB.pls 120.1.12020000.2 2012/12/06 22:29:04 sareepar ship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out NOCOPY VARCHAR2,
5   X_DOC_REVISION_ID in NUMBER,
6   X_APPROVED_DATE in DATE,
7   X_EFFECTIVE_DATE in DATE,
8   X_OBSOLETE_DATE in DATE,
9   X_ISSUE_DATE in DATE,
10   X_RECEIVED_DATE in DATE,
11   X_URL in VARCHAR2,
12   X_MEDIA_TYPE_CODE in VARCHAR2,
13   --pekambar Enigma Phase II changes -- start
14   X_ENIGMA_DOC_ID in VARCHAR2,
15   X_ENIGMA_MODEL_CODE in VARCHAR2,
16   --pekambar Enigma Phase II changes -- end
17   X_VOLUME in VARCHAR2,
18   X_ISSUE in VARCHAR2,
19   X_ISSUE_NUMBER in NUMBER,
20   X_ATTRIBUTE_CATEGORY in VARCHAR2,
21   X_ATTRIBUTE1 in VARCHAR2,
22   X_ATTRIBUTE2 in VARCHAR2,
23   X_REVISION_DATE in DATE,
24   X_ATTRIBUTE15 in VARCHAR2,
25   X_ATTRIBUTE9 in VARCHAR2,
26   X_ATTRIBUTE10 in VARCHAR2,
27   X_ATTRIBUTE11 in VARCHAR2,
28   X_ATTRIBUTE12 in VARCHAR2,
29   X_ATTRIBUTE13 in VARCHAR2,
30   X_DOCUMENT_ID in NUMBER,
31   X_REVISION_NO in VARCHAR2,
32   X_APPROVED_BY_PARTY_ID in NUMBER,
33   X_REVISION_TYPE_CODE in VARCHAR2,
34   X_REVISION_STATUS_CODE in VARCHAR2,
35   X_OBJECT_VERSION_NUMBER in NUMBER,
36   X_ATTRIBUTE3 in VARCHAR2,
37   X_ATTRIBUTE4 in VARCHAR2,
38   X_ATTRIBUTE5 in VARCHAR2,
39   X_ATTRIBUTE6 in VARCHAR2,
40   X_ATTRIBUTE7 in VARCHAR2,
41   X_ATTRIBUTE8 in VARCHAR2,
42   X_ATTRIBUTE14 in VARCHAR2,
43   X_COMMENTS in VARCHAR2,
44   X_CREATION_DATE in DATE,
45   X_CREATED_BY in NUMBER,
46   X_LAST_UPDATE_DATE in DATE,
47   X_LAST_UPDATED_BY in NUMBER,
48   X_LAST_UPDATE_LOGIN in NUMBER
49 ) is
50   cursor C is select ROWID from AHL_DOC_REVISIONS_B
51     where DOC_REVISION_ID = X_DOC_REVISION_ID
52     ;
53 begin
54   insert into AHL_DOC_REVISIONS_B (
55     APPROVED_DATE,
56     EFFECTIVE_DATE,
57     OBSOLETE_DATE,
58     ISSUE_DATE,
59     RECEIVED_DATE,
60     URL,
61     MEDIA_TYPE_CODE,
62     --pekambar Enigma Phase II changes -- start
63     ENIGMA_DOC_ID,
64     ENIGMA_MODEL_CODE,
65     --pekambar Enigma Phase II changes -- end
66     VOLUME,
67     ISSUE,
68     ISSUE_NUMBER,
69     ATTRIBUTE_CATEGORY,
70     ATTRIBUTE1,
71     ATTRIBUTE2,
72     REVISION_DATE,
73     ATTRIBUTE15,
74     ATTRIBUTE9,
75     ATTRIBUTE10,
76     ATTRIBUTE11,
77     ATTRIBUTE12,
78     ATTRIBUTE13,
79     DOCUMENT_ID,
80     REVISION_NO,
81     APPROVED_BY_PARTY_ID,
82     REVISION_TYPE_CODE,
83     REVISION_STATUS_CODE,
84     OBJECT_VERSION_NUMBER,
85     ATTRIBUTE3,
86     ATTRIBUTE4,
87     ATTRIBUTE5,
88     ATTRIBUTE6,
89     ATTRIBUTE7,
90     ATTRIBUTE8,
91     ATTRIBUTE14,
92     DOC_REVISION_ID,
93     CREATION_DATE,
94     CREATED_BY,
95     LAST_UPDATE_DATE,
96     LAST_UPDATED_BY,
97     LAST_UPDATE_LOGIN
98   ) values (
99     X_APPROVED_DATE,
100     X_EFFECTIVE_DATE,
101     X_OBSOLETE_DATE,
102     X_ISSUE_DATE,
103     X_RECEIVED_DATE,
104     X_URL,
105     X_MEDIA_TYPE_CODE,
106     --pekambar Enigma Phase II changes -- start
107     X_ENIGMA_DOC_ID,
108     X_ENIGMA_MODEL_CODE,
109     --pekambar Enigma Phase II changes -- end
110    X_VOLUME,
111     X_ISSUE,
112     X_ISSUE_NUMBER,
113     X_ATTRIBUTE_CATEGORY,
114     X_ATTRIBUTE1,
115     X_ATTRIBUTE2,
116     X_REVISION_DATE,
117     X_ATTRIBUTE15,
118     X_ATTRIBUTE9,
119     X_ATTRIBUTE10,
120     X_ATTRIBUTE11,
121     X_ATTRIBUTE12,
122     X_ATTRIBUTE13,
123     X_DOCUMENT_ID,
124     X_REVISION_NO,
125     X_APPROVED_BY_PARTY_ID,
126     X_REVISION_TYPE_CODE,
127     X_REVISION_STATUS_CODE,
128     X_OBJECT_VERSION_NUMBER,
129     X_ATTRIBUTE3,
130     X_ATTRIBUTE4,
131     X_ATTRIBUTE5,
132     X_ATTRIBUTE6,
133     X_ATTRIBUTE7,
134     X_ATTRIBUTE8,
135     X_ATTRIBUTE14,
136     X_DOC_REVISION_ID,
137     X_CREATION_DATE,
138     X_CREATED_BY,
139     X_LAST_UPDATE_DATE,
140     X_LAST_UPDATED_BY,
141     X_LAST_UPDATE_LOGIN
142   );
143 
144   insert into AHL_DOC_REVISIONS_TL (
145     LAST_UPDATE_LOGIN,
146     COMMENTS,
147     CREATION_DATE,
148     CREATED_BY,
149     DOC_REVISION_ID,
150     LAST_UPDATE_DATE,
151     LAST_UPDATED_BY,
152     LANGUAGE,
153     SOURCE_LANG
154   ) select
155     X_LAST_UPDATE_LOGIN,
156     X_COMMENTS,
157     X_CREATION_DATE,
158     X_CREATED_BY,
159     X_DOC_REVISION_ID,
160     X_LAST_UPDATE_DATE,
161     X_LAST_UPDATED_BY,
162     L.LANGUAGE_CODE,
163     userenv('LANG')
164   from FND_LANGUAGES L
165   where L.INSTALLED_FLAG in ('I', 'B')
166   and not exists
167     (select NULL
168     from AHL_DOC_REVISIONS_TL T
169     where T.DOC_REVISION_ID = X_DOC_REVISION_ID
170     and T.LANGUAGE = L.LANGUAGE_CODE);
171 
172   open c;
173   fetch c into X_ROWID;
174   if (c%notfound) then
175     close c;
176     raise no_data_found;
177   end if;
178   close c;
179 
180 end INSERT_ROW;
181 
182 procedure LOCK_ROW (
183   X_DOC_REVISION_ID in NUMBER,
184   X_APPROVED_DATE in DATE,
185   X_EFFECTIVE_DATE in DATE,
186   X_OBSOLETE_DATE in DATE,
187   X_ISSUE_DATE in DATE,
188   X_RECEIVED_DATE in DATE,
189   X_URL in VARCHAR2,
190   X_MEDIA_TYPE_CODE in VARCHAR2,
191   --pekambar Enigma Phase II changes -- start
192   X_ENIGMA_DOC_ID in VARCHAR2,
193   X_ENIGMA_MODEL_CODE in VARCHAR2,
194   --pekambar Enigma Phase II changes -- end
195   X_VOLUME in VARCHAR2,
196   X_ISSUE in VARCHAR2,
197   X_ISSUE_NUMBER in NUMBER,
198   X_ATTRIBUTE_CATEGORY in VARCHAR2,
199   X_ATTRIBUTE1 in VARCHAR2,
200   X_ATTRIBUTE2 in VARCHAR2,
201   X_REVISION_DATE in DATE,
202   X_ATTRIBUTE15 in VARCHAR2,
203   X_ATTRIBUTE9 in VARCHAR2,
204   X_ATTRIBUTE10 in VARCHAR2,
205   X_ATTRIBUTE11 in VARCHAR2,
206   X_ATTRIBUTE12 in VARCHAR2,
207   X_ATTRIBUTE13 in VARCHAR2,
208   X_DOCUMENT_ID in NUMBER,
209   X_REVISION_NO in VARCHAR2,
210   X_APPROVED_BY_PARTY_ID in NUMBER,
211   X_REVISION_TYPE_CODE in VARCHAR2,
212   X_REVISION_STATUS_CODE in VARCHAR2,
213   X_OBJECT_VERSION_NUMBER in NUMBER,
214   X_ATTRIBUTE3 in VARCHAR2,
215   X_ATTRIBUTE4 in VARCHAR2,
216   X_ATTRIBUTE5 in VARCHAR2,
217   X_ATTRIBUTE6 in VARCHAR2,
218   X_ATTRIBUTE7 in VARCHAR2,
219   X_ATTRIBUTE8 in VARCHAR2,
220   X_ATTRIBUTE14 in VARCHAR2,
221   X_COMMENTS in VARCHAR2
222 ) is
223   cursor c is select
224       APPROVED_DATE,
225       EFFECTIVE_DATE,
226       OBSOLETE_DATE,
227       ISSUE_DATE,
228       RECEIVED_DATE,
229       URL,
230       MEDIA_TYPE_CODE,
231       --pekambar Enigma Phase II changes -- start
232       ENIGMA_DOC_ID,
233       ENIGMA_MODEL_CODE,
234       --pekambar Enigma Phase II changes -- end
235       VOLUME,
236       ISSUE,
237       ISSUE_NUMBER,
238       ATTRIBUTE_CATEGORY,
239       ATTRIBUTE1,
240       ATTRIBUTE2,
241       REVISION_DATE,
242       ATTRIBUTE15,
243       ATTRIBUTE9,
244       ATTRIBUTE10,
245       ATTRIBUTE11,
246       ATTRIBUTE12,
247       ATTRIBUTE13,
248       DOCUMENT_ID,
249       REVISION_NO,
250       APPROVED_BY_PARTY_ID,
251       REVISION_TYPE_CODE,
252       REVISION_STATUS_CODE,
253       OBJECT_VERSION_NUMBER,
254       ATTRIBUTE3,
255       ATTRIBUTE4,
256       ATTRIBUTE5,
257       ATTRIBUTE6,
258       ATTRIBUTE7,
259       ATTRIBUTE8,
260       ATTRIBUTE14
261     from AHL_DOC_REVISIONS_B
262     where DOC_REVISION_ID = X_DOC_REVISION_ID
263     for update of DOC_REVISION_ID nowait;
264   recinfo c%rowtype;
265 
266   cursor c1 is select
267       COMMENTS,
268       decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
269     from AHL_DOC_REVISIONS_TL
270     where DOC_REVISION_ID = X_DOC_REVISION_ID
271     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
272     for update of DOC_REVISION_ID nowait;
273 begin
274   open c;
275   fetch c into recinfo;
276   if (c%notfound) then
277     close c;
278     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
279     app_exception.raise_exception;
280   end if;
281   close c;
282   if (    ((recinfo.APPROVED_DATE = X_APPROVED_DATE)
283            OR ((recinfo.APPROVED_DATE is null) AND (X_APPROVED_DATE is null)))
284       AND ((recinfo.EFFECTIVE_DATE = X_EFFECTIVE_DATE)
285            OR ((recinfo.EFFECTIVE_DATE is null) AND (X_EFFECTIVE_DATE is null)))
286       AND ((recinfo.OBSOLETE_DATE = X_OBSOLETE_DATE)
287            OR ((recinfo.OBSOLETE_DATE is null) AND (X_OBSOLETE_DATE is null)))
288       AND ((recinfo.ISSUE_DATE = X_ISSUE_DATE)
289            OR ((recinfo.ISSUE_DATE is null) AND (X_ISSUE_DATE is null)))
290       AND ((recinfo.RECEIVED_DATE = X_RECEIVED_DATE)
291            OR ((recinfo.RECEIVED_DATE is null) AND (X_RECEIVED_DATE is null)))
292       AND ((recinfo.URL = X_URL)
293            OR ((recinfo.URL is null) AND (X_URL is null)))
294       AND ((recinfo.MEDIA_TYPE_CODE = X_MEDIA_TYPE_CODE)
295            OR ((recinfo.MEDIA_TYPE_CODE is null) AND (X_MEDIA_TYPE_CODE is null)))
296       --pekambar Enigma Phase II changes -- start
297       AND ((recinfo.ENIGMA_DOC_ID = X_ENIGMA_DOC_ID)
298            OR ((recinfo.ENIGMA_DOC_ID is null) AND (X_ENIGMA_DOC_ID is null)))
299       AND ((recinfo.ENIGMA_MODEL_CODE = X_ENIGMA_MODEL_CODE)
300            OR ((recinfo.ENIGMA_MODEL_CODE is null) AND (X_ENIGMA_MODEL_CODE is null)))
301       --pekambar Enigma Phase II changes -- end
302       AND ((recinfo.VOLUME = X_VOLUME)
303            OR ((recinfo.VOLUME is null) AND (X_VOLUME is null)))
304       AND ((recinfo.ISSUE = X_ISSUE)
305            OR ((recinfo.ISSUE is null) AND (X_ISSUE is null)))
306       AND ((recinfo.ISSUE_NUMBER = X_ISSUE_NUMBER)
307            OR ((recinfo.ISSUE_NUMBER is null) AND (X_ISSUE_NUMBER is null)))
308       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
309            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
310       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
311            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
312       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
313            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
314       AND ((recinfo.REVISION_DATE = X_REVISION_DATE)
315            OR ((recinfo.REVISION_DATE is null) AND (X_REVISION_DATE is null)))
316       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
317            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
318       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
319            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
320       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
321            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
322       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
323            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
324       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
325            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
326       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
327            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
328       AND (recinfo.DOCUMENT_ID = X_DOCUMENT_ID)
329       AND (recinfo.REVISION_NO = X_REVISION_NO)
330       AND ((recinfo.APPROVED_BY_PARTY_ID = X_APPROVED_BY_PARTY_ID)
331            OR ((recinfo.APPROVED_BY_PARTY_ID is null) AND (X_APPROVED_BY_PARTY_ID is null)))
332       AND (recinfo.REVISION_TYPE_CODE = X_REVISION_TYPE_CODE)
333       AND (recinfo.REVISION_STATUS_CODE = X_REVISION_STATUS_CODE)
337       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
334       AND (recinfo.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
335       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
336            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
338            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
339       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
340            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
341       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
342            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
343       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
344            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
345       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
346            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
347       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
348            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
349   ) then
350     null;
351   else
352     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
353     app_exception.raise_exception;
354   end if;
355 
356   for tlinfo in c1 loop
357     if (tlinfo.BASELANG = 'Y') then
358       if (    ((tlinfo.COMMENTS = X_COMMENTS)
359                OR ((tlinfo.COMMENTS is null) AND (X_COMMENTS is null)))
360       ) then
361         null;
362       else
363         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
364         app_exception.raise_exception;
365       end if;
366     end if;
367   end loop;
368   return;
369 end LOCK_ROW;
370 
371 procedure UPDATE_ROW (
372   X_DOC_REVISION_ID in NUMBER,
373   X_APPROVED_DATE in DATE,
374   X_EFFECTIVE_DATE in DATE,
375   X_OBSOLETE_DATE in DATE,
376   X_ISSUE_DATE in DATE,
377   X_RECEIVED_DATE in DATE,
378   X_URL in VARCHAR2,
379   X_MEDIA_TYPE_CODE in VARCHAR2,
380   --pekambar Enigma Phase II changes -- start
381   X_ENIGMA_DOC_ID in VARCHAR2,
382   X_ENIGMA_MODEL_CODE in VARCHAR2,
383   --pekambar Enigma Phase II changes -- end
384   X_VOLUME in VARCHAR2,
385   X_ISSUE in VARCHAR2,
386   X_ISSUE_NUMBER in NUMBER,
387   X_ATTRIBUTE_CATEGORY in VARCHAR2,
388   X_ATTRIBUTE1 in VARCHAR2,
389   X_ATTRIBUTE2 in VARCHAR2,
390   X_REVISION_DATE in DATE,
391   X_ATTRIBUTE15 in VARCHAR2,
392   X_ATTRIBUTE9 in VARCHAR2,
393   X_ATTRIBUTE10 in VARCHAR2,
394   X_ATTRIBUTE11 in VARCHAR2,
395   X_ATTRIBUTE12 in VARCHAR2,
396   X_ATTRIBUTE13 in VARCHAR2,
397   X_DOCUMENT_ID in NUMBER,
398   X_REVISION_NO in VARCHAR2,
399   X_APPROVED_BY_PARTY_ID in NUMBER,
400   X_REVISION_TYPE_CODE in VARCHAR2,
401   X_REVISION_STATUS_CODE in VARCHAR2,
402   X_OBJECT_VERSION_NUMBER in NUMBER,
403   X_ATTRIBUTE3 in VARCHAR2,
404   X_ATTRIBUTE4 in VARCHAR2,
405   X_ATTRIBUTE5 in VARCHAR2,
406   X_ATTRIBUTE6 in VARCHAR2,
407   X_ATTRIBUTE7 in VARCHAR2,
408   X_ATTRIBUTE8 in VARCHAR2,
409   X_ATTRIBUTE14 in VARCHAR2,
410   X_COMMENTS in VARCHAR2,
411   X_LAST_UPDATE_DATE in DATE,
412   X_LAST_UPDATED_BY in NUMBER,
413   X_LAST_UPDATE_LOGIN in NUMBER
414 ) is
415 begin
416   update AHL_DOC_REVISIONS_B set
417     APPROVED_DATE = X_APPROVED_DATE,
418     EFFECTIVE_DATE = X_EFFECTIVE_DATE,
419     OBSOLETE_DATE = X_OBSOLETE_DATE,
420     ISSUE_DATE = X_ISSUE_DATE,
421     RECEIVED_DATE = X_RECEIVED_DATE,
422     URL = X_URL,
423     MEDIA_TYPE_CODE = X_MEDIA_TYPE_CODE,
424     --pekambar Enigma Phase II changes -- start
425     ENIGMA_DOC_ID = X_ENIGMA_DOC_ID,
426     ENIGMA_MODEL_CODE = X_ENIGMA_MODEL_CODE,
427     --pekambar Enigma Phase II changes -- end
428     VOLUME = X_VOLUME,
429     ISSUE = X_ISSUE,
430     ISSUE_NUMBER = X_ISSUE_NUMBER,
431     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
432     ATTRIBUTE1 = X_ATTRIBUTE1,
433     ATTRIBUTE2 = X_ATTRIBUTE2,
434     REVISION_DATE = X_REVISION_DATE,
435     ATTRIBUTE15 = X_ATTRIBUTE15,
436     ATTRIBUTE9 = X_ATTRIBUTE9,
437     ATTRIBUTE10 = X_ATTRIBUTE10,
438     ATTRIBUTE11 = X_ATTRIBUTE11,
439     ATTRIBUTE12 = X_ATTRIBUTE12,
440     ATTRIBUTE13 = X_ATTRIBUTE13,
441     DOCUMENT_ID = X_DOCUMENT_ID,
442     REVISION_NO = X_REVISION_NO,
443     APPROVED_BY_PARTY_ID = X_APPROVED_BY_PARTY_ID,
444     REVISION_TYPE_CODE = X_REVISION_TYPE_CODE,
445     REVISION_STATUS_CODE = X_REVISION_STATUS_CODE,
446     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
447     ATTRIBUTE3 = X_ATTRIBUTE3,
448     ATTRIBUTE4 = X_ATTRIBUTE4,
449     ATTRIBUTE5 = X_ATTRIBUTE5,
450     ATTRIBUTE6 = X_ATTRIBUTE6,
451     ATTRIBUTE7 = X_ATTRIBUTE7,
452     ATTRIBUTE8 = X_ATTRIBUTE8,
453     ATTRIBUTE14 = X_ATTRIBUTE14,
454     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
455     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
456     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
457   where DOC_REVISION_ID = X_DOC_REVISION_ID;
458 
459   if (sql%notfound) then
460     raise no_data_found;
461   end if;
462 
463   update AHL_DOC_REVISIONS_TL set
464     COMMENTS = X_COMMENTS,
465     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
466     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
467     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
468     SOURCE_LANG = userenv('LANG')
469   where DOC_REVISION_ID = X_DOC_REVISION_ID
470   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
471 
472   if (sql%notfound) then
473     raise no_data_found;
474   end if;
475 end UPDATE_ROW;
476 
477 procedure DELETE_ROW (
478   X_DOC_REVISION_ID in NUMBER
479 ) is
480 begin
481   delete from AHL_DOC_REVISIONS_TL
482   where DOC_REVISION_ID = X_DOC_REVISION_ID;
483 
484   if (sql%notfound) then
485     raise no_data_found;
486   end if;
487 
488   delete from AHL_DOC_REVISIONS_B
492     raise no_data_found;
489   where DOC_REVISION_ID = X_DOC_REVISION_ID;
490 
491   if (sql%notfound) then
493   end if;
494 end DELETE_ROW;
495 
496 procedure ADD_LANGUAGE
497 is
498 begin
499   delete from AHL_DOC_REVISIONS_TL T
500   where not exists
501     (select NULL
502     from AHL_DOC_REVISIONS_B B
503     where B.DOC_REVISION_ID = T.DOC_REVISION_ID
504     );
505 
506   update AHL_DOC_REVISIONS_TL T set (
507       COMMENTS
508     ) = (select
509       B.COMMENTS
510     from AHL_DOC_REVISIONS_TL B
511     where B.DOC_REVISION_ID = T.DOC_REVISION_ID
512     and B.LANGUAGE = T.SOURCE_LANG)
513   where (
514       T.DOC_REVISION_ID,
515       T.LANGUAGE
516   ) in (select
517       SUBT.DOC_REVISION_ID,
518       SUBT.LANGUAGE
519     from AHL_DOC_REVISIONS_TL SUBB, AHL_DOC_REVISIONS_TL SUBT
520     where SUBB.DOC_REVISION_ID = SUBT.DOC_REVISION_ID
521     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
522     and (SUBB.COMMENTS <> SUBT.COMMENTS
523       or (SUBB.COMMENTS is null and SUBT.COMMENTS is not null)
524       or (SUBB.COMMENTS is not null and SUBT.COMMENTS is null)
525   ));
526 
527   insert into AHL_DOC_REVISIONS_TL (
528     LAST_UPDATE_LOGIN,
529     COMMENTS,
530     CREATION_DATE,
531     CREATED_BY,
532     DOC_REVISION_ID,
533     LAST_UPDATE_DATE,
534     LAST_UPDATED_BY,
535     LANGUAGE,
536     SOURCE_LANG
537   ) select /*+ ORDERED */
538     B.LAST_UPDATE_LOGIN,
539     B.COMMENTS,
540     B.CREATION_DATE,
541     B.CREATED_BY,
542     B.DOC_REVISION_ID,
543     B.LAST_UPDATE_DATE,
544     B.LAST_UPDATED_BY,
545     L.LANGUAGE_CODE,
546     B.SOURCE_LANG
547   from AHL_DOC_REVISIONS_TL B, FND_LANGUAGES L
548   where L.INSTALLED_FLAG in ('I', 'B')
549   and B.LANGUAGE = userenv('LANG')
550   and not exists
551     (select NULL
552     from AHL_DOC_REVISIONS_TL T
553     where T.DOC_REVISION_ID = B.DOC_REVISION_ID
554     and T.LANGUAGE = L.LANGUAGE_CODE);
555 end ADD_LANGUAGE;
556 
557 procedure LOAD_ROW (
558   X_DOC_REVISION_ID        in NUMBER,
559   X_APPROVED_DATE          in DATE,
560   X_EFFECTIVE_DATE         in DATE,
561   X_OBSOLETE_DATE          in DATE,
562   X_ISSUE_DATE             in DATE,
563   X_RECEIVED_DATE          in DATE,
564   X_URL                    in VARCHAR2,
565   X_MEDIA_TYPE_CODE        in VARCHAR2,
566   --pekambar Enigma Phase II changes -- start
567   X_ENIGMA_DOC_ID in VARCHAR2,
568   X_ENIGMA_MODEL_CODE in VARCHAR2,
569   --pekambar Enigma Phase II changes -- end
570   X_VOLUME                 in VARCHAR2,
571   X_ISSUE                  in VARCHAR2,
572   X_ISSUE_NUMBER           in NUMBER,
573   X_REVISION_DATE          in DATE,
574   X_DOCUMENT_ID            in NUMBER,
575   X_REVISION_NO            in VARCHAR2,
576   X_APPROVED_BY_PARTY_ID   in NUMBER,
577   X_REVISION_TYPE_CODE     in VARCHAR2,
578   X_REVISION_STATUS_CODE   in VARCHAR2,
579   X_OBJECT_VERSION_NUMBER  in NUMBER,
580   X_ATTRIBUTE_CATEGORY     in VARCHAR2,
581   X_ATTRIBUTE1             in VARCHAR2,
582   X_ATTRIBUTE2             in VARCHAR2,
583   X_ATTRIBUTE3             in VARCHAR2,
584   X_ATTRIBUTE4             in VARCHAR2,
585   X_ATTRIBUTE5             in VARCHAR2,
586   X_ATTRIBUTE6             in VARCHAR2,
587   X_ATTRIBUTE7             in VARCHAR2,
588   X_ATTRIBUTE8             in VARCHAR2,
589   X_ATTRIBUTE9             in VARCHAR2,
590   X_ATTRIBUTE10            in VARCHAR2,
591   X_ATTRIBUTE11            in VARCHAR2,
592   X_ATTRIBUTE12            in VARCHAR2,
593   X_ATTRIBUTE13            in VARCHAR2,
594   X_ATTRIBUTE14            in VARCHAR2,
595   X_ATTRIBUTE15            in VARCHAR2,
596   X_COMMENTS               in VARCHAR2,
597   X_OWNER                  in VARCHAR2
598 ) is
599  user_id number := 0;
600  doc_revision_id  number;
601  row_id  varchar2(64);
602 begin
603   if (X_OWNER = 'SEED') then
604     user_id := 1;
605   end if;
606 
607   select doc_revision_id into doc_revision_id
608   from   ahl_doc_revisions_b
609   where  doc_revision_id = X_DOC_REVISION_ID;
610 
611 AHL_DOC_REVISIONS_PKG.UPDATE_ROW (
612 
613   X_DOC_REVISION_ID       => doc_revision_id,
614   X_APPROVED_DATE         => X_APPROVED_DATE,
615   X_EFFECTIVE_DATE        => X_EFFECTIVE_DATE,
616   X_OBSOLETE_DATE         => X_OBSOLETE_DATE,
617   X_ISSUE_DATE            => X_ISSUE_DATE,
618   X_RECEIVED_DATE         => X_RECEIVED_DATE,
619   X_URL                   => X_URL,
620   X_MEDIA_TYPE_CODE       => X_MEDIA_TYPE_CODE,
621   --pekambar Enigma Phase II changes -- start
622   X_ENIGMA_DOC_ID => X_ENIGMA_DOC_ID,
623   X_ENIGMA_MODEL_CODE => X_ENIGMA_MODEL_CODE,
624   --pekambar Enigma Phase II changes -- end
625   X_VOLUME                => X_VOLUME,
626   X_ISSUE                 => X_ISSUE,
627   X_ISSUE_NUMBER          => X_ISSUE_NUMBER,
628   X_ATTRIBUTE_CATEGORY    =>X_ATTRIBUTE_CATEGORY,
629   X_ATTRIBUTE1            =>X_ATTRIBUTE1,
630   X_ATTRIBUTE2            =>X_ATTRIBUTE2,
631   X_REVISION_DATE         =>X_REVISION_DATE,
632   X_ATTRIBUTE15           =>X_ATTRIBUTE15,
633   X_ATTRIBUTE9            =>X_ATTRIBUTE9,
634   X_ATTRIBUTE10           => X_ATTRIBUTE10,
635   X_ATTRIBUTE11           => X_ATTRIBUTE11,
636   X_ATTRIBUTE12           => X_ATTRIBUTE12,
637   X_ATTRIBUTE13           => X_ATTRIBUTE13,
638   X_DOCUMENT_ID           => X_DOCUMENT_ID,
639   X_REVISION_NO           => X_REVISION_NO,
640   X_APPROVED_BY_PARTY_ID  => X_APPROVED_BY_PARTY_ID,
641   X_REVISION_TYPE_CODE    => X_REVISION_TYPE_CODE,
642   X_REVISION_STATUS_CODE  => X_REVISION_STATUS_CODE,
643   X_OBJECT_VERSION_NUMBER => X_OBJECT_VERSION_NUMBER,
647   X_ATTRIBUTE6            => X_ATTRIBUTE6,
644   X_ATTRIBUTE3            => X_ATTRIBUTE3,
645   X_ATTRIBUTE4            => X_ATTRIBUTE4,
646   X_ATTRIBUTE5            => X_ATTRIBUTE5,
648   X_ATTRIBUTE7            => X_ATTRIBUTE7,
649   X_ATTRIBUTE8            => X_ATTRIBUTE8,
650   X_ATTRIBUTE14           => X_ATTRIBUTE14,
651   X_COMMENTS              => X_COMMENTS,
652   X_LAST_UPDATE_DATE      => sysdate,
653   X_LAST_UPDATED_BY       => user_id,
654   X_LAST_UPDATE_LOGIN 	  => 0
655 );
656 
657 exception
658   when NO_DATA_FOUND then
659 
660  SELECT  AHL_DOC_REVISIONS_B_S.Nextval INTO
661            doc_revision_id from DUAL;
662 
663 AHL_DOC_REVISIONS_PKG.INSERT_ROW (
664   X_ROWID                 => row_id,
665   X_DOC_REVISION_ID       => doc_revision_id,
666   X_APPROVED_DATE         => X_APPROVED_DATE,
667   X_EFFECTIVE_DATE        => X_EFFECTIVE_DATE,
668   X_OBSOLETE_DATE         => X_OBSOLETE_DATE,
669   X_ISSUE_DATE            => X_ISSUE_DATE,
670   X_RECEIVED_DATE         => X_RECEIVED_DATE,
671   X_URL                   => X_URL,
672   X_MEDIA_TYPE_CODE       => X_MEDIA_TYPE_CODE,
673   --pekambar Enigma Phase II changes -- start
674   X_ENIGMA_DOC_ID => X_ENIGMA_DOC_ID,
675   X_ENIGMA_MODEL_CODE => X_ENIGMA_MODEL_CODE,
676   --pekambar Enigma Phase II changes -- end
677   X_VOLUME                => X_VOLUME,
678   X_ISSUE                 => X_ISSUE,
679   X_ISSUE_NUMBER          => X_ISSUE_NUMBER,
680   X_ATTRIBUTE_CATEGORY    =>X_ATTRIBUTE_CATEGORY,
681   X_ATTRIBUTE1            =>X_ATTRIBUTE1,
682   X_ATTRIBUTE2            =>X_ATTRIBUTE2,
683   X_REVISION_DATE         =>X_REVISION_DATE,
684   X_ATTRIBUTE15           =>X_ATTRIBUTE15,
685   X_ATTRIBUTE9            =>X_ATTRIBUTE9,
686   X_ATTRIBUTE10           => X_ATTRIBUTE10,
687   X_ATTRIBUTE11           => X_ATTRIBUTE11,
688   X_ATTRIBUTE12           => X_ATTRIBUTE12,
689   X_ATTRIBUTE13           => X_ATTRIBUTE13,
690   X_DOCUMENT_ID           => X_DOCUMENT_ID,
691   X_REVISION_NO           => X_REVISION_NO,
692   X_APPROVED_BY_PARTY_ID  => X_APPROVED_BY_PARTY_ID,
693   X_REVISION_TYPE_CODE    => X_REVISION_TYPE_CODE,
694   X_REVISION_STATUS_CODE  => X_REVISION_STATUS_CODE,
695   X_OBJECT_VERSION_NUMBER => 1,
696   X_ATTRIBUTE3            => X_ATTRIBUTE3,
697   X_ATTRIBUTE4            => X_ATTRIBUTE4,
698   X_ATTRIBUTE5            => X_ATTRIBUTE5,
699   X_ATTRIBUTE6            => X_ATTRIBUTE6,
700   X_ATTRIBUTE7            => X_ATTRIBUTE7,
701   X_ATTRIBUTE8            => X_ATTRIBUTE8,
702   X_ATTRIBUTE14           => X_ATTRIBUTE14,
703   X_COMMENTS              => X_COMMENTS,
704   X_CREATION_DATE         => sysdate,
705   X_CREATED_BY            => user_id,
706   X_LAST_UPDATE_DATE      => sysdate,
707   X_LAST_UPDATED_BY       => user_id,
708   X_LAST_UPDATE_LOGIN     => 0
709 );
710 end LOAD_ROW;
711 
712 procedure TRANSLATE_ROW (
713   X_DOC_REVISION_ID        in NUMBER,
714   X_COMMENTS               in VARCHAR2,
715   X_OWNER                  in VARCHAR2
716 ) is
717 begin
718 update AHl_DOC_REVISIONS_TL set
719  comments          = nvl(X_COMMENTS, comments),
720  source_lang       = userenv('LANG'),
721  last_update_date  = sysdate,
722  last_updated_by   = decode(X_OWNER, 'SEED', 1, 0),
723  last_update_login = 0
724 where doc_revision_id =
725 	(select doc_revision_id
726          from ahl_doc_revisions_b
727          where doc_revision_id = X_DOC_REVISION_ID)
728 and userenv('LANG') in (language, source_lang);
729 
730 end TRANSLATE_ROW;
731 
732 end AHL_DOC_REVISIONS_PKG;