Update: 2026-07-09 04:13:14
This commit is contained in:
@@ -1396,14 +1396,25 @@ class MapDriverController extends GetxController
|
||||
box.remove(BoxName.passengerID);
|
||||
box.remove(BoxName.rideId);
|
||||
|
||||
// 🔥 [Fix Actual Distance] نُرسل المسافة/المدة الفعليتين المُتراكمتين
|
||||
// من GPS الحي (currentRideDistanceKm/_rideStartTime) بدل الحقلين
|
||||
// الثابتين (distance/duration) اللذين يمثلان المسار المخطط أصلاً
|
||||
// ولا يُحدَّثان أبداً أثناء الرحلة — كانا يُبطلان فعلياً حماية
|
||||
// "إعادة حساب السعر من المسافة الفعلية" في الباك إند.
|
||||
final double actualDistanceKm =
|
||||
currentRideDistanceKm > 0 ? currentRideDistanceKm : safeParseDouble(distance);
|
||||
final int actualDurationMinutes = _rideStartTime != null
|
||||
? (DateTime.now().difference(_rideStartTime!).inSeconds / 60).ceil()
|
||||
: safeParseInt(duration);
|
||||
|
||||
// تجهيز البيانات الخام الموحدة للسيرفر ليقوم بمعالجة الدفع والإنهاء معاً بنظام المعاملة الواحدة
|
||||
final finishPayload = {
|
||||
'rideId': rideId.toString(),
|
||||
'driver_id': box.read(BoxName.driverID).toString(),
|
||||
'passengerId': passengerId.toString(),
|
||||
'status': 'Finished',
|
||||
'actualDistance': distance.toString(),
|
||||
'actualDuration': duration.toString(),
|
||||
'actualDistance': actualDistanceKm.toString(),
|
||||
'actualDuration': actualDurationMinutes.toString(),
|
||||
'walletChecked': walletChecked.toString(),
|
||||
'passengerWalletBurc': passengerWalletBurc.toString(),
|
||||
'passengerToken': tokenPassenger.toString(),
|
||||
|
||||
Reference in New Issue
Block a user