{% 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) }}

Kontaktdaten

{{ form_row(form.groupName) }} {{ form_row(form.salutation) }} {{ form_row(form.firstName) }} {{ form_row(form.lastName) }} {{ form_row(form.email) }} {{ form_row(form.phone) }} {{ form_row(form.street) }} {{ form_row(form.zip) }} {{ form_row(form.city) }}

Reisedaten

{{ 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 oben gelten nur für den Zeitraum der Gruppe.

{% if booking.leadingPeriod %} {% set p = booking.leadingPeriod %} {{ block('period_row') }} {% endif %} {% if booking.trailingPeriod %} {% set p = booking.trailingPeriod %} {{ block('period_row') }} {% 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 %}

Leistungen

{% if form.boardService is defined %} {{ form_row(form.boardService) }} {% endif %} {% if form.selectedAdditionalServices is defined %} {{ form_row(form.selectedAdditionalServices) }} {% endif %} {% endif %}

Status & Rabatt

{# Read-only: the status only ever moves through a named action on the detail page, so that it cannot be set without the email and timestamp that belong to it. #}

Status: {% include 'admin/accommodation_booking/_status_label.html.twig' %} · Herkunft: {{ booking.origin.label }}

{% if booking.acceptedAt is not null %}

Angenommen am {{ booking.acceptedAt | date('d.m.Y, H:i') }}

{% endif %} {% if booking.confirmedAt is not null %}

Bestätigt am {{ booking.confirmedAt | date('d.m.Y, H:i') }}

{% endif %} {% if form.managedBy is defined %}
{{ form_row(form.managedBy) }}
{% endif %}
{{ form_row(form.accommodationDiscount) }} {{ form_row(form.boardServiceDiscount) }} {{ form_row(form.additionalServicesDiscount) }}
{{ form_row(form.totalDiscountLabel) }} {{ form_row(form.totalDiscountAmount) }}
{{ form_row(form.remarks) }}
zurück
{{ form_rest(form) }} {{ form_end(form) }} {% endblock %} {% block period_row %} {% set period_params = { id: p.id } %} {% if app.request.query.get('r') %} {% set period_params = period_params | merge({ r: app.request.query.get('r') }) %} {% endif %} {{ p.dateFrom | date('d.m.Y') }} – {{ p.dateTo | date('d.m.Y') }} {{ p.nights }} {{ p.nights != 1 ? 'Nächte' : 'Nacht' }} {% if p.label %}
{{ p.label }}
{% endif %} {% for line in p.lines %}
{{ line.label }}
{% else %}
keine Positionen
{% endfor %} {{ (p.total / 100) | format_currency(booking.pricingCurrency ?? booking.accommodation.currency) }} bearbeiten entfernen {% endblock %}