{% extends 'layout_admin.html.twig' %} {% block content %} {% set back_params = { 'id': booking.id } %} {% if app.request.query.get('r') %} {% set back_params = back_params | merge({ 'r': app.request.query.get('r') }) %} {% endif %} {{ booking.recordLabel }} {{ booking.groupName }}

{{ booking.accommodation.name }} {# Only an Entwurf may still move house — see ChangeAccommodationController. #} {% if booking.draft %} {% endif %}

{% form_theme form 'forms_admin.html.twig' %} {{ form_start(form) }} {{ form_errors(form) }} {# Ordered by what gets negotiated: the stay first, the contact data last. The sidebar keeps status, price and the save button in view on wide screens. #}
{{ form_row(form.dateFrom) }} {{ form_row(form.dateTo) }}
{{ form_row(form.paxCount) }} {{ form_row(form.minorsCount) }} {{ form_row(form.childrenCount) }}
{# Saved by their own modals, which reprice the booking on the spot — see SplitPeriodController. #}
Zeiträume

Anreise und Abreise umfassen den ganzen Aufenthalt. Abgeteilte Zeiträume, etwa für ein Vorausteam, werden mit eigenen Positionen berechnet; Personen und Leistungen gelten nur für den Zeitraum der Gruppe.

{% if booking.leadingPeriod %} {% include 'admin/accommodation_booking/_period_row.html.twig' with { period: booking.leadingPeriod } %} {% endif %} {% if booking.trailingPeriod %} {% include 'admin/accommodation_booking/_period_row.html.twig' with { period: booking.trailingPeriod } %} {% endif %}
{{ booking.mainDateFrom | date('d.m.Y') }} – {{ booking.mainDateTo | date('d.m.Y') }} {{ booking.mainNights }} {{ booking.mainNights != 1 ? 'Nächte' : 'Nacht' }} Gruppe {# One period per side, so only the free sides are offered. #} {% if booking.leadingPeriod is null or booking.trailingPeriod is null %} {% if booking.leadingPeriod is null %} am Anfang abteilen {% endif %} {% if booking.trailingPeriod is null %} am Ende abteilen {% endif %} {% endif %}
{% if form.boardService is defined or form.selectedAdditionalServices is defined %}
{% if form.boardService is defined %} {{ form_row(form.boardService) }} {% endif %} {% if form.selectedAdditionalServices is defined %}
{{ form_label(form.selectedAdditionalServices) }} {# Rows written out here rather than through the theme's choice_widget_expanded, whose first:pt-0 would shift only the first cell of the two columns. #}
{% for child in form.selectedAdditionalServices %}
{{ form_widget(child) }}
{% endfor %}
{{ form_errors(form.selectedAdditionalServices) }}
{% endif %}
{% endif %}
{{ form_row(form.accommodationDiscount) }} {{ form_row(form.boardServiceDiscount) }} {{ form_row(form.additionalServicesDiscount) }}
{{ form_row(form.totalDiscountLabel, { row_attr: { class: 'sm:col-span-2' } }) }} {{ form_row(form.totalDiscountAmount) }}
{{ form_row(form.groupName, { row_attr: { class: 'sm:col-span-2' } }) }} {{ form_row(form.salutation) }} {{ form_row(form.firstName) }} {{ form_row(form.lastName) }} {{ form_row(form.email) }} {{ form_row(form.phone) }} {{ form_row(form.street, { row_attr: { class: 'sm:col-span-2' } }) }} {{ form_row(form.zip) }} {{ form_row(form.city) }}
{{ form_widget(form.remarks) }} {{ form_errors(form.remarks) }}
{{ form_rest(form) }} {{ form_end(form) }} {% endblock %}