import 'package:fikoyt_merkez/apps/mesaici/base_page_mesaici_view.dart'; import 'package:fikoyt_merkez/apps/mesaici/model/model_ayarlar.dart'; import 'package:fikoyt_merkez/apps/mesaici/servisler/fikoyt.mesaici.service.dart'; import 'package:fikoyt_merkez/apps/mesaici/servisler/mesaici.ayarlar.dart'; import 'package:fikoyt_merkez/core/Extensions/fiko_duration_ext.dart'; import 'package:fikoyt_merkez/core/Extensions/fiko_tarih.dart'; import 'package:fikoyt_merkez/core/fikoyt.service.dart'; import 'package:fikoyt_merkez/core/widgets/fiko_ui/fiko_button/fiko_button.dart'; import 'package:fikoyt_merkez/core/widgets/yazi_kutulari/yazi_kutulari.dart'; import 'package:flutter/material.dart'; import 'package:flutter_multi_formatter/flutter_multi_formatter.dart'; import 'package:get/get.dart'; import 'package:isar/isar.dart'; class ResmiTatilDialog extends StatelessWidget { ResmiTatilDialog({Key? key, required this.resmiTatil}) : super(key: key); BasePageMesaiciLogic basePageMesaiciLogic = Get.put(BasePageMesaiciLogic()); final FikoYTMesaiciService servisMesaici = Get.put(FikoYTMesaiciService()); final FikoYTService servisFikoYT = FikoYTService(); ResmiTatil resmiTatil; late Rx resmiTatilObs = resmiTatil.obs; @override Widget build(BuildContext context) { resmiTatilObs.listen((val) { resmiTatil = val; servisMesaici.ayarlarModel!.refresh(); }); return Container( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Obx( () => FikoButton1( text: "${resmiTatilObs.value.tarihi != null ? resmiTatilObs.value.tarihi?.formatla('dd MMMM yyyy EEEE') : 'Çalışma Gününü Seçiniz'}", textSize: 13, // edgePadding: const EdgeInsets.symmetric(vertical: 2.0), textColor: Colors.black, textStrokeColor: Colors.transparent, // radius: 0, backColor: Colors.transparent, onPressed: () async { resmiTatilObs.value.tarihi = await FikoYTService.tarihSec(context, varsayilanTarih: resmiTatilObs.value.tarihi); resmiTatilObs.refresh(); }, ), ), const Text( "Resmi Tatil'e Bir İsim Veriniz", ), FikoYaziKutusu( baslik: "Resmi Tatil", simgeSol: const Text( "👩🏻‍🤝‍👨🏽", style: TextStyle( fontSize: 16, ), ), radius: 5.0, degeri: resmiTatilObs.value.ismi, degisti: (value) { resmiTatilObs.value.ismi = value; resmiTatilObs.refresh(); }, ), FikoAciklamaKutusu( baslik: "Resmi Tatil Açıklama", radius: 5.0, degeri: resmiTatilObs.value.aciklama, yaziBoyutu: 12.0, degisti: (value) { resmiTatilObs.value.aciklama = value; resmiTatilObs.refresh(); }, ), /** */ Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( 'Mesai Oranı (${resmiTatilObs.value.mesaiOrani}%)', style: const TextStyle( fontWeight: FontWeight.bold, ), ), Obx( () => FikoYaziKutusu( baslik: "Mesai Oranı", simgeSol: const Text( "💸", style: TextStyle(fontSize: 22), ), klavyeTipi: TextInputType.number, formatlayicilar: [ CurrencyInputFormatter( trailingSymbol: "%", ) // MaskedInputFormatter( // '00000-0000-M00-B00-N# ', // allowedCharMatcher: RegExp("^[0-9]*\$"), // ), ], degeri: resmiTatilObs.value.mesaiOrani.toCurrencyString(trailingSymbol: '%'), degisti: (value, {kontrolcu}) { resmiTatilObs.value.mesaiOrani = double.parse(value.replaceAll("%", "").replaceAll(",", "")); resmiTatilObs.refresh(); servisMesaici.ayarlarModel!.refresh(); }, // degeri: "0.00₺", ), ), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ FikoButton1( text: "⏳ 50 %", textSize: 10, edgePadding: const EdgeInsets.symmetric(horizontal: 10, vertical: 1), textColor: Colors.black, textStrokeColor: Colors.transparent, borderColor: Colors.blue, onPressed: () { resmiTatilObs.value.mesaiOrani = 50; resmiTatilObs.refresh(); servisMesaici.ayarlarModel!.refresh(); }, ), const SizedBox( width: 5, ), FikoButton1( text: "⏳ 100 %", textSize: 10, edgePadding: const EdgeInsets.symmetric(horizontal: 10, vertical: 1), textColor: Colors.black, textStrokeColor: Colors.transparent, borderColor: Colors.blue, onPressed: () { resmiTatilObs.value.mesaiOrani = 100; resmiTatilObs.refresh(); servisMesaici.ayarlarModel!.refresh(); }, ), const SizedBox( width: 5, ), FikoButton1( text: "⏳ 150 %", textSize: 10, edgePadding: const EdgeInsets.symmetric(horizontal: 10, vertical: 1), textColor: Colors.black, textStrokeColor: Colors.transparent, borderColor: Colors.blue, onPressed: () { resmiTatilObs.value.mesaiOrani = 150; resmiTatilObs.refresh(); servisMesaici.ayarlarModel!.refresh(); }, ), ], ), ], ), Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( 'Mesai Oranı (${resmiTatilObs.value.dinlenmeGunuMesaiOrani}%)', style: const TextStyle( fontWeight: FontWeight.bold, ), ), Obx( () => FikoYaziKutusu( baslik: "Dinlenme Günü Mesai Oranı", simgeSol: const Text( "💸", style: TextStyle(fontSize: 22), ), klavyeTipi: TextInputType.number, formatlayicilar: [ CurrencyInputFormatter( trailingSymbol: "%", ) // MaskedInputFormatter( // '00000-0000-M00-B00-N# ', // allowedCharMatcher: RegExp("^[0-9]*\$"), // ), ], degeri: resmiTatilObs.value.dinlenmeGunuMesaiOrani.toCurrencyString(trailingSymbol: '%'), degisti: (value, {kontrolcu}) { resmiTatilObs.value.dinlenmeGunuMesaiOrani = double.parse(value.replaceAll("%", "").replaceAll(",", "")); resmiTatilObs.refresh(); servisMesaici.ayarlarModel!.refresh(); }, // degeri: "0.00₺", ), ), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ FikoButton1( text: "⏳ 50 %", textSize: 10, edgePadding: const EdgeInsets.symmetric(horizontal: 10, vertical: 1), textColor: Colors.black, textStrokeColor: Colors.transparent, borderColor: Colors.blue, onPressed: () { resmiTatilObs.value.dinlenmeGunuMesaiOrani = 50; resmiTatilObs.refresh(); servisMesaici.ayarlarModel!.refresh(); }, ), const SizedBox( width: 5, ), FikoButton1( text: "⏳ 100 %", textSize: 10, edgePadding: const EdgeInsets.symmetric(horizontal: 10, vertical: 1), textColor: Colors.black, textStrokeColor: Colors.transparent, borderColor: Colors.blue, onPressed: () { resmiTatilObs.value.dinlenmeGunuMesaiOrani = 100; resmiTatilObs.refresh(); servisMesaici.ayarlarModel!.refresh(); }, ), const SizedBox( width: 5, ), FikoButton1( text: "⏳ 150 %", textSize: 10, edgePadding: const EdgeInsets.symmetric(horizontal: 10, vertical: 1), textColor: Colors.black, textStrokeColor: Colors.transparent, borderColor: Colors.blue, onPressed: () { resmiTatilObs.value.dinlenmeGunuMesaiOrani = 150; resmiTatilObs.refresh(); servisMesaici.ayarlarModel!.refresh(); }, ), ], ), ], ), /** */ Obx( () => Row( children: [ const Text("🚨 Telafi Sayılabilir"), const Spacer(), SizedBox( height: 25, child: FittedBox( fit: BoxFit.fill, child: Switch( value: resmiTatilObs.value.telafiSayilabilir, onChanged: (value) { resmiTatilObs.value.telafiSayilabilir = value; resmiTatilObs.refresh(); }, ), ), ), ], ), ), Obx( () => Row( children: [ const Text("🛎️Her Sene Tekrarlar"), const Spacer(), SizedBox( height: 25, child: FittedBox( fit: BoxFit.fill, child: Switch( value: resmiTatilObs.value.herSeneTekrarlar, onChanged: (value) { resmiTatilObs.value.herSeneTekrarlar = value; resmiTatilObs.refresh(); }, ), ), ), ], ), ), ], ), ); } }