From 93cddb2fb2c99bea83e23be8b767657364a59ff5 Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Tue, 18 Jun 2024 14:37:18 +0300 Subject: [PATCH] 6/18/2 --- lib/constant/links.dart | 10 +-- .../home/captin/home_captain_controller.dart | 2 +- .../home/captin/map_driver_controller.dart | 46 ++++++++----- .../payment/captain_wallet_controller.dart | 69 +++++++++++-------- .../home/payment/paymob_payout.dart | 2 +- .../payment/payment_controller.dart | 2 +- lib/controller/rate/rate_conroller.dart | 21 ++++-- lib/views/home/Captin/driver_map_page.dart | 17 +++-- lib/views/home/my_wallet/points_captain.dart | 6 +- .../home/my_wallet/transfer_budget_page.dart | 2 +- lib/views/home/my_wallet/walet_captain.dart | 6 +- 11 files changed, 113 insertions(+), 70 deletions(-) diff --git a/lib/constant/links.dart b/lib/constant/links.dart index 6a8f6d4..f0c5991 100644 --- a/lib/constant/links.dart +++ b/lib/constant/links.dart @@ -62,22 +62,22 @@ class AppLink { static String deleteRides = "$ride/rides/delete.php"; //-----------------DriverPayment------------------ - static String adddriverScam = "$ride/driver_scam/add.php"; - static String getdriverScam = "$ride/driver_scam/get.php"; + static String addDriverScam = "$ride/driver_scam/add.php"; + static String getDriverScam = "$ride/driver_scam/get.php"; /////////---getKazanPercent===//////////// static String getKazanPercent = "$ride/kazan/get.php"; static String addKazanPercent = "$ride/kazan/add.php"; ////-----------------DriverPayment------------------ - static String addDriverpayment = "$ride/payment/add.php"; + static String addDrivePayment = "$ride/payment/add.php"; static String addDriverPaymentPoints = "$ride/driverPayment/add.php"; - static String addPaymentToken = + static String addPaymentTokenDriver = "$ride/driverWallet/addPaymentToken.php"; //driverWallet/addPaymentToken.php static String addPaymentTokenPassenger = "$ride/passengerWallet/addPaymentTokenPassenger.php"; static String getDriverPaymentPoints = "$ride/driverWallet/get.php"; - static String getDriverpaymentToday = "$ride/payment/get.php"; + static String getDriverPaymentToday = "$ride/payment/get.php"; static String getCountRide = "$ride/payment/getCountRide.php"; static String getAllPaymentFromRide = "$ride/payment/getAllPayment.php"; static String getAllPaymentVisa = "$ride/payment/getAllPaymentVisa.php"; diff --git a/lib/controller/home/captin/home_captain_controller.dart b/lib/controller/home/captin/home_captain_controller.dart index 97d0e3d..dd48bdb 100644 --- a/lib/controller/home/captin/home_captain_controller.dart +++ b/lib/controller/home/captin/home_captain_controller.dart @@ -251,7 +251,7 @@ class HomeCaptainController extends GetxController { getPaymentToday() async { var res = await CRUD().get( - link: AppLink.getDriverpaymentToday, + link: AppLink.getDriverPaymentToday, payload: {'driverID': box.read(BoxName.driverID).toString()}); if (res != 'failure') { data = jsonDecode(res); diff --git a/lib/controller/home/captin/map_driver_controller.dart b/lib/controller/home/captin/map_driver_controller.dart index 660e6c2..8872972 100644 --- a/lib/controller/home/captin/map_driver_controller.dart +++ b/lib/controller/home/captin/map_driver_controller.dart @@ -252,7 +252,7 @@ class MapDriverController extends GetxController { }); } else if (isSocialPressed == true) { box.write(BoxName.statusDriverLocation, 'off'); - await CRUD().post(link: AppLink.adddriverScam, payload: { + await CRUD().post(link: AppLink.addDriverScam, payload: { 'driverID': box.read(BoxName.driverID), 'passengerID': passengerId, 'rideID': rideId, @@ -263,7 +263,7 @@ class MapDriverController extends GetxController { } Future getDriverScam() async { - var res = await CRUD().post(link: AppLink.getdriverScam, payload: { + var res = await CRUD().post(link: AppLink.getDriverScam, payload: { 'driverID': box.read(BoxName.driverID), }); if (res == 'failure') { @@ -391,19 +391,24 @@ class MapDriverController extends GetxController { ? (distanceBetweenDriverAndPassengerWhenConfirm * .08) + (5 * 1) : (distanceBetweenDriverAndPassengerWhenConfirm * .06) + (5 * .06); //for Eygpt other like jordan .06 per minute - var res = await CRUD().post(link: AppLink.addDriverpayment, payload: { + var paymentTokenWait = + await generateTokenDriver(costOfWaiting5Minute.toString()); + var res = await CRUD().post(link: AppLink.addDrivePayment, payload: { 'rideId': rideId, 'amount': costOfWaiting5Minute.toString(), 'payment_method': 'wait-cancel', 'passengerID': passengerId, + 'token': paymentTokenWait, 'driverID': box.read(BoxName.driverID).toString(), }); - + var paymentTokenWait1 = + await generateTokenDriver(costOfWaiting5Minute.toString()); var res1 = await CRUD().post(link: AppLink.addDriversWalletPoints, payload: { 'paymentID': 'rideId$rideId', 'amount': (costOfWaiting5Minute).toStringAsFixed(0), 'paymentMethod': 'wait', + 'token': paymentTokenWait1, 'driverID': box.read(BoxName.driverID).toString(), }); print(res1); @@ -414,9 +419,12 @@ class MapDriverController extends GetxController { backgroundColor: AppColor.deepPurpleAccent, ); } + var paymentTokenWaitPassenger1 = + await generateTokenPassenger((costOfWaiting5Minute * -1).toString()); await CRUD().post(link: AppLink.addPassengersWallet, payload: { 'passenger_id': passengerId, - 'balance': (costOfWaiting5Minute * -1).toString() + 'balance': (costOfWaiting5Minute * -1).toString(), + 'token': paymentTokenWaitPassenger1, }); box.write(BoxName.statusDriverLocation, 'off'); Get.offAll(HomeCaptain()); @@ -444,8 +452,8 @@ class MapDriverController extends GetxController { } String paymentToken = ''; - Future generateToken(String amount) async { - var res = await CRUD().post(link: AppLink.addPaymentToken, payload: { + Future generateTokenDriver(String amount) async { + var res = await CRUD().post(link: AppLink.addPaymentTokenDriver, payload: { 'driverID': box.read(BoxName.driverID).toString(), 'amount': amount.toString(), }); @@ -506,18 +514,21 @@ class MapDriverController extends GetxController { 'token': paymentToken, }); } - paymentToken = await generateToken(paymentAmount.toString()); - await CRUD().post(link: AppLink.addDriverpayment, payload: { + paymentToken = await generateTokenDriver(paymentAmount.toString()); + await CRUD().post(link: AppLink.addDrivePayment, payload: { 'rideId': rideId, 'amount': paymentAmount, - 'payment_method': paymentMethod, + 'payment_method': + walletChecked == 'true' ? "${paymentMethod}Ride" : paymentMethod, 'passengerID': passengerId, 'token': paymentToken, 'driverID': box.read(BoxName.driverID).toString(), }); print('passengerWalletBurc bef ${double.parse(passengerWalletBurc)}'); if (double.parse(passengerWalletBurc) < 0) { - var paymentToken1 = await generateToken(paymentAmount.toString()); + // for zero passenger + var paymentToken1 = await generateTokenPassenger( + ((-1) * double.parse(passengerWalletBurc)).toString()); await CRUD().post(link: AppLink.addPassengersWallet, payload: { 'passenger_id': passengerId, 'token': paymentToken1, @@ -526,15 +537,16 @@ class MapDriverController extends GetxController { print('passengerWalletBurc aft ${double.parse(passengerWalletBurc)}'); } - double pointsSubstraction = 0; - pointsSubstraction = double.parse(paymentAmount) * + double pointsSubtraction = 0; + pointsSubtraction = double.parse(paymentAmount) * (-1) * double.parse(kazan) / - 100; // for eygpt /100 - var paymentToken2 = await generateToken(paymentAmount.toString()); + 100; // for Egypt /100 + var paymentToken2 = + await generateTokenDriver((pointsSubtraction).toStringAsFixed(0)); var res = await CRUD().post(link: AppLink.addDriversWalletPoints, payload: { 'paymentID': 'rideId$rideId', - 'amount': (pointsSubstraction).toStringAsFixed(0), + 'amount': (pointsSubtraction).toStringAsFixed(0), 'paymentMethod': paymentMethod, 'token': paymentToken2, 'driverID': box.read(BoxName.driverID).toString(), @@ -965,7 +977,7 @@ class MapDriverController extends GetxController { void onInit() async { mapAPIKEY = await storage.read(key: BoxName.mapAPIKEY); // Get the passenger location from the arguments. - await argumentLoading(); + // await argumentLoading(); addCustomCarIcon(); addCustomPassengerIcon(); addCustomStartIcon(); diff --git a/lib/controller/home/payment/captain_wallet_controller.dart b/lib/controller/home/payment/captain_wallet_controller.dart index 659cf32..4055c6a 100644 --- a/lib/controller/home/payment/captain_wallet_controller.dart +++ b/lib/controller/home/payment/captain_wallet_controller.dart @@ -1,7 +1,9 @@ import 'dart:convert'; import 'package:SEFER/constant/colors.dart'; +import 'package:SEFER/constant/style.dart'; import 'package:SEFER/controller/firebase/firbase_messge.dart'; +import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:SEFER/constant/box_name.dart'; @@ -29,18 +31,22 @@ class CaptainWalletController extends GetxController { ? int.parse((amountFromBudgetController.text)) * 100 : int.parse((amountFromBudgetController.text)); - await addDriverPayment('fromBudgetToPoints', + await addDriverPaymentPoints('fromBudgetToPoints', int.parse((amountFromBudgetController.text)) * -1); Future.delayed(const Duration(seconds: 2)); await addDriverWallet('fromBudget', pointFromBudget.toString()); update(); Get.back(); - getCaptainWalletFromRide(); - getCaptainWalletFromBuyPoints(); - checkAccountCaptainBank(); + await refreshCaptainWallet(); } } + Future refreshCaptainWallet() async { + await getCaptainWalletFromRide(); + await getCaptainWalletFromBuyPoints(); + await checkAccountCaptainBank(); + } + List amountToNewDriverMap = []; bool isNewTransfer = false; Future detectNewDriverFromMyBudget() async { @@ -88,6 +94,7 @@ class CaptainWalletController extends GetxController { link: AppLink.getAllPaymentFromRide, payload: {'driverID': box.read(BoxName.driverID)}, ); + isLoading = false; walletDate = jsonDecode(res); totalAmount = walletDate['message'][0]['total_amount'] ?? '0'; print(totalAmount); @@ -98,17 +105,20 @@ class CaptainWalletController extends GetxController { walletDateVisa = jsonDecode(res1); totalAmountVisa = walletDateVisa['message'][0]['diff'] ?? '0'; print(totalAmountVisa); - isLoading = false; + update(); } Future getCaptainWalletFromBuyPoints() async { isLoading = true; update(); + var res = await CRUD().get( link: AppLink.getDriverPaymentPoints, payload: {'driverID': box.read(BoxName.driverID)}, ); + isLoading = false; + // update(); walletDriverPointsDate = jsonDecode(res); if (walletDriverPointsDate['message'][0]['driverID'].toString() == box.read(BoxName.driverID)) { @@ -119,13 +129,12 @@ class CaptainWalletController extends GetxController { totalPoints = '0'; } - isLoading = false; update(); } String paymentToken = ''; Future generateToken(String amount) async { - var res = await CRUD().post(link: AppLink.addPaymentToken, payload: { + var res = await CRUD().post(link: AppLink.addPaymentTokenDriver, payload: { 'driverID': box.read(BoxName.driverID).toString(), 'amount': amount.toString(), }); @@ -135,7 +144,7 @@ class CaptainWalletController extends GetxController { } late String paymentID; - Future addDriverPayment(String paymentMethod, amount) async { + Future addDriverPaymentPoints(String paymentMethod, amount) async { // paymentToken = await generateToken(amount); var res = await CRUD().post(link: AppLink.addDriverPaymentPoints, payload: { 'driverID': box.read(BoxName.driverID).toString(), @@ -159,26 +168,21 @@ class CaptainWalletController extends GetxController { }); } - Future addtransferDriversWallet(String paymentMethod1, paymentMethod2) async { - paymentID = - await addDriverPayment(paymentMethod1, amountFromBudgetController.text); - paymentToken = await generateToken(amountFromBudgetController.text); - await CRUD().post(link: AppLink.addDriversWalletPoints, payload: { - 'driverID': box.read(BoxName.driverID).toString(), - 'paymentID': paymentID.toString(), + Future addTransferDriversWallet(String paymentMethod1, paymentMethod2) async { + paymentID = await addDriverPaymentPoints( + paymentMethod1, amountFromBudgetController.text); + paymentToken = await generateToken( + (int.parse(amountFromBudgetController.text) * -1).toString()); + await CRUD().post(link: AppLink.addDrivePayment, payload: { 'amount': (int.parse(amountFromBudgetController.text) * -1).toString(), + 'rideId': paymentID.toString(), + 'payment_method': paymentMethod1, + 'passengerID': 'To ${amountToNewDriverMap[0]['id']}', 'token': paymentToken, - 'paymentMethod': paymentMethod1.toString(), + 'driverID': box.read(BoxName.driverID).toString(), }); - // paymentToken = await generateToken(amountFromBudgetController.text); - // await CRUD().post(link: AppLink.addDriverpayment, payload: { - // 'driverID': box.read(BoxName.driverID).toString(), - // 'paymentID': paymentID.toString(), - // 'amount': (int.parse(amountFromBudgetController.text) * -1).toString(), - // 'token': paymentToken, - // 'paymentMethod': paymentMethod1.toString(), - // }); - paymentID = await addDriverPayment(paymentMethod2, + + paymentID = await addDriverPaymentPoints(paymentMethod2, (int.parse(amountFromBudgetController.text) - 5).toString()); paymentToken = await generateToken(amountFromBudgetController.text); var res1 = @@ -197,12 +201,23 @@ class CaptainWalletController extends GetxController { amountToNewDriverMap[0]['token'].toString(), [], ); + Get.defaultDialog( + title: 'transfer Successful'.tr, + middleText: '', + titleStyle: AppStyle.title, + confirm: MyElevatedButton( + title: 'Ok'.tr, + onPressed: () async { + Get.back(); + Get.back(); + await refreshCaptainWallet(); + })); } } //check if account bank is created or not Future checkAccountCaptainBank() async { - isLoading = false; + isLoading = true; update(); if (box.read(BoxName.accountIdStripeConnect).toString().isEmpty) { var res = await CRUD().get(link: AppLink.getAccount, payload: { @@ -214,7 +229,7 @@ class CaptainWalletController extends GetxController { d['message'][0]['accountBank'].toString()); } } - isLoading = true; + isLoading = false; update(); } diff --git a/lib/controller/home/payment/paymob_payout.dart b/lib/controller/home/payment/paymob_payout.dart index ba8f182..32155f6 100644 --- a/lib/controller/home/payment/paymob_payout.dart +++ b/lib/controller/home/payment/paymob_payout.dart @@ -65,7 +65,7 @@ class PaymobPayout extends GetxController { print('-----'); var dec = jsonDecode(res.body); if (dec['disbursement_status'] == 'successful') { - await CRUD().post(link: AppLink.addDriverpayment, payload: { + await CRUD().post(link: AppLink.addDrivePayment, payload: { 'rideId': DateTime.now().toIso8601String(), 'amount': ((-1) * (double.parse(dec['amount'])) + 5).toStringAsFixed(0), 'payment_method': 'payout', diff --git a/lib/controller/payment/payment_controller.dart b/lib/controller/payment/payment_controller.dart index 38b9654..06e774f 100644 --- a/lib/controller/payment/payment_controller.dart +++ b/lib/controller/payment/payment_controller.dart @@ -759,7 +759,7 @@ class PaymentController extends GetxController { if (box.read(BoxName.passengerWalletTotal) == null) { box.write(BoxName.passengerWalletTotal, '0'); } - getPassengerWallet(); + // getPassengerWallet(); final localAuth = LocalAuthentication(); super.onInit(); } diff --git a/lib/controller/rate/rate_conroller.dart b/lib/controller/rate/rate_conroller.dart index 2f238bd..b87e0df 100644 --- a/lib/controller/rate/rate_conroller.dart +++ b/lib/controller/rate/rate_conroller.dart @@ -1,6 +1,7 @@ import 'package:SEFER/constant/colors.dart'; import 'package:SEFER/controller/firebase/firbase_messge.dart'; import 'package:SEFER/controller/home/captin/map_driver_controller.dart'; +import 'package:SEFER/controller/payment/payment_controller.dart'; import 'package:flutter/cupertino.dart'; import 'package:get/get.dart'; import 'package:SEFER/constant/box_name.dart'; @@ -43,29 +44,37 @@ class RateController extends GetxController { double.parse(Get.find().paymentAmount); double remainingFee = double.parse(passengerPayAmount.text) - priceOfTrip; if (remainingFee > 0) { + var paymentToken2 = await Get.find() + .generateTokenPassenger(remainingFee.toString()); await CRUD().post(link: AppLink.addPassengersWallet, payload: { 'passenger_id': passengerId, - 'balance': remainingFee.toString() + 'balance': remainingFee.toString(), + 'token': paymentToken2, }).then((value) async { if (value != 'failure') { Get.snackbar('Wallet Added'.tr, '', backgroundColor: AppColor.greenColor); - - await CRUD().post(link: AppLink.addDriverpayment, payload: { + var paymentToken3 = await Get.find() + .generateTokenPassenger(remainingFee.toString()); + await CRUD().post(link: AppLink.addDrivePayment, payload: { 'rideId': 'remain$rideId', 'amount': remainingFee.toString(), 'payment_method': 'Remainder', 'passengerID': passengerId, + 'token': paymentToken3, 'driverID': box.read(BoxName.driverID).toString(), }); - double pointsSubstraction = 0; - pointsSubstraction = remainingFee * (-1); // for eygpt /100 + double pointsSubtraction = 0; + pointsSubtraction = remainingFee * (-1); // for egypt /100 + var paymentToken4 = await Get.find() + .generateTokenPassenger((pointsSubtraction).toStringAsFixed(0)); var res = await CRUD() .post(link: AppLink.addDriversWalletPoints, payload: { 'paymentID': 'rideId$rideId', - 'amount': (pointsSubstraction).toStringAsFixed(0), + 'amount': (pointsSubtraction).toStringAsFixed(0), 'paymentMethod': 'Remainder', + 'token': paymentToken4, 'driverID': box.read(BoxName.driverID).toString(), }); diff --git a/lib/views/home/Captin/driver_map_page.dart b/lib/views/home/Captin/driver_map_page.dart index e6ed49d..f338a0b 100644 --- a/lib/views/home/Captin/driver_map_page.dart +++ b/lib/views/home/Captin/driver_map_page.dart @@ -16,13 +16,20 @@ import 'mapDriverWidgets/sos_connect.dart'; class PassengerLocationMapPage extends StatelessWidget { PassengerLocationMapPage({super.key}); final LocationController locationController = Get.put(LocationController()); - // final MapDriverController mapDriverController = - // Get.put(MapDriverController()); + final MapDriverController mapDriverController = + Get.put(MapDriverController()); @override Widget build(BuildContext context) { - Get.put(MapDriverController()); - // Get.put(MapDriverController()) - // .startTimerToShowPassengerInfoWindowFromDriver(); + if (!mapDriverController.initialized) { + // Call a method to initialize the controller + + mapDriverController.initialized; + } else { + Get.put(MapDriverController()).argumentLoading(); + + Get.put(MapDriverController()) + .startTimerToShowPassengerInfoWindowFromDriver(); + } return MyScafolld( title: 'Map Passenger'.tr, diff --git a/lib/views/home/my_wallet/points_captain.dart b/lib/views/home/my_wallet/points_captain.dart index d9faa15..4a96422 100644 --- a/lib/views/home/my_wallet/points_captain.dart +++ b/lib/views/home/my_wallet/points_captain.dart @@ -48,7 +48,7 @@ class PointsCaptain extends StatelessWidget { box.read(BoxName.countryCode) == 'Egypt' ? 'EGP' : 'JOD', () async { - await captainWalletController.addDriverPayment( + await captainWalletController.addDriverPaymentPoints( 'visa-in', pricePoint); await captainWalletController.addDriverWallet( 'visa-in', countPoint); @@ -69,7 +69,7 @@ class PointsCaptain extends StatelessWidget { box.read(BoxName.countryCode) == 'Egypt' ? 'EGP' : 'JOD', () async { - await captainWalletController.addDriverPayment( + await captainWalletController.addDriverPaymentPoints( 'visa-in', pricePoint); await captainWalletController.addDriverWallet( 'visa-in', countPoint); @@ -83,7 +83,7 @@ class PointsCaptain extends StatelessWidget { : await paymentController.makePaymentStripe(pricePoint, box.read(BoxName.countryCode) == 'Jordan' ? 'jod' : 'egp', () async { - await captainWalletController.addDriverPayment( + await captainWalletController.addDriverPaymentPoints( 'visa-in', pricePoint); await captainWalletController.addDriverWallet( 'visa-in', countPoint); diff --git a/lib/views/home/my_wallet/transfer_budget_page.dart b/lib/views/home/my_wallet/transfer_budget_page.dart index c7113c5..22f7aad 100644 --- a/lib/views/home/my_wallet/transfer_budget_page.dart +++ b/lib/views/home/my_wallet/transfer_budget_page.dart @@ -108,7 +108,7 @@ class TransferBudgetPage extends StatelessWidget { title: 'Transfer'.tr, onPressed: () async { await captainWalletController - .addtransferDriversWallet( + .addTransferDriversWallet( 'TransferFrom', 'TransferTo', ); diff --git a/lib/views/home/my_wallet/walet_captain.dart b/lib/views/home/my_wallet/walet_captain.dart index 0cbb2cd..c9765f5 100644 --- a/lib/views/home/my_wallet/walet_captain.dart +++ b/lib/views/home/my_wallet/walet_captain.dart @@ -29,7 +29,7 @@ class WalletCaptain extends StatelessWidget { Get.put(CaptainWalletController()); @override Widget build(BuildContext context) { - Get.put(MapDriverController()).totalPricePassenger = '0'; + // Get.put(MapDriverController()).totalPricePassenger = '0'; return MyScafolld( title: 'Driver Wallet'.tr, body: [ @@ -424,8 +424,8 @@ class WalletCaptain extends StatelessWidget { ], isleading: true, action: InkWell( - onTap: () { - captainWalletController.getCaptainWalletFromBuyPoints(); + onTap: () async { + captainWalletController.refreshCaptainWallet(); }, child: const Icon(Icons.refresh)), );