{% extends '@App/app.html.twig' %} {% block title %}Paiements{% endblock %} {% block page_header %}{% endblock %} {% block content %} {% set visible_total = payments|length %} {% set stats = payment_stats|default({total: visible_total, pending: 0, received: 0, reconciled: 0, rejected: 0}) %} {% set page_size = 20 %}

Paiements

Suivez les règlements clients, leur rapprochement et les factures associées.

{% set kpis = [ {label: 'Paiements affichés', value: stats.total, icon: 'ti ti-cash', tone: 'indigo', trend: 'Total'}, {label: 'Paiements reçus', value: stats.received, icon: 'ti ti-circle-arrow-down', tone: 'green', trend: 'À rapprocher'}, {label: 'Paiements rapprochés', value: stats.reconciled, icon: 'ti ti-circle-check-filled', tone: 'violet', trend: 'Validés'}, {label: 'En attente', value: stats.pending, icon: 'ti ti-clock', tone: 'red', trend: stats.rejected > 0 ? stats.rejected ~ ' rejeté(s)' : 'À traiter'} ] %} {% for kpi in kpis %}
{{ kpi.label }} {{ kpi.value }} {{ kpi.trend }}
{% endfor %}
Réinitialiser

Paiements de la société active : {{ company.nom|default('Société active') }}

{% for payment in payments %} {% set allocation = payment.allocations|first %} {% set linked_document = allocation ? allocation.document : null %} {% set customer_name = payment.customer ? payment.customer.nom : 'Client non renseigné' %} {% set payment_reference = payment.reference ?: 'Paiement #' ~ payment.id %} {% set payment_method = payment.paymentMethod|default('') %} {% set method_label = payment_method ? method_labels[payment_method]|default(payment_method|replace({'_': ' '})|title) : 'Non renseigné' %} {% set status_tone = payment.status == 'reconciled' ? 'success' : (payment.status == 'received' ? 'info' : (payment.status == 'pending' ? 'warning' : 'danger')) %} {% set method_tone = payment_method == 'card' ? 'violet' : (payment_method == 'cash' ? 'amber' : (payment_method in ['direct_debit', 'bank_transfer'] ? 'teal' : 'slate')) %} {% set method_icon = payment_method == 'card' ? 'ti ti-credit-card' : (payment_method == 'cash' ? 'ti ti-cash' : (payment_method == 'check' ? 'ti ti-writing-sign' : 'ti ti-building-bank')) %} {% set currency = linked_document ? linked_document.currency : 'EUR' %} {% set currency_label = currency == 'EUR' ? '€' : currency %} {% endfor %}
Paiement Client Date Moyen Statut Montant Facture Actions
{{ payment_reference }} {{ payment.bankAccountLabel ?: 'Sans compte bancaire' }} {{ customer_name }} {{ payment.paymentDate ? payment.paymentDate|date('d/m/Y') : '—' }} {{ method_label }} {{ status_labels[payment.status]|default(payment.status) }} {{ payment.amount|number_format(2, ',', ' ') }} {{ currency_label }} {% if linked_document %} {{ linked_document.number ?: 'Brouillon' }} {% else %} — {% endif %} {% if linked_document %} {% else %} — {% endif %}
Période : {{ filters.periodLabel }}
Reçus
{{ stats.received }}
Rapprochés
{{ stats.reconciled }}
Total paiements
{{ stats.total }}
{% endblock %}