25-1/4/1
This commit is contained in:
@@ -630,72 +630,80 @@ class MapDriverController extends GetxController {
|
||||
}
|
||||
|
||||
void finishRideFromDriver1() async {
|
||||
// if (carType != 'Comfort' || carType != 'Free Ride') {
|
||||
|
||||
isRideFinished = true;
|
||||
isRideStarted = false;
|
||||
isPriceWindow = false;
|
||||
box.write(BoxName.rideStatus, 'Finished');
|
||||
// Get.find<HomeCaptainController>().changeToAppliedRide('Finished');
|
||||
// Get.find<HomeCaptainController>().update();
|
||||
totalCost = price < 20
|
||||
? carType != 'Comfort' && carType != 'Mishwar Vip' && carType != 'Lady'
|
||||
? '20'
|
||||
: '30'
|
||||
: price < double.parse(totalPricePassenger)
|
||||
? totalPricePassenger
|
||||
: carType != 'Comfort' &&
|
||||
carType != 'Mishwar Vip' &&
|
||||
carType != 'Lady'
|
||||
? totalPricePassenger
|
||||
: price.toStringAsFixed(2);
|
||||
|
||||
// Calculate totalCost more concisely
|
||||
if (price < 20) {
|
||||
totalCost = (carType == 'Comfort' ||
|
||||
carType == 'Mishwar Vip' ||
|
||||
carType == 'Lady')
|
||||
? '30'
|
||||
: '20';
|
||||
} else if (price < double.parse(totalPricePassenger)) {
|
||||
totalCost = totalPricePassenger;
|
||||
} else {
|
||||
totalCost = (carType == 'Comfort' ||
|
||||
carType == 'Mishwar Vip' ||
|
||||
carType == 'Lady')
|
||||
? price.toStringAsFixed(2)
|
||||
: totalPricePassenger;
|
||||
}
|
||||
paymentAmount = totalCost;
|
||||
box.write(BoxName.statusDriverLocation, 'off');
|
||||
// changeRideToBeginToPassenger();
|
||||
await CRUD().post(
|
||||
link: "${AppLink.seferCairoServer}/ride/rides/update.php",
|
||||
payload: {
|
||||
'id': rideId,
|
||||
'rideTimeFinish': DateTime.now().toString(),
|
||||
'status': 'Finished',
|
||||
'price': totalCost,
|
||||
});
|
||||
CRUD().post(
|
||||
link: "${AppLink.seferCairoServer}/ride/driver_order/update.php",
|
||||
payload: {
|
||||
// 'driver_id': box.read(BoxName.driverID).toString(),
|
||||
'order_id': rideId.toString(),
|
||||
'status': 'Finished'
|
||||
});
|
||||
|
||||
// Prepare data for API calls
|
||||
final nowString = DateTime.now().toString();
|
||||
final basePayload = {
|
||||
'id': rideId,
|
||||
'rideTimeFinish': nowString,
|
||||
'status': 'Finished',
|
||||
'price': totalCost,
|
||||
};
|
||||
final driverOrderPayload = {
|
||||
'order_id': rideId.toString(),
|
||||
'status': 'Finished'
|
||||
};
|
||||
|
||||
// List to hold all asynchronous operations
|
||||
List<Future<dynamic>> futures = [];
|
||||
|
||||
// API calls that can run in parallel
|
||||
futures.add(CRUD().post(
|
||||
link: "${AppLink.seferCairoServer}/ride/rides/update.php",
|
||||
payload: basePayload,
|
||||
));
|
||||
futures.add(CRUD().post(
|
||||
link: "${AppLink.seferCairoServer}/ride/driver_order/update.php",
|
||||
payload: driverOrderPayload,
|
||||
));
|
||||
|
||||
if (AppLink.endPoint != AppLink.seferCairoServer) {
|
||||
CRUD().post(
|
||||
futures.add(CRUD().post(
|
||||
link: "${AppLink.endPoint}/ride/rides/update.php",
|
||||
payload: {
|
||||
'id': rideId,
|
||||
'rideTimeFinish': DateTime.now().toString(),
|
||||
'status': 'Finished',
|
||||
'price': totalCost,
|
||||
},
|
||||
);
|
||||
CRUD().post(
|
||||
link: "${AppLink.endPoint}/ride/driver_order/update.php",
|
||||
payload: {
|
||||
// 'driver_id': box.read(BoxName.driverID).toString(),
|
||||
'order_id': rideId.toString(),
|
||||
'status': 'Finished'
|
||||
});
|
||||
payload: basePayload,
|
||||
));
|
||||
futures.add(CRUD().post(
|
||||
link: "${AppLink.endPoint}/ride/driver_order/update.php",
|
||||
payload: driverOrderPayload,
|
||||
));
|
||||
}
|
||||
|
||||
// Wallet transactions (can potentially be parallelized if independent)
|
||||
if (walletChecked == 'true') {
|
||||
paymentToken = await generateTokenPassenger(
|
||||
((-1) * double.parse(paymentAmount)).toString());
|
||||
await CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
||||
futures.add(CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
||||
'passenger_id': passengerId,
|
||||
'balance': ((-1) * double.parse(paymentAmount)).toString(),
|
||||
'token': paymentToken,
|
||||
});
|
||||
}));
|
||||
}
|
||||
|
||||
paymentToken = await generateTokenDriver(paymentAmount.toString());
|
||||
await CRUD().post(link: AppLink.addDrivePayment, payload: {
|
||||
futures.add(CRUD().post(link: AppLink.addDrivePayment, payload: {
|
||||
'rideId': rideId,
|
||||
'amount': paymentAmount,
|
||||
'payment_method':
|
||||
@@ -703,31 +711,33 @@ class MapDriverController extends GetxController {
|
||||
'passengerID': passengerId,
|
||||
'token': paymentToken,
|
||||
'driverID': box.read(BoxName.driverID).toString(),
|
||||
});
|
||||
}));
|
||||
|
||||
if (double.parse(passengerWalletBurc) < 0) {
|
||||
// for zero passenger
|
||||
var paymentToken1 = await generateTokenPassenger(
|
||||
final paymentToken1 = await generateTokenPassenger(
|
||||
((-1) * double.parse(passengerWalletBurc)).toString());
|
||||
await CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
||||
futures.add(CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
||||
'passenger_id': passengerId,
|
||||
'token': paymentToken1,
|
||||
'balance': ((-1) * double.parse(passengerWalletBurc)).toString()
|
||||
});
|
||||
}));
|
||||
}
|
||||
|
||||
double pointsSubtraction = 0;
|
||||
pointsSubtraction =
|
||||
double.parse(paymentAmount) * (-1) * .08; //for 300 from 3000
|
||||
var paymentToken2 =
|
||||
double pointsSubtraction = double.parse(paymentAmount) * (-1) * 0.08;
|
||||
final paymentToken2 =
|
||||
await generateTokenDriver((pointsSubtraction).toStringAsFixed(0));
|
||||
var res = await CRUD().post(link: AppLink.addDriversWalletPoints, payload: {
|
||||
futures.add(CRUD().post(link: AppLink.addDriversWalletPoints, payload: {
|
||||
'paymentID': 'rideId$rideId',
|
||||
'amount': (pointsSubtraction).toStringAsFixed(0),
|
||||
'paymentMethod': paymentMethod,
|
||||
'token': paymentToken2,
|
||||
'driverID': box.read(BoxName.driverID).toString(),
|
||||
});
|
||||
Future.delayed(const Duration(milliseconds: 300));
|
||||
}));
|
||||
|
||||
// Wait for all independent API calls to complete
|
||||
await Future.wait(futures);
|
||||
|
||||
// Send notification (this likely depends on previous steps)
|
||||
FirebaseMessagesController().sendNotificationToDriverMAP(
|
||||
"Driver Finish Trip".tr,
|
||||
'${'you will pay to Driver'.tr} $paymentAmount \$',
|
||||
@@ -736,20 +746,139 @@ class MapDriverController extends GetxController {
|
||||
box.read(BoxName.driverID),
|
||||
rideId,
|
||||
box.read(BoxName.tokenDriver),
|
||||
// carType == 'Comfort' || carType == 'Mishwar Vip'
|
||||
// ? price.toStringAsFixed(2)
|
||||
// : totalPassenger
|
||||
paymentAmount.toString()
|
||||
],
|
||||
'ding.wav');
|
||||
|
||||
// Navigate to the next screen (likely depends on previous steps being done)
|
||||
Get.to(() => RatePassenger(), arguments: {
|
||||
'passengerId': passengerId,
|
||||
'rideId': rideId,
|
||||
'price': paymentAmount.toString(), //price
|
||||
'price': paymentAmount.toString(),
|
||||
'walletChecked': walletChecked
|
||||
});
|
||||
// Get.back();
|
||||
}
|
||||
// void finishRideFromDriver1() async {
|
||||
// // if (carType != 'Comfort' || carType != 'Free Ride') {
|
||||
|
||||
// isRideFinished = true;
|
||||
// isRideStarted = false;
|
||||
// isPriceWindow = false;
|
||||
// box.write(BoxName.rideStatus, 'Finished');
|
||||
// // Get.find<HomeCaptainController>().changeToAppliedRide('Finished');
|
||||
// // Get.find<HomeCaptainController>().update();
|
||||
// totalCost = price < 20
|
||||
// ? carType != 'Comfort' && carType != 'Mishwar Vip' && carType != 'Lady'
|
||||
// ? '20'
|
||||
// : '30'
|
||||
// : price < double.parse(totalPricePassenger)
|
||||
// ? totalPricePassenger
|
||||
// : carType != 'Comfort' &&
|
||||
// carType != 'Mishwar Vip' &&
|
||||
// carType != 'Lady'
|
||||
// ? totalPricePassenger
|
||||
// : price.toStringAsFixed(2);
|
||||
// paymentAmount = totalCost;
|
||||
// box.write(BoxName.statusDriverLocation, 'off');
|
||||
// // changeRideToBeginToPassenger();
|
||||
// await CRUD().post(
|
||||
// link: "${AppLink.seferCairoServer}/ride/rides/update.php",
|
||||
// payload: {
|
||||
// 'id': rideId,
|
||||
// 'rideTimeFinish': DateTime.now().toString(),
|
||||
// 'status': 'Finished',
|
||||
// 'price': totalCost,
|
||||
// });
|
||||
// CRUD().post(
|
||||
// link: "${AppLink.seferCairoServer}/ride/driver_order/update.php",
|
||||
// payload: {
|
||||
// // 'driver_id': box.read(BoxName.driverID).toString(),
|
||||
// 'order_id': rideId.toString(),
|
||||
// 'status': 'Finished'
|
||||
// });
|
||||
// if (AppLink.endPoint != AppLink.seferCairoServer) {
|
||||
// CRUD().post(
|
||||
// link: "${AppLink.endPoint}/ride/rides/update.php",
|
||||
// payload: {
|
||||
// 'id': rideId,
|
||||
// 'rideTimeFinish': DateTime.now().toString(),
|
||||
// 'status': 'Finished',
|
||||
// 'price': totalCost,
|
||||
// },
|
||||
// );
|
||||
// CRUD().post(
|
||||
// link: "${AppLink.endPoint}/ride/driver_order/update.php",
|
||||
// payload: {
|
||||
// // 'driver_id': box.read(BoxName.driverID).toString(),
|
||||
// 'order_id': rideId.toString(),
|
||||
// 'status': 'Finished'
|
||||
// });
|
||||
// }
|
||||
// if (walletChecked == 'true') {
|
||||
// paymentToken = await generateTokenPassenger(
|
||||
// ((-1) * double.parse(paymentAmount)).toString());
|
||||
// await CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
||||
// 'passenger_id': passengerId,
|
||||
// 'balance': ((-1) * double.parse(paymentAmount)).toString(),
|
||||
// 'token': paymentToken,
|
||||
// });
|
||||
// }
|
||||
// paymentToken = await generateTokenDriver(paymentAmount.toString());
|
||||
// await CRUD().post(link: AppLink.addDrivePayment, payload: {
|
||||
// 'rideId': rideId,
|
||||
// 'amount': paymentAmount,
|
||||
// 'payment_method':
|
||||
// walletChecked == 'true' ? "${paymentMethod}Ride" : paymentMethod,
|
||||
// 'passengerID': passengerId,
|
||||
// 'token': paymentToken,
|
||||
// 'driverID': box.read(BoxName.driverID).toString(),
|
||||
// });
|
||||
// if (double.parse(passengerWalletBurc) < 0) {
|
||||
// // for zero passenger
|
||||
// var paymentToken1 = await generateTokenPassenger(
|
||||
// ((-1) * double.parse(passengerWalletBurc)).toString());
|
||||
// await CRUD().post(link: AppLink.addPassengersWallet, payload: {
|
||||
// 'passenger_id': passengerId,
|
||||
// 'token': paymentToken1,
|
||||
// 'balance': ((-1) * double.parse(passengerWalletBurc)).toString()
|
||||
// });
|
||||
// }
|
||||
|
||||
// double pointsSubtraction = 0;
|
||||
// pointsSubtraction =
|
||||
// double.parse(paymentAmount) * (-1) * .08; //for 300 from 3000
|
||||
// var paymentToken2 =
|
||||
// await generateTokenDriver((pointsSubtraction).toStringAsFixed(0));
|
||||
// var res = await CRUD().post(link: AppLink.addDriversWalletPoints, payload: {
|
||||
// 'paymentID': 'rideId$rideId',
|
||||
// 'amount': (pointsSubtraction).toStringAsFixed(0),
|
||||
// 'paymentMethod': paymentMethod,
|
||||
// 'token': paymentToken2,
|
||||
// 'driverID': box.read(BoxName.driverID).toString(),
|
||||
// });
|
||||
// Future.delayed(const Duration(milliseconds: 300));
|
||||
// FirebaseMessagesController().sendNotificationToDriverMAP(
|
||||
// "Driver Finish Trip".tr,
|
||||
// '${'you will pay to Driver'.tr} $paymentAmount \$',
|
||||
// tokenPassenger,
|
||||
// [
|
||||
// box.read(BoxName.driverID),
|
||||
// rideId,
|
||||
// box.read(BoxName.tokenDriver),
|
||||
// // carType == 'Comfort' || carType == 'Mishwar Vip'
|
||||
// // ? price.toStringAsFixed(2)
|
||||
// // : totalPassenger
|
||||
// paymentAmount.toString()
|
||||
// ],
|
||||
// 'ding.wav');
|
||||
// Get.to(() => RatePassenger(), arguments: {
|
||||
// 'passengerId': passengerId,
|
||||
// 'rideId': rideId,
|
||||
// 'price': paymentAmount.toString(), //price
|
||||
// 'walletChecked': walletChecked
|
||||
// });
|
||||
// // Get.back();
|
||||
// }
|
||||
|
||||
void cancelCheckRideFromPassenger() async {
|
||||
var res = await CRUD().get(
|
||||
|
||||
Reference in New Issue
Block a user