101 lines
4.2 KiB
Twig
101 lines
4.2 KiB
Twig
{% 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 %}
|
|
|
|
<twig:page:heading>{{ booking.recordLabel }} {{ booking.groupName }}</twig:page:heading>
|
|
<p class="flex items-center gap-3 text-sm text-gray-500 mb-6">
|
|
{{ booking.accommodation.name }}
|
|
{# Only an Entwurf may still move house — see ChangeAccommodationController. #}
|
|
{% if booking.draft %}
|
|
<button type="button"
|
|
hx-get="{{ path('app_admin_accommodationbooking_change_accommodation', back_params) }}"
|
|
hx-target="body"
|
|
hx-swap="beforeend"
|
|
class="button button--secondary button--small">ändern</button>
|
|
{% endif %}
|
|
</p>
|
|
|
|
{% form_theme form 'forms_admin.html.twig' %}
|
|
|
|
{{ form_start(form) }}
|
|
<div class="grid lg:grid-cols-2 gap-y-4 lg:gap-x-8">
|
|
<h2 class="lg:col-span-2 text-base font-bold">Kontaktdaten</h2>
|
|
{{ 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) }}
|
|
|
|
<h2 class="lg:col-span-2 text-base font-bold pt-2">Reisedaten</h2>
|
|
{{ form_row(form.dateFrom) }}
|
|
{{ form_row(form.dateTo) }}
|
|
{{ form_row(form.paxCount) }}
|
|
{{ form_row(form.minorsCount) }}
|
|
{{ form_row(form.childrenCount) }}
|
|
|
|
{% if form.boardService is defined or form.selectedAdditionalServices is defined %}
|
|
<h2 class="lg:col-span-2 text-base font-bold pt-2">Leistungen</h2>
|
|
{% if form.boardService is defined %}
|
|
{{ form_row(form.boardService) }}
|
|
{% endif %}
|
|
{% if form.selectedAdditionalServices is defined %}
|
|
{{ form_row(form.selectedAdditionalServices) }}
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
<h2 class="lg:col-span-2 text-base font-bold pt-2">Status & Rabatt</h2>
|
|
{# 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. #}
|
|
<p class="lg:col-span-2 text-sm">
|
|
<span class="font-medium">Status:</span>
|
|
{% include 'admin/accommodation_booking/_status_label.html.twig' %}
|
|
<span class="text-gray-500">· Herkunft: {{ booking.origin.label }}</span>
|
|
</p>
|
|
{% if booking.acceptedAt is not null %}
|
|
<p class="lg:col-span-2 text-xs text-gray-500">
|
|
Angenommen am {{ booking.acceptedAt | date('d.m.Y, H:i') }}
|
|
</p>
|
|
{% endif %}
|
|
{% if booking.confirmedAt is not null %}
|
|
<p class="lg:col-span-2 text-xs text-gray-500">
|
|
Bestätigt am {{ booking.confirmedAt | date('d.m.Y, H:i') }}
|
|
</p>
|
|
{% endif %}
|
|
{% if form.managedBy is defined %}
|
|
<div class="lg:col-span-2">
|
|
{{ form_row(form.managedBy) }}
|
|
</div>
|
|
{% endif %}
|
|
<div class="lg:col-span-2 grid lg:grid-cols-3 gap-y-4 lg:gap-x-8">
|
|
{{ form_row(form.accommodationDiscount) }}
|
|
{{ form_row(form.boardServiceDiscount) }}
|
|
{{ form_row(form.additionalServicesDiscount) }}
|
|
</div>
|
|
<div class="lg:col-span-2 grid lg:grid-cols-2 gap-y-4 lg:gap-x-8">
|
|
{{ form_row(form.totalDiscountLabel) }}
|
|
{{ form_row(form.totalDiscountAmount) }}
|
|
</div>
|
|
<div class="lg:col-span-2">
|
|
{{ form_row(form.remarks) }}
|
|
</div>
|
|
</div>
|
|
<div class="flex justify-between pt-8">
|
|
<a href="{{ path('app_admin_accommodationbooking_show', back_params) }}" class="button button--secondary button--small">
|
|
zurück
|
|
</a>
|
|
<button type="submit" class="button button--primary button--small">
|
|
speichern
|
|
</button>
|
|
</div>
|
|
{{ form_rest(form) }}
|
|
{{ form_end(form) }}
|
|
{% endblock %}
|