diff --git a/src/State/Building/BuildingCaseWeightsReportProvider.php b/src/State/Building/BuildingCaseWeightsReportProvider.php index a7597ba..8c6df7a 100644 --- a/src/State/Building/BuildingCaseWeightsReportProvider.php +++ b/src/State/Building/BuildingCaseWeightsReportProvider.php @@ -91,6 +91,22 @@ final readonly class BuildingCaseWeightsReportProvider implements ProviderInterf ]; } + usort($rows, static function (array $a, array $b): int { + $aw = (string) ($a['workNumber'] ?? ''); + $bw = (string) ($b['workNumber'] ?? ''); + if ('' === $aw && '' === $bw) { + return 0; + } + if ('' === $aw) { + return 1; + } + if ('' === $bw) { + return -1; + } + + return (int) $aw <=> (int) $bw; + }); + $monthHeaders = $this->buildMonthHeaders($firstArrivalDate, $headerBreedCode); $dompdf = new Dompdf(); diff --git a/templates/case_weights_report.html.twig b/templates/case_weights_report.html.twig index afe56bf..efe5bd4 100644 --- a/templates/case_weights_report.html.twig +++ b/templates/case_weights_report.html.twig @@ -253,30 +253,29 @@ - - - - - - {% for month in monthHeaders|default([]) %} + {% for month in monthHeaders|default([])|reverse %} {% endfor %} + + + + - {% for month in monthHeaders|default([]) %} + {% for month in monthHeaders|default([])|reverse %} {% endfor %} - - + + - {% for month in monthHeaders|default([]) %} + {% for month in monthHeaders|default([])|reverse %} - {# 11 lignes comme dans ton code (0..10) #} + {# 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 %} - {% for idx in 0..(monthCount > 0 ? monthCount - 1 : 0) %} - {% set projectedWeight = row and row.projectedWeights is defined ? (row.projectedWeights[idx] ?? null) : null %} - - {% endfor %} + + + {% endfor %}
N° de
travail
N° de
travail
Poids
(kg)
Date de
naissance
{{ month.name }}Date de
naissance
Poids
(kg)
N° de
travail
N° de
travail
{{ month.days }}
FoinFoin POIDS PAR MOISFoinFoin
{% if month.baseValue is defined %} {{ month.baseValue|round(0, 'common') }} kg @@ -289,27 +288,28 @@
{{ row ? (row.workNumber ?? '') : '' }}{{ baseWeight ?? '' }} + {{ 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 %} - {{ projectedWeight is not null ? projectedWeight|round(0, 'common') : '' }} - {{ baseWeight ?? '' }}{{ row ? (row.workNumber ?? '') : '' }}