feat: sort pickups by their times

This commit is contained in:
Björn Fromme committed 2025-11-17 10:00:03 +01:00
1 parent 6e96f6fb44
commit 33c3dc6022
2 files changed
+27 -9

No files matched your search

+24 -7
View File
@@ -61,7 +61,13 @@ class PickupLoader extends AbstractLoader
public function patchPickupsDetails(Travel $travel): void
{
foreach ($travel->pickupsOutbound as $pickupId => $pickup) {
$travel->pickupsOutbound = $this->patchAndSortPickups($travel->pickupsOutbound);
$travel->pickupsInbound = $this->patchAndSortPickups($travel->pickupsInbound);
}
private function patchAndSortPickups(array $pickups): array
{
foreach ($pickups as $pickupId => $pickup) {
$pickupData = $this->loadById($pickupId);
$pickup->code = $pickupData->code;
@@ -69,13 +75,24 @@ class PickupLoader extends AbstractLoader
$pickup->city = $pickupData->city;
$pickup->street = $pickupData->street;
}
foreach ($travel->pickupsInbound as $pickupId => $pickup) {
$pickupData = $this->loadById($pickupId);
$pickup->code = $pickupData->code;
$pickup->postalCode = $pickupData->postalCode;
$pickup->city = $pickupData->city;
$pickup->street = $pickupData->street;
uasort($pickups, fn (Pickup $a, Pickup $b): int => $this->comparePickupsByTime($a, $b));
return $pickups;
}
private function comparePickupsByTime(Pickup $a, Pickup $b): int
{
if (null === $a->time && null === $b->time) {
return 0;
}
if (null === $a->time) {
return -1;
}
if (null === $b->time) {
return 1;
}
return $a->time <=> $b->time;
}
}