Group Blog
 
All Blogs
 
แปลงค่าจากตัวเลขเป็นตัวหนังสือภาษาไทย

CREATE OR REPLACE FUNCTION AMOUNT2TEXTTHAI
(cf_sum_all in number) return varchar2 is
begin
declare
ls_ans1 varchar2(200);
ls_money1 varchar2(200);
ls_money2 varchar2(200);
ls_money3 varchar2(200);
ls_pre varchar2(100);
ls_moneystr varchar2(100);
ls_curr_name varchar2(10);
ls_curr_sub_name varchar2(10);
li_strlength number;
li_counter1 number;
li_stang number;
ls_decimal varchar2(200);

BEGIN
if (ls_curr_name is null) or (ls_curr_name = '') then
ls_curr_name := 'บาท';
end if;

if (ls_curr_sub_name is null) or (ls_curr_sub_name = '') then
ls_curr_sub_name := 'สตางค์';
end if;
li_strlength := NVL(Length(to_char(cf_sum_all)), 0);
if substr(to_char(cf_sum_all),li_strlength-1,1) = '.' then
ls_money1 := to_char(cf_sum_all)||'0';
else
ls_money1 := to_char(cf_sum_all);
end if;
li_counter1 := 1;
ls_ans1 := '';
li_stang := 0;

loop
exit when NVL(length(ls_money1), 0) = 0;
li_strlength := NVL(Length(ls_money1), 0);
ls_money2 := substr(ls_money1,li_strlength,1);
if li_strlength <> 1 Then
ls_money3 := substr(ls_money1,li_strlength - 1,1);
end If;
if ls_money2 = '0' then
ls_moneystr := '';
else if ls_money2 = '1' then
ls_moneystr := 'หนึ่ง';
if li_counter1 = 1 then
If ls_money3 <> '0' And li_strlength > 1 Then
ls_moneystr := 'เอ็ด';
End If;
else if li_counter1 = 2 then
ls_moneystr := '';
end if;
end if;
else if ls_money2 = '2' then
If li_counter1 = 2 Then
ls_moneystr := 'ยี่';
Else
ls_moneystr := 'สอง';
End If;
else if ls_money2 = '3' then
ls_moneystr := 'สาม';
else if ls_money2 = '4' then
ls_moneystr := 'สี่';
else if ls_money2 = '5' then
ls_moneystr := 'ห้า';
else if ls_money2 = '6' then
ls_moneystr := 'หก';
else if ls_money2 = '7' then
ls_moneystr := 'เจ็ด';
else if ls_money2 = '8' then
ls_moneystr := 'แปด';
else if ls_money2 = '9' then
ls_moneystr := 'เก้า';
else
ls_moneystr := '';
end if;
end if;
end if;
end if;
end if;
end if;
end if;
end if;
end if;
end if;
ls_pre := '';
if li_counter1 = 1 then
ls_pre := '';
else if li_counter1 = 2 then
If ls_money2 <> '0' Then
ls_pre := 'สิบ';
End If;
else if li_counter1 = 3 then
If ls_money2 <> '0' And ls_money2 <> '.' Then
ls_pre := 'ร้อย';
End If;
else if li_counter1 = 4 then
If ls_money2 <> '0' Then
ls_pre := 'พัน';
End If;
else if li_counter1 = 5 then
If ls_money2 <> '0' Then
ls_pre := 'หมื่น';
End If;
else if li_counter1 = 6 then
If ls_money2 <> '0' Then
ls_pre := 'แสน';
End If;
end if;
end if;
end if;
end if;
end if;
end if;
ls_money1 := substr(ls_money1,1,li_strlength - 1);
ls_ans1 := ls_moneystr||ls_pre||ls_ans1;
If li_counter1 = 6 Then
li_counter1 := 1;
If li_strlength >1 Then
ls_ans1 := 'ล้าน'||ls_ans1;
End If;
Else
If ls_money2 = '.' Then
li_stang := 1;
li_counter1 := 1;
ls_decimal := ls_ans1;
If ls_ans1 <> '' Then
If li_strlength > 2 Then
ls_ans1 := ltrim(ls_curr_name)||ls_ans1||ltrim(ls_curr_sub_name);
Else
If li_strlength = 2 Then
If ls_money3 <> '0' Then
ls_ans1 := ltrim(ls_curr_name)||ls_ans1||ltrim(ls_curr_sub_name);
Else
ls_ans1 := ls_ans1||ltrim(ls_curr_sub_name);
End If;
Else
ls_ans1 := ls_ans1||ltrim(ls_curr_sub_name);
End If;
End If;
Else
ls_ans1 := ltrim(ls_curr_name)||ls_decimal||ltrim(ls_curr_sub_name);
End If;
Else
li_counter1 := li_counter1 +1;
End If;
End If;
end Loop;
if li_stang = 0 then
RETURN('('|| ls_ans1||ltrim(ls_curr_name)||'ถ้วน'||')');
elsif li_stang>=1000 then
RETURN('('||substr(ls_ans1,1,990)||')');
else
return('('||ls_ans1||')');
end if;

end;
RETURN NULL;
END;



Create Date : 09 เมษายน 2550
Last Update : 9 เมษายน 2550 15:15:08 น. 0 comments
Counter : 267 Pageviews.

ชื่อ : * blog นี้ comment ได้เฉพาะสมาชิก
Comment :
  *ส่วน comment ไม่สามารถใช้ javascript และ style sheet
 

nicknak
Location :


[Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed

ผู้ติดตามบล็อก : 1 คน [?]




Friends' blogs
[Add nicknak's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.