// import 'package:dart_eval/dart_eval.dart'; import 'package:fikoyt_mesaici/apps/mesaici/model/ayarlar/model_ayarlar.dart'; import 'package:fikoyt_mesaici/apps/mesaici/model/calisma_kayit/calisma_kayit.dart'; class CalismaKayitHesaplamalar { CalismaKayitHesaplamalar({ required this.aktifCalisma, }); CalismaKayit aktifCalisma; /** Brüt Ücretler */ // double brutNormal = 0.0; // double brutFazlaMesai = 0.0; // double brutEkOdemeler = 0.0; // double brutToplam = 0.0; /** */ // double kesintilerToplam = 0.0; // double vergilerToplam = 0.0; double vergilerKumulatifToplam = 0.0; /** */ double netNormalUcret = 0.0; // double netFazlaMesai = 0.0; // double netEkUcretler = 0.0; double? kumulatifMatrah; double kumulatifVergi = 0.0; double odenecekUcret = 0.0; double toplamKesinti = 0.0; // double gelirVergisiMatrahi = 0.0; Future hesapla() async { //---> // double brutToplamlar$ = aktifCalisma.brutToplam; // double kesintiToplam = 0.0; // double kesintiNetFazlaMesaiHesap = 0.0; // double kesintiEkOdemeNetHesap = 0.0; toplamKesinti = 0.0; // kesintiToplam = aktifCalisma.kesintiToplam; // kesintiNetFazlaMesaiHesap = aktifCalisma.kesintiler?.hesapla(ucret: aktifCalisma.brutFazlaMesai) ?? 0.0; // kesintiEkOdemeNetHesap = aktifCalisma.kesintiler?.hesapla(ucret: aktifCalisma.ekOdemeler!.toplam()) ?? 0.0; //---> // gelirVergisiMatrahi = aktifCalisma.brutToplam - kesintiHesap; kumulatifVergi = 0; //---> // vergilerToplam = aktifCalisma.vergiler?.hesaplaDuzOran(ucret: aktifCalisma.gelirVergisiMatrahi) ?? 0.0; // netFazlaMesai = aktifCalisma.brutFazlaMesai - (aktifCalisma.kesintiler?.hesapla(ucret: aktifCalisma.brutFazlaMesai) ?? 0.0) - (aktifCalisma.vergiler?.hesaplaDuzOran(ucret: aktifCalisma.brutFazlaMesai - (aktifCalisma.kesintiler?.hesapla(ucret: aktifCalisma.brutFazlaMesai) ?? 0.0)) ?? 0.0); // print(kesintiEkOdemeNetHesap); // netEkUcretler = (aktifCalisma.vergiler?.hesaplaDuzOran(ucret: aktifCalisma.ekOdemeler!.toplam()) ?? 0.0); //---> kumulatifVergi = kumulatifVergiHesapla(); //---> odenecekUcret = aktifCalisma.brutToplam - (aktifCalisma.kesintiToplam + aktifCalisma.vergilerToplam + kumulatifVergi); toplamKesinti = aktifCalisma.brutToplam - odenecekUcret; // print((brutToplamlar1)); return this; } Future kumulatifMatrahGuncelle() async { kumulatifMatrah = await aktifCalisma.kumulatifMatrah(); return kumulatifMatrah ?? 0.0; } double kumulatifVergiHesapla() { double toplamVergi = 0.0; double toplamGelir = aktifCalisma.gelirVergisiMatrahi + (kumulatifMatrah ?? 0.0); // Bu ayki gelir ve kümülatif gelir toplamı double oncekiVergi = 0.0; double oncekiMatrah = kumulatifMatrah ?? 0.0; for (var dilim in aktifCalisma.vergiler ?? []) { if (dilim.turu == VergiTuru.KUMULATIF) { // Yeni gelir üzerinden vergi hesapla if (toplamGelir > (dilim.kumulatifAltSinir ?? 0.0)) { double altSinir = dilim.kumulatifAltSinir ?? 0.0; double ustSinir = dilim.kumulatifUstSinir ?? double.infinity; // Vergilendirilebilir kısmı hesapla double vergilendirilebilirTutar = (toplamGelir > ustSinir ? ustSinir : toplamGelir) - altSinir; toplamVergi += (dilim.miktar ?? 0.0) + vergilendirilebilirTutar * ((dilim.oran ?? 0.0) / 100); } // Önceki matrah üzerinden vergi hesapla if (toplamGelir > (dilim.kumulatifAltSinir ?? 0.0)) { double altSinir = dilim.kumulatifAltSinir ?? 0.0; double ustSinir = dilim.kumulatifUstSinir ?? double.infinity; double vergilendirilebilirTutar = (oncekiMatrah > ustSinir ? ustSinir : oncekiMatrah) - altSinir; oncekiVergi += (dilim.miktar ?? 0.0) + vergilendirilebilirTutar * ((dilim.oran ?? 0.0) / 100); } } } kumulatifVergi = toplamVergi - oncekiVergi; if (kumulatifVergi < 0) { kumulatifVergi = 0; } return kumulatifVergi; } }