Suivi EGAlim
{{ periodeLibelle }}
{# ── Période personnalisée ── #}
{% if periodeSelectionnee == 'personnalisee' %}
{# ════════════════════════════════════════════════════════════
ONGLET MENUS
═══════════════════════════════════════════════════════════════ #}
{# end tab-menus #}
{# ════════════════════════════════════════════════════════════
ONGLET ACHATS OFFICIELS
═══════════════════════════════════════════════════════════════ #}
Suivi Mensuel EGAlim {{ anneeSelection }} :
Basé sur les achats réels en € HT, calcul identique à la télédéclaration ma-cantine.
{# ─── Tableau suivi mensuel ─────────────────────────────── #}
| Mois |
Total achats HT |
Bio % (obj. 20%) |
Durables % (obj. 50%) |
Conformité |
{% for ligne in suiviMensuel.lignes %}
| {{ ligne.mois_abr }} |
{% if ligne.total > 0 %}
{{ ligne.total|number_format(2, ',', ' ') }} €
{% else %}
—
{% endif %}
|
{% if ligne.total > 0 %}
{% else %}
—
{% endif %}
|
{% if ligne.total > 0 %}
{% else %}
—
{% endif %}
|
{% if ligne.total > 0 %}
{{ ligne.conforme ? '✅' : '⚠️' }}
{% else %}
—
{% endif %}
|
{% endfor %}
{# Ligne cumul annuel #}
| Cumul annuel |
{{ suiviMensuel.cumul.total|number_format(2, ',', ' ') }} € |
{{ suiviMensuel.cumul.pct_bio }}%
|
{{ suiviMensuel.cumul.pct_durable }}%
|
{{ suiviMensuel.cumul.conforme ? '✅' : '⚠️' }} |
{# Ligne projection si année en cours #}
{% if suiviMensuel.projection %}
| Projection déc. |
≈ {{ suiviMensuel.projection.total|number_format(2, ',', ' ') }} € |
Bio : {{ suiviMensuel.projection.pct_bio }}%
{{ suiviMensuel.projection.pct_bio >= 20 ? '✅' : '❌' }}
|
Dur. : {{ suiviMensuel.projection.pct_durable }}%
{{ suiviMensuel.projection.pct_durable >= 50 ? '✅' : '❌' }}
|
{{ suiviMensuel.projection.conforme ? '✅' : '⚠️' }} |
{% endif %}
Détail — période sélectionnée ({{ periodeLibelle }})
{% if statsAchats.total_achats == 0 %}
Aucun achat enregistré pour cette période.
{% else %}
{# Détail par label #}
| Label |
Montant HT |
% du total |
Catégorie |
{% set labelRows = [
{'nom': 'Bio (AB, Bio européen)', 'code': 'bio', 'cat': 'BIO', 'badge': 'success'},
{'nom': 'Label Rouge', 'code': 'label_rouge', 'cat': 'DURABLE', 'badge': 'primary'},
{'nom': 'AOP / AOC / IGP / STG', 'code': 'aop_igp', 'cat': 'DURABLE', 'badge': 'primary'},
{'nom': 'HVE (Haute Valeur Env.)', 'code': 'hve', 'cat': 'DURABLE', 'badge': 'primary'},
{'nom': 'Pêche durable (MSC/ASC)', 'code': 'peche_durable', 'cat': 'DURABLE', 'badge': 'primary'},
{'nom': 'Commerce équitable', 'code': 'commerce_equitable', 'cat': 'DURABLE', 'badge': 'primary'},
{'nom': 'Autres labels durables', 'code': 'autres_durables', 'cat': 'DURABLE', 'badge': 'primary'},
] %}
{% for row in labelRows %}
{% set montant = attribute(statsAchats.detail_labels, row.code) %}
{% if montant > 0 %}
| {{ row.nom }} |
{{ montant|number_format(2, ',', ' ') }} € |
{{ ((montant / statsAchats.total_achats) * 100)|round(1) }}% |
{{ row.cat }} |
{% endif %}
{% endfor %}
{% if statsAchats.standard.montant > 0 %}
| Produits standard (sans label) |
{{ statsAchats.standard.montant|number_format(2, ',', ' ') }} € |
{{ ((statsAchats.standard.montant / statsAchats.total_achats) * 100)|round(1) }}% |
STANDARD |
{% endif %}
| TOTAL |
{{ statsAchats.total_achats|number_format(2, ',', ' ') }} € |
100% |
|
{% endif %}{# end if total_achats > 0 #}
{# end tab-achats #}