• Merhaba Ziyaretçi,
    Microsoft 365 Uygulamaları ile ilgili yeni haberler, dikkat çekici konular, ilgi ile takip edeceğiniz yazılar için.

    Abone Olun
  • ESTE - Microsoft Office Eğitimleri

    Yeni yıl Microsoft Office Eğitim planlarınız için bütçenizi oluşturmadan önce ESTE eğitim kalitesi ile tanışın. 🙌
    Kullanıcıların ihtiyacı olan yazılı materyal, dosya ve video kaynağı desteğimiz ile tüm ofis çalışanlarının iş süreçlerini rahatlatacak eğitimler planlayın. 🎯
    Microsoft Office eğitimlerimiz hakkında detaylı bilgi için bize ulaşın.

    👉 Microsoft Office Eğitim Talebi

SQL KTF Gelir Vergisini Hesaplayan KTF

Murat OSMA

Yönetici
Site Yöneticisi
Katılım
25 May 2018
Mesajlar
1,504
En iyi yanıt
13
Puanları
113
Konum
İstanbul
Web sitesi
excelarsivi.com
Ad Soyad
Murat OSMA
Office Vers.
Office 365 TR+EN
Ülkemizde gelir vergisi artan tarifeli olup kümülatif kazanca göre ilgili vergi diliminden gelir vergi hesaplanmaktadır.
Eğer bu hesaplama işlemini database seviyesinde yapılması gerekirse aşağıdaki SQL için ile yazmış olduğum kullanıcı tanımlı fonksiyon ile Gelir Vergisi hesaplayabilirsiniz.

Bu fonksiyon Kümülatif vergi matrahı ve Vergi matrahını parametre olarak alır. Sonuç olarak gelir vergisi döndürür.

SQL:
CREATE FUNCTION FN_GELIRVERGISI (@KMATRAH AS FLOAT,@VMATRAH AS FLOAT)

RETURNS FLOAT AS
BEGIN
DECLARE @SONUC AS FLOAT
DECLARE @DILIM1 AS FLOAT
DECLARE @DILIM2 AS FLOAT
DECLARE @DILIM3 AS FLOAT
DECLARE @DILIM4 AS FLOAT
DECLARE @ORAN1 AS INT
DECLARE @ORAN2 AS INT
DECLARE @ORAN3 AS INT
DECLARE @ORAN4 AS INT
DECLARE @GV1 AS FLOAT
DECLARE @GV2 AS FLOAT
DECLARE @GV3 AS FLOAT
DECLARE @GV4 AS FLOAT
DECLARE @TMATRAH AS FLOAT
DECLARE @SOR AS FLOAT

SET @DILIM1 = 0
SET @DILIM2 = 14800
SET @DILIM3 = 34000
SET @DILIM4 = 120000
SET @ORAN1 =15
SET @ORAN2 =20
SET @ORAN3 =27
SET @ORAN4 =35

SET @TMATRAH = @KMATRAH + @VMATRAH
IF @TMATRAH<=@DILIM2
BEGIN
SET @GV1=@VMATRAH*@ORAN1/100
SET @SONUC=@GV1
RETURN @SONUC
END

IF @TMATRAH>=@DILIM2 AND @TMATRAH<@DILIM3
BEGIN
SET @SOR = (@VMATRAH - (@TMATRAH - @DILIM2))
IF @SOR>0
BEGIN
SET @GV1=(@TMATRAH-@DILIM2)*@ORAN2/100
SET @GV2=@SOR*@ORAN1/100
END
ELSE
BEGIN
SET @GV1=@VMATRAH*@ORAN2/100
SET @GV2 = 0
END
SET @SONUC=@GV1+@GV2
RETURN @SONUC
END

IF @TMATRAH>=@DILIM3 AND @TMATRAH<@DILIM4 AND @KMATRAH<@DILIM2
BEGIN
SET @GV1=(@DILIM2-@KMATRAH)*@ORAN1/100
SET @GV2=(@DILIM3-@DILIM2)*@ORAN2/100
SET @GV3=(@TMATRAH-@DILIM3)*@ORAN3/100
SET @SONUC= @GV1 + @GV2 + @GV3
RETURN @SONUC
END

IF @TMATRAH>=@DILIM3 AND @TMATRAH<@DILIM4 AND @KMATRAH>@DILIM2
BEGIN
SET @SOR=(@VMATRAH-(@TMATRAH-@DILIM3))
IF @SOR>0
BEGIN
SET @GV1 = (@TMATRAH - @DILIM3) * @ORAN3 / 100
SET @GV2 = @SOR * @ORAN2 / 100
END
ELSE
BEGIN
SET @GV1 = @VMATRAH * @ORAN3 / 100
SET @GV2 = 0
END
SET @SONUC= @GV1 + @GV2
RETURN @SONUC
END

IF @TMATRAH>=@DILIM4 AND @KMATRAH<@DILIM2
BEGIN
SET @GV1=(@DILIM2-@KMATRAH)*@ORAN1/100
SET @GV2=(@DILIM3-@DILIM2)*@ORAN2/100
SET @GV3=(@DILIM4-@DILIM3)*@ORAN3/100
SET @GV4=(@TMATRAH-@DILIM4)*@ORAN4/100
SET @SONUC= @GV1 + @GV2 + @GV3+ @GV4
RETURN @SONUC
END

