{% extends 'revervation/base.twig' %} {% block title %}Récapitulatif de réservation #{{ contrat.numReservation }}{% endblock %} {% block body %}
{# HEADER : NAVIGATION, TITRE, DATES & LIEU #}

Détails Réservation

Référence : #{{ contrat.numReservation }}

Du

{{ contrat.dateAt|date('d/m/Y') }}

{{ days }} J

Au

{{ contrat.endAt|date('d/m/Y') }}

Lieu de l'événement

{{ contrat.addressEvent }} {% if contrat.address2Event %}- {{ contrat.address2Event }}{% endif %}

{{ contrat.townEvent }} ({{ contrat.zipCodeEvent }})

{# SECTION IDENTITÉ #}

Le Prestataire

SEGARD LILIAN - LUDIKEVENT

6, rue du Château, 02800 DANIZY

SIRET : 930 488 408 00012

06 14 17 24 47

Le Client / Loueur

{{ contrat.customer.name }} {{ contrat.customer.surname }}

{{ contrat.customer.email }}

{{ contrat.customer.phone }}

{# COLONNE GAUCHE : PRESTATIONS ET DOCS #}

Détail des prestations & Options

{{ days }} Jours
{% for line in contrat.contratsLines %} {% if tvaEnabled %} {% set priceLine = (line.price1DayHt*1.20) + ((line.priceSupDayHt*1.20) * (days - 1)) %} {% else %} {% set priceLine = line.price1DayHt + (line.priceSupDayHt * (days - 1)) %} {% endif %} {% endfor %} {% for line in contrat.contratsOptions %} {% if tvaEnabled %} {% else %} {% endif %} {% endfor %}

{{ line.name }}

{% if tvaEnabled %}

Prix 1 Jour : {{ (line.price1DayHt*1.20)|number_format(0, ',', ' ') }}€ TTC

Prix Jour suplémentaire : {{ (line.priceSupDayHt*1.20)|number_format(0, ',', ' ') }}€ TTC

{% else %}

Prix 1 Jour : {{ line.price1DayHt|number_format(0, ',', ' ') }}€ HT

Prix Jour suplémentaire : {{ line.priceSupDayHt|number_format(0, ',', ' ') }}€ HT

{% endif %}

Caution : {{ line.caution|number_format(0, ',', ' ') }}€

{{ priceLine|number_format(2, ',', ' ') }}€

Option

{{ line.name }}

{{ (line.price*1.20)|number_format(2, ',', ' ') }}€{{ line.price|number_format(2, ',', ' ') }}€
{# DOCUMENTS PDF #}
{% set contractPath = contrat.signed ? 'devisSignFile' : 'devisFile' %}
Contrat (PDF)
{% if contrat.signed %}
Certificat
{% endif %} {% if solde <=0 %} {% endif %}
{# --- COLONNE DROITE : FINANCES --- #}
{# TOTAL HT - Version compacte #}

Total Prestations

Hors Taxes (HT)

{{ totalHT|number_format(2, ',', ' ') }}€

{% if tvaEnabled %}

Total Prestations

Total TVA

{{ (totalTTC-totalHT)|number_format(2, ',', ' ') }}€

Total Prestations

Total TTC

{{ totalTTC|number_format(2, ',', ' ') }}€

{% endif %} {# SOLDE FINAL - Bloc Principal avec saisie du montant #}

Solde restant à régler

{{ solde|number_format(2, ',', ' ') }}€

{% set acompteOk = contratPaymentPay(contrat, 'accompte') %} {% if solde <=0 %}

Dossier Soldé

Aucun montant restant

{% endif %}

Paiement sécurisé via Stripe

{# --- SECTION ACTIONS : 3 COLONNES --- #}
{# 1. SIGNATURE #} {% if contrat.signed %}

Contrat Signé

Numéro de signature

{{ signedNumber }}

{% else %} {% endif %} {# 2. ACOMPTE #} {% if not contratPaymentPay(contrat, 'accompte') %}

Acompte (25%)

{{ arrhes|number_format(2, ',', ' ') }}€

{% if contrat.signed %} Régler l'acompte {% else %}
Attente de signature du contrat
{% endif %}
{% else %}

Acompte Réglé

{% for payment in paymentList %}

Moyen utilisé

{{ payment.amount|number_format(2, ',', ' ') }}€

{{ payment.card.method_label|default('Carte Bancaire') }} {% if payment.card.type == "card" %} ({{ payment.card.card.brand|default('') }} **** {{ payment.card.card.last4|default('') }}) {% endif %}

Validé le {{ payment.validateAt|date('d/m/Y') }}

{% endfor %}
{% endif %}
{# ... (Garder tout le code précédent inchangé jusqu'à la fin de la grille 3 colonnes) ... #} {# --- SECTION HISTORIQUE COMPLET DES TRANSACTIONS --- #}

Historique des transactions

{# Fusion de toutes les listes de paiement pour l'affichage global #} {% set allPayments = paymentList|merge(paymentCaution)|merge(paymentCtaList|default([])) %} {% if allPayments is not empty %} {% for pay in allPayments|sort((a, b) => b.validateAt <=> a.validateAt) %} {% endfor %} {% else %} {% endif %}
Date & Heure Type / Objet Méthode Montant Confirmation de paiement Statut

{{ pay.validateAt|date('d/m/Y') }}

{{ pay.validateAt|date('H:i') }}

{% if pay in paymentCaution %} Caution (Empreinte) {% elseif pay in paymentList %} Acompte {% else %} Paiement complémentaire {% endif %}
{{ pay.card.card.brand|default('CB') }}

**** {{ pay.card.card.last4|default('----') }}

{{ pay.amount|number_format(2, ',', ' ') }}€
Validé

Aucune transaction enregistrée pour le moment

{% endblock %}