C# ile Fatura Tutarını Yazı Olarak Yazdırma

Paylaş
 

Merhaba arkadaşlar bu yazımızda geliştirmekte olduğunuz programda fatura yazma özelliğini eklemek istiyorsanız bilmeniz gerekir ki fatura tutarını yazıya çevirmek gerekecektir. Fatura tutarını yazıya çevirmek için bir fonksiyon yazacağız ve metin kutumuzun textchanged olayı ile diğer metin kutumuza yazı şeklinde yazdıracağız.

Tutarı yazıya çevirmek için kullanacağımız fonksiyonumuz aşağıda:

private string yaziyaCevir(decimal tutar)
{
string sTutar = tutar.ToString("F2").Replace('.', ','); // Replace('.',',') ondalık ayracının . olma durumu için
string lira = sTutar.Substring(0, sTutar.IndexOf(',')); //tutarın tam kısmı
string kurus = sTutar.Substring(sTutar.IndexOf(',') + 1, 2);
string yazi = "";

string[] birler = { "", "BİR", "İKİ", "ÜÇ", "DÖRT", "BEŞ", "ALTI", "YEDİ", "SEKİZ", "DOKUZ" };
string[] onlar = { "", "ON", "YİRMİ", "OTUZ", "KIRK", "ELLİ", "ALTMIŞ", "YETMİŞ", "SEKSEN", "DOKSAN" };
string[] binler = { "KATRİLYON", "TRİLYON", "MİLYAR", "MİLYON", "BİN", "" }; //KATRİLYON'un önüne ekleme yapılarak artırabilir.

int grupSayisi = 6; //sayıdaki 3'lü grup sayısı. katrilyon içi 6. (1.234,00 daki grup sayısı 2'dir.)
//KATRİLYON'un başına ekleyeceğiniz her değer için grup sayısını artırınız.

lira = lira.PadLeft(grupSayisi * 3, '0'); //sayının soluna '0' eklenerek sayı 'grup sayısı x 3' basakmaklı yapılıyor.

string grupDegeri;

for (int i = 0; i < grupSayisi * 3; i += 3) //sayı 3'erli gruplar halinde ele alınıyor.
{
grupDegeri = "";

if (lira.Substring(i, 1) != "0")
grupDegeri += birler[Convert.ToInt32(lira.Substring(i, 1))] + "YÜZ"; //yüzler

if (grupDegeri == "BİRYÜZ") //biryüz düzeltiliyor.
grupDegeri = "YÜZ";

grupDegeri += onlar[Convert.ToInt32(lira.Substring(i + 1, 1))]; //onlar

grupDegeri += birler[Convert.ToInt32(lira.Substring(i + 2, 1))]; //birler

if (grupDegeri != "") //binler
grupDegeri += binler[i / 3];

if (grupDegeri == "BİRBİN") //birbin düzeltiliyor.
grupDegeri = "BİN";

yazi += grupDegeri;
}

if (yazi != "")
yazi += ".TL ";

int yaziUzunlugu = yazi.Length;

if (kurus.Substring(0, 1) != "0") //kuruş onlar
yazi += onlar[Convert.ToInt32(kurus.Substring(0, 1))];

if (kurus.Substring(1, 1) != "0") //kuruş birler
yazi += birler[Convert.ToInt32(kurus.Substring(1, 1))];

if (yazi.Length > yaziUzunlugu)
yazi += ".Kr";
else
yazi += "";

return yazi;
}

Fonksiyonumuzun kodları bu kadar arkadaşlar. Örnek uygulamayı aşağıdan indirebilirsiniz. İyi günler.

YaziIleYazdirma.zip Dosyasını İndir

Bu yazı 149 kere okundu.
  • Site Yorum
  • Facebook Yorum

Bir yorum bırak

Bir yorum bırak

REKLAM
Kredi hakkında bilgi alanı ismin anlamı bul