You are on page 1of 2

create or replace function dib_convert_num_into_word(currencycode in varchar2,

convertamount in number) return char is


fractionnumber number(10,2);
decimalnumber number;
fractionname varchar2(500);
decimalname varchar2(500);
franction number;
franctionlength number;

begin
if currencycode = 'AED' then
fractionname := ' Dirhams';
decimalname := ' Fils';
elsif currencycode = 'USD' then
fractionname := ' Dollars';
decimalname := ' Cents';
elsif currencycode = 'GBP' then
fractionname := ' Sterling Pounds' ;
decimalname := ' Pence';
elsif currencycode = 'PKR' then
fractionname := ' Rupees' ;
decimalname := ' Paisa';
end if;
/*
begin
select attribute2,
attribute4
into fractionname,
decimalname
from fnd_currencies
where currency_code =currencycode;
exception
when no_data_found then
fractionname := null;
decimalname := null;
end;
*/

decimalnumber := substr(convertamount,1,instr(convertamount, '.')-1);


franction := substr(convertamount,instr(convertamount, '.')+1);
franctionlength := length(substr(convertamount,instr(convertamount, '.')+1));

if franctionlength = 1
then
if franction = 1 then
fractionnumber := 10;
elsif franction = 2 then
fractionnumber := 20;
elsif franction = 3 then
fractionnumber := 30;
elsif franction = 4 then
fractionnumber := 40;
elsif franction = 5 then
fractionnumber := 50;
elsif franction = 6 then
fractionnumber := 60;
elsif franction = 7 then
fractionnumber := 70;
elsif franction = 8 then
fractionnumber := 80;
elsif franction = 9 then
fractionnumber := 90;
else
fractionnumber := franction;
end if;
else
fractionnumber := franction;
end if;

if convertamount < 1
then
return
initcap(to_char(to_timestamp(lpad(fractionnumber,9,'0'),'FF9'),'FFSP')) ||' '||
decimalname||' Only';
--RETURN INITCAP(TO_CHAR(TO_DATE (FractionNumber,
'j'), 'jsp')) ||DecimalName||' Only';
else
if fractionnumber is not null and decimalnumber is null
then
return
initcap(to_char(to_timestamp(lpad(fractionnumber,9,'0'),'FF9'),'FFSP')) ||' '||
fractionname||' Only';
-- RETURN INITCAP(TO_CHAR(TO_DATE (FractionNumber,
'j'), 'jsp'))||FractionName||' Only';
elsif fractionnumber is null and decimalnumber is not null
then
return
initcap(to_char(to_timestamp(lpad(decimalnumber,9,'0'),'FF9'),'FFSP')) ||' '||
decimalname||' Only';
--- RETURN INITCAP(TO_CHAR(TO_DATE (DecimalNumber,
'j'), 'jsp')) ||DecimalName||' Only';
elsif fractionnumber is not null and decimalnumber is not
null
then
return
initcap(to_char(to_timestamp(lpad(decimalnumber,9,'0'),'FF9'),'FFSP')) ||' '||
fractionname||' And '||
initcap(to_char(to_timestamp(lpad(fractionnumber,9,'0'),'FF9'),'FFSP'))||' '||
decimalname||' Only';
--RETURN INITCAP(TO_CHAR(TO_DATE (DecimalNumber,
'j'), 'jsp')) ||FractionName||' And '||INITCAP(TO_CHAR(TO_DATE (FractionNumber,
'j'), 'jsp'))||DecimalName||' Only';
else
return null;
end if;
end if;
--RETURN initcap(to_char(to_timestamp(lpad(FractionNumber,9,'0'),'FF9'),'FFSP'))||'
Dirhams And '||
initcap(to_char(to_timestamp(lpad(DecimalNumber,9,'0'),'FF9'),'FFSP'))||' Fils '
||'Only';
--RETURN INITCAP(TO_CHAR(TO_DATE (FractionNumber, 'j'), 'jsp'))||' Dirhams And '||
INITCAP(TO_CHAR(TO_DATE (DecimalNumber, 'j'), 'jsp')) ||' Fils ' ||'Only';
end dib_convert_num_into_word;

You might also like