From 1dc8489239fdce6ece6b32f9c2d9b6f96da194e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Wed, 17 Dec 2025 17:05:38 +0100 Subject: [PATCH] fix: avoid duplicated pickup planning entries --- .../DataProcessor/PickupPlanningTransformer.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/BusProNet/DataProcessor/PickupPlanningTransformer.php b/src/BusProNet/DataProcessor/PickupPlanningTransformer.php index 16a56a0..34b4081 100644 --- a/src/BusProNet/DataProcessor/PickupPlanningTransformer.php +++ b/src/BusProNet/DataProcessor/PickupPlanningTransformer.php @@ -29,15 +29,22 @@ class PickupPlanningTransformer $dateTime = \DateTimeImmutable::createFromFormat('d.m.Y H:i', $item['Zeit'] ?? ''); foreach ($travelCodes as $code) { - $result[$code][] = [ + $pickup = [ 'city' => $item['Zustieg/Ausstieg Ort'] ?? '', 'location' => $item['Zustieg/Ausstieg Strasse'] ?? '', 'datetime' => false !== $dateTime ? $dateTime->format('Y-m-d H:i') : '', ]; + + $key = sprintf('%s|%s|%s', $pickup['city'], $pickup['location'], $pickup['datetime']); + + if (false === isset($result[$code][$key])) { + $result[$code][$key] = $pickup; + } } } foreach ($result as $code => $pickups) { + $pickups = array_values($pickups); usort($pickups, static fn (array $a, array $b): int => $a['datetime'] <=> $b['datetime']); $result[$code] = $pickups; }