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'; import 'package:SEFER/constant/links.dart'; import 'package:SEFER/constant/style.dart'; import 'package:SEFER/controller/functions/crud.dart'; import 'package:SEFER/main.dart'; import 'package:SEFER/views/home/Captin/home_captain/home_captin.dart'; import 'package:SEFER/views/widgets/elevated_btn.dart'; // import '../home/captin/home_captain_controller.dart'; class RateController extends GetxController { double selectedRateItemId = -1; TextEditingController comment = TextEditingController(); TextEditingController passengerPayAmount = TextEditingController(); String? rideId, passengerId, driverId, price; late GlobalKey formKey; bool ispassengerWantWalletFromDriver = false; String walletChecked = ''; @override void onInit() { formKey = GlobalKey(); passengerId = Get.arguments['passengerId']; rideId = Get.arguments['rideId']; driverId = Get.arguments['driverId']; price = Get.arguments['price']; walletChecked = Get.arguments['walletChecked']; super.onInit(); } void passengerWantPay() { ispassengerWantWalletFromDriver = true; update(); } Future addPassengerWallet() async { if (formKey.currentState!.validate()) { var priceOfTrip = 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(), 'token': paymentToken2, }).then((value) async { if (value != 'failure') { Get.snackbar('Wallet Added'.tr, '', backgroundColor: AppColor.greenColor); 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 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': (pointsSubtraction).toStringAsFixed(0), 'paymentMethod': 'Remainder', 'token': paymentToken4, 'driverID': box.read(BoxName.driverID).toString(), }); FirebaseMessagesController().sendNotificationToAnyWithoutData( 'Wallet Added', 'Wallet Added'.tr, Get.find().tokenPassenger); walletChecked == 'true'; update(); } }); } else { Get.defaultDialog( title: '${'The price must be over than '.tr}$priceOfTrip', middleText: '', confirm: MyElevatedButton( title: 'Ok'.tr, onPressed: () { Get.back(); })); } } } void selectRateItem(double id) { selectedRateItemId = id; update(); } void addRateToPassenger() async { // HomeCaptainController homeCaptainController = // Get.find(); // Get.put(MapDriverController()); if (selectedRateItemId < 1) { Get.defaultDialog( title: 'You Should choose rate figure'.tr, titleStyle: AppStyle.title, middleText: '', confirm: MyElevatedButton(title: 'Ok', onPressed: () => Get.back())); } else { await CRUD().post(link: AppLink.addRateToPassenger, payload: { 'passenger_id': passengerId, 'driverID': box.read(BoxName.driverID).toString(), 'rideId': rideId, 'rating': selectedRateItemId.toString(), 'comment': comment.text, }); await CRUD().sendEmail(AppLink.sendEmailToPassengerForTripDetails, { 'startLocation': Get.find().passengerLocation.toString(), 'endLocation': Get.find().passengerDestination.toString(), 'name': Get.find().passengerName.toString(), 'timeOfTrip': Get.find().timeOfOrder.toString(), 'fee': Get.find().totalPricePassenger.toString(), 'duration': Get.find().duration.toString(), 'phone': Get.find().passengerPhone.toString(), 'email': Get.find().passengerEmail.toString(), 'startNameLocation': Get.find().startNameLocation.toString(), 'endNameLocation': Get.find().endNameLocation.toString(), }); // homeCaptainController.isActive = true; // update(); // homeCaptainController.getPaymentToday(); Get.offAll(HomeCaptain()); } } }