feat: accept multiple travel codes per pickup planning

This commit is contained in:
Björn Fromme
2026-03-16 12:00:56 +01:00
parent f1eaa95c44
commit 7f2d52a5ce
2 changed files with 5200 additions and 10 deletions
File diff suppressed because one or more lines are too long
@@ -20,23 +20,26 @@ class PickupPlanningTransformer
continue; continue;
} }
$travelCode = $item['Reisecode'] ?? null; $travelCodes = $item['Reisecodes'] ?? [];
if (null === $travelCode) {
if (0 === count($travelCodes)) {
continue; continue;
} }
$dateTime = \DateTimeImmutable::createFromFormat('d.m.Y H:i', $item['Zeit'] ?? ''); $dateTime = \DateTimeImmutable::createFromFormat('d.m.Y H:i', $item['Zeit'] ?? '');
$result[$travelCode][] = [ foreach ($travelCodes as $code) {
'city' => $item['Zustieg/Ausstieg Ort'] ?? '', $result[$code][] = [
'location' => $item['Zustieg/Ausstieg Strasse'] ?? '', 'city' => $item['Zustieg/Ausstieg Ort'] ?? '',
'datetime' => false !== $dateTime ? $dateTime->format('Y-m-d H:i') : '', 'location' => $item['Zustieg/Ausstieg Strasse'] ?? '',
]; 'datetime' => false !== $dateTime ? $dateTime->format('Y-m-d H:i') : '',
];
}
} }
foreach ($result as $travelCode => $pickups) { foreach ($result as $code => $pickups) {
usort($pickups, static fn (array $a, array $b): int => $a['datetime'] <=> $b['datetime']); usort($pickups, static fn (array $a, array $b): int => $a['datetime'] <=> $b['datetime']);
$result[$travelCode] = $pickups; $result[$code] = $pickups;
} }
return $result; return $result;