feat: comprehensive booking overview for confirmation

This commit is contained in:
Björn Fromme
2025-10-06 16:43:55 +02:00
parent 2f582f0548
commit b7b80296e9
4 changed files with 239 additions and 82 deletions
@@ -544,46 +544,13 @@ class ParticipantFieldOptionsProvider extends AbstractFieldOptionsProvider
return $label;
}
/**
* Format pickup labels with city and street information.
*
* Creates user-friendly labels for pickup locations following the existing pattern:
* - Primary format: "City (Street)" if street is available
* - Fallback format: "City" if no street information
*
* @param Pickup $pickup The pickup location to format
*
* @return string The formatted pickup location label
*/
private function formatPickupLabel(Pickup $pickup): string
{
$label = $pickup->city ?? '';
if (null !== $pickup->street && '' !== trim($pickup->street)) {
$label .= ' ('.$pickup->street.')';
}
return $label;
}
private function formatPickupLabelWithPrice(?Pickup $pickup): string
{
if (null === $pickup) {
return '';
}
$label = $this->formatPickupLabel($pickup);
if (null === $pickup->price || 0.0 === $pickup->price) {
return $label;
}
if ($pickup->price < 0) {
// Negative prices are discounts
return sprintf('%s (-%s€ Rabatt)', $label, number_format(abs($pickup->price), 2, ',', '.'));
}
return sprintf('%s (€%s)', $label, number_format($pickup->price, 2, ',', '.'));
return $pickup->getLabelWithPrice();
}
/**