SQL Server’da Vergi Kimlik No Kontrol Eden Fonksiyon

Herkese merhaba,

SQL Server’da oluşturduğunuz projelerde Vergi Kimlik Numarasının kontrolü yapmak durumunda kalabilirsiniz.

Aşağıdaki fonksiyon yardımı ile bu işlemi rahatlıkla yapabilirsiniz.

CREATE FUNCTION VergiNoKontrol
(
    @VKNO VARCHAR(10)
)
RETURNS BIT
BEGIN
    DECLARE @V_LAST_DIGIT SMALLINT,
            @V_1 SMALLINT,
            @V_2 SMALLINT,
            @V_3 SMALLINT,
            @V_4 SMALLINT,
            @V_5 SMALLINT,
            @V_6 SMALLINT,
            @V_7 SMALLINT,
            @V_8 SMALLINT,
            @V_9 SMALLINT,
            @V_11 SMALLINT,
            @V_22 SMALLINT,
            @V_33 SMALLINT,
            @V_44 SMALLINT,
            @V_55 SMALLINT,
            @V_66 SMALLINT,
            @V_77 SMALLINT,
            @V_88 SMALLINT,
            @V_99 SMALLINT,
            @TOPLAM SMALLINT,
            @R BIT;
    SET @V_1 = (CAST(SUBSTRING(@VKNO, 1, 1) AS SMALLINT) + 9) % 10;
    SET @V_2 = (CAST(SUBSTRING(@VKNO, 2, 1) AS SMALLINT) + 8) % 10;
    SET @V_3 = (CAST(SUBSTRING(@VKNO, 3, 1) AS SMALLINT) + 7) % 10;
    SET @V_4 = (CAST(SUBSTRING(@VKNO, 4, 1) AS SMALLINT) + 6) % 10;
    SET @V_5 = (CAST(SUBSTRING(@VKNO, 5, 1) AS SMALLINT) + 5) % 10;
    SET @V_6 = (CAST(SUBSTRING(@VKNO, 6, 1) AS SMALLINT) + 4) % 10;
    SET @V_7 = (CAST(SUBSTRING(@VKNO, 7, 1) AS SMALLINT) + 3) % 10;
    SET @V_8 = (CAST(SUBSTRING(@VKNO, 8, 1) AS SMALLINT) + 2) % 10;
    SET @V_9 = (CAST(SUBSTRING(@VKNO, 9, 1) AS SMALLINT) + 1) % 10;
    SET @V_LAST_DIGIT = CAST(SUBSTRING(@VKNO, 10, 1)
AS  SMALLINT);
    SET @V_11 = (@V_1 * 512) % 9;
    SET @V_22 = (@V_2 * 256) % 9;
    SET @V_33 = (@V_3 * 128) % 9;
    SET @V_44 = (@V_4 * 64) % 9;
    SET @V_55 = (@V_5 * 32) % 9;
    SET @V_66 = (@V_6 * 16) % 9;
    SET @V_77 = (@V_7 * 8) % 9;
    SET @V_88 = (@V_8 * 4) % 9;
    SET @V_99 = (@V_9 * 2) % 9;
    IF @V_1 != 0
       AND @V_11 = 0
        SET @V_11 = 9;
    IF @V_2 != 0
       AND @V_22 = 0
        SET @V_22 = 9;
    IF @V_3 != 0
       AND @V_33 = 0
        SET @V_33 = 9;
    IF @V_4 != 0
       AND @V_44 = 0
        SET @V_44 = 9;
    IF @V_5 != 0
       AND @V_55 = 0
        SET @V_55 = 9;
    IF @V_6 != 0
       AND @V_66 = 0
        SET @V_66 = 9;
    IF @V_7 != 0
       AND @V_77 = 0
        SET @V_77 = 9;
    IF @V_8 != 0
       AND @V_88 = 0
        SET @V_88 = 9;
    IF @V_9 != 0
       AND @V_99 = 0
        SET @V_99 = 9;
    SET @TOPLAM = @V_11 + @V_22 + @V_33 + @V_44 + @V_55 + @V_66 + @V_77 + @V_88 + @V_99;
    IF @TOPLAM % 10 = 0
    BEGIN
        SET @TOPLAM = 0;
    END;
    ELSE
    BEGIN
        SET @TOPLAM = (10 - (@TOPLAM % 10));
    END;
    IF @TOPLAM = @V_LAST_DIGIT
        SET @R = 1; -- DOĞRU 
    ELSE
        SET @R = 0; -- YANLIŞ 
    RETURN @R;
END;


--Çalıştırılması 

SELECT dbo.VergiNoKontrol(7348871321)

Yukarıdaki fonksiyonu oluşturup çalıştırdığınızda aşağıdakine benzer bir sonuç göreceksiniz.

SQL Serverda Vergi Kimlik No Kontrol Eden Fonksiyon

Görüldüğü üzere vergi numarası kontrol edilmiş oldu.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

420 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!