AdBlock kullandığınızı tespit ettik.

Bu sitenin devam edebilmesi için lütfen devre dışı bırakın.

Vergi Kimlik No Doğrulama Algoritması

haberci

Yeni Üye
Katılım
4 Şubat 2025
Mesajlar
51.363
Tepkime puanı
1
Puan
1
Vergi Kimlik No Doğrula,
Aidat Kimlik No Düzeltme Algoritması,
Aidat Kimlik No Doğrulama
Vergi Kimlik No Düzeltme SQL Fonksiyonu
Bu küçük SQL fonksiyonunu Vergi Kimlik No ’ların doğru olup olmadığını denetlemek için kullanabilirsiniz Kullanım şekli;
IF dboFNVKNODOGRUMU(1111111111) 1
PRINT 'DOGRU ÜCRET KIMLIK NO'
ELSE
PRINT 'YANLIS ÜCRET KIMLIK NO'Bu kodları kullanarak rahatlıkla fonksiyonun C# versiyonunu da hazırlayabilirsiniz
CREATE FUNCTION dboFNVKNODOGRUMU(@VKNO VARCHAR(10))
RETURNS BIT
BEGIN
DECLARE
@VLASTDIGIT SMALLINT,
@V1 SMALLINT,
@V2 SMALLINT,
@V3 SMALLINT,
@V4 SMALLINT,
@V5 SMALLINT,
@V6 SMALLINT,
@V7 SMALLINT,
@V8 SMALLINT,
@V9 SMALLINT,
@V11 SMALLINT,
@V22 SMALLINT,
@V33 SMALLINT,
@V44 SMALLINT,
@V55 SMALLINT,
@V66 SMALLINT,
@V77 SMALLINT,
@V88 SMALLINT,
@V99 SMALLINT,
@TOPLAM SMALLINT,
@R Bit
SET @V1 (CAST(SUBSTRING(@VKNO,1,1) BIRLI SMALLINT) + 9) % 10
SET @V2 (CAST(SUBSTRING(@VKNO,2,1) BIRLI SMALLINT) + 8) % 10
SET @V3 (CAST(SUBSTRING(@VKNO,3,1) AS SMALLINT) + 7) % 10
SET @V4 (CAST(SUBSTRING(@VKNO,4,1) BIRLI SMALLINT) + 6) % 10
SET @V5 (CAST(SUBSTRING(@VKNO,5,1) BIRLI SMALLINT) + 5) % 10
SET @V6 (CAST(SUBSTRING(@VKNO,6,1) BIRLI SMALLINT) + 4) % 10
SET @V7 (CAST(SUBSTRING(@VKNO,7,1) BIRLI SMALLINT) + 3) % 10
SET @V8 (CAST(SUBSTRING(@VKNO,8,1) BIRLI SMALLINT) + 2) % 10
SET @V9 (CAST(SUBSTRING(@VKNO,9,1) AS SMALLINT) + 1) % 10
SET @VLASTDIGIT CAST(SUBSTRING(@VKNO,10,1) AS SMALLINT)
SET @V11 (@V1 * 512) % 9
SET @V22 (@V2 * 256) % 9
SET @V33 (@V3 * 128) % 9
SET @V44 (@V4 * 64) % 9
SET @V55 (@V5 * 32) % 9
SET @V66 (@V6 * 16) % 9
SET @V77 (@V7 * 8) % 9
SET @V88 (@V8 * 4) % 9
SET @V99 (@V9 * 2) % 9
IF @V1 ! 0 AND @V11 0 SET @V11 9
IF @V2 ! 0 AND @V22 0 SET @V22 9
IF @V3 ! 0 AND @V33 0 SET @V33 9
IF @V4 ! 0 AND @V44 0 SET @V44 9
IF @V5 ! 0 AND @V55 0 SET @V55 9
IF @V6 ! 0 AND @V66 0 SET @V66 9
IF @V7 ! 0 AND @V77 0 SET @V77 9
IF @V8 ! 0 AND @V88 0 SET @V88 9
IF @V9 ! 0 AND @V99 0 SET @V99 9
SET @TOPLAM @V11 + @V22 + @V33 + @V44 + @V55 + @V66 + @V77 + @V88 + @V99
IF @TOPLAM %10 0
BEGIN
SET @TOPLAM 0
END
ELSE
BEGIN
SET @TOPLAM (10 (@TOPLAM %10))
END
IF @TOPLAM @VLASTDIGIT
SET @R 1 DOĞRU
ELSE
SET @R 0 YANLIŞ
RETURN @R
END
Alıntıdır *
 
Bu SQL fonksiyonu, bir Vergi Kimlik Numarasının doğruluğunu kontrol etmek için tasarlanmıştır. Fonksiyon, verilen Vergi Kimlik Numarası üzerinde belirli matematiksel işlemleri uygulayarak doğruluk kontrolünü gerçekleştirir.

Fonksiyonun içeriği adım adım incelendiğinde:

1. Veri tipleri ve değişkenler tanımlanmıştır.
2. Verilen Vergi Kimlik Numarası üzerindeki her bir rakam için belirli matematiksel işlemler yapılır.
3. Her rakam üzerinde bir dizi işlem (toplama, çarpma, mod alma) gerçekleştirilir.
4. Son adımda elde edilen toplam değeri, Vergi Kimlik Numarasının son rakamıyla karşılaştırılır.
5. Eğer toplamın son rakam ile uyuştuğu durumda fonksiyon geriye 1 döndürerek doğru bir Vergi Kimlik Numarası olduğunu belirtir, uyuşmazlık durumunda ise 0 döndürerek yanlış bir Vergi Kimlik Numarası olduğunu belirtir.

Bu fonksiyon, belirtildiği gibi bir SQL Server veritabanında kullanılarak Vergi Kimlik Numarası doğruluğunu kontrol etmek için uygundur. Aynı mantığı takip ederek C# dilinde benzer bir doğrulama fonksiyonu da yazılabilir. Ancak, bu kod bloğunda bazı hatalar olduğu ve düzeltilmesi gerektiği açıktır. Özellikle işlem operatörlerinin kullanımında hatalar mevcut olup, düzeltilmeleri gerekir. Ayrıca, fonksiyon içinde birçok işlem tekrarlandığı için daha optimize bir yapı düşünülebilir.
Bu doğrulama algoritması dikkatli bir şekilde incelenmeli ve hatalar giderildikten sonra güvenilir şekilde kullanılabilir.
 
Geri
Üst