Update: 2026-07-09 04:13:14

This commit is contained in:
Hamza-Ayed
2026-07-09 04:13:14 +03:00
parent 70718946f5
commit a526dae042
9 changed files with 198 additions and 42 deletions
@@ -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(),