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