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