25-6-23/1
This commit is contained in:
@@ -25,6 +25,7 @@ import '../../firebase/firbase_messge.dart';
|
||||
import '../../functions/crud.dart';
|
||||
import '../../functions/encrypt_decrypt.dart';
|
||||
import '../../functions/location_controller.dart';
|
||||
import '../../functions/tts.dart';
|
||||
|
||||
class MapDriverController extends GetxController {
|
||||
bool isLoading = true;
|
||||
@@ -174,7 +175,7 @@ class MapDriverController extends GetxController {
|
||||
cancelTripFromDriverAfterApplied() async {
|
||||
if (formKeyCancel.currentState!.validate()) {
|
||||
box.write(BoxName.statusDriverLocation, 'off');
|
||||
FirebaseMessagesController().sendNotificationToDriverMAP(
|
||||
Get.find<FirebaseMessagesController>().sendNotificationToDriverMAP(
|
||||
"Cancel Trip from driver",
|
||||
"Trip Cancelled from driver. We are looking for a new driver. Please wait."
|
||||
.tr,
|
||||
@@ -235,6 +236,8 @@ class MapDriverController extends GetxController {
|
||||
'created_at': DateTime.now().toString(),
|
||||
'driver_id': box.read(BoxName.driverID).toString(),
|
||||
}, TableName.driverOrdersRefuse);
|
||||
box.write(BoxName.rideStatus, 'Cancel');
|
||||
Log.print('rideStatus from map 240 : ${box.read(BoxName.rideStatus)}');
|
||||
Get.find<HomeCaptainController>().getRefusedOrderByCaptain();
|
||||
Get.offAll(() => HomeCaptain());
|
||||
}
|
||||
@@ -242,6 +245,7 @@ class MapDriverController extends GetxController {
|
||||
|
||||
void startTimerToShowPassengerInfoWindowFromDriver() async {
|
||||
if (box.read(BoxName.rideStatus) == 'Begin') {
|
||||
Log.print('rideStatus from map 248 : ${box.read(BoxName.rideStatus)}');
|
||||
isPassengerInfoWindow = false;
|
||||
} else {
|
||||
isPassengerInfoWindow = true;
|
||||
@@ -298,6 +302,7 @@ class MapDriverController extends GetxController {
|
||||
void driverGoToPassenger() async {
|
||||
changeRideToBeginToPassenger();
|
||||
box.write(BoxName.rideStatus, 'Applied');
|
||||
Log.print('rideStatus from map 304 : ${box.read(BoxName.rideStatus)}');
|
||||
update();
|
||||
await CRUD().post(
|
||||
link: "${AppLink.seferCairoServer}/ride/rides/update.php",
|
||||
@@ -315,7 +320,7 @@ class MapDriverController extends GetxController {
|
||||
}
|
||||
// Get.find<HomeCaptainController>().changeToAppliedRide('Applied');
|
||||
|
||||
FirebaseMessagesController().sendNotificationToDriverMAP(
|
||||
Get.find<FirebaseMessagesController>().sendNotificationToDriverMAP(
|
||||
'Driver Is Going To Passenger'.tr,
|
||||
box.read(BoxName.nameDriver).toString(), //todo name driver
|
||||
tokenPassenger,
|
||||
@@ -392,6 +397,7 @@ class MapDriverController extends GetxController {
|
||||
// todo ride details
|
||||
// Get.find<HomeCaptainController>().changeToAppliedRide('Begin');
|
||||
box.write(BoxName.rideStatus, 'Begin');
|
||||
Log.print('rideStatus from map 399 : ${box.read(BoxName.rideStatus)}');
|
||||
// Get.find<HomeCaptainController>().update();
|
||||
update();
|
||||
await CRUD().post(link: AppLink.updateRides, payload: {
|
||||
@@ -418,7 +424,7 @@ class MapDriverController extends GetxController {
|
||||
'status': 'Begin'
|
||||
});
|
||||
}
|
||||
FirebaseMessagesController().sendNotificationToDriverMAP(
|
||||
Get.find<FirebaseMessagesController>().sendNotificationToDriverMAP(
|
||||
'Trip is Begin'.tr,
|
||||
box.read(BoxName.nameDriver).toString(),
|
||||
tokenPassenger,
|
||||
@@ -584,17 +590,29 @@ class MapDriverController extends GetxController {
|
||||
}
|
||||
}
|
||||
|
||||
void finishRideFromDriver() {
|
||||
Future<void> finishRideFromDriver() async {
|
||||
double distanceToDestination = Geolocator.distanceBetween(
|
||||
latLngPassengerLocation.latitude,
|
||||
latLngPassengerLocation.longitude,
|
||||
latLngPassengerDestination.latitude,
|
||||
latLngPassengerDestination.longitude,
|
||||
Get.find<LocationController>().myLocation.latitude,
|
||||
Get.find<LocationController>().myLocation.longitude,
|
||||
);
|
||||
final originalDistanceM = double.parse(distance.toString()) * 1000;
|
||||
|
||||
if (distanceToDestination > (double.parse(distance.toString()) / 3)) {
|
||||
Log.print('distanceToDestination: ${distanceToDestination}');
|
||||
// 2. احسب المسافة التي قطعها السائق حتى الآن
|
||||
final movedDistanceM = originalDistanceM - distanceToDestination;
|
||||
|
||||
// 3. عتبة ثلث المسافة
|
||||
final oneThirdDistanceM = originalDistanceM / 3;
|
||||
|
||||
// Logging للتتبع
|
||||
Log.print('originalDistanceM: $originalDistanceM');
|
||||
Log.print('distanceToDestinationM: $distanceToDestination');
|
||||
Log.print('movedDistanceM: $movedDistanceM');
|
||||
Log.print('oneThirdDistanceM: $oneThirdDistanceM');
|
||||
|
||||
// 4. إذا لم يقطع السائق ثلث المسافة، نعرض التأكيد
|
||||
if (movedDistanceM < oneThirdDistanceM) {
|
||||
MyDialog().getDialog(
|
||||
'Are you sure to exit ride?'.tr,
|
||||
'',
|
||||
@@ -603,33 +621,39 @@ class MapDriverController extends GetxController {
|
||||
finishRideFromDriver1();
|
||||
},
|
||||
);
|
||||
} else {
|
||||
} /////
|
||||
|
||||
else {
|
||||
final textToSpeechController = Get.put(TextToSpeechController());
|
||||
MyDialog().getDialog(
|
||||
"You haven't moved sufficiently!".tr,
|
||||
'',
|
||||
() => Get.back(),
|
||||
);
|
||||
await textToSpeechController
|
||||
.speakText("You haven't moved sufficiently!".tr);
|
||||
}
|
||||
}
|
||||
|
||||
String paymentToken = '';
|
||||
Future<String> generateTokenDriver(String amount) async {
|
||||
var res = await CRUD().post(link: AppLink.addPaymentTokenDriver, payload: {
|
||||
var res =
|
||||
await CRUD().postWallet(link: AppLink.addPaymentTokenDriver, payload: {
|
||||
'driverID': box.read(BoxName.driverID).toString(),
|
||||
'amount': amount.toString(),
|
||||
});
|
||||
var d = jsonDecode(res);
|
||||
var d = (res);
|
||||
return d['message'];
|
||||
}
|
||||
|
||||
String paymentTokenPassenger = '';
|
||||
Future<String> generateTokenPassenger(String amount) async {
|
||||
var res =
|
||||
await CRUD().post(link: AppLink.addPaymentTokenPassenger, payload: {
|
||||
var res = await CRUD()
|
||||
.postWallet(link: AppLink.addPaymentTokenPassenger, payload: {
|
||||
'passengerId': passengerId,
|
||||
'amount': amount.toString(),
|
||||
});
|
||||
var d = jsonDecode(res);
|
||||
var d = (res);
|
||||
return d['message'];
|
||||
}
|
||||
|
||||
@@ -638,6 +662,7 @@ class MapDriverController extends GetxController {
|
||||
isRideStarted = false;
|
||||
isPriceWindow = false;
|
||||
box.write(BoxName.rideStatus, 'Finished');
|
||||
Log.print('rideStatus from map 664 : ${box.read(BoxName.rideStatus)}');
|
||||
|
||||
// Calculate totalCost more concisely
|
||||
if (price < 20) {
|
||||
@@ -699,7 +724,8 @@ class MapDriverController extends GetxController {
|
||||
if (walletChecked == 'true') {
|
||||
paymentToken = await generateTokenPassenger(
|
||||
((-1) * double.parse(paymentAmount)).toString());
|
||||
futures.add(CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
||||
futures
|
||||
.add(CRUD().postWallet(link: AppLink.addPassengersWallet, payload: {
|
||||
'passenger_id': (passengerId),
|
||||
'balance': ((-1) * double.parse(paymentAmount)).toString(),
|
||||
'token': paymentToken,
|
||||
@@ -707,7 +733,7 @@ class MapDriverController extends GetxController {
|
||||
}
|
||||
|
||||
paymentToken = await generateTokenDriver(paymentAmount.toString());
|
||||
futures.add(CRUD().post(link: AppLink.addDrivePayment, payload: {
|
||||
futures.add(CRUD().postWallet(link: AppLink.addDrivePayment, payload: {
|
||||
'rideId': (rideId),
|
||||
'amount': paymentAmount,
|
||||
'payment_method':
|
||||
@@ -720,7 +746,8 @@ class MapDriverController extends GetxController {
|
||||
if (double.parse(passengerWalletBurc) < 0) {
|
||||
final paymentToken1 = await generateTokenPassenger(
|
||||
((-1) * double.parse(passengerWalletBurc)).toString());
|
||||
futures.add(CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
||||
futures
|
||||
.add(CRUD().postWallet(link: AppLink.addPassengersWallet, payload: {
|
||||
'passenger_id': (passengerId),
|
||||
'token': paymentToken1,
|
||||
'balance': ((-1) * double.parse(passengerWalletBurc)).toString()
|
||||
@@ -730,7 +757,8 @@ class MapDriverController extends GetxController {
|
||||
double pointsSubtraction = double.parse(paymentAmount) * (-1) * 0.08;
|
||||
final paymentToken2 =
|
||||
await generateTokenDriver((pointsSubtraction).toStringAsFixed(0));
|
||||
futures.add(CRUD().post(link: AppLink.addDriversWalletPoints, payload: {
|
||||
futures
|
||||
.add(CRUD().postWallet(link: AppLink.addDriversWalletPoints, payload: {
|
||||
'paymentID': 'rideId${(rideId)}',
|
||||
'amount': (pointsSubtraction).toStringAsFixed(0),
|
||||
'paymentMethod': paymentMethod,
|
||||
@@ -743,7 +771,7 @@ class MapDriverController extends GetxController {
|
||||
Get.put(DriverBehaviorController()).sendSummaryToServer(driverId, rideId);
|
||||
|
||||
// Send notification (this likely depends on previous steps)
|
||||
FirebaseMessagesController().sendNotificationToDriverMAP(
|
||||
Get.find<FirebaseMessagesController>().sendNotificationToDriverMAP(
|
||||
"Driver Finish Trip".tr,
|
||||
'${'you will pay to Driver'.tr} $paymentAmount \$',
|
||||
tokenPassenger,
|
||||
@@ -862,7 +890,7 @@ class MapDriverController extends GetxController {
|
||||
// 'driverID': box.read(BoxName.driverID).toString(),
|
||||
// });
|
||||
// Future.delayed(const Duration(milliseconds: 300));
|
||||
// FirebaseMessagesController().sendNotificationToDriverMAP(
|
||||
// Get.find<FirebaseMessagesController>().sendNotificationToDriverMAP(
|
||||
// "Driver Finish Trip".tr,
|
||||
// '${'you will pay to Driver'.tr} $paymentAmount \$',
|
||||
// tokenPassenger,
|
||||
@@ -1362,7 +1390,8 @@ 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();
|
||||
Get.put(FirebaseMessagesController());
|
||||
runGoogleMapDirectly();
|
||||
addCustomCarIcon();
|
||||
addCustomPassengerIcon();
|
||||
|
||||
Reference in New Issue
Block a user