[Home] [Help]
PACKAGE BODY: APPS.MTL_UNITS_OF_MEASURE_TL_PKG
Source
1 package body MTL_UNITS_OF_MEASURE_TL_PKG as
2 /* $Header: INVUOMSB.pls 120.2 2006/05/17 17:55:10 satkumar noship $ */
3 procedure INSERT_ROW (
4 X_ROW_ID IN OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
5 X_UNIT_OF_MEASURE in VARCHAR2,
6 X_UNIT_OF_MEASURE_TL in VARCHAR2,
7 X_ATTRIBUTE_CATEGORY in VARCHAR2,
8 X_ATTRIBUTE1 in VARCHAR2,
9 X_ATTRIBUTE2 in VARCHAR2,
10 X_ATTRIBUTE3 in VARCHAR2,
11 X_ATTRIBUTE4 in VARCHAR2,
12 X_ATTRIBUTE5 in VARCHAR2,
13 X_ATTRIBUTE6 in VARCHAR2,
14 X_ATTRIBUTE7 in VARCHAR2,
15 X_ATTRIBUTE8 in VARCHAR2,
16 X_ATTRIBUTE9 in VARCHAR2,
17 X_ATTRIBUTE10 in VARCHAR2,
18 X_ATTRIBUTE11 in VARCHAR2,
19 X_ATTRIBUTE12 in VARCHAR2,
20 X_ATTRIBUTE13 in VARCHAR2,
21 X_ATTRIBUTE14 in VARCHAR2,
22 X_ATTRIBUTE15 in VARCHAR2,
23 X_REQUEST_ID in NUMBER,
24 X_DISABLE_DATE in DATE,
25 X_BASE_UOM_FLAG in VARCHAR2,
26 X_UOM_CODE in VARCHAR2,
27 X_UOM_CLASS in VARCHAR2,
28 X_DESCRIPTION in VARCHAR2,
29 X_CREATION_DATE in DATE,
30 X_CREATED_BY in NUMBER,
31 X_LAST_UPDATE_DATE in DATE,
32 X_LAST_UPDATED_BY in NUMBER,
33 X_LAST_UPDATE_LOGIN in NUMBER,
34 X_PROGRAM_APPLICATION_ID in NUMBER,
35 X_PROGRAM_ID in NUMBER,
36 X_PROGRAM_UPDATE_DATE in DATE
37 ) IS
38 BEGIN
39 INSERT_ROW
40 (
41 X_ROW_ID ,
42 X_UNIT_OF_MEASURE ,
43 X_UNIT_OF_MEASURE_TL ,
44 X_ATTRIBUTE_CATEGORY ,
45 X_ATTRIBUTE1 ,
46 X_ATTRIBUTE2 ,
47 X_ATTRIBUTE3 ,
48 X_ATTRIBUTE4 ,
49 X_ATTRIBUTE5 ,
50 X_ATTRIBUTE6 ,
51 X_ATTRIBUTE7 ,
52 X_ATTRIBUTE8 ,
53 X_ATTRIBUTE9 ,
54 X_ATTRIBUTE10 ,
55 X_ATTRIBUTE11 ,
56 X_ATTRIBUTE12 ,
57 X_ATTRIBUTE13 ,
58 X_ATTRIBUTE14 ,
59 X_ATTRIBUTE15 ,
60 X_REQUEST_ID ,
61 X_DISABLE_DATE ,
62 X_BASE_UOM_FLAG ,
63 X_UOM_CODE ,
64 X_UOM_CLASS ,
65 X_DESCRIPTION ,
66 X_CREATION_DATE ,
67 X_CREATED_BY ,
68 X_LAST_UPDATE_DATE ,
69 X_LAST_UPDATED_BY ,
70 X_LAST_UPDATE_LOGIN ,
71 X_PROGRAM_APPLICATION_ID ,
72 X_PROGRAM_ID ,
73 X_PROGRAM_UPDATE_DATE ,
74 userenv('LANG')
75 );
76 END insert_row;
77 --
78 procedure LOCK_ROW (
79 X_UNIT_OF_MEASURE in VARCHAR2,
80 X_UNIT_OF_MEASURE_TL in VARCHAR2,
81 X_UOM_CODE in VARCHAR2,
82 X_UOM_CLASS in VARCHAR2,
83 X_BASE_UOM_FLAG in VARCHAR2,
84 X_DESCRIPTION in VARCHAR2,
85 X_DISABLE_DATE in DATE,
86 X_ATTRIBUTE_CATEGORY in VARCHAR2,
87 X_ATTRIBUTE1 in VARCHAR2,
88 X_ATTRIBUTE2 in VARCHAR2,
89 X_ATTRIBUTE3 in VARCHAR2,
90 X_ATTRIBUTE4 in VARCHAR2,
91 X_ATTRIBUTE5 in VARCHAR2,
92 X_ATTRIBUTE6 in VARCHAR2,
93 X_ATTRIBUTE7 in VARCHAR2,
94 X_ATTRIBUTE8 in VARCHAR2,
95 X_ATTRIBUTE9 in VARCHAR2,
96 X_ATTRIBUTE10 in VARCHAR2,
97 X_ATTRIBUTE11 in VARCHAR2,
98 X_ATTRIBUTE12 in VARCHAR2,
99 X_ATTRIBUTE13 in VARCHAR2,
100 X_ATTRIBUTE14 in VARCHAR2,
101 X_ATTRIBUTE15 in VARCHAR2,
102 X_REQUEST_ID in NUMBER
103 )
104 IS
105 BEGIN
106 lock_row
107 (X_UNIT_OF_MEASURE ,
108 X_UNIT_OF_MEASURE_TL ,
109 X_UOM_CODE ,
110 X_UOM_CLASS ,
111 X_BASE_UOM_FLAG ,
112 X_DESCRIPTION ,
113 X_DISABLE_DATE ,
114 X_ATTRIBUTE_CATEGORY ,
115 X_ATTRIBUTE1 ,
116 X_ATTRIBUTE2 ,
117 X_ATTRIBUTE3 ,
118 X_ATTRIBUTE4 ,
119 X_ATTRIBUTE5 ,
120 X_ATTRIBUTE6 ,
121 X_ATTRIBUTE7 ,
122 X_ATTRIBUTE8 ,
123 X_ATTRIBUTE9 ,
124 X_ATTRIBUTE10 ,
125 X_ATTRIBUTE11 ,
126 X_ATTRIBUTE12 ,
127 X_ATTRIBUTE13 ,
128 X_ATTRIBUTE14 ,
129 X_ATTRIBUTE15 ,
130 X_REQUEST_ID ,
131 userenv('LANG')
132 );
133 END lock_row;
134 --
135
136 procedure UPDATE_ROW (
137 X_UNIT_OF_MEASURE in VARCHAR2,
138 X_UNIT_OF_MEASURE_TL in VARCHAR2,
139 X_UOM_CODE in VARCHAR2,
140 X_UOM_CLASS in VARCHAR2,
141 X_BASE_UOM_FLAG in VARCHAR2,
142 X_DESCRIPTION in VARCHAR2,
143 X_DISABLE_DATE in DATE,
144 X_ATTRIBUTE_CATEGORY in VARCHAR2,
145 X_ATTRIBUTE1 in VARCHAR2,
146 X_ATTRIBUTE2 in VARCHAR2,
147 X_ATTRIBUTE3 in VARCHAR2,
148 X_ATTRIBUTE4 in VARCHAR2,
149 X_ATTRIBUTE5 in VARCHAR2,
150 X_ATTRIBUTE6 in VARCHAR2,
151 X_ATTRIBUTE7 in VARCHAR2,
152 X_ATTRIBUTE8 in VARCHAR2,
153 X_ATTRIBUTE9 in VARCHAR2,
154 X_ATTRIBUTE10 in VARCHAR2,
155 X_ATTRIBUTE11 in VARCHAR2,
156 X_ATTRIBUTE12 in VARCHAR2,
157 X_ATTRIBUTE13 in VARCHAR2,
158 X_ATTRIBUTE14 in VARCHAR2,
159 X_ATTRIBUTE15 in VARCHAR2,
160 X_REQUEST_ID in NUMBER,
161 X_LAST_UPDATE_DATE in DATE,
162 X_LAST_UPDATED_BY in NUMBER,
163 X_LAST_UPDATE_LOGIN in NUMBER
164 )
165 IS
166 BEGIN
167 update_row
168 (x_UNIT_OF_MEASURE ,
169 X_UNIT_OF_MEASURE_TL ,
170 X_UOM_CODE ,
171 X_UOM_CLASS ,
172 X_BASE_UOM_FLAG ,
173 X_DESCRIPTION ,
174 X_DISABLE_DATE ,
175 X_ATTRIBUTE_CATEGORY ,
176 X_ATTRIBUTE1 ,
177 X_ATTRIBUTE2 ,
178 X_ATTRIBUTE3 ,
179 X_ATTRIBUTE4 ,
180 X_ATTRIBUTE5 ,
181 X_ATTRIBUTE6 ,
182 X_ATTRIBUTE7 ,
183 X_ATTRIBUTE8 ,
184 X_ATTRIBUTE9 ,
185 X_ATTRIBUTE10 ,
186 X_ATTRIBUTE11 ,
187 X_ATTRIBUTE12 ,
188 X_ATTRIBUTE13 ,
189 X_ATTRIBUTE14 ,
190 X_ATTRIBUTE15 ,
191 X_REQUEST_ID ,
192 X_LAST_UPDATE_DATE ,
193 X_LAST_UPDATED_BY ,
194 X_LAST_UPDATE_LOGIN ,
195 userenv('LANG')
196 );
197 END update_row;
198 --
199
200 procedure DELETE_ROW (
201 X_UNIT_OF_MEASURE in VARCHAR2
202 ) as
203 begin
204 delete from MTL_UNITS_OF_MEASURE_TL
205 where UNIT_OF_MEASURE = X_UNIT_OF_MEASURE;
206
207 if (sql%notfound) then
208 raise no_data_found;
209 end if;
210
211 end DELETE_ROW;
212
213 procedure LOAD_ROW (
214 X_UNIT_OF_MEASURE in VARCHAR2,
215 X_UOM_CODE in VARCHAR2,
216 X_OWNER in VARCHAR2,
217 X_UNIT_OF_MEASURE_TL in VARCHAR2,
218 X_UOM_CLASS in VARCHAR2,
219 X_BASE_UOM_FLAG in VARCHAR2,
220 X_DESCRIPTION in VARCHAR2,
221 X_DISABLE_DATE in DATE,
222 X_ATTRIBUTE_CATEGORY in VARCHAR2,
223 X_ATTRIBUTE1 in VARCHAR2,
224 X_ATTRIBUTE2 in VARCHAR2,
225 X_ATTRIBUTE3 in VARCHAR2,
226 X_ATTRIBUTE4 in VARCHAR2,
227 X_ATTRIBUTE5 in VARCHAR2,
228 X_ATTRIBUTE6 in VARCHAR2,
229 X_ATTRIBUTE7 in VARCHAR2,
230 X_ATTRIBUTE8 in VARCHAR2,
231 X_ATTRIBUTE9 in VARCHAR2,
232 X_ATTRIBUTE10 in VARCHAR2,
233 X_ATTRIBUTE11 in VARCHAR2,
234 X_ATTRIBUTE12 in VARCHAR2,
235 X_ATTRIBUTE13 in VARCHAR2,
236 X_ATTRIBUTE14 in VARCHAR2,
237 X_ATTRIBUTE15 in VARCHAR2,
238 X_REQUEST_ID in NUMBER,
239 X_APPL_SHORT_NAME in VARCHAR2
240 ) as
241 user_id NUMBER;
242 row_id VARCHAR2(64);
243 l_program_application_id number;
244 begin
245 if x_owner = 'SEED' then
246 user_id := 1;
247 else
248 user_id := 0;
249 end if;
250
251 if( X_APPL_SHORT_NAME is not null ) then
252 select application_id
253 into l_program_application_id
254 from fnd_application
255 where application_short_name = X_APPL_SHORT_NAME;
256 end if;
257
258 mtl_units_of_measure_tl_pkg.update_row(
259 x_unit_of_measure => x_unit_of_measure,
260 x_unit_of_measure_tl => x_unit_of_measure_tl,
261 x_uom_code => x_uom_code,
262 x_uom_class => x_uom_class,
263 x_base_uom_flag => x_base_uom_flag,
264 x_description => x_description,
265 x_disable_date => x_disable_date,
266 x_attribute_category => x_attribute_category,
267 x_attribute1 => x_attribute1,
268 x_attribute2 => x_attribute2,
269 x_attribute3 => x_attribute3,
270 x_attribute4 => x_attribute4,
271 x_attribute5 => x_attribute5,
272 x_attribute6 => x_attribute6,
273 x_attribute7 => x_attribute7,
274 x_attribute8 => x_attribute8,
275 x_attribute9 => x_attribute9,
276 x_attribute10 => x_attribute10,
277 x_attribute11 => x_attribute11,
278 x_attribute12 => x_attribute12,
279 x_attribute13 => x_attribute13,
280 x_attribute14 => x_attribute14,
281 x_attribute15 => x_attribute14,
282 x_request_id => x_request_id,
283 x_last_update_date => sysdate,
284 x_last_updated_by => user_id,
285 x_last_update_login => 0);
286 Exception
287 when no_data_found then
288 mtl_units_of_measure_tl_pkg.insert_row(
289 x_row_id => row_id,
290 x_unit_of_measure => x_unit_of_measure,
291 x_unit_of_measure_tl => x_unit_of_measure_tl,
292 x_attribute_category => x_attribute_category,
293 x_attribute1 => x_attribute1,
294 x_attribute2 => x_attribute2,
295 x_attribute3 => x_attribute3,
296 x_attribute4 => x_attribute4,
297 x_attribute5 => x_attribute5,
298 x_attribute6 => x_attribute6,
299 x_attribute7 => x_attribute7,
300 x_attribute8 => x_attribute8,
301 x_attribute9 => x_attribute9,
302 x_attribute10 => x_attribute10,
303 x_attribute11 => x_attribute11,
304 x_attribute12 => x_attribute12,
305 x_attribute13 => x_attribute13,
306 x_attribute14 => x_attribute14,
307 x_attribute15 => x_attribute15,
308 x_request_id => x_request_id,
309 x_disable_date => x_disable_date,
310 x_base_uom_flag => x_base_uom_flag,
311 x_uom_code => x_uom_code,
312 x_uom_class => x_uom_class,
313 x_description => x_description,
314 x_creation_date => sysdate,
315 x_created_by => user_id,
316 x_last_update_date => sysdate,
317 x_last_updated_by => user_id,
318 x_last_update_login => 0,
319 x_program_application_id => l_program_application_id,
320 x_program_id => null,
321 x_program_update_date => null);
322 end LOAD_ROW;
323
324 procedure TRANSLATE_ROW (
325 X_UNIT_OF_MEASURE in VARCHAR2,
326 X_OWNER in VARCHAR2,
327 X_UNIT_OF_MEASURE_TL in VARCHAR2,
328 X_DESCRIPTION in VARCHAR2
329 ) as
330 BEGIN
331
332
333 update mtl_units_of_measure_tl set
334 unit_of_measure_tl = X_UNIT_OF_MEASURE_TL,
335 description = X_DESCRIPTION,
336 LAST_UPDATE_DATE = sysdate,
337 LAST_UPDATED_BY = decode(x_owner, 'SEED', 1, 0),
338 LAST_UPDATE_LOGIN = 0,
339 SOURCE_LANG = userenv('LANG')
340 where userenv('LANG') in (LANGUAGE, SOURCE_LANG)
341 and unit_of_measure = x_unit_of_measure;
342 end TRANSLATE_ROW;
343
344 procedure ADD_LANGUAGE
345 as
346 BEGIN
347
348 update MTL_UNITS_OF_MEASURE_TL T set (
349 UNIT_OF_MEASURE_TL,
350 DESCRIPTION
351 ) = (select
352 B.UNIT_OF_MEASURE,
353 B.DESCRIPTION
354 from MTL_UNITS_OF_MEASURE_TL B
355 where B.UNIT_OF_MEASURE = T.UNIT_OF_MEASURE
356 and B.LANGUAGE = T.SOURCE_LANG)
357 where (
358 T.UNIT_OF_MEASURE,
359 T.LANGUAGE
360 ) in (select
361 SUBT.UNIT_OF_MEASURE,
362 SUBT.LANGUAGE
363 from MTL_UNITS_OF_MEASURE_TL SUBB, MTL_UNITS_OF_MEASURE_TL SUBT
364 where SUBB.UNIT_OF_MEASURE = SUBT.UNIT_OF_MEASURE
365 and SUBB.LANGUAGE = SUBT.SOURCE_LANG
366 and (SUBB.UNIT_OF_MEASURE_TL <> SUBT.UNIT_OF_MEASURE_TL
367 or SUBB.DESCRIPTION <> SUBT.DESCRIPTION
368 or (SUBB.DESCRIPTION is null and SUBT.DESCRIPTION is not null)
369 or (SUBB.DESCRIPTION is not null and SUBT.DESCRIPTION is null)
370 ));
371
372 insert into MTL_UNITS_OF_MEASURE_TL (
373 UNIT_OF_MEASURE,
374 UNIT_OF_MEASURE_TL,
375 ATTRIBUTE1,
376 ATTRIBUTE2,
377 ATTRIBUTE3,
378 ATTRIBUTE4,
379 ATTRIBUTE5,
380 ATTRIBUTE6,
381 ATTRIBUTE7,
382 ATTRIBUTE8,
383 ATTRIBUTE9,
384 ATTRIBUTE10,
385 ATTRIBUTE11,
386 ATTRIBUTE12,
387 ATTRIBUTE13,
388 ATTRIBUTE14,
389 ATTRIBUTE15,
390 REQUEST_ID,
391 PROGRAM_APPLICATION_ID,
392 PROGRAM_ID,
393 PROGRAM_UPDATE_DATE,
394 LAST_UPDATE_DATE,
395 LAST_UPDATED_BY,
396 CREATION_DATE,
397 CREATED_BY,
398 LAST_UPDATE_LOGIN,
399 DESCRIPTION,
400 DISABLE_DATE,
401 ATTRIBUTE_CATEGORY,
402 BASE_UOM_FLAG,
403 UOM_CODE,
404 UOM_CLASS,
405 LANGUAGE,
406 SOURCE_LANG
407 ) select
408 B.UNIT_OF_MEASURE,
409 B.UNIT_OF_MEASURE_TL,
410 B.ATTRIBUTE1,
411 B.ATTRIBUTE2,
412 B.ATTRIBUTE3,
413 B.ATTRIBUTE4,
414 B.ATTRIBUTE5,
415 B.ATTRIBUTE6,
416 B.ATTRIBUTE7,
417 B.ATTRIBUTE8,
418 B.ATTRIBUTE9,
419 B.ATTRIBUTE10,
420 B.ATTRIBUTE11,
421 B.ATTRIBUTE12,
422 B.ATTRIBUTE13,
423 B.ATTRIBUTE14,
424 B.ATTRIBUTE15,
425 B.REQUEST_ID,
426 B.PROGRAM_APPLICATION_ID,
427 B.PROGRAM_ID,
428 B.PROGRAM_UPDATE_DATE,
429 B.LAST_UPDATE_DATE,
430 B.LAST_UPDATED_BY,
431 B.CREATION_DATE,
432 B.CREATED_BY,
433 B.LAST_UPDATE_LOGIN,
434 B.DESCRIPTION,
435 B.DISABLE_DATE,
436 B.ATTRIBUTE_CATEGORY,
437 B.BASE_UOM_FLAG,
438 B.UOM_CODE,
439 B.UOM_CLASS,
440 L.LANGUAGE_CODE,
441 B.SOURCE_LANG
442 from MTL_UNITS_OF_MEASURE_TL B, FND_LANGUAGES L
443 where L.INSTALLED_FLAG in ('I', 'B')
444 and B.LANGUAGE = userenv('LANG')
445 and not exists
446 (select NULL
447 from MTL_UNITS_OF_MEASURE_TL T
448 where T.UNIT_OF_MEASURE = B.UNIT_OF_MEASURE
449 and T.LANGUAGE = L.LANGUAGE_CODE);
450
451
452 end ADD_LANGUAGE;
453
454 --
455
456 /* overloaded by Oracle Exchange */
457 procedure INSERT_ROW (
458 X_ROW_ID IN OUT NOCOPY /* file.sql.39 change */ VARCHAR2,
459 X_UNIT_OF_MEASURE in VARCHAR2,
460 X_UNIT_OF_MEASURE_TL in VARCHAR2,
461 X_ATTRIBUTE_CATEGORY in VARCHAR2,
462 X_ATTRIBUTE1 in VARCHAR2,
463 X_ATTRIBUTE2 in VARCHAR2,
464 X_ATTRIBUTE3 in VARCHAR2,
465 X_ATTRIBUTE4 in VARCHAR2,
466 X_ATTRIBUTE5 in VARCHAR2,
467 X_ATTRIBUTE6 in VARCHAR2,
468 X_ATTRIBUTE7 in VARCHAR2,
469 X_ATTRIBUTE8 in VARCHAR2,
470 X_ATTRIBUTE9 in VARCHAR2,
471 X_ATTRIBUTE10 in VARCHAR2,
472 X_ATTRIBUTE11 in VARCHAR2,
473 X_ATTRIBUTE12 in VARCHAR2,
474 X_ATTRIBUTE13 in VARCHAR2,
475 X_ATTRIBUTE14 in VARCHAR2,
476 X_ATTRIBUTE15 in VARCHAR2,
477 X_REQUEST_ID in NUMBER,
478 X_DISABLE_DATE in DATE,
479 X_BASE_UOM_FLAG in VARCHAR2,
480 X_UOM_CODE in VARCHAR2,
481 X_UOM_CLASS in VARCHAR2,
482 X_DESCRIPTION in VARCHAR2,
483 X_CREATION_DATE in DATE,
484 X_CREATED_BY in NUMBER,
485 X_LAST_UPDATE_DATE in DATE,
486 X_LAST_UPDATED_BY in NUMBER,
487 X_LAST_UPDATE_LOGIN in NUMBER,
488 X_PROGRAM_APPLICATION_ID in NUMBER,
489 X_PROGRAM_ID in NUMBER,
490 X_PROGRAM_UPDATE_DATE in DATE,
491 x_language IN VARCHAR2
492 ) as
493 cursor C is select ROWID from MTL_UNITS_OF_MEASURE_TL
494 where UNIT_OF_MEASURE = X_UNIT_OF_MEASURE
495 and LANGUAGE = x_language
496 ;
497 begin
498 insert into MTL_UNITS_OF_MEASURE_TL (
499 UNIT_OF_MEASURE,
503 BASE_UOM_FLAG,
500 UNIT_OF_MEASURE_TL,
501 UOM_CODE,
502 UOM_CLASS,
504 DESCRIPTION,
505 DISABLE_DATE,
506 ATTRIBUTE_CATEGORY,
507 ATTRIBUTE1,
508 ATTRIBUTE2,
509 ATTRIBUTE3,
510 ATTRIBUTE4,
511 ATTRIBUTE5,
512 ATTRIBUTE6,
513 ATTRIBUTE7,
514 ATTRIBUTE8,
515 ATTRIBUTE9,
516 ATTRIBUTE10,
517 ATTRIBUTE11,
518 ATTRIBUTE12,
519 ATTRIBUTE13,
520 ATTRIBUTE14,
521 ATTRIBUTE15,
522 LAST_UPDATE_DATE,
523 LAST_UPDATED_BY,
524 CREATION_DATE,
525 CREATED_BY,
526 LAST_UPDATE_LOGIN,
527 REQUEST_ID,
528 PROGRAM_APPLICATION_ID,
529 PROGRAM_ID,
530 PROGRAM_UPDATE_DATE,
531 LANGUAGE,
532 SOURCE_LANG
533 ) select
534 X_UNIT_OF_MEASURE,
535 X_UNIT_OF_MEASURE_TL,
536 X_UOM_CODE,
537 X_UOM_CLASS,
538 X_BASE_UOM_FLAG,
539 X_DESCRIPTION,
540 X_DISABLE_DATE,
541 X_ATTRIBUTE_CATEGORY,
542 X_ATTRIBUTE1,
543 X_ATTRIBUTE2,
544 X_ATTRIBUTE3,
545 X_ATTRIBUTE4,
546 X_ATTRIBUTE5,
547 X_ATTRIBUTE6,
548 X_ATTRIBUTE7,
549 X_ATTRIBUTE8,
550 X_ATTRIBUTE9,
551 X_ATTRIBUTE10,
552 X_ATTRIBUTE11,
553 X_ATTRIBUTE12,
554 X_ATTRIBUTE13,
555 X_ATTRIBUTE14,
556 X_ATTRIBUTE15,
557 X_LAST_UPDATE_DATE,
558 X_LAST_UPDATED_BY,
559 X_CREATION_DATE,
560 X_CREATED_BY,
561 X_LAST_UPDATE_LOGIN,
562 X_REQUEST_ID,
563 X_PROGRAM_APPLICATION_ID,
564 X_PROGRAM_ID,
565 X_PROGRAM_UPDATE_DATE,
566 L.LANGUAGE_CODE,
567 x_language
568 from FND_LANGUAGES L
569 where L.INSTALLED_FLAG in ('I', 'B')
570 and not exists
571 (select NULL
572 from MTL_UNITS_OF_MEASURE_TL T
573 where T.UNIT_OF_MEASURE = X_UNIT_OF_MEASURE
574 and T.LANGUAGE = L.LANGUAGE_CODE);
575
576 open c;
577 fetch c into X_ROW_ID;
578 if (c%notfound) then
579 close c;
580 raise no_data_found;
581 end if;
582 close c;
583
584 end INSERT_ROW;
585 --
586 /* overloaded by Oracle Exchange */
587 procedure LOCK_ROW (
588 X_UNIT_OF_MEASURE in VARCHAR2,
589 X_UNIT_OF_MEASURE_TL in VARCHAR2,
590 X_UOM_CODE in VARCHAR2,
591 X_UOM_CLASS in VARCHAR2,
592 X_BASE_UOM_FLAG in VARCHAR2,
593 X_DESCRIPTION in VARCHAR2,
594 X_DISABLE_DATE in DATE,
595 X_ATTRIBUTE_CATEGORY in VARCHAR2,
596 X_ATTRIBUTE1 in VARCHAR2,
597 X_ATTRIBUTE2 in VARCHAR2,
598 X_ATTRIBUTE3 in VARCHAR2,
599 X_ATTRIBUTE4 in VARCHAR2,
600 X_ATTRIBUTE5 in VARCHAR2,
601 X_ATTRIBUTE6 in VARCHAR2,
602 X_ATTRIBUTE7 in VARCHAR2,
603 X_ATTRIBUTE8 in VARCHAR2,
604 X_ATTRIBUTE9 in VARCHAR2,
605 X_ATTRIBUTE10 in VARCHAR2,
606 X_ATTRIBUTE11 in VARCHAR2,
607 X_ATTRIBUTE12 in VARCHAR2,
608 X_ATTRIBUTE13 in VARCHAR2,
609 X_ATTRIBUTE14 in VARCHAR2,
610 X_ATTRIBUTE15 in VARCHAR2,
611 X_REQUEST_ID in NUMBER,
612 x_language IN VARCHAR2
613 ) as
614 cursor c1 is select
615 UOM_CODE,
616 UOM_CLASS,
617 UNIT_OF_MEASURE,
618 UNIT_OF_MEASURE_TL,
619 DESCRIPTION,
620 DISABLE_DATE,
621 ATTRIBUTE_CATEGORY,
622 ATTRIBUTE1,
623 ATTRIBUTE2,
624 ATTRIBUTE3,
625 ATTRIBUTE4,
626 ATTRIBUTE5,
627 ATTRIBUTE6,
628 ATTRIBUTE7,
629 ATTRIBUTE8,
630 ATTRIBUTE9,
631 ATTRIBUTE10,
632 ATTRIBUTE11,
633 ATTRIBUTE12,
634 ATTRIBUTE13,
635 ATTRIBUTE14,
636 ATTRIBUTE15,
637 BASE_UOM_FLAG,
638 decode(LANGUAGE, x_language, 'Y', 'N') BASELANG
639 from MTL_UNITS_OF_MEASURE_TL
640 where UNIT_OF_MEASURE = X_UNIT_OF_MEASURE
641 and x_language in (LANGUAGE, SOURCE_LANG)
642 for update of UNIT_OF_MEASURE nowait;
643 begin
644 for tlinfo in c1 loop
645 if (tlinfo.BASELANG = 'Y') then
646 if( (tlinfo.UNIT_OF_MEASURE = X_UNIT_OF_MEASURE) AND
647 (tlinfo.UNIT_OF_MEASURE_TL = X_UNIT_OF_MEASURE_TL)
648 AND ((tlinfo.DESCRIPTION = X_DESCRIPTION)
649 OR ((tlinfo.DESCRIPTION is null) AND (X_DESCRIPTION is null)))
650 AND (tlinfo.BASE_UOM_FLAG = X_BASE_UOM_FLAG)
651 AND (tlinfo.UOM_CODE = X_UOM_CODE)
652 AND (tlinfo.UOM_CLASS = X_UOM_CLASS)
653 AND ((tlinfo.ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY)
654 OR ((tlinfo.ATTRIBUTE_CATEGORY is null) AND (X_ATTRIBUTE_CATEGORY is null)))
655 AND ((tlinfo.ATTRIBUTE1 = X_ATTRIBUTE1)
656 OR ((tlinfo.ATTRIBUTE1 is null) AND (X_ATTRIBUTE1 is null)))
657 AND ((tlinfo.ATTRIBUTE2 = X_ATTRIBUTE2)
658 OR ((tlinfo.ATTRIBUTE2 is null) AND (X_ATTRIBUTE2 is null)))
659 AND ((tlinfo.ATTRIBUTE3 = X_ATTRIBUTE3)
660 OR ((tlinfo.ATTRIBUTE3 is null) AND (X_ATTRIBUTE3 is null)))
661 AND ((tlinfo.DISABLE_DATE = X_DISABLE_DATE)
665 AND ((tlinfo.ATTRIBUTE5 = X_ATTRIBUTE5)
662 OR ((tlinfo.DISABLE_DATE is null) AND (X_DISABLE_DATE is null)))
663 AND ((tlinfo.ATTRIBUTE4 = X_ATTRIBUTE4)
664 OR ((tlinfo.ATTRIBUTE4 is null) AND (X_ATTRIBUTE4 is null)))
666 OR ((tlinfo.ATTRIBUTE5 is null) AND (X_ATTRIBUTE5 is null)))
667 AND ((tlinfo.ATTRIBUTE6 = X_ATTRIBUTE6)
668 OR ((tlinfo.ATTRIBUTE6 is null) AND (X_ATTRIBUTE6 is null)))
669 AND ((tlinfo.ATTRIBUTE7 = X_ATTRIBUTE7)
670 OR ((tlinfo.ATTRIBUTE7 is null) AND (X_ATTRIBUTE7 is null)))
671 AND ((tlinfo.ATTRIBUTE8 = X_ATTRIBUTE8)
672 OR ((tlinfo.ATTRIBUTE8 is null) AND (X_ATTRIBUTE8 is null)))
673 AND ((tlinfo.ATTRIBUTE9 = X_ATTRIBUTE9)
674 OR ((tlinfo.ATTRIBUTE9 is null) AND (X_ATTRIBUTE9 is null)))
675 AND ((tlinfo.ATTRIBUTE10 = X_ATTRIBUTE10)
676 OR ((tlinfo.ATTRIBUTE10 is null) AND (X_ATTRIBUTE10 is null)))
677 AND ((tlinfo.ATTRIBUTE11 = X_ATTRIBUTE11)
678 OR ((tlinfo.ATTRIBUTE11 is null) AND (X_ATTRIBUTE11 is null)))
679 AND ((tlinfo.ATTRIBUTE12 = X_ATTRIBUTE12)
680 OR ((tlinfo.ATTRIBUTE12 is null) AND (X_ATTRIBUTE12 is null)))
681 AND ((tlinfo.ATTRIBUTE13 = X_ATTRIBUTE13)
682 OR ((tlinfo.ATTRIBUTE13 is null) AND (X_ATTRIBUTE13 is null)))
683 AND ((tlinfo.ATTRIBUTE14 = X_ATTRIBUTE14)
684 OR ((tlinfo.ATTRIBUTE14 is null) AND (X_ATTRIBUTE14 is null)))
685 AND ((tlinfo.ATTRIBUTE15 = X_ATTRIBUTE15)
686 OR ((tlinfo.ATTRIBUTE15 is null) AND (X_ATTRIBUTE15 is null)))
687 ) then
688 null;
689 else
690 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
691 app_exception.raise_exception;
692 end if;
693 end if;
694 end loop;
695 return;
696 end LOCK_ROW;
697 --
698 /* overloaded by Oracle Exchange */
699 procedure UPDATE_ROW (
700 X_UNIT_OF_MEASURE in VARCHAR2,
701 X_UNIT_OF_MEASURE_TL in VARCHAR2,
702 X_UOM_CODE in VARCHAR2,
703 X_UOM_CLASS in VARCHAR2,
704 X_BASE_UOM_FLAG in VARCHAR2,
705 X_DESCRIPTION in VARCHAR2,
706 X_DISABLE_DATE in DATE,
707 X_ATTRIBUTE_CATEGORY in VARCHAR2,
708 X_ATTRIBUTE1 in VARCHAR2,
709 X_ATTRIBUTE2 in VARCHAR2,
710 X_ATTRIBUTE3 in VARCHAR2,
711 X_ATTRIBUTE4 in VARCHAR2,
712 X_ATTRIBUTE5 in VARCHAR2,
713 X_ATTRIBUTE6 in VARCHAR2,
714 X_ATTRIBUTE7 in VARCHAR2,
715 X_ATTRIBUTE8 in VARCHAR2,
716 X_ATTRIBUTE9 in VARCHAR2,
717 X_ATTRIBUTE10 in VARCHAR2,
718 X_ATTRIBUTE11 in VARCHAR2,
719 X_ATTRIBUTE12 in VARCHAR2,
720 X_ATTRIBUTE13 in VARCHAR2,
721 X_ATTRIBUTE14 in VARCHAR2,
722 X_ATTRIBUTE15 in VARCHAR2,
723 X_REQUEST_ID in NUMBER,
724 X_LAST_UPDATE_DATE in DATE,
725 X_LAST_UPDATED_BY in NUMBER,
726 X_LAST_UPDATE_LOGIN in NUMBER,
727 x_language IN VARCHAR2
728 ) as
729 BEGIN
730
731 update MTL_UNITS_OF_MEASURE_TL set
732 UOM_CODE = X_UOM_CODE,
733 UOM_CLASS = X_UOM_CLASS,
734 UNIT_OF_MEASURE_TL = X_UNIT_OF_MEASURE_TL,
735 DESCRIPTION = X_DESCRIPTION,
736 DISABLE_DATE = X_DISABLE_DATE,
737 BASE_UOM_FLAG = X_BASE_UOM_FLAG,
738 ATTRIBUTE_CATEGORY = X_ATTRIBUTE_CATEGORY,
739 ATTRIBUTE1 = X_ATTRIBUTE1,
740 ATTRIBUTE2 = X_ATTRIBUTE2,
741 ATTRIBUTE3 = X_ATTRIBUTE3,
742 ATTRIBUTE4 = X_ATTRIBUTE4,
743 ATTRIBUTE5 = X_ATTRIBUTE5,
744 ATTRIBUTE6 = X_ATTRIBUTE6,
745 ATTRIBUTE7 = X_ATTRIBUTE7,
746 ATTRIBUTE8 = X_ATTRIBUTE8,
747 ATTRIBUTE9 = X_ATTRIBUTE9,
748 ATTRIBUTE10 = X_ATTRIBUTE10,
749 ATTRIBUTE11 = X_ATTRIBUTE11,
750 ATTRIBUTE12 = X_ATTRIBUTE12,
751 ATTRIBUTE13 = X_ATTRIBUTE13,
752 ATTRIBUTE14 = X_ATTRIBUTE14,
753 ATTRIBUTE15 = X_ATTRIBUTE15,
754 REQUEST_ID = X_REQUEST_ID,
755 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
756 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
757 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
758 SOURCE_LANG = x_language
759 where UNIT_OF_MEASURE = X_UNIT_OF_MEASURE
760 and x_language in (LANGUAGE, SOURCE_LANG);
761
762 if (sql%notfound) then
763 raise no_data_found;
764 end if;
765 end UPDATE_ROW;
766 --
767
768
769 -- Bug 5100785 : This API is called from the Translation Trigger of UOM block of the
770 -- INVSDUOM.fmb form to ensure that unit_of_measure_tl records are unique.
771 -- The 4th parameter l_temp is of no use but needed to
772 -- follow the way fnd handles edit OF translated records
773 PROCEDURE validate_translated_row
774 (
775 X_UNIT_OF_MEASURE in VARCHAR2,
776 X_language IN VARCHAR2,
777 X_UNIT_OF_MEASURE_TL in VARCHAR2,
778 l_temp IN VARCHAR2
779 ) AS
780
781 l_row_cnt NUMBER;
782
786 -- USE THE FACT THAT UNIT_OF_MEASURE WILL BE UNIQUE FOR THAT LANGUAGE
783 BEGIN
784
785
787 -- This validation is to ensure that unit_of_measure_tl will also be
788 -- UNIQUE IN the table
789
790 SELECT COUNT(1) INTO l_row_cnt from MTL_UNITS_OF_MEASURE_TL T
791 where unit_of_measure_tl = x_unit_of_measure_tl
792 AND UNIT_OF_MEASURE <> x_unit_of_measure
793 AND X_language in (LANGUAGE, SOURCE_LANG);
794
795 --inv_log_util.trace('', 'ROW_CNT :'||l_row_cnt, 9);
796
797
798 IF l_row_cnt > 0 THEN
799 fnd_message.set_name('INV','INV_UNIT_EXISTS');
800 FND_MESSAGE.SET_TOKEN('VALUE1',X_UNIT_OF_MEASURE_TL);
801 fnd_message.raise_error;
802 END IF;
803
804 EXCEPTION
805 WHEN NO_DATA_FOUND THEN
806 NULL;
807 WHEN TOO_MANY_ROWS THEN
808 fnd_message.set_name('INV','INV_UNIT_EXISTS');
809 fnd_message.raise_error;
810
811 END validate_translated_row;
812
813
814 end MTL_UNITS_OF_MEASURE_TL_PKG;