Vergi Kimlik No Doğrula,
Vergi Kimlik No Doğrulama Algoritması,
Vergi Kimlik No Doğrulama
Vergi Kimlik No Doğrulama SQL Fonksiyonu
Bu kucuk SQL fonksiyonunu Vergi Kimlik No’ların doğru olup olmadığını sorgulamak icin kullanabilirsiniz Kullanım şekli;
IF dboFNVKNODOGRUMU(1111111111) 1
PRINT 'DOGRU VERGI KIMLIK NO'
ELSE
PRINT 'YANLIS VERGI 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) AS SMALLINT) + 9) % 10
SET @V2 (CAST(SUBSTRING(@VKNO,2,1) AS SMALLINT) + 8) % 10
SET @V3 (CAST(SUBSTRING(@VKNO,3,1) AS SMALLINT) + 7) % 10
SET @V4 (CAST(SUBSTRING(@VKNO,4,1) AS SMALLINT) + 6) % 10
SET @V5 (CAST(SUBSTRING(@VKNO,5,1) AS SMALLINT) + 5) % 10
SET @V6 (CAST(SUBSTRING(@VKNO,6,1) AS SMALLINT) + 4) % 10
SET @V7 (CAST(SUBSTRING(@VKNO,7,1) AS SMALLINT) + 3) % 10
SET @V8 (CAST(SUBSTRING(@VKNO,8,1) AS 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
Vergi Kimlik No Doğrulama Algoritması,
Vergi Kimlik No Doğrulama
Vergi Kimlik No Doğrulama SQL Fonksiyonu
Bu kucuk SQL fonksiyonunu Vergi Kimlik No’ların doğru olup olmadığını sorgulamak icin kullanabilirsiniz Kullanım şekli;
IF dboFNVKNODOGRUMU(1111111111) 1
PRINT 'DOGRU VERGI KIMLIK NO'
ELSE
PRINT 'YANLIS VERGI 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) AS SMALLINT) + 9) % 10
SET @V2 (CAST(SUBSTRING(@VKNO,2,1) AS SMALLINT) + 8) % 10
SET @V3 (CAST(SUBSTRING(@VKNO,3,1) AS SMALLINT) + 7) % 10
SET @V4 (CAST(SUBSTRING(@VKNO,4,1) AS SMALLINT) + 6) % 10
SET @V5 (CAST(SUBSTRING(@VKNO,5,1) AS SMALLINT) + 5) % 10
SET @V6 (CAST(SUBSTRING(@VKNO,6,1) AS SMALLINT) + 4) % 10
SET @V7 (CAST(SUBSTRING(@VKNO,7,1) AS SMALLINT) + 3) % 10
SET @V8 (CAST(SUBSTRING(@VKNO,8,1) AS 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