Created
December 15, 2016 09:00
-
-
Save suatatan/522f00a6213083add84aaf617d7a79ab to your computer and use it in GitHub Desktop.
Asgari geçim indirimi hesaplamak için SQLSERVER fonksiyonu. Şu sayfadaki sonuçlarla uyumludur: http://www.muhasebetr.com/2016-asgari-gecim-indirimi-agi.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
USE [MaasDB] | |
GO | |
/****** Object: UserDefinedFunction [dbo].[fnAGIHesaplaYalin] Script Date: 15.12.2016 11:59:35 ******/ | |
SET ANSI_NULLS ON | |
GO | |
SET QUOTED_IDENTIFIER ON | |
GO | |
ALTER FUNCTION [dbo].[fnAGIHesaplaYalin] | |
( | |
@asgariUcret float, | |
@esCalisiyor int, | |
@cocukSayisi int | |
) | |
RETURNS float --döndürecegi degerin tipi | |
AS | |
BEGIN | |
--Logic | |
--Declare and init | |
--A değeri hesabı | |
declare @a float | |
set @a=0 | |
--Oranlar | |
declare @oran1 float | |
set @oran1=0 | |
declare @oran2 float | |
set @oran2=0 | |
--Return deger | |
declare @AGI_RETURN_VAL float | |
set @AGI_RETURN_VAL=0 | |
--Sabit hesabi | |
declare @sabit float | |
set @sabit=0 | |
-- Cocuk Yardimi | |
declare @cocuk1_oran float | |
declare @cocuk2_oran float | |
declare @cocuk3_oran float | |
declare @cocuk4_oran float | |
declare @cocuk5_oran float | |
-- Cocuk mevcudiyetleri | |
declare @ch1 as int | |
set @ch1=0 | |
declare @ch2 as int | |
set @ch2=0 | |
declare @ch3 as int | |
set @ch3=0 | |
declare @ch4 as int | |
set @ch4=0 | |
declare @ch5 as int | |
set @ch5=0 | |
--2015 yılındaki düzenlemeden sonra | |
set @cocuk1_oran=0.075 | |
set @cocuk2_oran=0.075 | |
set @cocuk3_oran=0.100 | |
set @cocuk4_oran=0.050 | |
set @cocuk5_oran=0.050 | |
declare @cocukyardimi float | |
set @cocukyardimi=0 | |
declare @cocukYardimTavanDeger float | |
set @cocukYardimTavanDeger=0 | |
--es yardimi- | |
declare @esyardimi float | |
set @esyardimi=0 | |
declare @esYardimOrani float | |
set @esYardimOrani=0.1 | |
--end of declarations--- | |
--Agi hesabında kullanilacak 2 oran | |
set @oran1=0.15 | |
set @oran2=0.50 | |
-- | |
if @cocukSayisi=0 | |
begin | |
set @ch1=0; | |
set @ch2=0; | |
set @ch3=0; | |
set @ch4=0; | |
set @ch5=0; | |
end | |
else if @cocukSayisi=1 | |
begin | |
set @ch1=1; | |
set @ch2=0; | |
set @ch3=0; | |
set @ch4=0; | |
set @ch5=0; | |
end | |
else if @cocukSayisi=2 | |
begin | |
set @ch1=1; | |
set @ch2=1; | |
set @ch3=0; | |
set @ch4=0; | |
set @ch5=0; | |
end | |
else if @cocukSayisi=3 | |
begin | |
set @ch1=1; | |
set @ch2=1; | |
set @ch3=1; | |
set @ch4=0; | |
set @ch5=0; | |
end | |
else if @cocukSayisi=4 | |
begin | |
set @ch1=1; | |
set @ch2=1; | |
set @ch3=1; | |
set @ch4=1; | |
set @ch5=0; | |
end | |
else if @cocukSayisi=5 | |
begin | |
set @ch1=1; | |
set @ch2=1; | |
set @ch3=1; | |
set @ch4=1; | |
set @ch5=1; | |
end | |
else | |
--5 cocuktan sonra hep 5 cocuk gibi say | |
begin | |
set @ch1=1; | |
set @ch2=1; | |
set @ch3=1; | |
set @ch4=1; | |
set @ch5=1; | |
end | |
--A değeri ve sabit değer hesabı | |
--0.15*0.50 oranı sabittir | |
set @a=@asgariUcret*@oran1 | |
set @sabit=@a*@oran2 | |
--cocukyardimi | |
set @cocukyardimi=@a*@ch1*@cocuk1_oran | |
+@a*@ch2*@cocuk2_oran | |
+@a*@ch3*@cocuk3_oran | |
+@a*@ch4*@cocuk4_oran | |
+@a*@ch5*@cocuk5_oran | |
set @cocukyardimi= round(@cocukyardimi,2) | |
--aile(es) yardimi | |
if @esCalisiyor=1 | |
begin | |
set @esyardimi=0 | |
end | |
else | |
begin | |
set @esyardimi=@esYardimOrani*@a | |
end | |
--AGI YEKUN | |
set @AGI_RETURN_VAL=@sabit+@cocukyardimi+@esyardimi | |
--Kural: AGI a değerinin %85'ini geçemez. Geçerse en fazla %85 kadar değer alınır | |
set @cocukYardimTavanDeger=@a*0.85 | |
if(@AGI_RETURN_VAL>=@cocukYardimTavanDeger) | |
begin | |
set @AGI_RETURN_VAL=@cocukYardimTavanDeger | |
end | |
--Logic// | |
set @AGI_RETURN_VAL=round(@AGI_RETURN_VAL,2) | |
RETURN(@AGI_RETURN_VAL) | |
END |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment