// ignore_for_file: library_private_types_in_public_api import 'package:fikoyt_mesaici/apps/mesaici/widgets/mesaici_navigasyon/mesaici_navigasyon.dart'; import 'package:fikoyt_mesaici/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:flutter_multi_formatter/flutter_multi_formatter.dart'; import 'package:get/get.dart'; import 'package:getwidget/getwidget.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 '../../../../core/widgets/yazi_kutulari/yazi_kutulari.dart'; import '../../base_page_mesaici_view.dart'; import '../../servisler/fikoyt.mesaici.service.dart'; import '../../widgets/uygulama_baslik/uygulama_baslik.dart'; class PageVergilerLogic extends GetxController {} class PageMesaiciVergiler extends StatefulWidget { const PageMesaiciVergiler({super.key}); @override _PageMesaiciVergilerState createState() => _PageMesaiciVergilerState(); } class _PageMesaiciVergilerState extends State { PageVergilerLogic logic = Get.put(PageVergilerLogic()); 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 = "🧾 Vergiler"; }); 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.grey.shade50, radius: 54, child: const CircleAvatar( radius: 54, child: Text( "🧾", style: TextStyle( fontSize: 54, ), ), ), //CircleAvatar ), //CircleAvatar ), //CircleAvatar ), FikoButton1( text: "Vergiler", 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( "Vergilerinizi Bu Sayfadan Düzenleyebilirsiniz", style: TextStyle(color: Colors.grey.shade800, fontSize: 10), ), ), const MesaiciNavigasyon(), ], ), ), ], ), body: [ Padding( padding: const EdgeInsets.all(5), child: Column( children: [ const Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Expanded( child: Divider( indent: 20.0, endIndent: 10.0, thickness: 1, ), ), Text( "🕹️ Damga Vergisi Ayarları", style: TextStyle(color: Colors.blueGrey, fontSize: 14), ), Expanded( child: Divider( indent: 10.0, endIndent: 20.0, thickness: 1, ), ), ], ), ListTile( leading: const SizedBox( // height: double.infinity, child: Text( "⛔", style: TextStyle( fontSize: 36, ), ), ), title: const Text( 'Damga Vergisi İstisnası', style: TextStyle( fontWeight: FontWeight.w600, ), ), dense: false, subtitle: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text( 'Damga Vergisi İstisnası', style: TextStyle( fontWeight: FontWeight.w300, ), ), FikoYaziKutusu( baslik: "Damga Vergisi İstisnası", simgeSol: const Text( "⛔", style: TextStyle(fontSize: 16), ), radius: 5.0, klavyeTipi: TextInputType.number, formatlayicilar: [ CurrencyInputFormatter( trailingSymbol: "₺", ) // MaskedInputFormatter( // '00000-0000-M00-B00-N# ', // allowedCharMatcher: RegExp("^[0-9]*\$"), // ), ], degeri: servisMesaici.mesaiciAyarlar.vergiAyarlari.damgaVergisiIstisnasi.value.toCurrencyString(trailingSymbol: '₺'), degisti: (value) { servisMesaici.mesaiciAyarlar.vergiAyarlari.damgaVergisiIstisnasi.value = double.parse(value.replaceAll("₺", "").replaceAll(",", "")); }, // degeri: "0.00₺", ), ], ), // trailing: const Icon(Icons.chevron_right_sharp), isThreeLine: true, splashColor: Colors.grey.shade300, ), ListTile( leading: const SizedBox( // height: double.infinity, child: Text( "🕹️", style: TextStyle( fontSize: 36, ), ), ), title: const Text( 'Damga Verginiz', style: TextStyle( fontWeight: FontWeight.w600, ), ), dense: false, subtitle: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text( 'Damga Vergisi Oranı', style: TextStyle( fontWeight: FontWeight.w300, ), ), FikoYaziKutusu( baslik: "Damga Vergisi Oranı", simgeSol: const Text( "🕹️", style: TextStyle(fontSize: 16), ), radius: 5.0, klavyeTipi: TextInputType.number, formatlayicilar: [ CurrencyInputFormatter( trailingSymbol: "%", mantissaLength: 3, ), // MaskedInputFormatter( // '00000-0000-M00-B00-N# ', // allowedCharMatcher: RegExp("^[0-9]*\$"), // ), ], degeri: servisMesaici.mesaiciAyarlar.vergiAyarlari.damgaVergisiOrani.value.toCurrencyString(trailingSymbol: '%', mantissaLength: 3), degisti: (value) { servisMesaici.mesaiciAyarlar.vergiAyarlari.damgaVergisiOrani.value = double.parse(value.replaceAll("%", "").replaceAll(",", "")); }, // degeri: "0.00₺", ), ], ), // trailing: const Icon(Icons.chevron_right_sharp), isThreeLine: true, splashColor: Colors.grey.shade300, ), const Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Expanded( child: Divider( indent: 20.0, endIndent: 10.0, thickness: 1, ), ), Text( "🍕 Vergi Dilimleri", style: TextStyle(color: Colors.blueGrey, fontSize: 14), ), Expanded( child: Divider( indent: 10.0, endIndent: 20.0, thickness: 1, ), ), ], ), GFAccordion( title: '⚖️ Gelir Vergisi İstisnaları', contentChild: Column( children: servisMesaici.mesaiciAyarlar.vergiAyarlari.gelirVergisiAylikIstisnalar .toListe() .map( (ay) => Obx( () => ListTile( leading: const SizedBox( // height: double.infinity, child: Text( "⚖️", style: TextStyle( fontSize: 36, ), ), ), title: Text( '⚖️ ${ay.ismi} İstisnası', style: const TextStyle( fontWeight: FontWeight.w600, ), ), dense: false, subtitle: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ // const Text( // 'Damga Vergisi Oranı', // style: TextStyle( // fontWeight: FontWeight.w300, // ), // ), FikoYaziKutusu( baslik: "$ay Damga Vergisi İstisnası", simgeSol: const Text( "⚖️", style: TextStyle(fontSize: 16), ), radius: 5.0, klavyeTipi: TextInputType.number, formatlayicilar: [ CurrencyInputFormatter( trailingSymbol: "₺", ) // MaskedInputFormatter( // '00000-0000-M00-B00-N# ', // allowedCharMatcher: RegExp("^[0-9]*\$"), // ), ], degeri: ay.istisna.value.toCurrencyString(trailingSymbol: '₺'), degisti: (value) { ay.istisna.value = double.parse(value.replaceAll("₺", "").replaceAll(",", "")); }, ), ], ), // trailing: const Icon(Icons.chevron_right_sharp), isThreeLine: true, splashColor: Colors.grey.shade300, ), ), ) .toList(), ), collapsedIcon: const Icon(Icons.arrow_drop_down), expandedIcon: const Icon(Icons.arrow_drop_up), titleBorderRadius: const BorderRadius.only(topLeft: Radius.circular(5), topRight: Radius.circular(5)), contentBorder: Border.all(color: Colors.grey.shade400), contentBorderRadius: const BorderRadius.only( bottomLeft: Radius.circular(5), bottomRight: Radius.circular(5), ), titlePadding: const EdgeInsets.symmetric( horizontal: 10, vertical: 5, ), contentPadding: EdgeInsets.zero, showAccordion: false, ), GFAccordion( title: '🍕 Gelir Vergisi Dilimleri', contentChild: Column( children: servisMesaici.mesaiciAyarlar.vergiAyarlari.vergiDilimleri .map( (dilim) => ListTile( leading: const SizedBox( // height: double.infinity, child: Text( "🍕", style: TextStyle( fontSize: 36, ), ), ), title: Text( '🍕 ${dilim.ismi} Oranı', style: const TextStyle( fontWeight: FontWeight.w600, ), ), dense: false, subtitle: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text( 'Damga Vergisi Oranı', style: TextStyle( fontWeight: FontWeight.w300, ), ), FikoYaziKutusu( baslik: "${dilim.ismi} Oranı", simgeSol: const Text( "🍕", style: TextStyle(fontSize: 16), ), radius: 5.0, klavyeTipi: TextInputType.number, formatlayicilar: [ CurrencyInputFormatter( trailingSymbol: "%", ) ], degeri: dilim.oran.value.toCurrencyString(trailingSymbol: '%'), degisti: (value) { dilim.oran.value = double.parse(value.replaceAll("%", "").replaceAll(",", "")); }, ), const Text( 'Damga Vergisi Sınırı', style: TextStyle( fontWeight: FontWeight.w300, ), ), FikoYaziKutusu( baslik: "${dilim.ismi} Sınırı", simgeSol: const Text( "🍕", style: TextStyle(fontSize: 16), ), radius: 5.0, klavyeTipi: TextInputType.number, formatlayicilar: [ CurrencyInputFormatter( trailingSymbol: "₺", ) ], degeri: dilim.sinir.value.toCurrencyString(trailingSymbol: '₺'), degisti: (value) { dilim.sinir.value = double.parse(value.replaceAll("₺", "").replaceAll(",", "")); }, ), ], ), // trailing: const Icon(Icons.chevron_right_sharp), isThreeLine: true, splashColor: Colors.grey.shade300, ), ) .toList(), ), collapsedIcon: const Icon(Icons.arrow_drop_down), expandedIcon: const Icon(Icons.arrow_drop_up), titleBorderRadius: const BorderRadius.only(topLeft: Radius.circular(5), topRight: Radius.circular(5)), contentBorder: Border.all(color: Colors.grey.shade400), contentBorderRadius: const BorderRadius.only( bottomLeft: Radius.circular(5), bottomRight: Radius.circular(5), ), titlePadding: const EdgeInsets.symmetric( horizontal: 10, vertical: 5, ), contentPadding: EdgeInsets.zero, showAccordion: false, ), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ const Expanded( child: Divider( indent: 20.0, endIndent: 10.0, thickness: 1, ), ), const Text( "🍕 Ek Vergiler", style: TextStyle(color: Colors.blueGrey, fontSize: 14), ), const Expanded( child: Divider( indent: 10.0, endIndent: 20.0, thickness: 1, ), ), 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), ), ), ], ), Column( children: [ Padding( padding: const EdgeInsets.only(left: 24, right: 24, top: 15, bottom: 24), child: Stack( clipBehavior: Clip.none, children: [ Padding( padding: const EdgeInsets.only(top: 20), child: Container( decoration: BoxDecoration( color: Colors.blueAccent.shade100.withOpacity(0.2), borderRadius: const BorderRadius.only(topLeft: Radius.circular(8.0), bottomLeft: Radius.circular(8.0), bottomRight: Radius.circular(8.0), topRight: Radius.circular(8.0)), border: Border.all(color: Colors.blueAccent), boxShadow: [ BoxShadow( color: Colors.grey.withOpacity(0.2), // offset: const Offset(0.9, 0.9), offset: const Offset(3, 3), spreadRadius: 5, blurRadius: 10.0, ), ], ), child: Padding( padding: const EdgeInsets.only(left: 46, bottom: 12, right: 16, top: 12), child: Column( children: [ Text( 'Henüz Ek Vergi Tanımlanmamış.', textAlign: TextAlign.left, style: TextStyle( fontWeight: FontWeight.w500, fontSize: 12, letterSpacing: 0.0, color: Colors.blueAccent.shade700, ), ), Align( alignment: Alignment.centerRight, child: TextButton( // icon: const Text("💡"), child: const Text( "➕ Hemen Tanımlayın", style: TextStyle( color: Colors.blue, fontWeight: FontWeight.bold, fontSize: 12, ), ), onPressed: () {}, ), ) ], ), ), ), ), const Positioned( top: -10, left: 0, child: SizedBox( width: 80, height: 80, child: Text( "👻", style: TextStyle(fontSize: 40), ), ), ) ], ), ), ], ), ], ), ), ], 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(); } }