import 'package:fikoyt_merkez/core/Extensions/fiko_tarih.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:get/get_rx/get_rx.dart'; import 'package:get/get_rx/src/rx_types/rx_types.dart'; import 'package:get/state_manager.dart'; class MesaiciAyarlar { UygulamaAyarlari uygulamaAyarlari = UygulamaAyarlari(); /// Bildirim Ayarları BildirimAyarlari bildirimAyarlari = BildirimAyarlari(); HesapAyarlari hesapAyarlari = HesapAyarlari(); CalismaSuresiAyarlari calismaSuresiAyarlari = CalismaSuresiAyarlari(); ResmiTatilFazlaMesaiOranlari resmiTatilFazlaMesaiOranlari = ResmiTatilFazlaMesaiOranlari(); MaasParametreleri maasParametreleri = MaasParametreleri(); VergiAyarlari vergiAyarlari = VergiAyarlari(); PrimAyarlari primAyarlari = PrimAyarlari(); } class UygulamaAyarlari { final Rx otomatikBaslat = false.obs; final Rx baslangictaCalistir = false.obs; final RxBool servisCalisiyor = false.obs; final RxBool ilkEkranAcilistaGoster = true.obs; final RxBool ilkEkraniHerZamanGoster = false.obs; } class HesapAyarlari { final RxString adSoyad = "👩🏻‍🤝‍👨🏽 İsim Tanımlayın".obs; final RxString sirket = "🏭 Şirket Tanımlayın".obs; final RxString slogan = "FikoYT İle Gelecek Bugünde".obs; final RxString goreviniz = "".obs; final Rx iseGirisTarihi = DateTime(0).formatla("dd.MM.yyyy").obs; } class BildirimAyarlari { final RxBool genelBildirimler = true.obs; final RxBool iseBaslamaBildirimleri = true.obs; final RxBool isiBitirmeBildirimleri = true.obs; final RxBool molaBaslangicBildirimleri = true.obs; final RxBool molaBitisBildirimleri = true.obs; } class CalismaSuresiAyarlari { final RxInt aylikMaasGunu = 30.obs; final RxDouble aylikCalismaSaati = 270.0.obs; final gunAyarlari = GunAyarlari(); } enum GunTuru { calismaGunu, dinlenmeGunu, haftaTatili; } class GunAyarlari { GunAyari pazartesi = GunAyari("Pazartesi"); GunAyari sali = GunAyari("Salı"); GunAyari carsamba = GunAyari("Çarşamba"); GunAyari persembe = GunAyari("Perşembe"); GunAyari cuma = GunAyari("Cuma"); GunAyari cumartesi = GunAyari("Cumartesi"); GunAyari pazar = GunAyari("Pazar"); List toListe() { return [pazartesi, sali, carsamba, persembe, cuma, cumartesi, pazar]; } } class GunAyari { String ismi = ""; Rx turu = GunTuru.calismaGunu.obs; Rx girisSaati = const TimeOfDay(hour: 7, minute: 30) .obs; // DateTime(0).formatla("dd.MM.yyyy HH:mm:ss").obs; Rx cikisSaati = const TimeOfDay(hour: 17, minute: 30).obs; RxInt girisToleransi = 0.obs; RxInt cikisToleransi = 0.obs; RxDouble calismaSuresi = 0.0.obs; RxList molalar = [].obs; RxDouble mesaiOrani = 50.0.obs; GunAyari(this.ismi); } extension Molalar on List { Duration get toplamMola { int sonuc = 0; forEach((element) { sonuc += element.farkHesapla().inMicroseconds; }); return Duration(microseconds: sonuc); } } class Mola { RxString ismi = "1. Çay Molası".obs; RxString aciklama = "İlk Çay Molası".obs; Rx girisSaati = DateTime(0, 0, 0, 11, 30, 0).obs; Rx cikisSaati = DateTime(0, 0, 0, 11, 40, 0).obs; RxBool saattenDuser = true.obs; RxBool bildirimGoster = false.obs; RxBool otomatikGir = true.obs; Duration farkHesapla() { return cikisSaati.value.difference(girisSaati.value); } } class ResmiTatilFazlaMesaiOranlari { final RxDouble calismaGunuFazlaMesaiOrani = 50.0.obs; final RxDouble dinlenmeGunuFazlaMesaiOrani = 50.0.obs; final RxDouble haftaTatiliFazlaMesaiOrani = 100.0.obs; } class MaasParametreleri { RxDouble brutMaas = 0.0.obs; RxDouble netMaas = 0.0.obs; RxInt ikramiyeSayisi = 0.obs; } class VergiAyarlari { RxDouble damgaVergisiIstisnasi = 0.0.obs; RxDouble damgaVergisiOrani = 0.759.obs; GelirVergisiAylikIstisnalar gelirVergisiAylikIstisnalar = GelirVergisiAylikIstisnalar(); RxList vergiDilimleri = [ GelirVergisiDilimi("%15'lik Dilim", 15.0.obs, 110000.00.obs), GelirVergisiDilimi("%20'lik Dilim", 20.0.obs, 230000.00.obs), GelirVergisiDilimi("%27'lik Dilim", 27.0.obs, 580000.00.obs), GelirVergisiDilimi("%35'lik Dilim", 35.0.obs, 3000000.00.obs), GelirVergisiDilimi("%40'lik Dilim", 40.0.obs, double.infinity.obs), ].obs; } class GelirVergisiAylikIstisnalar { GelirVergisiAylikIstisnasi ocak = GelirVergisiAylikIstisnasi("Ocak"); GelirVergisiAylikIstisnasi subat = GelirVergisiAylikIstisnasi("Şubat"); GelirVergisiAylikIstisnasi mart = GelirVergisiAylikIstisnasi("Mart"); GelirVergisiAylikIstisnasi nisan = GelirVergisiAylikIstisnasi("Nisan"); GelirVergisiAylikIstisnasi mayis = GelirVergisiAylikIstisnasi("Mayıs"); GelirVergisiAylikIstisnasi haziran = GelirVergisiAylikIstisnasi("Haziran"); GelirVergisiAylikIstisnasi temmuz = GelirVergisiAylikIstisnasi("Temmuz"); GelirVergisiAylikIstisnasi agustos = GelirVergisiAylikIstisnasi("Ağustos"); GelirVergisiAylikIstisnasi eylul = GelirVergisiAylikIstisnasi("Eylül"); GelirVergisiAylikIstisnasi ekim = GelirVergisiAylikIstisnasi("Ekim"); GelirVergisiAylikIstisnasi kasim = GelirVergisiAylikIstisnasi("Kasım"); GelirVergisiAylikIstisnasi aralik = GelirVergisiAylikIstisnasi("Aralık"); List toListe() { return [ ocak, subat, mart, nisan, mayis, haziran, temmuz, agustos, eylul, ekim, kasim, aralik ]; } } class GelirVergisiAylikIstisnasi { String ismi = ""; RxDouble istisna = 0.0.obs; GelirVergisiAylikIstisnasi(this.ismi); } class GelirVergisiDilimi { String ismi = ""; RxDouble oran = 0.0.obs; RxDouble sinir = 0.0.obs; GelirVergisiDilimi(this.ismi, this.oran, this.sinir); } class PrimAyarlari { RxDouble sgkPrimiIstisna = 0.0.obs; RxDouble sgkPrimiOrani = 14.0.obs; RxDouble issizlikPrimiIstisna = 0.0.obs; RxDouble issizlikPrimiOrani = 1.0.obs; }