391 lines
18 KiB
Dart
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,
|
|
)
|
|
],
|
|
)
|
|
],
|
|
),
|
|
),
|
|
],
|
|
);
|
|
}
|
|
}
|