{% set firstArrivalDate = rows is not empty ? rows[0].arrivalDate : null %} {% set monthCount = ((monthHeaders|default([]))|length) > 0 ? ((monthHeaders|default([]))|length) : 12 %}

Arrivage du {{ firstArrivalDate ?? '-' }}

{# 28 colonnes ≈ 3.571% chacune #} {% for _ in 0..27 %}{% endfor %} {# Paire 1 : chiffre + case vide #} {# Paire 2 #} {# Paire 3 #} {# Paire 4 #} {# Espacement entre PROVENANCE et RACE (1 col, RACE commence plus tôt) #} {# Bloc RACE #}
PROVENANCE1 2 3 4 RACE LIMOUSIN CHAROLAIS AUTRE
BATIMENT N° CASE N°
{% for month in monthHeaders|default([])|reverse %} {% endfor %} {% for month in monthHeaders|default([])|reverse %} {% endfor %} {% for month in monthHeaders|default([])|reverse %} {% endfor %} {# 13 lignes comme dans ton code (0..12) #} {% for i in 0..12 %} {% set row = rows[i] ?? null %} {% set baseWeight = row ? (row.receivedWeight ?? null) : null %} {% for idx in 0..(monthCount > 0 ? monthCount - 1 : 0) %} {% set reversedIdx = (monthCount - 1) - idx %} {% set projectedWeight = row and row.projectedWeights is defined ? (row.projectedWeights[reversedIdx] ?? null) : null %} {% endfor %} {% endfor %}
{{ month.name }}Date de
naissance
Poids
(kg)
N° de
travail
N° de
travail
{{ month.days }}
POIDS PAR MOIS Foin Foin
{% if month.baseValue is defined %} {{ month.baseValue|round(0, 'common') }} kg {% elseif month.base is defined %} {{ month.base }} {% endif %}
{{ projectedWeight is not null ? projectedWeight|round(0, 'common') : '' }} {% if row and row.birthDate %} {% set birthParts = row.birthDate|split('/') %} {{ birthParts|length == 3 ? birthParts[1] ~ '/' ~ birthParts[2] : row.birthDate }} {% endif %} {{ baseWeight ?? '' }} {{ row ? (row.workNumber ?? '') : '' }}