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/map_passenger_controller.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 '../../widgets/my_scafold.dart'; import 'points_captain.dart'; class WaletCaptain extends StatelessWidget { WaletCaptain({super.key}); CaptainWalletController captainWalletController = Get.put(CaptainWalletController()); @override Widget build(BuildContext context) { Get.put(MapPassengerController()); 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.boxDecoration.copyWith( color: double.parse(captainWalletController .totalPoints) < 0 && double.parse(captainWalletController .totalPoints) > -500 ? AppColor.yellowColor : double.parse(captainWalletController .totalPoints) < -500 ? AppColor.redColor : AppColor.greenColor, ), child: InkWell( onTap: () { Get.snackbar( 'the 500 points equal 30 JOD'.tr, 'the 500 points equal 30 JOD 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, ), ), ), ), const SizedBox( height: 10, ), double.parse(captainWalletController.totalPoints .toString()) < -500 ? 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( '${'Total Amount:'.tr} ${captainWalletController.totalAmount}\$', 'This amount for all trip I get from Passengers' .tr, duration: const Duration(seconds: 6), backgroundColor: AppColor.deepPurpleAccent, 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( '${'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.deepPurpleAccent, 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, content: Form( key: captainWalletController.formKey, child: MyTextForm( controller: captainWalletController .amountFromBudgetController, label: '${'You have in account'.tr} ${captainWalletController.totalAmount}', hint: '${'You have in account'.tr} ${captainWalletController.totalAmount}', type: TextInputType.number, ), ), confirm: MyElevatedButton( title: 'Pay', onPressed: () async { if (double.parse( captainWalletController .amountFromBudgetController .text) < double.parse( captainWalletController .totalAmount)) { 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(); })); }, ), ], ), ), ), const SizedBox( height: 10, ), 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 * .1, child: ListView( scrollDirection: Axis.horizontal, children: [ PointsCaptain( kolor: AppColor.blueColor, pricePoint: 5.6, countPoint: '500', ), PointsCaptain( kolor: Colors.green, pricePoint: 11.2, countPoint: '1040', ), PointsCaptain( kolor: Colors.amberAccent, pricePoint: 22.4, countPoint: '2100', ), PointsCaptain( kolor: AppColor.yellowColor, pricePoint: 56, countPoint: '52000', ), ], )), ], ), ), const SizedBox( height: 30, ), box .read(BoxName.accountIdStripeConnect) .toString() .isEmpty ? Row( mainAxisAlignment: MainAxisAlignment.center, children: [ MyElevatedButton( title: 'Create Wallet to recive your money', onPressed: () async { PaymentController paymentController = Get.find(); paymentController .createConnectAccount(); }), ], ) : const SizedBox( height: 30, ), Padding( padding: const EdgeInsets.symmetric(horizontal: 30), child: Row( children: [ MyElevatedButton( kolor: AppColor.blueColor, title: 'Payment History'.tr, onPressed: () { Get.to(() => const PaymentHistoryDriverPage(), 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 CardSeferWalletDriver extends StatelessWidget { const CardSeferWalletDriver({ super.key, }); @override Widget build(BuildContext context) { return Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Container( width: Get.width * .85, height: Get.height * .25, decoration: BoxDecoration( color: AppColor.deepPurpleAccent, borderRadius: const BorderRadius.all(Radius.circular(12)), gradient: const LinearGradient( colors: [AppColor.blueColor, AppColor.primaryColor]), ), child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Row( children: [ Text( '${AppInformation.appName} Wallet', style: AppStyle.headTitle .copyWith(color: AppColor.primaryColor), ) ], ), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Text( '${Get.find().totalAmountVisa}\$' ?? '0.0 \$', style: AppStyle.headTitle2, ) ], ), Row( mainAxisAlignment: MainAxisAlignment.end, children: [ Text( box.read(BoxName.nameDriver), style: AppStyle.title, ) ], ) ], ), ), ], ); } }