Files
tripz/lib/views/home/my_wallet/walet_captain.dart
Hamza-Ayed a9f557ca83 2/22/1
2024-02-22 16:19:45 +03:00

391 lines
18 KiB
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/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<CaptainWalletController>(
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: 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: 'insert amount'.tr,
hint: 'insert amount'.tr,
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>();
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<CaptainWalletController>().totalAmountVisa}\$' ??
'0.0 \$',
style: AppStyle.headTitle2,
)
],
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Text(
box.read(BoxName.nameDriver),
style: AppStyle.title,
)
],
)
],
),
),
],
);
}
}