{# Page "Toutes les opérations SSA" d'un adhérent pour une caisse SSA donnée. Variables attendues : - pagination : SlidingPagination (KnpPaginator) sur un tableau d'entrées normalisées - ssa : SolidoumeParameter — la caisse SSA concernée - searchForm : FormView — filtre par moyen et par dates Chaque entrée du tableau paginé est un tableau associatif avec les clés : - date (\DateTime) : date de l'opération - montant (float) : montant signé (négatif = débit, positif = crédit) - currency (string) : 'emlc' ou 'euro' - typeKey (string) : clé de traduction (domaine 'flux'), ex. 'exp_cotisation_ssa' - moyen (string|null): moyen de paiement - contrepartie (string) : nom de la caisse SSA (toujours le même sur cette page) - reference (string|null): référence du flux - fluxObject (Flux) : objet Flux sous-jacent (pour getPaymentReceiptUrlFromFlux) Deux types d'entrées sont mélangés dans le même tableau trié par date : 1. Opérations eMLc du compte SSA (prélèvements, redistributions, cotisations eMLc) 2. Cotisations SSA réglées en euros (CB, HelloAsso, SEPA…) Affichage des détails : Chaque ligne de données est suivie d'une ligne de détail (colspan=4) qui contient le collapse Bootstrap. Cela évite tout décalage de colonnes lors de l'ouverture du détail. #} {% extends '@kohinos/common/layout.html.twig' %} {% block content %}
{% include '@kohinos/block/breadcrumb.html.twig' with {'label': ssa.name ~ ' : Toutes les opérations'} %}

{{ ssa.name }} — {{ 'Toutes les opérations SSA'|trans }}

{{ form_start(searchForm, {'attr': {'id': 'formListOperations'}}) }} {{ form_row(searchForm._token) }}
{{ form_row(searchForm.moyen) }}
{{ form_row(searchForm.datemin) }}
{{ form_row(searchForm.datemax) }}
{{ form_row(searchForm.submit) }}
{% if pagination|length > 0 %}
{% for entry in pagination %} {# ── Ligne de données ──────────────────────────────────────────── #} {# Date avec tooltip heure complète au survol #} {# Type d'opération — traduit, sans collapse #} {# Contrepartie avec déclencheur du collapse de détail #} {# Montant : débit en noir, crédit en bleu #} {# ── Ligne de détail (colspan=4) ───────────────────────────────── #} {# Le collapse est sur un
à l'intérieur du
ni à l'intérieur d'un {% endfor %}
{{ 'Date'|trans }} {{ 'Type'|trans }} {{ 'Opération'|trans }} {{ 'Montant'|trans }}
{{ entry.date|date('d/m/Y') }} {{ entry.typeKey|trans({}, 'flux') }} {{ entry.montant < 0 ? '- ' : '+ ' }}{{ entry.montant|abs|number_format(2) }} {{ getCurrencyName(entry.currency) }}
, pas sur le
de la ligne principale. Ainsi aucune colonne n'est redimensionnée lors de l'ouverture. #}
{{ 'Référence'|trans }} : {{ entry.reference }}   ·   {{ 'Moyen'|trans }} : {{ entry.moyen|trans }} {% if entry.moyen == constant('App\\Enum\\MoyenEnum::MOYEN_HELLOASSO') %} {% set urlTicket = getPaymentReceiptUrlFromFlux(entry.fluxObject) %} {% if urlTicket is not empty %}   ·   {{ 'Ticket CB'|trans }} {% endif %} {% endif %}
{{ knp_pagination_render(pagination) }}
{% else %}
{{ 'Aucune opération SSA pour le moment !'|trans }}
{% endif %}
{% endblock %}