import 'package:fikoyt_akcali/apps/finans/model/calisma_kayit/calisma_kayit.dart'; import 'package:fikoyt_akcali/apps/finans/model/model_hareketler.dart'; import 'package:fikoyt_akcali/core/fikoyt.service.dart'; import 'package:flutter/material.dart'; import 'package:flutter_animate/flutter_animate.dart'; import 'package:get/get.dart'; class GirisCikisButonlari extends StatelessWidget { GirisCikisButonlari({super.key, required this.kayit}); final Rx? kayit; RxBool kaydediliyor = false.obs; /** */ // FikoYTMesaiciService FikoYTService.servisMesaici = Get.put(FikoYTMesaiciService()); FikoYTService servisFikoYT = FikoYTService(); @override Widget build(BuildContext context) { return Row( children: [ Obx( () => Visibility( visible: kayit?.value?.calismaKarti?.giris == null && !kayit!.value!.calismaKarti!.raporlu && !kayit!.value!.calismaKarti!.gunlukIzinli && !kayit!.value!.calismaKarti!.yillikIzinli, child: TextButton( onPressed: () { kayit?.value?.calismaKarti?.girisYap(); kayit?.refresh(); }, style: TextButton.styleFrom( alignment: Alignment.center, fixedSize: const Size.fromHeight(16), backgroundColor: Colors.blue.shade400, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.horizontal( left: Radius.circular(50), right: Radius.circular(50), ), ), textStyle: const TextStyle( fontSize: 10, color: Colors.white, ), ), child: const Padding( padding: EdgeInsets.symmetric(horizontal: 10), child: Text( "Giriş Yap", style: TextStyle( color: Colors.white, ), ), ), ).animate(effects: [ const ScaleEffect(), const FadeEffect(), ]), ), ), // Obx( // () => Visibility( // visible: kayit?.value?.calismaKarti?.giris != null && kayit?.value?.calismaKarti?.cikis != null, // child: TextButton( // onPressed: () { // kayit?.value?.calismaKarti?.sil(); // kayit?.refresh(); // }, // style: TextButton.styleFrom( // alignment: Alignment.center, // fixedSize: const Size.fromHeight(16), // backgroundColor: Colors.red.shade400, // shape: const RoundedRectangleBorder( // borderRadius: BorderRadius.horizontal( // left: Radius.circular(50), // right: Radius.circular(50), // ), // ), // textStyle: const TextStyle( // fontSize: 10, // color: Colors.white, // ), // ), // child: const Padding( // padding: EdgeInsets.symmetric(horizontal: 10), // child: Text( // "🗑️ Kartı Sil", // style: TextStyle( // color: Colors.white, // ), // ), // ), // ).animate(effects: [ // const ScaleEffect(), // const FadeEffect(), // ]), // ), // ), const Spacer(), Obx( () => Visibility( visible: kayit!.value!.calismaKarti!.giris == null && !!kayit!.value!.calismaKarti!.raporlu && !!kayit!.value!.calismaKarti!.gunlukIzinli && !!kayit!.value!.calismaKarti!.yillikIzinli && !!kayit!.value!.calismaKarti!.resmiTatil && (kayit!.value!.calismaKarti!.gunTuru != GunTuru.DINLENME_GUNU && kayit!.value!.calismaKarti!.gunTuru != GunTuru.HAFTA_TATILI), child: TextButton( onPressed: () { kayit?.value?.calismaKarti?.sil(); kayit?.refresh(); }, style: TextButton.styleFrom( alignment: Alignment.center, fixedSize: const Size.fromHeight(16), backgroundColor: Colors.red.shade400, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.horizontal( left: Radius.circular(50), right: Radius.circular(50), ), ), textStyle: const TextStyle( fontSize: 10, color: Colors.white, ), ), child: const Padding( padding: EdgeInsets.symmetric(horizontal: 10), child: Text( "🗑️ Kartı Sil", style: TextStyle( color: Colors.white, ), ), ), ).animate(effects: [ const ScaleEffect(), const FadeEffect(), ]), ), ), Obx( () => Visibility( visible: (kayit!.value!.calismaKarti!.giris != null && kayit!.value!.calismaKarti!.cikis == null) && (!kayit!.value!.calismaKarti!.raporlu && !kayit!.value!.calismaKarti!.gunlukIzinli && !kayit!.value!.calismaKarti!.yillikIzinli), child: TextButton( onPressed: () { kayit?.value?.calismaKarti?.cikisYap(); kayit?.refresh(); }, style: TextButton.styleFrom( alignment: Alignment.center, fixedSize: const Size.fromHeight(16), backgroundColor: Colors.red.shade400, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.horizontal( left: Radius.circular(50), right: Radius.circular(50), ), ), textStyle: const TextStyle( fontSize: 10, color: Colors.white, ), ), child: const Padding( padding: EdgeInsets.symmetric(horizontal: 10), child: Text( "Çıkış Yap", style: TextStyle( color: Colors.white, ), ), ), ).animate(effects: [ const ScaleEffect(), const FadeEffect(), ]), ), ), Obx( () => Visibility( visible: kayit?.value?.calismaKarti?.kartKaydedilebilir() ?? false, child: Row( children: [ TextButton( onPressed: () { kayit?.value?.calismaKarti?.sil(); kayit?.refresh(); }, style: TextButton.styleFrom( alignment: Alignment.center, fixedSize: const Size.fromHeight(16), backgroundColor: Colors.red.shade400, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.horizontal( left: Radius.circular(50), right: Radius.circular(50), ), ), textStyle: const TextStyle( fontSize: 10, color: Colors.white, ), ), child: const Padding( padding: EdgeInsets.symmetric(horizontal: 10), child: Text( "🗑️ Kartı Sil", style: TextStyle( color: Colors.white, ), ), ), ).animate(effects: [ const ScaleEffect(), const FadeEffect(), ]), TextButton( onPressed: () async { // if (kaydediliyor.value == true) return; // kaydediliyor.value = true; // kaydediliyor.refresh(); // try { // ModelHareketler yeniHareket = kayit!.value!.toModelHareket(); // await FikoYTService.servisMesaici.isar?.writeTxn( // () async { // await Future.delayed(const Duration(milliseconds: 1000)); // FikoYTService.servisMesaici.isar?.modelHareketlers.put(yeniHareket); // }, // ); // kaydediliyor.value = false; // kaydediliyor.refresh(); // kayit?.value?.calismaKarti?.sifirla(); // kayit?.refresh(); // } catch (e) { // print(e); // kaydediliyor.value = false; // kaydediliyor.refresh(); // } finally { // kaydediliyor.value = false; // kaydediliyor.refresh(); // } }, style: TextButton.styleFrom( alignment: Alignment.center, fixedSize: const Size.fromHeight(16), backgroundColor: Colors.green.shade400, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.horizontal( left: Radius.circular(50), right: Radius.circular(50), ), ), textStyle: const TextStyle( fontSize: 10, color: Colors.white, ), ), child: Padding( padding: const EdgeInsets.symmetric(horizontal: 10), child: Obx( () => AnimatedCrossFade( firstChild: const Text( "💾 Kaydet", style: TextStyle( color: Colors.white, ), ), secondChild: Row( children: [ Container( width: 16, height: 16, padding: const EdgeInsets.all(2.0), child: const CircularProgressIndicator( color: Colors.white, strokeWidth: 3, ), ), const Text( " Kaydediliyor", style: TextStyle( color: Colors.white, ), ) ], ), crossFadeState: kaydediliyor.value ? CrossFadeState.showSecond : CrossFadeState.showFirst, duration: const Duration(milliseconds: 300), ), ), ), ).animate(effects: [ const ScaleEffect(), const FadeEffect(), ]), ], ), ), ), ], ); } }