// ignore_for_file: library_private_types_in_public_api import 'package:fikoyt_merkez/apps/mesaici/pages/ayarlar/calisma_sureleri/vardiyalar.dart'; import 'package:fikoyt_merkez/apps/mesaici/widgets/mesaici_navigasyon/mesaici_navigasyon.dart'; import 'package:fikoyt_merkez/core/Extensions/fiko_duration_ext.dart'; import 'package:fikoyt_merkez/core/interface/fiko_dialog_ayarlari.dart'; import 'package:fikoyt_merkez/core/widgets/fiko_ui/fiko_button/fiko_button.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:get/get.dart'; import 'package:vrouter/vrouter.dart'; import '../../../../../core/fikoyt.service.dart'; import '../../../../../core/widgets/base_page/base_page_view.dart'; import '../../../../../core/widgets/draggable_home.dart'; import '../../../../../core/widgets/fikoyt_elastic/fikoyt_elastic.dart'; import '../../../base_page_mesaici_view.dart'; import '../../../servisler/fikoyt.mesaici.service.dart'; import '../../../widgets/uygulama_baslik/uygulama_baslik.dart'; class PageHesapAyarlariLogic extends GetxController {} class PageMesaiciCalismSureleri extends StatefulWidget { const PageMesaiciCalismSureleri({super.key}); @override _PageMesaiciCalismaSureleriState createState() => _PageMesaiciCalismaSureleriState(); } class _PageMesaiciCalismaSureleriState extends State { PageHesapAyarlariLogic logic = Get.put(PageHesapAyarlariLogic()); BasePageLogic basePageLogic = Get.put(BasePageLogic()); BasePageMesaiciLogic basePageMesaiciLogic = Get.put(BasePageMesaiciLogic()); final FikoYTMesaiciService servisMesaici = Get.put(FikoYTMesaiciService()); final FikoYTService servisFikoYT = FikoYTService(); //---> @override Widget build(BuildContext context) { SchedulerBinding.instance.addPostFrameCallback((_) { basePageLogic.subTitle.value = "🕒 Çalışma Süreleri"; }); ScreenSizeTypes screenType = FikoYTElastic.getScreenSizeType(context); [ // ScreenSizeTypes.small, ScreenSizeTypes.mini, ScreenSizeTypes.extraMini ].contains(screenType); return DraggableHome( leading: const UygulamaBaslikSol(), title: UygulamaBaslikOrta(), actions: const [ UygulamaBaslikSag(), ], headerWidget: PageView( children: [ Container( color: Colors.transparent, //Colors.orange, height: 300 - kToolbarHeight - 10, margin: const EdgeInsets.only(top: kToolbarHeight, bottom: 10, right: 10, left: 10), child: Column( children: [ Center( child: CircleAvatar( backgroundColor: Colors.blueAccent.shade700, radius: 64, child: CircleAvatar( backgroundColor: Colors.blueAccent.shade100, radius: 54, child: const CircleAvatar( radius: 54, child: Text( "🕒", style: TextStyle( fontSize: 54, ), ), ), //CircleAvatar ), //CircleAvatar ), //CircleAvatar ), FikoButton1( text: "Çalışma Süreleri", textSize: 24, textStrokeColor: Colors.blue, ), SizedBox( height: 24.0, child: ListView( shrinkWrap: true, scrollDirection: Axis.horizontal, children: [ SizedBox( width: 33, child: MaterialButton( elevation: 0, minWidth: 0, shape: RoundedRectangleBorder( borderRadius: const BorderRadius.all(Radius.circular(5)), side: BorderSide(width: 1, color: Colors.blue.withOpacity(0.5), style: BorderStyle.solid), ), padding: const EdgeInsets.all(0), child: const Text("🏠"), // const Icon(Icons.home, // color: Colors.lightBlue, size: 14), // color: Colors.white, onPressed: () async { // Scaffold.of(context).openEndDrawer(); context.vRouter.to("/mesaici"); }, ), ), const SizedBox(width: 3), SizedBox( width: 33, child: MaterialButton( elevation: 0, minWidth: 0, shape: RoundedRectangleBorder( borderRadius: const BorderRadius.all(Radius.circular(5)), side: BorderSide(width: 1, color: Colors.blue.withOpacity(0.5), style: BorderStyle.solid), ), padding: const EdgeInsets.all(0), // color: Colors.white, onPressed: () async { // Scaffold.of(context).openEndDrawer(); context.vRouter.to("/mesaici/bildirimler"); }, child: const Text("🛎️"), // const Icon(Icons.notifications, // color: Colors.lightBlue, size: 14), ), ), const SizedBox(width: 3), SizedBox( width: 33, child: MaterialButton( elevation: 0, minWidth: 0, shape: RoundedRectangleBorder( borderRadius: const BorderRadius.all(Radius.circular(5)), side: BorderSide(width: 1, color: Colors.blue.withOpacity(0.5), style: BorderStyle.solid), ), padding: const EdgeInsets.all(0), child: const Text("⚙️"), // const Icon(Icons.settings, // color: Colors.lightBlue, size: 14), // color: Colors.white, onPressed: () { // if (kDebugMode) { context.vRouter.to("/mesaici/ayarlar"); // Scaffold.of(context).openEndDrawer(); if (kDebugMode) { print('clicked'); } // } }, ), ), ], ), ), Center( child: Text( "Çalışma Sürelerinizi Bu Sayfadan Düzenleyebilirsiniz", style: TextStyle(color: Colors.grey.shade800, fontSize: 10), ), ), const MesaiciNavigasyon(), ], ), ), ], ), body: [ Padding( padding: const EdgeInsets.all(5), child: Column(children: [ ListTile( leading: const SizedBox( // height: double.infinity, child: Text( "📆", style: TextStyle( fontSize: 36, ), ), ), title: const Text( ' Aylık Çalışma Günü', style: TextStyle( fontWeight: FontWeight.w600, ), ), dense: false, subtitle: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text( 'Maaşınız Kaç Gün Üzerinden Hesaplanıcak', style: TextStyle( fontWeight: FontWeight.w300, ), ), Obx( () => Slider( value: servisMesaici.ayarlarModel!.value.calismaSuresiAyarlari.aylikMaasGunu?.toDouble() ?? 31, // label: "", min: 1, max: 31, onChanged: (double value) { servisMesaici.ayarlarModel!.value.calismaSuresiAyarlari.aylikMaasGunu = value.toInt(); servisMesaici.ayarlarModel!.refresh(); }, ), ), Align( alignment: Alignment.centerRight, child: Obx( () => Text( " ${servisMesaici.ayarlarModel!.value.calismaSuresiAyarlari.aylikMaasGunu} Gün", style: const TextStyle( fontWeight: FontWeight.bold, color: Colors.teal, ), ), ), ), ], ), // trailing: const Icon(Icons.chevron_right_sharp), isThreeLine: true, splashColor: Colors.grey.shade300, onTap: () {}, ), ListTile( leading: const SizedBox( // height: double.infinity, child: Text( "🕥", style: TextStyle( fontSize: 36, ), ), ), title: const Text( ' Aylık Çalışma Günü', style: TextStyle( fontWeight: FontWeight.w600, ), ), dense: false, subtitle: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text( 'Bir Aylık Çalışma Saatiniz', style: TextStyle( fontWeight: FontWeight.w300, ), ), // Obx( // () => Slider( // value: servisMesaici.aylikMaasGunu.value.toDouble(), // // label: "", // min: 1, // max: 31, // onChanged: (double value) { // servisMesaici.aylikCalismaSaati.value = value; // servisMesaici.ayarlariKaydet(); // }, // ), // ), Row( mainAxisAlignment: MainAxisAlignment.end, children: [ Obx( () => FikoButton1( text: "⏳ ${servisMesaici.ayarlarModel!.value.calismaSuresiAyarlari.aylikCalismaSaati} Saat", textSize: 12, edgePadding: const EdgeInsets.symmetric(horizontal: 10, vertical: 1), textColor: Colors.teal, textStrokeColor: Colors.transparent, // borderColor: Colors.blue, onPressed: () async { servisMesaici.ayarlarModel!.value.calismaSuresiAyarlari.aylikCalismaSaati = await (servisMesaici.ayarlarModel!.value.calismaSuresiAyarlari.aylikCalismaSaati ?? Duration(microseconds: 0)).sureSec(context, ayarlar: FikoDialogAyarlari(baslik: "Aylık Çalışma Saati Seçiniz", icerik: [ Row( mainAxisAlignment: MainAxisAlignment.center, children: [ FikoButton1( text: "⏳ 270 Saat", textSize: 10, edgePadding: const EdgeInsets.symmetric(horizontal: 10, vertical: 1), textColor: Colors.black, textStrokeColor: Colors.transparent, borderColor: Colors.blue, onPressed: () { servisMesaici.ayarlarModel!.value.calismaSuresiAyarlari.aylikCalismaSaati = Duration(hours: 270); // gunObs.refresh(); servisMesaici.ayarlarModel!.refresh(); Navigator.pop(context, servisMesaici.ayarlarModel!.value.calismaSuresiAyarlari.aylikCalismaSaati); }, ), const SizedBox( width: 5, ), FikoButton1( text: "⏳ 225 Saat", textSize: 10, edgePadding: const EdgeInsets.symmetric(horizontal: 10, vertical: 1), textColor: Colors.black, textStrokeColor: Colors.transparent, borderColor: Colors.blue, onPressed: () { servisMesaici.ayarlarModel!.value.calismaSuresiAyarlari.aylikCalismaSaati = Duration(hours: 225); // gunObs.refresh(); servisMesaici.ayarlarModel!.refresh(); Navigator.pop(context, servisMesaici.ayarlarModel!.value.calismaSuresiAyarlari.aylikCalismaSaati); }, ), const SizedBox( width: 5, ), FikoButton1( text: "⏳ 180 Saat", textSize: 10, edgePadding: const EdgeInsets.symmetric(horizontal: 10, vertical: 1), textColor: Colors.black, textStrokeColor: Colors.transparent, borderColor: Colors.blue, onPressed: () { servisMesaici.ayarlarModel!.value.calismaSuresiAyarlari.aylikCalismaSaati = Duration(hours: 180); // gunObs.refresh(); servisMesaici.ayarlarModel!.refresh(); Navigator.pop(context, servisMesaici.ayarlarModel!.value.calismaSuresiAyarlari.aylikCalismaSaati); }, ), ], ), ])); servisMesaici.ayarlarModel!.refresh(); }, ), ), ], ), ], ), // trailing: const Icon(Icons.chevron_right_sharp), isThreeLine: true, splashColor: Colors.grey.shade300, onTap: () {}, ), /** Vardiya Bölümü */ VardiyalarWidget(), /** */ ]), ), ], headerExpandedHeight: 315, // stretchMaxHeight: 100, fullyStretchable: false, backgroundColor: Colors.grey.shade200, centerTitle: true, alwaysShowLeadingAndAction: true, appBarColor: Colors.blue.shade500, alwaysShowTitle: true, curvedBodyRadius: 0, onStretchTrigger: () async { context.vRouter.to("/"); }, ); } @override void dispose() { Get.delete(); super.dispose(); } }