{%- if footerInfo is defined and footerInfo.logo is not empty %}
{%- endif %}
{%- if footerInfo is defined and footerInfo.entete is not empty %}
{{ footerInfo.entete|nl2br }}
{%- endif %}
Menu de la Semaine {{ semaine.numero_semaine }}
Du {{ semaine.date_debut|date('d/m/Y') }} au {{ semaine.date_fin|date('d/m/Y') }}
Le Chef vous propose
{%- else %}
{%- if footerInfo is defined and footerInfo.logo is not empty %}
{%- else %}
{%- endif %}
{%- if footerInfo is defined and footerInfo.entete is not empty %}
{{ footerInfo.entete|nl2br }}
{%- endif %}
Menu de la Semaine {{ semaine.numero_semaine }}
Du {{ semaine.date_debut|date('d/m/Y') }} au {{ semaine.date_fin|date('d/m/Y') }}
Le Chef vous propose
{%- if footerInfo is defined and footerInfo.logo is not empty %}
{%- endif %}
{%- endif %}
{%- if menuStyle == 'cartes' and pdfMode is defined and pdfMode %}
{# PDF cartes : vraie table 2 colonnes — dompdf ne supporte pas flex #}
{# Étape 1 : collecter les jours ayant des données #}
{% set joursAvecData = [] %}
{% for jour in jours_ordre %}
{% set hasData = false %}
{% for sKey in services|keys %}
{% if jours[sKey] is defined and jours[sKey][jour] is defined %}
{% set hasData = true %}
{% endif %}
{% endfor %}
{% if hasData %}{% set joursAvecData = joursAvecData|merge([jour]) %}{% endif %}
{% endfor %}
{# Étape 2 : rendu table 2 colonnes via loop.index odd/even #}
{% for jour in joursAvecData %}
{% set offset = jourOffset[jour] ?? 0 %}
{% set nbServices = 0 %}
{% for sKey in services|keys %}
{% if jours[sKey] is defined and jours[sKey][jour] is defined %}
{% set nbServices = nbServices + 1 %}
{% endif %}
{% endfor %}
{% if loop.index is odd %}
{% for sKey, sLabel in services %}
{% if jours[sKey] is defined and jours[sKey][jour] is defined %}
{% set row = jours[sKey][jour] %}
{% set opts = row.opts ?? {} %}
{% if nbServices > 1 %}
{{ sLabel }}
{% endif %}
{% for composante in composantesList %}
{% set val = attribute(row, composante) ?? '' %}
{% if val is not empty %}
{{ composanteLabels[composante] }} : {{ val }}
{% if opts[composante] is defined %}
{% set compOpts = opts[composante] %}
{% if compOpts.egalim is defined and compOpts.egalim is not empty %}
{% for eg in compOpts.egalim %}
{% if eg == 'vegetarien' %}VEG
{% elseif eg == 'bio' %}BIO
{% elseif eg == 'local' %}LOCAL
{% elseif eg == 'durable' %}DUR
{% endif %}
{% endfor %}
{% endif %}
{% if compOpts.allergenes is defined and compOpts.allergenes is not empty %}
(!)Allergenes :
{% for al in compOpts.allergenes %}{{ allergenLabels[al] ?? al }}{% if not loop.last %}, {% endif %}{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
{% if loop.index is even %}
{% elseif loop.last %}
{% endif %}
{% endfor %}
{%- else %}
{% if menuStyle == 'cartes' %}
{% endif %}
{% for jour in jours_ordre %}
{# Vérifier si au moins un service a des données pour ce jour #}
{% set hasData = false %}
{% for sKey in services|keys %}
{% if jours[sKey] is defined and jours[sKey][jour] is defined %}
{% set hasData = true %}
{% endif %}
{% endfor %}
{% if hasData %}
{% set offset = jourOffset[jour] ?? 0 %}
{# Compter les services avec données pour ce jour #}
{% set nbServices = 0 %}
{% for sKey in services|keys %}
{% if jours[sKey] is defined and jours[sKey][jour] is defined %}
{% set nbServices = nbServices + 1 %}
{% endif %}
{% endfor %}
{% for sKey, sLabel in services %}
{% if jours[sKey] is defined and jours[sKey][jour] is defined %}
{% set row = jours[sKey][jour] %}
{% set opts = row.opts ?? {} %}
{% if nbServices > 1 %}
{{ sLabel }}
{% endif %}
{% for composante in composantesList %}
{% set val = attribute(row, composante) ?? '' %}
{% if val is not empty %}
{{ composanteLabels[composante] }} : {{ val }}
{% if opts[composante] is defined %}
{% set compOpts = opts[composante] %}
{% if compOpts.egalim is defined and compOpts.egalim is not empty %}
{% for eg in compOpts.egalim %}
{% if eg == 'vegetarien' %}🥬 VEG
{% elseif eg == 'bio' %}🌱 BIO
{% elseif eg == 'local' %}🌟 LOCAL
{% elseif eg == 'durable' %}🌍 DUR
{% endif %}
{% endfor %}
{% endif %}
{% if compOpts.allergenes is defined and compOpts.allergenes is not empty %}
(!)Allergenes :
{% for al in compOpts.allergenes %}{{ allergenLabels[al] ?? al }}{% if not loop.last %}, {% endif %}{% endfor %}
{% endif %}
{% endif %}
{% if not pdfMode is defined or not pdfMode %}📋 {% endif %}Legende
{% if pdfMode is defined and pdfMode %}
VEG Vegetarien(!) AllergenesLOCAL Produit localBIO BioDUR Durable
{% else %}
🥬 VEG Végétarien⚠️ (!) Allergènes🌟 LOCAL Produit local🌱 BIO Bio🌍 DUR Durable
{% endif %}
{% if not pdfMode is defined or not pdfMode %}
{% endif %}