Tüm Platformlar için Hızlı Uygulama Geliştirme Kitabı... Delphi
Ön Sipariş Talebinde Bulunan Üyelerimiz
Sipariş Talebinde Bulunan Üyelerimiz

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
asgari geçim indirimi hesabı (agi)
#1
Arkadaşlar,

asgari geçim indirimi hesabı (agi) hesabı yapan biri varmı acaba ? formülü vs atabilirmi

Teşekkürşer
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#2
Alıntıdır. (Oldukça karışık bir olaymış)
Paylaşım izninden dolayı kaldırılmıştır.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#3
kolay gelsin arkadaş,
bizde de aşağıdaki gibi bir kod var.
çözemediğin yer olursa yardımcı olurum.
//AGİ HESAPLAMA
//eş durumu case ile çözümü
case CaseOfString(PERSONEL_DATASETAGI_ES_DURUMU.Text, ['Bekar', 'Eşi Çalışmıyor', 'Eşi Çocuk Yardımı Alıyor', 'Eşi Çocuk Yardımı Almıyor','Eşi Emekli,Serbest Meslek vb.']) of
0:maas_isci_datasetES_DURUMU.Text:='0';
1:maas_isci_datasetES_DURUMU.Text:='1';
2:maas_isci_datasetES_DURUMU.Text:='2';
3:maas_isci_datasetES_DURUMU.Text:='3';
4:maas_isci_datasetES_DURUMU.Text:='4';
end;
//Agı eş oranını bulmak
case CaseOfString(PERSONEL_DATASETAGI_ES_DURUMU.Text, ['Bekar', 'Eşi Çalışmıyor', 'Eşi Çocuk Yardımı Alıyor', 'Eşi Çocuk Yardımı Almıyor','Eşi Emekli,Serbest Meslek vb.']) of
0:es_oran:=frm_data.parametre_isci_datasetAGI_SABIT.AsCurrency;
1:es_oran:=frm_data.parametre_isci_datasetAGI_SABIT.AsCurrency+frm_data.parametre_isci_datasetAGI_ES_ORAN.AsCurrency;
2:es_oran:=frm_data.parametre_isci_datasetAGI_SABIT.AsCurrency;
3:es_oran:=frm_data.parametre_isci_datasetAGI_SABIT.AsCurrency;
4:es_oran:=frm_data.parametre_isci_datasetAGI_SABIT.AsCurrency+frm_data.parametre_isci_datasetAGI_ES_ORAN.AsCurrency;
end;
//çocuk AGI için sayılarının bulunması
aile_durum_dataset.close;
aile_durum_dataset.UnPrepare;
aile_durum_dataset.SelectSQL.clear;
aile_durum_dataset.SelectSQL.Add('select * from TBL_AILE_DURUM_2 where YAKINLIK=''ÇOCUK'' and AGI=''Yararlanıyor'' and PERSONEL_ID=:pi');
aile_durum_dataset.params[0].AsInteger:=maas_isci_datasetPERSONEL_ID.AsInteger;
aile_durum_dataset.prepare;
aile_durum_dataset.open;
aile_durum_dataset.FetchAll;
if aile_durum_dataset.RecordCount>0 then
begin
aile_durum_dataset.First;
while not aile_durum_dataset.eof do
begin
tarih1 := StrToDate(aile_durum_datasetDOGUM_TAR.AsString);
Tarih2 :=strtodate('15.'+ay_txt.Text+'.'+yıl_txt.Text);
Ay := MonthsBetween(Tarih2, tarih1);
case ay of
0..300:agicocuk:=agicocuk+1;
301..1200:agicocuk:=agicocuk+0;
end;
aile_durum_dataset.next;
end;
end;
maas_isci_datasetCOCUK_SAYISI.AsInteger:=agicocuk;
c2:=frm_data.parametre_isci_datasetAGI_COCUK_2.AsCurrency;
c3:=frm_data.parametre_isci_datasetAGI_COCUK_3.AsCurrency;
c4:=frm_data.parametre_isci_datasetAGI_COCUK_4.AsCurrency;
case agicocuk of
1:c_oran:=agicocuk*frm_data.parametre_isci_datasetAGI_COCUK_2.AsCurrency;
2:c_oran:=agicocuk*c2;
3:c_oran:=(2*c2)+((agicocuk-2)*c3);
4:c_oran:=(2*c2)+(c3)+((agicocuk-3)*c4);
5:c_oran:=(2*c2)+(c3)+((agicocuk-3)*c4);
6:c_oran:=(2*c2)+(c3)+((agicocuk-3)*c4);
7:c_oran:=(2*c2)+(c3)+((agicocuk-3)*c4);
8:c_oran:=(2*c2)+(c3)+(7-3)*c4;
9:c_oran:=(2*c2)+(c3)+(7-3)*c4;
10:c_oran:=(2*c2)+(c3)+(7-3)*c4;
11:c_oran:=(2*c2)+(c3)+(7-3)*c4;
12:c_oran:=(2*c2)+(c3)+(7-3)*c4;
13:c_oran:=(2*c2)+(c3)+(7-3)*c4;
14:c_oran:=(2*c2)+(c3)+(7-3)*c4;
15:c_oran:=(2*c2)+(c3)+(7-3)*c4;
end;
hesaplanan_agi_oran:=c_oran+es_oran;
if hesaplanan_agi_oran>frm_data.parametre_isci_datasetAGI_TAVAN_ORAN.AsCurrency then
begin
agi_oran:=frm_data.parametre_isci_datasetAGI_TAVAN_ORAN.AsCurrency;
end
else begin
agi_oran:=c_oran+es_oran;
end;
agi_matrah:=frm_data.parametre_isci_datasetASG_UCRET.AsCurrency*agi_oran/100;
agi:=yuv((agi_matrah*frm_data.parametre_isci_datasetAGI_INDR_ORAN.AsCurrency)/100);
Cevapla
#4
(04-04-2018, Saat: 12:56)erdogan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlArkadaşlar,

