DBA Data[Home] [Help]

PACKAGE BODY: APPS.AHL_PRD_DISPOSITIONS_PKG

Source


1 package body AHL_PRD_DISPOSITIONS_PKG as
2 /* $Header: AHLLDISB.pls 120.0 2005/05/26 02:10:58 appldev noship $ */
3 procedure INSERT_ROW (
4   X_ROWID in out nocopy VARCHAR2,
5   X_DISPOSITION_ID in NUMBER,
6   X_OBJECT_VERSION_NUMBER in NUMBER,
7   X_WORKORDER_ID in NUMBER,
8   X_PART_CHANGE_ID in NUMBER,
9   X_PATH_POSITION_ID in NUMBER,
10   X_INVENTORY_ITEM_ID in NUMBER,
11   X_ORGANIZATION_ID in NUMBER,
12   X_ITEM_GROUP_ID in NUMBER,
13   X_CONDITION_ID in NUMBER,
14   X_INSTANCE_ID in NUMBER,
15   X_SERIAL_NUMBER in VARCHAR2,
16   X_LOT_NUMBER in VARCHAR2,
17   X_IMMEDIATE_DISPOSITION_CODE in VARCHAR2,
18   X_SECONDARY_DISPOSITION_CODE in VARCHAR2,
19   X_STATUS_CODE in VARCHAR2,
20   X_QUANTITY in NUMBER,
21   X_UOM in VARCHAR2,
22   X_COLLECTION_ID in NUMBER,
23   X_PRIMARY_SERVICE_REQUEST_ID in NUMBER,
24   X_NON_ROUTINE_WORKORDER_ID in NUMBER,
25   X_WO_OPERATION_ID in NUMBER,
26   X_ITEM_REVISION in VARCHAR2,
27   X_ATTRIBUTE_CATEGORY in VARCHAR2,
28   X_ATTRIBUTE1 in VARCHAR2,
29   X_ATTRIBUTE2 in VARCHAR2,
30   X_ATTRIBUTE3 in VARCHAR2,
31   X_ATTRIBUTE4 in VARCHAR2,
32   X_ATTRIBUTE5 in VARCHAR2,
33   X_ATTRIBUTE6 in VARCHAR2,
34   X_ATTRIBUTE7 in VARCHAR2,
35   X_ATTRIBUTE8 in VARCHAR2,
36   X_ATTRIBUTE9 in VARCHAR2,
37   X_ATTRIBUTE10 in VARCHAR2,
38   X_ATTRIBUTE11 in VARCHAR2,
39   X_ATTRIBUTE12 in VARCHAR2,
40   X_ATTRIBUTE13 in VARCHAR2,
41   X_ATTRIBUTE14 in VARCHAR2,
42   X_ATTRIBUTE15 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_PRD_DISPOSITIONS_B
51     where DISPOSITION_ID = X_DISPOSITION_ID
52     ;
53 begin
54   insert into AHL_PRD_DISPOSITIONS_B (
55     DISPOSITION_ID,
56     OBJECT_VERSION_NUMBER,
57     WORKORDER_ID,
58     PART_CHANGE_ID,
59     PATH_POSITION_ID,
60     INVENTORY_ITEM_ID,
61     ORGANIZATION_ID,
62     ITEM_GROUP_ID,
63     CONDITION_ID,
64     INSTANCE_ID,
65     SERIAL_NUMBER,
66     LOT_NUMBER,
67     IMMEDIATE_DISPOSITION_CODE,
68     SECONDARY_DISPOSITION_CODE,
69     STATUS_CODE,
70     QUANTITY,
71     UOM,
72     COLLECTION_ID,
73     PRIMARY_SERVICE_REQUEST_ID,
74     NON_ROUTINE_WORKORDER_ID,
75     WO_OPERATION_ID,
76     ITEM_REVISION,
77     ATTRIBUTE_CATEGORY,
78     ATTRIBUTE1,
79     ATTRIBUTE2,
80     ATTRIBUTE3,
81     ATTRIBUTE4,
82     ATTRIBUTE5,
83     ATTRIBUTE6,
84     ATTRIBUTE7,
85     ATTRIBUTE8,
86     ATTRIBUTE9,
87     ATTRIBUTE10,
88     ATTRIBUTE11,
89     ATTRIBUTE12,
90     ATTRIBUTE13,
91     ATTRIBUTE14,
92     ATTRIBUTE15,
93     CREATION_DATE,
94     CREATED_BY,
95     LAST_UPDATE_DATE,
96     LAST_UPDATED_BY,
97     LAST_UPDATE_LOGIN
98   ) values (
99     X_DISPOSITION_ID,
100     X_OBJECT_VERSION_NUMBER,
101     X_WORKORDER_ID,
102     X_PART_CHANGE_ID,
103     X_PATH_POSITION_ID,
104     X_INVENTORY_ITEM_ID,
105     X_ORGANIZATION_ID,
106     X_ITEM_GROUP_ID,
107     X_CONDITION_ID,
108     X_INSTANCE_ID,
109     X_SERIAL_NUMBER,
110     X_LOT_NUMBER,
111     X_IMMEDIATE_DISPOSITION_CODE,
112     X_SECONDARY_DISPOSITION_CODE,
113     X_STATUS_CODE,
114     X_QUANTITY,
115     X_UOM,
116     X_COLLECTION_ID,
117     X_PRIMARY_SERVICE_REQUEST_ID,
118     X_NON_ROUTINE_WORKORDER_ID,
119     X_WO_OPERATION_ID,
120     X_ITEM_REVISION,
121     X_ATTRIBUTE_CATEGORY,
122     X_ATTRIBUTE1,
123     X_ATTRIBUTE2,
124     X_ATTRIBUTE3,
125     X_ATTRIBUTE4,
126     X_ATTRIBUTE5,
127     X_ATTRIBUTE6,
128     X_ATTRIBUTE7,
129     X_ATTRIBUTE8,
130     X_ATTRIBUTE9,
131     X_ATTRIBUTE10,
132     X_ATTRIBUTE11,
133     X_ATTRIBUTE12,
134     X_ATTRIBUTE13,
135     X_ATTRIBUTE14,
136     X_ATTRIBUTE15,
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_PRD_DISPOSITIONS_TL (
145     DISPOSITION_ID,
146     LAST_UPDATE_DATE,
147     LAST_UPDATED_BY,
148     CREATION_DATE,
149     CREATED_BY,
150     LAST_UPDATE_LOGIN,
151     COMMENTS,
152     LANGUAGE,
153     SOURCE_LANG
154   ) select
155     X_DISPOSITION_ID,
156     X_LAST_UPDATE_DATE,
157     X_LAST_UPDATED_BY,
158     X_CREATION_DATE,
159     X_CREATED_BY,
160     X_LAST_UPDATE_LOGIN,
161     X_COMMENTS,
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_PRD_DISPOSITIONS_TL T
169     where T.DISPOSITION_ID = X_DISPOSITION_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_DISPOSITION_ID in NUMBER,
184   X_OBJECT_VERSION_NUMBER in NUMBER,
185   X_WORKORDER_ID in NUMBER,
186   X_PART_CHANGE_ID in NUMBER,
187   X_PATH_POSITION_ID in NUMBER,
188   X_INVENTORY_ITEM_ID in NUMBER,
189   X_ORGANIZATION_ID in NUMBER,
190   X_ITEM_GROUP_ID in NUMBER,
191   X_CONDITION_ID in NUMBER,
192   X_INSTANCE_ID in NUMBER,
193   X_SERIAL_NUMBER in VARCHAR2,
194   X_LOT_NUMBER in VARCHAR2,
195   X_IMMEDIATE_DISPOSITION_CODE in VARCHAR2,
196   X_SECONDARY_DISPOSITION_CODE in VARCHAR2,
197   X_STATUS_CODE in VARCHAR2,
198   X_QUANTITY in NUMBER,
199   X_UOM in VARCHAR2,
200   X_COLLECTION_ID in NUMBER,
201   X_PRIMARY_SERVICE_REQUEST_ID in NUMBER,
202   X_NON_ROUTINE_WORKORDER_ID in NUMBER,
203   X_WO_OPERATION_ID in NUMBER,
204   X_ITEM_REVISION in VARCHAR2,
205   X_ATTRIBUTE_CATEGORY in VARCHAR2,
206   X_ATTRIBUTE1 in VARCHAR2,
207   X_ATTRIBUTE2 in VARCHAR2,
208   X_ATTRIBUTE3 in VARCHAR2,
209   X_ATTRIBUTE4 in VARCHAR2,
210   X_ATTRIBUTE5 in VARCHAR2,
211   X_ATTRIBUTE6 in VARCHAR2,
212   X_ATTRIBUTE7 in VARCHAR2,
213   X_ATTRIBUTE8 in VARCHAR2,
214   X_ATTRIBUTE9 in VARCHAR2,
215   X_ATTRIBUTE10 in VARCHAR2,
216   X_ATTRIBUTE11 in VARCHAR2,
217   X_ATTRIBUTE12 in VARCHAR2,
218   X_ATTRIBUTE13 in VARCHAR2,
219   X_ATTRIBUTE14 in VARCHAR2,
220   X_ATTRIBUTE15 in VARCHAR2,
221   X_COMMENTS in VARCHAR2
222 ) is
223   cursor c is select
224       OBJECT_VERSION_NUMBER,
225       WORKORDER_ID,
226       PART_CHANGE_ID,
227       PATH_POSITION_ID,
228       INVENTORY_ITEM_ID,
229       ORGANIZATION_ID,
230       ITEM_GROUP_ID,
231       CONDITION_ID,
232       INSTANCE_ID,
233       SERIAL_NUMBER,
234       LOT_NUMBER,
235       IMMEDIATE_DISPOSITION_CODE,
236       SECONDARY_DISPOSITION_CODE,
237       STATUS_CODE,
238       QUANTITY,
239       UOM,
240       COLLECTION_ID,
241       PRIMARY_SERVICE_REQUEST_ID,
242       NON_ROUTINE_WORKORDER_ID,
243       WO_OPERATION_ID,
244       ITEM_REVISION,
245       ATTRIBUTE_CATEGORY,
246       ATTRIBUTE1,
247       ATTRIBUTE2,
248       ATTRIBUTE3,
249       ATTRIBUTE4,
250       ATTRIBUTE5,
251       ATTRIBUTE6,
252       ATTRIBUTE7,
253       ATTRIBUTE8,
254       ATTRIBUTE9,
255       ATTRIBUTE10,
256       ATTRIBUTE11,
257       ATTRIBUTE12,
258       ATTRIBUTE13,
259       ATTRIBUTE14,
260       ATTRIBUTE15
261     from AHL_PRD_DISPOSITIONS_B
262     where DISPOSITION_ID = X_DISPOSITION_ID
263     for update of DISPOSITION_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_PRD_DISPOSITIONS_TL
270     where DISPOSITION_ID = X_DISPOSITION_ID
271     and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
272     for update of DISPOSITION_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.OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER)
283       AND (recinfo.WORKORDER_ID = X_WORKORDER_ID)
284       AND ((recinfo.PART_CHANGE_ID = X_PART_CHANGE_ID)
285            OR ((recinfo.PART_CHANGE_ID is null) AND (X_PART_CHANGE_ID is null)))
286       AND ((recinfo.PATH_POSITION_ID = X_PATH_POSITION_ID)
287            OR ((recinfo.PATH_POSITION_ID is null) AND (X_PATH_POSITION_ID is null)))
288       AND ((recinfo.INVENTORY_ITEM_ID = X_INVENTORY_ITEM_ID)
289            OR ((recinfo.INVENTORY_ITEM_ID is null) AND (X_INVENTORY_ITEM_ID is null)))
290       AND ((recinfo.ORGANIZATION_ID = X_ORGANIZATION_ID)
291            OR ((recinfo.ORGANIZATION_ID is null) AND (X_ORGANIZATION_ID is null)))
292       AND ((recinfo.ITEM_GROUP_ID = X_ITEM_GROUP_ID)
293            OR ((recinfo.ITEM_GROUP_ID is null) AND (X_ITEM_GROUP_ID is null)))
294       AND ((recinfo.CONDITION_ID = X_CONDITION_ID)
295            OR ((recinfo.CONDITION_ID is null) AND (X_CONDITION_ID is null)))
296       AND ((recinfo.INSTANCE_ID = X_INSTANCE_ID)
297            OR ((recinfo.INSTANCE_ID is null) AND (X_INSTANCE_ID is null)))
298       AND ((recinfo.SERIAL_NUMBER = X_SERIAL_NUMBER)
299            OR ((recinfo.SERIAL_NUMBER is null) AND (X_SERIAL_NUMBER is null)))
300       AND ((recinfo.LOT_NUMBER = X_LOT_NUMBER)
301            OR ((recinfo.LOT_NUMBER is null) AND (X_LOT_NUMBER is null)))
302       AND ((recinfo.IMMEDIATE_DISPOSITION_CODE = X_IMMEDIATE_DISPOSITION_CODE)
303            OR ((recinfo.IMMEDIATE_DISPOSITION_CODE is null) AND (X_IMMEDIATE_DISPOSITION_CODE is null)))
304       AND ((recinfo.SECONDARY_DISPOSITION_CODE = X_SECONDARY_DISPOSITION_CODE)
305            OR ((recinfo.SECONDARY_DISPOSITION_CODE is null) AND (X_SECONDARY_DISPOSITION_CODE is null)))
306       AND ((recinfo.STATUS_CODE = X_STATUS_CODE)
310       AND ((recinfo.UOM = X_UOM)
307            OR ((recinfo.STATUS_CODE is null) AND (X_STATUS_CODE is null)))
308       AND ((recinfo.QUANTITY = X_QUANTITY)
309            OR ((recinfo.QUANTITY is null) AND (X_QUANTITY is null)))
311            OR ((recinfo.UOM is null) AND (X_UOM is null)))
312       AND ((recinfo.COLLECTION_ID = X_COLLECTION_ID)
313            OR ((recinfo.COLLECTION_ID is null) AND (X_COLLECTION_ID is null)))
314       AND ((recinfo.PRIMARY_SERVICE_REQUEST_ID = X_PRIMARY_SERVICE_REQUEST_ID)
315            OR ((recinfo.PRIMARY_SERVICE_REQUEST_ID is null) AND (X_PRIMARY_SERVICE_REQUEST_ID is null)))
316       AND ((recinfo.NON_ROUTINE_WORKORDER_ID = X_NON_ROUTINE_WORKORDER_ID)
317            OR ((recinfo.NON_ROUTINE_WORKORDER_ID is null) AND (X_NON_ROUTINE_WORKORDER_ID is null)))
318       AND ((recinfo.WO_OPERATION_ID = X_WO_OPERATION_ID)
319            OR ((recinfo.WO_OPERATION_ID is null) AND (X_WO_OPERATION_ID is null)))
320       AND ((recinfo.ITEM_REVISION = X_ITEM_REVISION)
321            OR ((recinfo.ITEM_REVISION is null) AND (X_ITEM_REVISION is null)))
322       AND ((recinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
323            OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
324       AND ((recinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
325            OR ((recinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
326       AND ((recinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
327            OR ((recinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
328       AND ((recinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
329            OR ((recinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
330       AND ((recinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
331            OR ((recinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
332       AND ((recinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
333            OR ((recinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
334       AND ((recinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
335            OR ((recinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
336       AND ((recinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
337            OR ((recinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
338       AND ((recinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
339            OR ((recinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
340       AND ((recinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
341            OR ((recinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
342       AND ((recinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
343            OR ((recinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
344       AND ((recinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
345            OR ((recinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
346       AND ((recinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
347            OR ((recinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
348       AND ((recinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
349            OR ((recinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
350       AND ((recinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
351            OR ((recinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
352       AND ((recinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
353            OR ((recinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
354   ) then
355     null;
356   else
357     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
358     app_exception.raise_exception;
359   end if;
360 
361   for tlinfo in c1 loop
365       ) then
362     if (tlinfo.BASELANG = 'Y') then
363       if (    ((tlinfo.COMMENTS = X_COMMENTS)
364                OR ((tlinfo.COMMENTS is null) AND (X_COMMENTS is null)))
366         null;
367       else
368         fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
369         app_exception.raise_exception;
370       end if;
371     end if;
372   end loop;
373   return;
374 end LOCK_ROW;
375 
376 procedure UPDATE_ROW (
377   X_DISPOSITION_ID in NUMBER,
378   X_OBJECT_VERSION_NUMBER in NUMBER,
379   X_WORKORDER_ID in NUMBER,
380   X_PART_CHANGE_ID in NUMBER,
381   X_PATH_POSITION_ID in NUMBER,
382   X_INVENTORY_ITEM_ID in NUMBER,
383   X_ORGANIZATION_ID in NUMBER,
384   X_ITEM_GROUP_ID in NUMBER,
385   X_CONDITION_ID in NUMBER,
386   X_INSTANCE_ID in NUMBER,
387   X_SERIAL_NUMBER in VARCHAR2,
388   X_LOT_NUMBER in VARCHAR2,
389   X_IMMEDIATE_DISPOSITION_CODE in VARCHAR2,
390   X_SECONDARY_DISPOSITION_CODE in VARCHAR2,
391   X_STATUS_CODE in VARCHAR2,
392   X_QUANTITY in NUMBER,
393   X_UOM in VARCHAR2,
394   X_COLLECTION_ID in NUMBER,
395   X_PRIMARY_SERVICE_REQUEST_ID in NUMBER,
399   X_ATTRIBUTE_CATEGORY in VARCHAR2,
396   X_NON_ROUTINE_WORKORDER_ID in NUMBER,
397   X_WO_OPERATION_ID in NUMBER,
398   X_ITEM_REVISION in VARCHAR2,
400   X_ATTRIBUTE1 in VARCHAR2,
401   X_ATTRIBUTE2 in VARCHAR2,
402   X_ATTRIBUTE3 in VARCHAR2,
403   X_ATTRIBUTE4 in VARCHAR2,
404   X_ATTRIBUTE5 in VARCHAR2,
405   X_ATTRIBUTE6 in VARCHAR2,
406   X_ATTRIBUTE7 in VARCHAR2,
407   X_ATTRIBUTE8 in VARCHAR2,
408   X_ATTRIBUTE9 in VARCHAR2,
409   X_ATTRIBUTE10 in VARCHAR2,
410   X_ATTRIBUTE11 in VARCHAR2,
411   X_ATTRIBUTE12 in VARCHAR2,
412   X_ATTRIBUTE13 in VARCHAR2,
413   X_ATTRIBUTE14 in VARCHAR2,
414   X_ATTRIBUTE15 in VARCHAR2,
415   X_COMMENTS in VARCHAR2,
416   X_LAST_UPDATE_DATE in DATE,
417   X_LAST_UPDATED_BY in NUMBER,
418   X_LAST_UPDATE_LOGIN in NUMBER
419 ) is
420 begin
421   update AHL_PRD_DISPOSITIONS_B set
422     OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER,
423     WORKORDER_ID = X_WORKORDER_ID,
424     PART_CHANGE_ID = X_PART_CHANGE_ID,
425     PATH_POSITION_ID = X_PATH_POSITION_ID,
426     INVENTORY_ITEM_ID = X_INVENTORY_ITEM_ID,
427     ORGANIZATION_ID = X_ORGANIZATION_ID,
428     ITEM_GROUP_ID = X_ITEM_GROUP_ID,
429     CONDITION_ID = X_CONDITION_ID,
430     INSTANCE_ID = X_INSTANCE_ID,
431     SERIAL_NUMBER = X_SERIAL_NUMBER,
432     LOT_NUMBER = X_LOT_NUMBER,
433     IMMEDIATE_DISPOSITION_CODE = X_IMMEDIATE_DISPOSITION_CODE,
434     SECONDARY_DISPOSITION_CODE = X_SECONDARY_DISPOSITION_CODE,
435     STATUS_CODE = X_STATUS_CODE,
436     QUANTITY = X_QUANTITY,
437     UOM = X_UOM,
438     COLLECTION_ID = X_COLLECTION_ID,
439     PRIMARY_SERVICE_REQUEST_ID = X_PRIMARY_SERVICE_REQUEST_ID,
440     NON_ROUTINE_WORKORDER_ID = X_NON_ROUTINE_WORKORDER_ID,
441     WO_OPERATION_ID = X_WO_OPERATION_ID,
442     ITEM_REVISION = X_ITEM_REVISION,
443     ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
444     ATTRIBUTE1 = X_ATTRIBUTE1,
445     ATTRIBUTE2 = X_ATTRIBUTE2,
446     ATTRIBUTE3 = X_ATTRIBUTE3,
447     ATTRIBUTE4 = X_ATTRIBUTE4,
448     ATTRIBUTE5 = X_ATTRIBUTE5,
449     ATTRIBUTE6 = X_ATTRIBUTE6,
450     ATTRIBUTE7 = X_ATTRIBUTE7,
451     ATTRIBUTE8 = X_ATTRIBUTE8,
452     ATTRIBUTE9 = X_ATTRIBUTE9,
453     ATTRIBUTE10 = X_ATTRIBUTE10,
454     ATTRIBUTE11 = X_ATTRIBUTE11,
455     ATTRIBUTE12 = X_ATTRIBUTE12,
456     ATTRIBUTE13 = X_ATTRIBUTE13,
457     ATTRIBUTE14 = X_ATTRIBUTE14,
458     ATTRIBUTE15 = X_ATTRIBUTE15,
459     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
460     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
461     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
462   where DISPOSITION_ID = X_DISPOSITION_ID;
463 
464   if (sql%notfound) then
465     raise no_data_found;
466   end if;
467 
468   update AHL_PRD_DISPOSITIONS_TL set
469     COMMENTS = X_COMMENTS,
470     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
471     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
472     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
473     SOURCE_LANG = userenv('LANG')
474   where DISPOSITION_ID = X_DISPOSITION_ID
475   and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
476 
477   if (sql%notfound) then
478     raise no_data_found;
479   end if;
480 end UPDATE_ROW;
481 
482 procedure DELETE_ROW (
483   X_DISPOSITION_ID in NUMBER
484 ) is
485 begin
486   delete from AHL_PRD_DISPOSITIONS_TL
487   where DISPOSITION_ID = X_DISPOSITION_ID;
488 
489   if (sql%notfound) then
490     raise no_data_found;
491   end if;
492 
493   delete from AHL_PRD_DISPOSITIONS_B
494   where DISPOSITION_ID = X_DISPOSITION_ID;
495 
496   if (sql%notfound) then
497     raise no_data_found;
498   end if;
499 end DELETE_ROW;
500 
501 procedure ADD_LANGUAGE
502 is
503 begin
504   delete from AHL_PRD_DISPOSITIONS_TL T
505   where not exists
506     (select NULL
507     from AHL_PRD_DISPOSITIONS_B B
508     where B.DISPOSITION_ID = T.DISPOSITION_ID
509     );
510 
511   update AHL_PRD_DISPOSITIONS_TL T set (
512       COMMENTS
513     ) = (select
514       B.COMMENTS
515     from AHL_PRD_DISPOSITIONS_TL B
516     where B.DISPOSITION_ID = T.DISPOSITION_ID
517     and B.LANGUAGE = T.SOURCE_LANG)
518   where (
519       T.DISPOSITION_ID,
520       T.LANGUAGE
521   ) in (select
522       SUBT.DISPOSITION_ID,
523       SUBT.LANGUAGE
524     from AHL_PRD_DISPOSITIONS_TL SUBB, AHL_PRD_DISPOSITIONS_TL SUBT
525     where SUBB.DISPOSITION_ID = SUBT.DISPOSITION_ID
526     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
527     and (SUBB.COMMENTS <> SUBT.COMMENTS
528       or (SUBB.COMMENTS is null and SUBT.COMMENTS is not null)
529       or (SUBB.COMMENTS is not null and SUBT.COMMENTS is null)
530   ));
531 
532   insert into AHL_PRD_DISPOSITIONS_TL (
533     DISPOSITION_ID,
534     LAST_UPDATE_DATE,
535     LAST_UPDATED_BY,
536     CREATION_DATE,
537     CREATED_BY,
538     LAST_UPDATE_LOGIN,
539     COMMENTS,
540     LANGUAGE,
541     SOURCE_LANG
542   ) select /*+ ORDERED */
543     B.DISPOSITION_ID,
544     B.LAST_UPDATE_DATE,
545     B.LAST_UPDATED_BY,
546     B.CREATION_DATE,
547     B.CREATED_BY,
548     B.LAST_UPDATE_LOGIN,
549     B.COMMENTS,
550     L.LANGUAGE_CODE,
551     B.SOURCE_LANG
552   from AHL_PRD_DISPOSITIONS_TL B, FND_LANGUAGES L
553   where L.INSTALLED_FLAG in ('I', 'B')
554   and B.LANGUAGE = userenv('LANG')
555   and not exists
556     (select NULL
562 end AHL_PRD_DISPOSITIONS_PKG;
557     from AHL_PRD_DISPOSITIONS_TL T
558     where T.DISPOSITION_ID = B.DISPOSITION_ID
559     and T.LANGUAGE = L.LANGUAGE_CODE);
560 end ADD_LANGUAGE;
561