{% extends 'base.html.twig' %} {% block title %}Mes paiements — Bubul{% endblock %} {% block body %}
{# ================================================================ EN-TÊTE — le total y vit désormais La carte pleine largeur qui s'intercalait entre le titre et le tableau a disparu : le total est l'information principale de la page, sa place est au niveau du titre, pas dans un bloc de plus. ================================================================ #}
{% include '_molecules/page-header/page-header.html.twig' with { title: 'Mes paiements', subtitle: 'Les virements que Bubul vous a déjà versés.', icon: 'wallet', backHref: path('app_commercial_dashboard'), backLabel: 'Retour au tableau de bord' } only %} {# Sous filtre, le grand chiffre est celui de la PÉRIODE, et son libellé le dit. Le cumul depuis l'origine reste lisible en dessous, jamais en concurrence de taille : le grand nombre doit toujours être la somme des lignes affichées sous lui. #}
Total versé{% if range.isActive() %} — {{ range.label() }}{% endif %}
{{ total|number_format(2, ',', ' ') }} €
{{ payouts|length }} virement{{ payouts|length > 1 ? 's' : '' }} {%- if range.isActive() %} · {{ totalGlobal|number_format(2, ',', ' ') }} € depuis l'origine {%- elseif dernierVirementLe %} · dernier le {{ dernierVirementLe }} {%- endif %}
{% include '_molecules/month-range-filter/month-range-filter.html.twig' with { action: path('app_commercial_paiements'), months: moisDisponibles, start: range.startMonthInput(), end: range.endMonthInput() } only %}
{# ================================================================ QUATRE COLONNES — le calcul au dépliage « Commission acquise » et « Report entrant » sortent des colonnes : ils n'intéressent que la ligne qu'on interroge, et six colonnes ne tiennent pas sur un téléphone. S'y ajoute la colonne muette du chevron, tout à droite : la ligne entière est le déclencheur. ================================================================ #}
{% if payouts|length > 0 %}
{# La colonne du chevron : sans libellé, elle n'annonce rien d'autre que le fait que la ligne se déplie. #} {# Un par virement : c'est ce qui permet au contrôleur de porter à la fois la ligne sommaire et sa ligne de détail. Le détail est rendu VISIBLE ; le contrôleur le replie à connect(). Sans JavaScript, la page montre tout — dégradé mais juste. #} {% for payout in payouts %} {# C'est la LIGNE ENTIÈRE qui déplie, pas le seul libellé du mois : la cible de clic est ce que l'œil désigne. Le porte donc le rôle, l'état et le clavier ; le chevron n'est plus qu'un indicateur, posé tout à droite au bout de la ligne. #} : shared--collapsible pose `display: block`, ce qui détruirait une ligne de tableau. #}
Commission acquise
{{ payout.commissionAmount|number_format(2, ',', ' ') }} €
Report entrant
{{ payout.carryOverIn|number_format(2, ',', ' ') }} €
Montant viré
{{ payout.amountPayable|number_format(2, ',', ' ') }} €
{% endfor %}
Mois Montant viré Viré le RéférenceDétail
{# La cible du contrôleur est ce
, jamais le
{% else %}
{% if range.isActive() %} {% include '_molecules/empty-state/empty-state.html.twig' with { title: 'Aucun virement sur cette période', description: 'Élargissez la période, ou affichez tous vos virements.', icon: 'wallet', variant: 'minimal', actionText: 'Tout voir', actionHref: path('app_commercial_paiements') } only %} {% else %} {% include '_molecules/empty-state/empty-state.html.twig' with { title: 'Aucun virement reçu', description: 'Les versements sont mensuels, par virement bancaire, à l\'initiative de l\'administration : un mois n\'est versable qu\'une fois clos. Suivez ce qui vous est dû depuis vos transactions.', icon: 'wallet', variant: 'minimal', actionText: 'Voir mes transactions', actionHref: path('app_commercial_transactions') } only %} {% endif %}
{% endif %}
{% endblock %}