DBA Data[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;