IF @TMATRAH>=@DILIM4 AND @KMATRAH<@DILIM3
BEGIN
SET @GV1=0
SET @GV2=(@DILIM3-@KMATRAH)*@ORAN2/100
SET @GV3=(@DILIM4-@DILIM3)*@ORAN3/100
SET @GV4=(@TMATRAH-@DILIM4)*@ORAN4/100
SET @SONUC= @GV1 + @GV2 + @GV3+ @GV4
RETURN @SONUC
END

IF @TMATRAH>=@DILIM4 AND @KMATRAH<@DILIM4
BEGIN
SET @SOR=(@VMATRAH-(@TMATRAH-@DILIM4))
IF @SOR>0
BEGIN
SET @GV1 = (@TMATRAH - @DILIM4) * @ORAN4 / 100
SET @GV2 = @SOR * @ORAN3 / 100
END
ELSE
BEGIN
SET @GV1 = @VMATRAH * @ORAN4 / 100
SET @GV2 = 0
END
SET @SONUC= @GV1 + @GV2
RETURN @SONUC
END

IF @KMATRAH>=@DILIM4
BEGIN
SET @GV1=@VMATRAH*@ORAN4/100
SET @SONUC=@GV1
RETURN @SONUC
END
RETURN @SONUC
END

Fonksiyonun Kullanılışı :
Bu fonksiyon 2 parametre alır ve Gelir vergisi sonucunu verir.
dbo.FN_GELIRVERGISI (Kümülatif Gelir Matrahı, Gelir Vergisi Matrahı)

SELECT dbo.FN_GELIRVERGISI (10000,4000)

Sonuç : 600
 

assenucler

Yeni Üye
Katılım
19 Haz 2018
Mesajlar
87
En iyi yanıt
0
Puanları
18
Yaş
78
Konum
Emekli YMM
Ad Soyad
A. Selim Şenüçler
Office Vers.
Office 365 ev 64 bit
Sayın Admin,

Günaydın ve hayırlı işler.
Yukarıdaki kodlar. Logo yazılımı için mi?
 

Vedat ÖZER

Logo Uzmanı
Geliştirici
Katılım
4 Haz 2018
Mesajlar
288
En iyi yanıt
4
Puanları
63
Yaş
33
Konum
Antalya / Merkez
Ad Soyad
Vedat ÖZER
Office Vers.
2019
Logo yazılımı için de olur piyasada bütün proğramlar içinde olur. Gelir Vergisi matrahını hesaplamak için ya sorgu içinde yukarıdaki mantıkta bir sorgu yazacan yada bu fonksiyona değer gönderip sonuçlarını alacan.
 

assenucler

Yeni Üye
Katılım
19 Haz 2018
Mesajlar
87
En iyi yanıt
0
Puanları
18
Yaş
78
Konum
Emekli YMM
Ad Soyad
A. Selim Şenüçler
Office Vers.
Office 365 ev 64 bit
Sayın Vedat ÖZER,

İlgi ve yanıtınız için teşekkürler. Ekli dosya ve hata pencere resmi ilişiktedir.
Yardımınızı rica edebilir miyim?
 

Ekli dosyalar

  • MuratOsma_2018_GelirVergisiHesabı_SQL.rar
    110.6 KB · Görüntüleme: 9

Vedat ÖZER

Logo Uzmanı
Geliştirici
Katılım
4 Haz 2018
Mesajlar
288
En iyi yanıt
4
Puanları
63
Yaş
33
Konum
Antalya / Merkez
Ad Soyad
Vedat ÖZER
Office Vers.
2019
Selamlar,

Yukarıdaki sorgu Mssql veri tabanına uygun yazılmıştır. Excelvba yerine Mssql yapıştırıp F5 tuşuna basın ;)
 

assenucler

Yeni Üye
Katılım
19 Haz 2018
Mesajlar
87
En iyi yanıt
0
Puanları
18
Yaş
78
Konum
Emekli YMM
Ad Soyad
A. Selim Şenüçler
Office Vers.
Office 365 ev 64 bit
Üstadım,

Zaman ayırarak bilgilendirdiğiniz için sağ olun. Hiç kod bilgisi olmayan bir kişi olarak, çözüm önerisini uygulamam zor.
İyi çalışmalar ve bol kazançlar dilerim.
 

yken

Yeni Üye
Katılım
26 Haz 2018
Mesajlar
12
En iyi yanıt
0
Puanları
1
Yaş
54
Konum
istanbul
[dbo].[FN_GELIRVERGISI(PNTC.BALN_SSKNBASE_PTD,GETDATE()) as GelirVergisi,

Vedat Bey, Getdate yerine ne yazacağız?
 

Vedat ÖZER

Logo Uzmanı
Geliştirici
Katılım
4 Haz 2018
Mesajlar
288
En iyi yanıt
4
Puanları
63
Yaş
33
Konum
Antalya / Merkez
Ad Soyad
Vedat ÖZER
Office Vers.
2019
Fonksiyona yanlış değer gönderiyorsunuz.

select dbo.FN_GELIRVERGISI (KMATRAH ,VMATRAH)
 
Üst Alt