From 1bf5c8061faecd3ff01b228e42ac5e6448a02f42 Mon Sep 17 00:00:00 2001 From: ElPoyo Date: Thu, 4 Jun 2026 14:32:03 +0200 Subject: [PATCH] fix: corrections build - _showOverlay supprime, passageDate Ulys ajoute, withValues deprecation --- em2rp/functions/.env | 2 ++ em2rp/functions/src/travel.js | 33 ++++++++++++++----- .../data_management/depot_management.dart | 2 +- .../fuel_prices_management.dart | 2 +- .../event_form/travel_cost_dialog.dart | 2 +- .../inputs/address_autocomplete_field.dart | 3 +- 6 files changed, 30 insertions(+), 14 deletions(-) diff --git a/em2rp/functions/.env b/em2rp/functions/.env index 5af40c5..2851f86 100644 --- a/em2rp/functions/.env +++ b/em2rp/functions/.env @@ -7,3 +7,5 @@ SMTP_PASS="aL8@Rx8xqFrNij$a" # URL de l'application APP_URL="https://app.em2events.fr" +API_MAPS="AIzaSyDt2d-T9YRmHO3-QEq1uWomdqVbJqXfO04" + diff --git a/em2rp/functions/src/travel.js b/em2rp/functions/src/travel.js index 7ef433d..baa9ad7 100644 --- a/em2rp/functions/src/travel.js +++ b/em2rp/functions/src/travel.js @@ -72,11 +72,13 @@ async function getUlysTollLegs(encodedPolyline) { // ───────────────────────────────────────────── async function getUlysRate(vehicleCategory, passages) { try { + const now = new Date().toISOString(); const payload = { vehicleCategory: String(vehicleCategory), paymentOption: 2, tollPassages: passages.map((p) => ({ toll: { operatorId: p.operatorId, tollId: p.tollId }, + passageDate: now, })), }; const body = JSON.stringify(payload); @@ -119,17 +121,30 @@ async function calculateTollCost(encodedPolyline, vehicleCategory) { const tollGates = []; for (const feature of legsData.features) { const props = feature.properties || {}; - const id = props.id_gare || props.id || props.gareId; - if (id && id.length >= 5) { - tollGates.push({ - id, - operatorId: id.substring(0, 2), - tollId: id.substring(2, 5), - name: props.nom || props.name || id, - }); - } + + // La réponse Ulys peut utiliser différents noms de champs + // On cherche l'identifiant de la gare dans tous les champs connus + const id = + props.id_gare || + props.idGare || + props.id || + props.gareId || + props.gare_id || + props.tollStationId; + + if (!id) continue; + const idStr = String(id); + if (idStr.length < 5) continue; + + tollGates.push({ + id: idStr, + operatorId: idStr.substring(0, 2), + tollId: idStr.substring(2, 5), + name: props.nom || props.name || props.label || idStr, + }); } + logger.info(`[Travel] Ulys /legs found ${tollGates.length} toll gates`); if (tollGates.length === 0) return 0; // Greedy: trouver les segments fermés + barrières ouvertes diff --git a/em2rp/lib/views/widgets/data_management/depot_management.dart b/em2rp/lib/views/widgets/data_management/depot_management.dart index 4df902e..0ac4f81 100644 --- a/em2rp/lib/views/widgets/data_management/depot_management.dart +++ b/em2rp/lib/views/widgets/data_management/depot_management.dart @@ -199,7 +199,7 @@ class _DepotManagementState extends State { final d = depots[i]; return ListTile( leading: CircleAvatar( - backgroundColor: AppColors.rouge.withOpacity(0.1), + backgroundColor: AppColors.rouge.withValues(alpha: 0.1), child: Icon(Icons.warehouse_outlined, color: AppColors.rouge), ), title: Text(d.name, diff --git a/em2rp/lib/views/widgets/data_management/fuel_prices_management.dart b/em2rp/lib/views/widgets/data_management/fuel_prices_management.dart index 32d5bb2..5c9e01e 100644 --- a/em2rp/lib/views/widgets/data_management/fuel_prices_management.dart +++ b/em2rp/lib/views/widgets/data_management/fuel_prices_management.dart @@ -83,7 +83,7 @@ class _FuelPricesManagementState extends State { return Row( children: [ CircleAvatar( - backgroundColor: color.withOpacity(0.1), + backgroundColor: color.withValues(alpha: 0.1), child: Icon(icon, color: color), ), const SizedBox(width: 16), diff --git a/em2rp/lib/views/widgets/event_form/travel_cost_dialog.dart b/em2rp/lib/views/widgets/event_form/travel_cost_dialog.dart index 625f3e2..ba80c0c 100644 --- a/em2rp/lib/views/widgets/event_form/travel_cost_dialog.dart +++ b/em2rp/lib/views/widgets/event_form/travel_cost_dialog.dart @@ -553,7 +553,7 @@ class _TravelCostDialogState extends State { Container( padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), decoration: BoxDecoration( - color: color.withOpacity(0.08), + color: color.withValues(alpha: 0.08), borderRadius: const BorderRadius.vertical(top: Radius.circular(10)), ), child: Row( diff --git a/em2rp/lib/views/widgets/inputs/address_autocomplete_field.dart b/em2rp/lib/views/widgets/inputs/address_autocomplete_field.dart index 56ad3a5..9a6a1a0 100644 --- a/em2rp/lib/views/widgets/inputs/address_autocomplete_field.dart +++ b/em2rp/lib/views/widgets/inputs/address_autocomplete_field.dart @@ -114,7 +114,6 @@ class _AddressAutocompleteFieldState extends State { ), ); overlay.insert(_overlayEntry!); - setState(() => _showOverlay = true); } double _getFieldWidth() { @@ -125,7 +124,7 @@ class _AddressAutocompleteFieldState extends State { void _removeOverlay() { _overlayEntry?.remove(); _overlayEntry = null; - if (mounted) setState(() => _showOverlay = false); + if (mounted) setState(() {}); } @override