asgari geçim indirimi hesabı (agi) hesabı yapan biri varmı acaba ? formülü vs atabilirmi

Teşekkürşer

function TForm1.AgiHesap(Matrah: Double): Double;
var
  IndirimOran: Double;
  Sayac: Integer;
begin
  Result := 0;
  IndirimOran := 50;
 if (QSicil.FieldByName('MEDENI_DURUM').AsInteger = mdEvli) and
   (QSicil.FieldByName('ES_CALISMA_DURUMU').AsInteger = ecdCalismiyor)
   then IndirimOran := IndirimOran + 10;
 for Sayac := 1 to QSicil.FieldByName('AGI_COCUK_SAYISI').AsInteger do
 begin
   case Sayac of
     1..2: IndirimOran := IndirimOran + 7.5;
     3   : IndirimOran := IndirimOran + 10;
   else
     IndirimOran := IndirimOran + 5;
   end;
 end;
 if IndirimOran > 85 then IndirimOran := 85; // %85 ten büyük olamaz.
 Result := QKatsayi.FieldByName('ASGARI_UCRET').AsFloat * 30;
 Result := Result * QKatsayi.FieldByName('GELIR_V_ORAN1').AsFloat / 100;
 Result := Result * IndirimOran / 100;
 if Result > QueryF.FieldByName('V_TUTAR').AsFloat // AGİ vergi tutarından daha çok olamaz.
   then Result := QueryF.FieldByName('V_TUTAR').AsFloat;
 Result := SimpleRoundTo(Result, -2);
end;


WWW
Cevapla
#5
hocam çok teşekkür ederim bunu nasıl kullanıcam bir örnek atmanız mümkün mü acaba çok teşekkür ederim.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla

Konuyu Paylaş : facebook gplus twitter





Konuyu Okuyanlar: 1 Ziyaretçi