{% extends 'layout_booking.html.twig' %} {% block title %}Bitte bestätige deine Buchung{% endblock %} {% block content %} {{ form_start(form, { 'attr': { 'class': 'flex-1 flex flex-col min-h-0', 'novalidate': 'novalidate' } }) }} {# Pagination - mobile only #}
{% include 'booking/_pagination.html.twig' with { 'current_step': 4 } %}
{# Sidebar with travel information #}
{# Flash messages - must be inside form-wrapper for HTMX swap to display them #} {% include '_partials/_flashes.html.twig' %} {# Pagination - desktop only #}

Bitte bestätige deine Buchung

{# Validation errors #} {% from '_partials/_validation_errors.html.twig' import validation_alert %} {{ validation_alert(form, 'Bitte bestätige deine Angaben und stimme den AGB zu', false) }} {# Travel Information - mobile only #}
Reise {{ bookingCreateDto.travel.label }}
Zeitraum {{ bookingCreateDto.travel.dateFrom|date('d.m.Y') }} - {{ bookingCreateDto.travel.dateTo|date('d.m.Y') }}
Unterkunft {{ bookingCreateDto.travel.hotel.name }}
Teilnehmer {{ summaryData.participantCount }}
{% include 'booking/_summary_hotel.html.twig' %}
{# Detailed Pricing Breakdown #}

Preisübersicht

{# Rooms Section #} {% if summaryData.pricingData.rooms is not empty %}
Unterkunft
{% for roomPricing in summaryData.pricingData.rooms %} {% endfor %}
{{ roomPricing.quantity }}x {{ roomPricing.label }}
{% if summaryData.assignmentCounts[roomPricing.roomId] is defined %}
{{ summaryData.assignmentCounts[roomPricing.roomId] }} Person(en) belegt
{% endif %}
{{ roomPricing.totalPrice|format_currency('EUR') }}
{% endif %} {# Services Section #} {% if summaryData.pricingData.services is not empty %}
Leistungen
{% for serviceGroup in summaryData.pricingData.services %}
{{ serviceGroup.groupName }}
{% for servicePricing in serviceGroup.services %} {% endfor %}
{{ servicePricing.participantCount }}x {{ servicePricing.label }} {{ servicePricing.totalPrice|format_currency('EUR') }}
{% endfor %}
{% endif %} {# Participants Summary #}

Teilnehmer

{% for participant in bookingCreateDto.participants %}
{{ participant.firstName }} {{ participant.lastName }} {% if loop.first and not bookingCreateDto.isInternalAgencyBooking() %}(Anmelder:in){% endif %} {% if participantPrices is defined and participantPrices[loop.index0] is defined %} {{ participantPrices[loop.index0]|format_currency('EUR') }} {% endif %}
{# Personal Data - responsive grid #}
{% if participant.dateOfBirth %}
Geburtsdatum: {{ participant.dateOfBirth|date('d.m.Y') }}
{% endif %} {% if participant.gender %}
Geschlecht: {{ participant.gender == 'M' ? 'Männlich' : 'Weiblich' }}
{% endif %} {% if participant.email %}
E-Mail: {{ participant.email }}
{% endif %} {% if participant.mobile %}
Telefon: {{ participant.mobile }}
{% endif %} {% if participant.nationality %}
Nationalität: {{ participant.nationality }}
{% endif %} {% if participant.address and (participant.address.street or participant.address.city) %}
Adresse: {% if participant.address.street %}{{ participant.address.street }}, {% endif %} {% if participant.address.postCode or participant.address.city %} {{ participant.address.postCode }} {{ participant.address.city }} {% endif %} {% if participant.address.country %}, {{ participant.address.country }}{% endif %}
{% endif %}
{# Unterkunft Section #} {% set assignedRoom = bookingCreateDto.travel.getRoomById(participant.assignedRoomId) %} {% if assignedRoom or participant.remarksRoom %}
Unterkunft
{% if assignedRoom %} {% endif %} {% if participant.remarksRoom %} {% endif %}
{{ assignedRoom.label }} {% if assignedRoom.price is not null and assignedRoom.price != 0 %} {{ assignedRoom.price|format_currency('EUR') }} {% endif %}
Wunsch: {{ participant.remarksRoom }}
{% endif %} {# An-/Abreise Section #} {% if participant.transportationOutbound or participant.transportationInbound or participant.pickup or participant.parking or participant.licensePlate %}
An-/Abreise
{% if participant.transportationOutbound %} {% endif %} {% if participant.transportationInbound %} {% endif %} {% if participant.pickup %} {% endif %} {% if participant.parking %} {% endif %} {% if participant.licensePlate %} {% endif %}
Hinfahrt: {{ participant.transportationOutbound.label }} {% if participant.transportationOutbound.price is not null and participant.transportationOutbound.price != 0 %} {{ participant.transportationOutbound.price|format_currency('EUR') }} {% endif %}
Rückfahrt: {{ participant.transportationInbound.label }} {% if participant.transportationInbound.price is not null and participant.transportationInbound.price != 0 %} {{ participant.transportationInbound.price|format_currency('EUR') }} {% endif %}
Zu-/Ausstieg: {{ participant.pickup.label }} {% if participant.pickup.price is not null and participant.pickup.price != 0 %} {{ participant.pickup.price|format_currency('EUR') }} {% endif %}
Parkplatz {% if participant.parkingService is not null and participant.parkingService.price is not null and participant.parkingService.price != 0 %} {{ participant.parkingService.price|format_currency('EUR') }} {% endif %}
Kennzeichen: {{ participant.licensePlate }}
{% endif %} {# Verpflegung Section #} {% if participant.board is not empty %}
Verpflegung
{% for boardItem in participant.board %} {% endfor %}
{{ boardItem.label }} {% if boardItem.price is not null and boardItem.price != 0 %} {{ boardItem.price|format_currency('EUR') }} {% endif %}
{% endif %} {# Skipass Section #} {% if participant.skiPass %}
Skipass
{{ participant.skiPass.label }} {% if participant.skiPass.price is not null and participant.skiPass.price != 0 %} {{ participant.skiPass.price|format_currency('EUR') }} {% endif %}
{% endif %} {# Leihmaterial Section #} {% if participant.rentals is not empty or (participant.rentalInsuranceSelected and participant.rentalInsurance) %}
Leihmaterial
{% for rental in participant.rentals %} {% endfor %} {% if participant.rentalInsuranceSelected and participant.rentalInsurance %} {% endif %} {% if participant.rentals is not empty and (participant.height or participant.weight or participant.shoeSize) %} {% endif %}
{{ rental.label }} {% if rental.price is not null and rental.price != 0 %} {{ rental.price|format_currency('EUR') }} {% endif %}
{{ participant.rentalInsurance.label }} {% if participant.rentalInsurance.price is not null and participant.rentalInsurance.price != 0 %} {{ participant.rentalInsurance.price|format_currency('EUR') }} {% endif %}
{% if participant.height %}Größe: {{ participant.height }} cm{% endif %} {% if participant.weight %}{% if participant.height %}, {% endif %}Gewicht: {{ participant.weight }} kg{% endif %} {% if participant.shoeSize %}{% if participant.height or participant.weight %}, {% endif %}Schuhgröße: {{ participant.shoeSize }}{% endif %}
{% endif %} {# Kurse Section #} {% if participant.courses is not empty %}
Kurse
{% for course in participant.courses %} {% endfor %}
{{ course.label }} {% if course.price is not null and course.price != 0 %} {{ course.price|format_currency('EUR') }} {% endif %}
{% endif %} {# Zusatzleistungen Section #} {% if participant.additionalServices is not empty %}
Zusatzleistungen
{% for service in participant.additionalServices %} {% endfor %}
{{ service.label }} {% if service.price is not null and service.price != 0 %} {{ service.price|format_currency('EUR') }} {% endif %}
{% endif %} {# Reiseversicherung Section #} {% if participant.insurance %}
Reiseversicherung
{{ participant.insurance.label }} {% if participant.insurance.price is not null and participant.insurance.price != 0 %} {{ participant.insurance.price|format_currency('EUR') }} {% endif %}
{% endif %}
{% endfor %} {# Grand Total #} {% if summaryData.pricingData.grandTotal is defined and summaryData.pricingData.grandTotal > 0 %} {% set acceptedVouchers = bookingCreateDto.getAcceptedVouchers() %} {% if acceptedVouchers and acceptedVouchers.hasVouchers() %}
Kostenübersicht
{% for voucher in acceptedVouchers.vouchers %} {% endfor %}
Gesamtpreis {{ summaryData.pricingData.grandTotal|format_currency('EUR') }}
{% if voucher.promotional %} Aktionsgutschein ({{ voucher.code }}) {% elseif voucher.goodwill %} Kulanzgutschein ({{ voucher.code }}) {% elseif voucher.purchase %} Kaufgutschein ({{ voucher.code }}) {% endif %} - {{ voucher.amount|format_currency('EUR') }}
Zu zahlen {{ summaryData.payableAmount|format_currency('EUR') }}
{% else %}
Gesamtpreis {{ summaryData.pricingData.grandTotal|format_currency('EUR') }}
{% endif %} {% endif %} {# Payment Summary #}
Zahlungsart
{% if bookingCreateDto.paymentMethod == constant('App\\BusProNet\\Constants::PAYMENT_METHOD_DEBIT') and bookingCreateDto.bankAccount %} {% endif %}
{% if bookingCreateDto.paymentMethod == constant('App\\BusProNet\\Constants::PAYMENT_METHOD_DEBIT') %} Lastschrift (Einzugsermächtigungsverfahren) {% else %} Überweisung {% endif %}
IBAN: {{ bookingCreateDto.bankAccount.iban }}
Kontoinhaber: {{ bookingCreateDto.bankAccount.accountHolder }}
{# Confirmation Checkboxes #}
Bestätigung
{{ form_row(form.confirmationAccepted, { 'label_attr': {'class': 'text-base font-semibold'} }) }} {{ form_row(form.termsAccepted, { 'label_attr': {'class': 'text-base font-semibold'} }) }}
{{ form_rest(form) }} {{ form_end(form) }} {% endblock %} {% block data_layer %} {% include '_partials/_tracking.html.twig' with { 'url': '/trichter_Z1/schritt4_uerbersicht_bestaetigung', 'title': 'Übersicht und Bestätigung' } %} {% endblock %}