Ana Sayfa Bilgisayar Dünyası Yazılım Dünyası Girilen sayının hem TC Kimlik Kontrolünü Hem de Vergi Kimlik Kontrolünü Yapmak

Girilen sayının hem TC Kimlik Kontrolünü Hem de Vergi Kimlik Kontrolünü Yapmak

47
0

Bu kodda önce TC Kimlik Numarası kontrol ediliyor. Eğer geçerli değilse, Vergi Kimlik Numarası kontrolü yapılıyor. En sonunda da uygun görsellere ve buton durumuna göre ayarlamalar yapılıyor.

public void KimlikKontrol(string degv)
{
    string girilenSayi = degv.Trim();

    // TC Kimlik kontrolü
    if (girilenSayi.Length == 11 && TcDogruMu(girilenSayi))
    {
        simpleButton5.Enabled = true;
        pictureEdit1.Visible = false; // Hatalı resim gizle
        pictureEdit2.Visible = true;  // Doğru resim göster
        return;
    }

    // Vergi Kimlik No kontrolü
    if (girilenSayi.Length == 10 && VergiKimlikNoDogruMu(girilenSayi))
    {
        // TC değil ama geçerli bir VKN
        simpleButton5.Enabled = true;
        pictureEdit1.Visible = false;
        pictureEdit2.Visible = true;
        return;
    }

    // Ne TC ne VKN geçerli değil
    simpleButton5.Enabled = false;
    pictureEdit1.Visible = true;
    pictureEdit2.Visible = false;
    textEdit1.Focus();
}

public bool TcDogruMu(string kimlikno)
{
    if (kimlikno.Length != 11 || !kimlikno.All(char.IsDigit))
        return false;

    int[] sayilar = new int[11];
    for (int i = 0; i < kimlikno.Length; i++)
    {
        sayilar[i] = int.Parse(kimlikno[i].ToString());
    }

    int toplam = 0;
    for (int i = 0; i < 10; i++) // Son basamak hariç
    {
        toplam += sayilar[i];
    }

    return toplam.ToString().Length > 1 &&
           toplam.ToString()[1].ToString() == sayilar[10].ToString() &&
           sayilar[10] % 2 == 0;
}

public bool VergiKimlikNoDogruMu(string vkn)
{
    if (vkn.Length != 10 || !vkn.All(char.IsDigit))
        return false;

    int[] sayilar = vkn.Select(c => int.Parse(c.ToString())).ToArray();
    int toplam = 0;

    for (int i = 0; i < 9; i++)
    {
        int deger = (sayilar[i] + 9 - i) % 10;
        int carpim = (deger * (2 << (8 - i))) % 9;
        if (deger != 0 && carpim == 0) carpim = 9;
        toplam += carpim;
    }

    int kontrol = (10 - (toplam % 10)) % 10;
    return sayilar[9] == kontrol;
}

Kullanım:

Bu fonksiyonları çağırmak için bir buton click olayına aşağıdaki gibi yazabilirsin:

Reklam
private void simpleButtonKontrol_Click(object sender, EventArgs e)
{
    KimlikKontrol(textEdit1.Text);
}

Bu şekilde girdi önce TC kimlik olarak, geçmezse Vergi Numarası olarak kontrol edilir ve arayüz buna göre güncellenir.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz