[Home] [Help]
PACKAGE BODY: APPS.CSD_DIAGNOSTIC_CODES_PKG
Source
1 package body CSD_DIAGNOSTIC_CODES_PKG as
2 /* $Header: csdtcdcb.pls 115.4 2003/11/04 23:54:42 gilam noship $ */
3
4 procedure INSERT_ROW (
5 PX_ROWID in out nocopy VARCHAR2,
6 PX_DIAGNOSTIC_CODE_ID in out nocopy NUMBER,
7 P_OBJECT_VERSION_NUMBER in NUMBER,
8 P_CREATED_BY in NUMBER,
9 P_CREATION_DATE in DATE,
10 P_LAST_UPDATED_BY in NUMBER,
11 P_LAST_UPDATE_DATE in DATE,
12 P_LAST_UPDATE_LOGIN in NUMBER,
13 P_DIAGNOSTIC_CODE in VARCHAR2,
14 P_NAME in VARCHAR2,
15 P_DESCRIPTION in VARCHAR2,
16 P_ACTIVE_FROM in DATE,
17 P_ACTIVE_TO in DATE,
18 P_ATTRIBUTE_CATEGORY in VARCHAR2,
19 P_ATTRIBUTE1 in VARCHAR2,
20 P_ATTRIBUTE2 in VARCHAR2,
21 P_ATTRIBUTE3 in VARCHAR2,
22 P_ATTRIBUTE4 in VARCHAR2,
23 P_ATTRIBUTE5 in VARCHAR2,
24 P_ATTRIBUTE6 in VARCHAR2,
25 P_ATTRIBUTE7 in VARCHAR2,
26 P_ATTRIBUTE8 in VARCHAR2,
27 P_ATTRIBUTE9 in VARCHAR2,
28 P_ATTRIBUTE10 in VARCHAR2,
29 P_ATTRIBUTE11 in VARCHAR2,
30 P_ATTRIBUTE12 in VARCHAR2,
31 P_ATTRIBUTE13 in VARCHAR2,
32 P_ATTRIBUTE14 in VARCHAR2,
33 P_ATTRIBUTE15 in VARCHAR2
34 ) is
35 cursor C is select ROWID from CSD_DIAGNOSTIC_CODES_B
36 where DIAGNOSTIC_CODE_ID = PX_DIAGNOSTIC_CODE_ID
37 ;
38 begin
39
40 select CSD_DIAGNOSTIC_CODES_S1.nextval
41 into PX_DIAGNOSTIC_CODE_ID
42 from dual;
43
44 insert into CSD_DIAGNOSTIC_CODES_B (
45 DIAGNOSTIC_CODE_ID,
46 OBJECT_VERSION_NUMBER,
47 CREATED_BY,
48 CREATION_DATE,
49 LAST_UPDATED_BY,
50 LAST_UPDATE_DATE,
51 LAST_UPDATE_LOGIN,
52 DIAGNOSTIC_CODE,
53 ACTIVE_FROM,
54 ACTIVE_TO,
55 ATTRIBUTE_CATEGORY,
56 ATTRIBUTE1,
57 ATTRIBUTE2,
58 ATTRIBUTE3,
59 ATTRIBUTE4,
60 ATTRIBUTE5,
61 ATTRIBUTE6,
62 ATTRIBUTE7,
63 ATTRIBUTE8,
64 ATTRIBUTE9,
65 ATTRIBUTE10,
66 ATTRIBUTE11,
67 ATTRIBUTE12,
68 ATTRIBUTE13,
69 ATTRIBUTE14,
70 ATTRIBUTE15
71 ) values (
72 PX_DIAGNOSTIC_CODE_ID,
73 P_OBJECT_VERSION_NUMBER,
74 P_CREATED_BY,
75 P_CREATION_DATE,
76 P_LAST_UPDATED_BY,
77 P_LAST_UPDATE_DATE,
78 P_LAST_UPDATE_LOGIN,
79 P_DIAGNOSTIC_CODE,
80 P_ACTIVE_FROM,
81 P_ACTIVE_TO,
82 P_ATTRIBUTE_CATEGORY,
83 P_ATTRIBUTE1,
84 P_ATTRIBUTE2,
85 P_ATTRIBUTE3,
86 P_ATTRIBUTE4,
87 P_ATTRIBUTE5,
88 P_ATTRIBUTE6,
89 P_ATTRIBUTE7,
90 P_ATTRIBUTE8,
91 P_ATTRIBUTE9,
92 P_ATTRIBUTE10,
93 P_ATTRIBUTE11,
94 P_ATTRIBUTE12,
95 P_ATTRIBUTE13,
96 P_ATTRIBUTE14,
97 P_ATTRIBUTE15 );
98
99 insert into CSD_DIAGNOSTIC_CODES_TL (
100 DIAGNOSTIC_CODE_ID,
101 CREATED_BY,
102 CREATION_DATE,
103 LAST_UPDATED_BY,
104 LAST_UPDATE_DATE,
105 LAST_UPDATE_LOGIN,
106 NAME,
107 DESCRIPTION,
108 LANGUAGE,
109 SOURCE_LANG
110 ) select
111 PX_DIAGNOSTIC_CODE_ID,
112 P_CREATED_BY,
113 P_CREATION_DATE,
114 P_LAST_UPDATED_BY,
115 P_LAST_UPDATE_DATE,
116 P_LAST_UPDATE_LOGIN,
117 P_NAME,
118 P_DESCRIPTION,
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 CSD_DIAGNOSTIC_CODES_TL T
126 where T.DIAGNOSTIC_CODE_ID = PX_DIAGNOSTIC_CODE_ID
127 and T.LANGUAGE = L.LANGUAGE_CODE);
128
129 open c;
130 fetch c into PX_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 PX_ROWID in out nocopy VARCHAR2,
141 P_DIAGNOSTIC_CODE_ID in NUMBER,
142 P_OBJECT_VERSION_NUMBER in NUMBER
143
144 --commented out the rest of the record
145 /*,
146 P_DIAGNOSTIC_CODE in VARCHAR2,
147 P_NAME in VARCHAR2,
148 P_DESCRIPTION in VARCHAR2,
149 P_ACTIVE_FROM in DATE,
150 P_ACTIVE_TO in DATE,
151 P_ATTRIBUTE_CATEGORY in VARCHAR2,
152 P_ATTRIBUTE1 in VARCHAR2,
153 P_ATTRIBUTE2 in VARCHAR2,
154 P_ATTRIBUTE3 in VARCHAR2,
155 P_ATTRIBUTE4 in VARCHAR2,
156 P_ATTRIBUTE5 in VARCHAR2,
157 P_ATTRIBUTE6 in VARCHAR2,
158 P_ATTRIBUTE7 in VARCHAR2,
159 P_ATTRIBUTE8 in VARCHAR2,
160 P_ATTRIBUTE9 in VARCHAR2,
161 P_ATTRIBUTE10 in VARCHAR2,
162 P_ATTRIBUTE11 in VARCHAR2,
163 P_ATTRIBUTE12 in VARCHAR2,
164 P_ATTRIBUTE13 in VARCHAR2,
165 P_ATTRIBUTE14 in VARCHAR2,
166 P_ATTRIBUTE15 in VARCHAR2
167 */
168 --
169 ) is
170 cursor c is select
171 DIAGNOSTIC_CODE_ID,
172 OBJECT_VERSION_NUMBER
173
174 --commented out the rest of the fields
175 /*,
176 DIAGNOSTIC_CODE,
177 ACTIVE_FROM,
178 ACTIVE_TO,
179 ATTRIBUTE_CATEGORY,
180 ATTRIBUTE1,
181 ATTRIBUTE2,
182 ATTRIBUTE3,
183 ATTRIBUTE4,
184 ATTRIBUTE5,
185 ATTRIBUTE6,
186 ATTRIBUTE7,
187 ATTRIBUTE8,
188 ATTRIBUTE9,
189 ATTRIBUTE10,
190 ATTRIBUTE11,
191 ATTRIBUTE12,
192 ATTRIBUTE13,
193 ATTRIBUTE14,
194 ATTRIBUTE15
195 */
196 --
197 from CSD_DIAGNOSTIC_CODES_B
198 where DIAGNOSTIC_CODE_ID = P_DIAGNOSTIC_CODE_ID
199 for update of DIAGNOSTIC_CODE_ID nowait;
200 recinfo c%rowtype;
201
202 --commented out cursor for TL table
203 /*
204 cursor c1 is select
205 NAME,
206 DESCRIPTION,
207 decode(LANGUAGE, userenv('LANG'), 'Y', 'N') BASELANG
208 from CSD_DIAGNOSTIC_CODES_TL
209 where DIAGNOSTIC_CODE_ID = P_DIAGNOSTIC_CODE_ID
210 and userenv('LANG') in (LANGUAGE, SOURCE_LANG)
211 for update of DIAGNOSTIC_CODE_ID nowait;
212 */
213 --
214 begin
215 open c;
216 fetch c into recinfo;
217 if (c%notfound) then
218 close c;
219 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
220 app_exception.raise_exception;
221 end if;
222 close c;
223 if (
224 (recinfo.DIAGNOSTIC_CODE_ID = P_DIAGNOSTIC_CODE_ID)
225 AND ((recinfo.OBJECT_VERSION_NUMBER = p_OBJECT_VERSION_NUMBER)
226 OR (recinfo.OBJECT_VERSION_NUMBER IS NULL ))
227
228 --commented out the comparison for the rest of the record
229 /*
230 AND ((recinfo.ATTRIBUTE10 = P_ATTRIBUTE10)
231 OR ((recinfo.ATTRIBUTE10 is null) AND (P_ATTRIBUTE10 is null)))
232 AND ((recinfo.ATTRIBUTE11 = P_ATTRIBUTE11)
233 OR ((recinfo.ATTRIBUTE11 is null) AND (P_ATTRIBUTE11 is null)))
234 AND ((recinfo.ATTRIBUTE7 = P_ATTRIBUTE7)
235 OR ((recinfo.ATTRIBUTE7 is null) AND (P_ATTRIBUTE7 is null)))
236 AND ((recinfo.ATTRIBUTE8 = P_ATTRIBUTE8)
237 OR ((recinfo.ATTRIBUTE8 is null) AND (P_ATTRIBUTE8 is null)))
238 AND ((recinfo.ATTRIBUTE9 = P_ATTRIBUTE9)
239 OR ((recinfo.ATTRIBUTE9 is null) AND (P_ATTRIBUTE9 is null)))
240 AND ((recinfo.ATTRIBUTE15 = P_ATTRIBUTE15)
241 OR ((recinfo.ATTRIBUTE15 is null) AND (P_ATTRIBUTE15 is null)))
242 AND (recinfo.DIAGNOSTIC_CODE = P_DIAGNOSTIC_CODE)
243
244 AND ((recinfo.ACTIVE_FROM = P_ACTIVE_FROM)
245 OR ((recinfo.ACTIVE_FROM is null) AND (P_ACTIVE_FROM = FND_API.G_MISS_DATE))
246 OR (P_ACTIVE_FROM is null))
247
248 AND ((recinfo.ACTIVE_TO = P_ACTIVE_TO)
249 OR ((recinfo.ACTIVE_TO is null) AND (P_ACTIVE_TO = FND_API.G_MISS_DATE))
250 OR (P_ACTIVE_TO is null))
251
252 AND ((recinfo.ATTRIBUTE_CATEGORY = P_ATTRIBUTE_CATEGORY)
253 OR ((recinfo.ATTRIBUTE_CATEGORY is null) AND (P_ATTRIBUTE_CATEGORY is null)))
254 AND ((recinfo.ATTRIBUTE1 = P_ATTRIBUTE1)
255 OR ((recinfo.ATTRIBUTE1 is null) AND (P_ATTRIBUTE1 is null)))
256 AND ((recinfo.ATTRIBUTE2 = P_ATTRIBUTE2)
257 OR ((recinfo.ATTRIBUTE2 is null) AND (P_ATTRIBUTE2 is null)))
258 AND ((recinfo.ATTRIBUTE3 = P_ATTRIBUTE3)
259 OR ((recinfo.ATTRIBUTE3 is null) AND (P_ATTRIBUTE3 is null)))
260 AND ((recinfo.ATTRIBUTE4 = P_ATTRIBUTE4)
261 OR ((recinfo.ATTRIBUTE4 is null) AND (P_ATTRIBUTE4 is null)))
265 OR ((recinfo.ATTRIBUTE6 is null) AND (P_ATTRIBUTE6 is null)))
262 AND ((recinfo.ATTRIBUTE5 = P_ATTRIBUTE5)
263 OR ((recinfo.ATTRIBUTE5 is null) AND (P_ATTRIBUTE5 is null)))
264 AND ((recinfo.ATTRIBUTE6 = P_ATTRIBUTE6)
266 AND ((recinfo.ATTRIBUTE12 = P_ATTRIBUTE12)
267 OR ((recinfo.ATTRIBUTE12 is null) AND (P_ATTRIBUTE12 is null)))
268 AND ((recinfo.ATTRIBUTE13 = P_ATTRIBUTE13)
269 OR ((recinfo.ATTRIBUTE13 is null) AND (P_ATTRIBUTE13 is null)))
270 AND ((recinfo.ATTRIBUTE14 = P_ATTRIBUTE14)
271 OR ((recinfo.ATTRIBUTE14 is null) AND (P_ATTRIBUTE14 is null)))
272 */
273 --
274 ) then
275 null;
276 else
277 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
278 app_exception.raise_exception;
279 end if;
280
281 --commented out the comparison for TL fields
282 /*
283 for tlinfo in c1 loop
284 if (tlinfo.BASELANG = 'Y') then
285 if ( (tlinfo.NAME = P_NAME)
286 AND ((tlinfo.DESCRIPTION = P_DESCRIPTION)
287 OR ((tlinfo.DESCRIPTION is null) AND (P_DESCRIPTION = FND_API.G_MISS_CHAR))
288 OR (P_DESCRIPTION is null))
289 ) then
290 null;
291 else
292 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
293 app_exception.raise_exception;
294 end if;
295 end if;
296 end loop;
297 */
298 --
299 return;
300 end LOCK_ROW;
301
302 procedure UPDATE_ROW (
303 P_DIAGNOSTIC_CODE_ID in NUMBER,
304 P_OBJECT_VERSION_NUMBER in NUMBER,
305 P_CREATED_BY in NUMBER,
306 P_CREATION_DATE in DATE,
307 P_LAST_UPDATED_BY in NUMBER,
308 P_LAST_UPDATE_DATE in DATE,
309 P_LAST_UPDATE_LOGIN in NUMBER,
310 P_DIAGNOSTIC_CODE in VARCHAR2,
311 P_NAME in VARCHAR2,
312 P_DESCRIPTION in VARCHAR2,
313 P_ACTIVE_FROM in DATE,
314 P_ACTIVE_TO in DATE,
315 P_ATTRIBUTE_CATEGORY in VARCHAR2,
316 P_ATTRIBUTE1 in VARCHAR2,
317 P_ATTRIBUTE2 in VARCHAR2,
318 P_ATTRIBUTE3 in VARCHAR2,
319 P_ATTRIBUTE4 in VARCHAR2,
320 P_ATTRIBUTE5 in VARCHAR2,
321 P_ATTRIBUTE6 in VARCHAR2,
322 P_ATTRIBUTE7 in VARCHAR2,
323 P_ATTRIBUTE8 in VARCHAR2,
324 P_ATTRIBUTE9 in VARCHAR2,
325 P_ATTRIBUTE10 in VARCHAR2,
326 P_ATTRIBUTE11 in VARCHAR2,
327 P_ATTRIBUTE12 in VARCHAR2,
328 P_ATTRIBUTE13 in VARCHAR2,
329 P_ATTRIBUTE14 in VARCHAR2,
330 P_ATTRIBUTE15 in VARCHAR2
331 ) is
332 begin
333 update CSD_DIAGNOSTIC_CODES_B set
334 OBJECT_VERSION_NUMBER = decode( P_OBJECT_VERSION_NUMBER, FND_API.G_MISS_NUM, NULL, NULL, OBJECT_VERSION_NUMBER, P_OBJECT_VERSION_NUMBER)
335 ,CREATED_BY = decode( P_CREATED_BY, FND_API.G_MISS_NUM, NULL, NULL, CREATED_BY, P_CREATED_BY)
336 ,CREATION_DATE = decode( P_CREATION_DATE, FND_API.G_MISS_DATE, NULL, NULL, CREATION_DATE, P_CREATION_DATE)
337 ,LAST_UPDATED_BY = decode( P_LAST_UPDATED_BY, FND_API.G_MISS_NUM, NULL, NULL, LAST_UPDATED_BY, P_LAST_UPDATED_BY)
338 ,LAST_UPDATE_DATE = decode( P_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, NULL, NULL, LAST_UPDATE_DATE, P_LAST_UPDATE_DATE)
339 ,LAST_UPDATE_LOGIN = decode( P_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, NULL, NULL, LAST_UPDATE_LOGIN, P_LAST_UPDATE_LOGIN)
340 ,DIAGNOSTIC_CODE = decode( P_DIAGNOSTIC_CODE, FND_API.G_MISS_CHAR, NULL, NULL, DIAGNOSTIC_CODE, P_DIAGNOSTIC_CODE)
341 ,ACTIVE_FROM = decode( P_ACTIVE_FROM, FND_API.G_MISS_DATE, NULL, NULL, ACTIVE_FROM, P_ACTIVE_FROM)
342 ,ACTIVE_TO = decode( P_ACTIVE_TO, FND_API.G_MISS_DATE, NULL, NULL, ACTIVE_TO, P_ACTIVE_TO)
343 ,ATTRIBUTE_CATEGORY = decode( P_ATTRIBUTE_CATEGORY, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE_CATEGORY, P_ATTRIBUTE_CATEGORY)
344 ,ATTRIBUTE1 = decode( P_ATTRIBUTE1, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE1, P_ATTRIBUTE1)
345 ,ATTRIBUTE2 = decode( P_ATTRIBUTE2, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE2, P_ATTRIBUTE2)
346 ,ATTRIBUTE3 = decode( P_ATTRIBUTE3, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE3, P_ATTRIBUTE3)
347 ,ATTRIBUTE4 = decode( P_ATTRIBUTE4, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE4, P_ATTRIBUTE4)
348 ,ATTRIBUTE5 = decode( P_ATTRIBUTE5, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE5, P_ATTRIBUTE5)
349 ,ATTRIBUTE6 = decode( P_ATTRIBUTE6, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE6, P_ATTRIBUTE6)
350 ,ATTRIBUTE7 = decode( P_ATTRIBUTE7, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE7, P_ATTRIBUTE7)
351 ,ATTRIBUTE8 = decode( P_ATTRIBUTE8, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE8, P_ATTRIBUTE8)
352 ,ATTRIBUTE9 = decode( P_ATTRIBUTE9, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE9, P_ATTRIBUTE9)
353 ,ATTRIBUTE10 = decode( P_ATTRIBUTE10, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE10, P_ATTRIBUTE10)
354 ,ATTRIBUTE11 = decode( P_ATTRIBUTE11, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE11, P_ATTRIBUTE11)
355 ,ATTRIBUTE12 = decode( P_ATTRIBUTE12, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE12, P_ATTRIBUTE12)
356 ,ATTRIBUTE13 = decode( P_ATTRIBUTE13, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE13, P_ATTRIBUTE13)
357 ,ATTRIBUTE14 = decode( P_ATTRIBUTE14, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE14, P_ATTRIBUTE14)
358 ,ATTRIBUTE15 = decode( P_ATTRIBUTE15, FND_API.G_MISS_CHAR, NULL, NULL, ATTRIBUTE15, P_ATTRIBUTE15)
359 where DIAGNOSTIC_CODE_ID = P_DIAGNOSTIC_CODE_ID;
360
361 if (sql%notfound) then
362 raise no_data_found;
363 end if;
364
365 update CSD_DIAGNOSTIC_CODES_TL set
366 CREATED_BY = decode( P_CREATED_BY, FND_API.G_MISS_NUM, NULL, NULL, CREATED_BY, P_CREATED_BY)
367 ,CREATION_DATE = decode( P_CREATION_DATE, FND_API.G_MISS_DATE, NULL, NULL, CREATION_DATE, P_CREATION_DATE)
368 ,LAST_UPDATED_BY = decode( P_LAST_UPDATED_BY, FND_API.G_MISS_NUM, NULL, NULL, LAST_UPDATED_BY, P_LAST_UPDATED_BY)
369 ,LAST_UPDATE_DATE = decode( P_LAST_UPDATE_DATE, FND_API.G_MISS_DATE, NULL, NULL, LAST_UPDATE_DATE, P_LAST_UPDATE_DATE)
373 ,SOURCE_LANG = userenv('LANG')
370 ,LAST_UPDATE_LOGIN = decode( P_LAST_UPDATE_LOGIN, FND_API.G_MISS_NUM, NULL, NULL, LAST_UPDATE_LOGIN, P_LAST_UPDATE_LOGIN)
371 ,NAME = decode( P_NAME, FND_API.G_MISS_CHAR, NULL, NULL, NAME, P_NAME)
372 ,DESCRIPTION = decode( P_DESCRIPTION, FND_API.G_MISS_CHAR, NULL, NULL, DESCRIPTION, P_DESCRIPTION)
374 where DIAGNOSTIC_CODE_ID = P_DIAGNOSTIC_CODE_ID
375 and userenv('LANG') in (LANGUAGE, SOURCE_LANG);
376
377 if (sql%notfound) then
378 raise no_data_found;
379 end if;
380 end UPDATE_ROW;
381
382 procedure DELETE_ROW (
383 P_DIAGNOSTIC_CODE_ID in NUMBER
384 ) is
385 begin
386 delete from CSD_DIAGNOSTIC_CODES_TL
387 where DIAGNOSTIC_CODE_ID = P_DIAGNOSTIC_CODE_ID;
388
389 if (sql%notfound) then
390 raise no_data_found;
391 end if;
392
393 delete from CSD_DIAGNOSTIC_CODES_B
394 where DIAGNOSTIC_CODE_ID = P_DIAGNOSTIC_CODE_ID;
395
396 if (sql%notfound) then
397 raise no_data_found;
398 end if;
399 end DELETE_ROW;
400
401 procedure ADD_LANGUAGE
402 is
403 begin
404 delete from CSD_DIAGNOSTIC_CODES_TL T
405 where not exists
406 (select NULL
407 from CSD_DIAGNOSTIC_CODES_B B
408 where B.DIAGNOSTIC_CODE_ID = T.DIAGNOSTIC_CODE_ID
409 );
410
411 update CSD_DIAGNOSTIC_CODES_TL T set (
412 NAME,
413 DESCRIPTION
414 ) = (select
415 B.NAME,
416 B.DESCRIPTION
417 from CSD_DIAGNOSTIC_CODES_TL B
418 where B.DIAGNOSTIC_CODE_ID = T.DIAGNOSTIC_CODE_ID
419 and B.LANGUAGE = T.SOURCE_LANG)
420 where (
421 T.DIAGNOSTIC_CODE_ID,
422 T.LANGUAGE
423 ) in (select
424 SUBT.DIAGNOSTIC_CODE_ID,
425 SUBT.LANGUAGE
426 from CSD_DIAGNOSTIC_CODES_TL SUBB, CSD_DIAGNOSTIC_CODES_TL SUBT
427 where SUBB.DIAGNOSTIC_CODE_ID = SUBT.DIAGNOSTIC_CODE_ID
428 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
429 and (SUBB.NAME <> SUBT.NAME
430 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
431 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
432 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
433 ));
434
435 insert into CSD_DIAGNOSTIC_CODES_TL (
436 DIAGNOSTIC_CODE_ID,
437 CREATED_BY,
438 CREATION_DATE,
439 LAST_UPDATED_BY,
440 LAST_UPDATE_DATE,
441 LAST_UPDATE_LOGIN,
442 NAME,
443 DESCRIPTION,
444 LANGUAGE,
445 SOURCE_LANG
446 ) select /*+ ORDERED */
447 B.DIAGNOSTIC_CODE_ID,
448 B.CREATED_BY,
449 B.CREATION_DATE,
450 B.LAST_UPDATED_BY,
451 B.LAST_UPDATE_DATE,
452 B.LAST_UPDATE_LOGIN,
453 B.NAME,
454 B.DESCRIPTION,
455 L.LANGUAGE_CODE,
456 B.SOURCE_LANG
457 from CSD_DIAGNOSTIC_CODES_TL B, FND_LANGUAGES L
458 where L.INSTALLED_FLAG in ('I', 'B')
459 and B.LANGUAGE = userenv('LANG')
460 and not exists
461 (select NULL
462 from CSD_DIAGNOSTIC_CODES_TL T
463 where T.DIAGNOSTIC_CODE_ID = B.DIAGNOSTIC_CODE_ID
464 and T.LANGUAGE = L.LANGUAGE_CODE);
465 end ADD_LANGUAGE;
466
467 end CSD_DIAGNOSTIC_CODES_PKG;