import 'package:SEFER/controller/functions/tts.dart'; import 'package:SEFER/controller/home/captin/map_driver_controller.dart'; import 'package:SEFER/controller/home/payment/paymob_payout.dart'; import 'package:SEFER/views/home/my_wallet/payment_history_driver_page.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:SEFER/constant/box_name.dart'; import 'package:SEFER/constant/colors.dart'; import 'package:SEFER/constant/info.dart'; import 'package:SEFER/constant/style.dart'; import 'package:SEFER/controller/home/payment/captain_wallet_controller.dart'; import 'package:SEFER/controller/payment/payment_controller.dart'; import 'package:SEFER/main.dart'; import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:SEFER/views/widgets/my_textField.dart'; import 'package:SEFER/views/widgets/mycircular.dart'; import 'package:path/path.dart'; import '../../../controller/payment/driver_payment_controller.dart'; import '../../widgets/my_scafold.dart'; import 'card_wallet_widget.dart'; import 'points_captain.dart'; import 'transfer_budget_page.dart'; import 'weekly_payment_page.dart'; class WalletCaptain extends StatelessWidget { WalletCaptain({super.key}); CaptainWalletController captainWalletController = Get.put(CaptainWalletController()); @override Widget build(BuildContext context) { Get.put(MapDriverController()).totalPassenger = '0'; return MyScafolld( title: 'Driver Wallet'.tr, body: [ GetBuilder( builder: (captainWalletController) => captainWalletController .isLoading ? const MyCircularProgressIndicator() : Padding( padding: const EdgeInsets.all(10), child: ListView( // crossAxisAlignment: CrossAxisAlignment.center, children: [ const SizedBox(), Container( // decoration: AppStyle.boxDecoration1.copyWith( color: double.parse( captainWalletController.totalPoints) < 0 && double.parse( captainWalletController.totalPoints) > -300 ? AppColor.yellowColor : double.parse( captainWalletController.totalPoints) < -300 ? AppColor.redColor : AppColor.greenColor, // ), child: InkWell( onTap: () { Get.snackbar( 'the 300 points equal 300 L.E'.tr, 'the 300 points equal 300 L.E for you \nSo go and gain your money' .tr, backgroundColor: AppColor.greenColor, snackPosition: SnackPosition.BOTTOM, duration: const Duration(seconds: 4), ); }, child: Padding( padding: const EdgeInsets.symmetric(horizontal: 4), child: Text( '${'Total Points is'.tr} ${captainWalletController.totalPoints.toString()} 💎', style: AppStyle.headTitle2, textAlign: TextAlign.center, ), ), ), ), const SizedBox( height: 10, ), double.parse(captainWalletController.totalPoints .toString()) < -300 ? MyElevatedButton( title: 'Charge your Account'.tr, onPressed: () {}) : const SizedBox(), const SizedBox( height: 10, ), const CardSeferWalletDriver(), Card( elevation: 4, child: Padding( padding: const EdgeInsets.symmetric(horizontal: 4), child: Column( children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( 'Total Budget from trips is '.tr, style: AppStyle.title, ), Container( decoration: BoxDecoration( border: Border.all( width: 2, color: AppColor.redColor)), child: GestureDetector( onTap: () { Get.snackbar( icon: InkWell( onTap: () async { await Get.put( TextToSpeechController()) .speakText( 'This amount for all trip I get from Passengers' .tr); }, child: const Icon( Icons.headphones)), '${'Total Amount:'.tr} ${captainWalletController.totalAmount}\$', 'This amount for all trip I get from Passengers' .tr, duration: const Duration(seconds: 6), backgroundColor: AppColor.yellowColor, snackPosition: SnackPosition.BOTTOM, ); }, child: Padding( padding: const EdgeInsets.all(2), child: Text( '${captainWalletController.totalAmount}\$'), ), ), ) ], ), const SizedBox( height: 10, ), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( 'Total Budget from trips by\nCredit card is ' .tr, style: AppStyle.title, ), Container( decoration: BoxDecoration( border: Border.all( width: 2, color: AppColor.greenColor)), child: Padding( padding: const EdgeInsets.all(2), child: InkWell( onTap: () { Get.snackbar( icon: InkWell( onTap: () async { await Get.find< TextToSpeechController>() .speakText( 'This amount for all trip I get from Passengers and Collected For me in' .tr + ' SAFAR Wallet'.tr, ); }, child: const Icon( Icons.headphones), ), '${'Total Amount:'.tr} ${captainWalletController.totalAmountVisa}\$', 'This amount for all trip I get from Passengers and Collected For me in' .tr + ' ${AppInformation.appName} Wallet' .tr, duration: const Duration(seconds: 6), backgroundColor: AppColor.redColor, snackPosition: SnackPosition.BOTTOM, ); }, child: Text( '${captainWalletController.totalAmountVisa}\$'), ), )) ], ), const SizedBox( height: 10, ), MyElevatedButton( title: 'You can buy points from your budget'.tr, onPressed: () { Get.defaultDialog( title: 'Pay from my budget'.tr, titleStyle: AppStyle.title, content: Form( key: captainWalletController.formKey, child: MyTextForm( controller: captainWalletController .amountFromBudgetController, label: '${'You have in account'.tr} ${captainWalletController.totalAmountVisa}', hint: '${'You have in account'.tr} ${captainWalletController.totalAmountVisa}', type: TextInputType.number, ), ), confirm: MyElevatedButton( title: 'Pay', onPressed: () async { if (double.parse( captainWalletController .amountFromBudgetController .text) < double.parse( captainWalletController .totalAmountVisa)) { await captainWalletController .payFromBudget(); } else { Get.back(); Get.snackbar( 'Your Budget less than needed' .tr, '', duration: const Duration( seconds: 3), backgroundColor: AppColor.redColor, snackPosition: SnackPosition.BOTTOM, ); } }), cancel: MyElevatedButton( title: 'Cancel'.tr, onPressed: () { Get.back(); })); }, ), MyElevatedButton( title: 'Transfer budget'.tr, onPressed: () { Get.to(() => const TransferBudgetPage()); }) ], ), ), ), const SizedBox( height: 10, ), Padding( padding: const EdgeInsets.all(8.0), child: Container( decoration: AppStyle.boxDecoration, child: Column( children: [ Text( 'You can buy Points to let you online\nby this list below' .tr, textAlign: TextAlign.center, style: AppStyle.title, ), const Divider( indent: 30, endIndent: 30, color: AppColor.accentColor, thickness: 3, ), const SizedBox( height: 10, ), Container( decoration: AppStyle.boxDecoration, height: Get.height * .19, child: ListView( scrollDirection: Axis.horizontal, children: [ PointsCaptain( kolor: AppColor.blueColor, pricePoint: box.read(BoxName.countryCode) == 'Jordan' ? 5 : 100, countPoint: box.read(BoxName.countryCode) == 'Jordan' ? '300' : '100', ), PointsCaptain( kolor: Colors.green, pricePoint: box.read(BoxName.countryCode) == 'Jordan' ? 10 : 200, countPoint: box.read(BoxName.countryCode) == 'Jordan' ? '1040' : '210', ), PointsCaptain( kolor: Colors.amberAccent, pricePoint: box.read(BoxName.countryCode) == 'Jordan' ? 22 : 400, countPoint: box.read(BoxName.countryCode) == 'Jordan' ? '2300' : '450', ), PointsCaptain( kolor: AppColor.yellowColor, pricePoint: box.read(BoxName.countryCode) == 'Jordan' ? 50 : 1000, countPoint: box.read(BoxName.countryCode) == 'Jordan' ? '55000' : '1200', ), ], )), ], ), ), ), const SizedBox( height: 30, ), box .read(BoxName.accountIdStripeConnect) .toString() .isEmpty ? Row( mainAxisAlignment: MainAxisAlignment.center, children: [ MyElevatedButton( title: 'Create Wallet to receive your money', onPressed: () async { PaymentController paymentController = Get.find(); paymentController .createConnectAccount(); }), ], ) : const SizedBox( height: 30, ), Padding( padding: const EdgeInsets.symmetric(horizontal: 10), child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ MyElevatedButton( kolor: AppColor.blueColor, title: 'Payment History'.tr, onPressed: () async { await Get.put(DriverWalletHistoryController()) .getArchivePayment(); Get.to(() => const PaymentHistoryDriverPage(), transition: Transition.size); }, ), MyElevatedButton( kolor: AppColor.blueColor, title: 'Weekly Budget'.tr, onPressed: () async { await Get.put(DriverWalletHistoryController()) .getWeekllyArchivePayment(); Get.to(() => const WeeklyPaymentPage(), transition: Transition.size); }, ), ], ), ), // TextButton( // onPressed: () async { // PaymentController paymentController = // Get.put(PaymentController()); // await paymentController.createTransactionToCaptain( // '1000', // box.read(BoxName.accountIdStripeConnect)); // }, // child: const Text( // "Pay to Captain", // ), // ) ], ), )) ], isleading: true, action: InkWell( onTap: () { captainWalletController.getCaptainWalletFromBuyPoints(); }, child: const Icon(Icons.refresh)), ); } } class MyDropDown1 extends StatelessWidget { @override Widget build(BuildContext context) { Get.put(PaymobPayout()); return GetBuilder(builder: (controller) { return DropdownButton( value: controller.dropdownValue, icon: const Icon(Icons.arrow_drop_down), elevation: 16, style: const TextStyle(color: Colors.deepPurple), underline: Container( height: 2, color: Colors.deepPurpleAccent, ), onChanged: (String? newValue) { controller.dropdownValue = newValue!; controller.update(); }, items: ['etisalat', 'aman', 'orange', 'vodafone'] .map>((String value) { return DropdownMenuItem( value: value, child: Text(value), ); }).toList(), ); }); } }