{% extends 'app/base.html.twig' %} {% set moisNoms = ['', 'Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'] %} {% set moisNomsAbr = ['', 'Jan','Fév','Mar','Avr','Mai','Jun','Jul','Aoû','Sep','Oct','Nov','Déc'] %} {% block title %}Synthèses — {{ moisNoms[mois] }} {{ annee }}{% endblock %} {% block body %} {# ── En-tête + navigation + toggle HT/TTC ────────────────────────────────────── #}

Synthèses

{{ moisNoms[mois] }} {{ annee }}

Affichage :
{{ moisNoms[mois] }} {{ annee }} Aujourd'hui Par type PDF Mois {# #}
{# ── SECTION 1 : Flux Financiers ───────────────────────────────────────────── #}
Flux Financiers
{# Recettes #}
Recettes
{{ (synthese.total_ventes ?? 0)|number_format(2, ',', ' ') }} € {{ (synthese.ca_ventes_ht ?? 0)|number_format(2, ',', ' ') }} €
{{ synthese.total_repas ?? 0 }} repas servis
{# Achats #}
Achats
{{ (synthese.total_achats ?? 0)|number_format(2, ',', ' ') }} € {{ (synthese.total_achats_ht ?? 0)|number_format(2, ',', ' ') }} €
{% if (synthese.total_cessions ?? 0) > 0 %}
↳ −{{ (synthese.total_cessions ?? 0)|number_format(2, ',', ' ') }}{{ (synthese.total_cessions_ht ?? 0)|number_format(2, ',', ' ') }} € cessions
{% endif %} {% if (synthese.total_avoirs ?? 0) > 0 %}
↳ −{{ (synthese.total_avoirs ?? 0)|number_format(2, ',', ' ') }}{{ (synthese.total_avoirs_ht ?? 0)|abs|number_format(2, ',', ' ') }} € avoirs
{% endif %} {% if (synthese.total_cessions ?? 0) > 0 or (synthese.total_avoirs ?? 0) > 0 %}
= {{ (synthese.achats_nets ?? 0)|number_format(2, ',', ' ') }}{{ (synthese.achats_nets_ht ?? 0)|number_format(2, ',', ' ') }} € net
{% endif %}
{# Résultat trésorerie #} {% set resultat = synthese.resultat ?? 0 %} {% set resultatHt = synthese.resultat_ht ?? 0 %}
Résultat Trésorerie
{{ resultat >= 0 ? '+' : '' }}{{ resultat|number_format(2, ',', ' ') }} € {{ resultatHt >= 0 ? '+' : '' }}{{ resultatHt|number_format(2, ',', ' ') }} €
Recettes − Achats nets
{# ── SECTION 2 : Gestion des Stocks ──────────────────────────────────────────── #}
Gestion des Stocks
Stock Début
{{ (synthese.stock_debut ?? 0)|number_format(2, ',', ' ') }} € {{ (synthese.stock_debut_ht ?? 0)|number_format(2, ',', ' ') }} €
Mois précédent
Stock Fin
{{ (synthese.stock_fin ?? 0)|number_format(2, ',', ' ') }} € {{ (synthese.stock_fin_ht ?? 0)|number_format(2, ',', ' ') }} €
Inventaire clôture
{% set variation = synthese.variation_stock ?? 0 %} {% set variationHt = synthese.variation_stock_ht ?? 0 %}
Variation
{{ variation >= 0 ? '+' : '' }}{{ variation|number_format(2, ',', ' ') }} € {{ variationHt >= 0 ? '+' : '' }}{{ variationHt|number_format(2, ',', ' ') }} €
Fin − Début
Consommé réel
{{ (synthese.achats_consommes ?? synthese.achats_nets ?? 0)|number_format(2, ',', ' ') }} € {{ (synthese.achats_consommes_ht ?? synthese.achats_nets_ht ?? 0)|number_format(2, ',', ' ') }} €
Achats nets ± variation
{# ── SECTION 3 : Indicateurs de Performance ─────────────────────────────────── #}
Indicateurs de Performance
{# Couverts servis #}
Couverts servis
{{ synthese.total_repas ?? 0 }}
repas ce mois
{# Coût par couvert #}
Coût matière / couvert
{{ (synthese.cout_par_couvert ?? 0)|number_format(2, ',', ' ') }} € {{ (synthese.cout_par_couvert_ht ?? 0)|number_format(2, ',', ' ') }} €
Achats consommés ÷ {{ synthese.total_repas ?? 0 }} repas
{# Résultat exploitation #} {% set resExpl = synthese.resultat_exploitation ?? 0 %} {% set resExplHt = synthese.resultat_exploitation_ht ?? 0 %}
Résultat d'Exploitation
{{ resExpl >= 0 ? '+' : '' }}{{ resExpl|number_format(2, ',', ' ') }} € {{ resExplHt >= 0 ? '+' : '' }}{{ resExplHt|number_format(2, ',', ' ') }} €
Recettes − Consommé réel
{# ── Synthèse Annuelle (toutes colonnes) ────────────────────────────────────── #}
Synthèse Annuelle {{ annee }}
Mode :
PDF Annuel
{% for ligne in syntheseAnnuelle %} {% set isTotal = ligne.is_total ?? false %} {% set isCurrent = (not isTotal) and (ligne.mois == mois) %} {% set variation = ligne.variation_stock ?? 0 %} {% set variationHt = ligne.variation_stock_ht ?? 0 %} {% set res = ligne.resultat ?? 0 %} {% set resHt = ligne.resultat_ht ?? 0 %} {% set resC = ligne.resultat_complet ?? 0 %} {% set resCHt = ligne.resultat_complet_ht ?? 0 %} {% endfor %}
Mois Ventes Achats Cessions Avoirs Stock Début Stock Fin Var. Stock Consommé Couverts Coût Mat./Couv. Charges Fix. Coût Tot./Couv. Résultat Résultat Complet
{{ ligne.mois_label }} {{ (ligne.ca_ventes ?? 0)|number_format(2, ',', ' ') }} € {{ (ligne.ca_ventes_ht ?? 0)|number_format(2, ',', ' ') }} € {{ (ligne.total_achats ?? 0)|number_format(2, ',', ' ') }} € {{ (ligne.total_achats_ht ?? 0)|number_format(2, ',', ' ') }} € {% if (ligne.total_cessions ?? 0) > 0 %} −{{ (ligne.total_cessions)|number_format(2, ',', ' ') }} € −{{ (ligne.total_cessions_ht ?? 0)|number_format(2, ',', ' ') }} € {% else %}—{% endif %} {% if (ligne.total_avoirs ?? 0) > 0 %} −{{ (ligne.total_avoirs)|number_format(2, ',', ' ') }} € −{{ (ligne.total_avoirs_ht ?? 0)|abs|number_format(2, ',', ' ') }} € {% else %}—{% endif %} {{ (ligne.stock_debut ?? 0)|number_format(2, ',', ' ') }} € {{ (ligne.stock_debut_ht ?? 0)|number_format(2, ',', ' ') }} € {{ (ligne.stock_fin ?? 0)|number_format(2, ',', ' ') }} € {{ (ligne.stock_fin_ht ?? 0)|number_format(2, ',', ' ') }} € {{ variation >= 0 ? '+' : '' }}{{ variation|number_format(2, ',', ' ') }} € {{ variationHt >= 0 ? '+' : '' }}{{ variationHt|number_format(2, ',', ' ') }} € {{ (ligne.achats_consommes ?? 0)|number_format(2, ',', ' ') }} € {{ (ligne.achats_consommes_ht ?? 0)|number_format(2, ',', ' ') }} € {{ ligne.total_repas ?? 0 }} {{ (ligne.cout_par_couvert ?? 0)|number_format(2, ',', ' ') }} € {{ (ligne.cout_par_couvert_ht ?? 0)|number_format(2, ',', ' ') }} € {% if (ligne.charges_fixes ?? 0) > 0 %} {{ (ligne.charges_fixes)|number_format(2, ',', ' ') }} € {{ (ligne.charges_fixes_ht ?? 0)|number_format(2, ',', ' ') }} € {% else %}{% endif %} {% set coutTot = ligne.cout_total_par_couvert ?? 0 %} {% set coutAff = coutTot > 0 ? coutTot : (ligne.cout_par_couvert ?? 0) %} {% set coutTotHt = ligne.cout_total_par_couvert_ht ?? 0 %} {% set coutAffHt = coutTotHt > 0 ? coutTotHt : (ligne.cout_par_couvert_ht ?? 0) %} {% if coutAff > 0 %} {{ coutAff|number_format(2, ',', ' ') }} € {% else %}{% endif %} {% if coutAffHt > 0 %} {{ coutAffHt|number_format(2, ',', ' ') }} € {% else %}{% endif %} {{ res >= 0 ? '+' : '' }}{{ res|number_format(2, ',', ' ') }} € {{ resHt >= 0 ? '+' : '' }}{{ resHt|number_format(2, ',', ' ') }} € {{ resC >= 0 ? '+' : '' }}{{ resC|number_format(2, ',', ' ') }} € {{ resCHt >= 0 ? '+' : '' }}{{ resCHt|number_format(2, ',', ' ') }} €
{% endblock body %}