@extends('reports.pdf.layout') @section('title', $data['meta']['title']) @php $meta = $data['meta']; $kpis = $data['kpis_annual']; $series = $data['monthly_series'] ?? []; $comparison = $data['comparison'] ?? []; $esg = $data['esg'] ?? null; $fmtNum = function ($v, $unit = '') { if ($v === null) return '—'; $s = is_numeric($v) ? number_format((float) $v, 0, ',', ' ') : (string) $v; return trim($s . ' ' . $unit); }; $fmtCompactEur = function ($v) { if ($v === null) return '—'; $abs = abs((float) $v); if ($abs >= 1_000_000) return number_format($v / 1_000_000, 2, ',', ' ') . ' M€'; if ($abs >= 1_000) return number_format($v / 1_000, 0, ',', ' ') . ' k€'; return number_format($v, 0, ',', ' ') . ' €'; }; $fmtDelta = function ($v, $unit = '%') { if ($v === null) return null; $sign = $v > 0 ? '+' : ''; return $sign . number_format((float) $v, 1, ',', ' ') . $unit; }; $deltaClass = function ($v, bool $maximize = true) { if ($v === null || $v == 0) return 'delta-flat'; $up = $v > 0; return ($up === $maximize) ? 'delta-up' : 'delta-down'; }; // ── 12-month dual-axis bar chart (TCO bars left, Sinistres bars right) $chartW = 540; $chartH = 220; $padX = 38; $padY = 24; $tcos = array_map(fn ($r) => $r['tco'] ?? 0, $series); $claims = array_map(fn ($r) => (int) ($r['claims'] ?? 0), $series); $maxL = !empty($tcos) ? max($tcos) : 0; if ($maxL == 0) $maxL = 1; $maxR = !empty($claims) ? max($claims) : 0; if ($maxR == 0) $maxR = 1; $maxL = $maxL * 1.1; $maxR = max(1, ceil($maxR * 1.2)); $count = max(1, count($series)); $bandW = ($chartW - 2 * $padX) / $count; $barW = max(2, ($bandW - 6) / 2); $baselineY = $chartH - $padY; $usableH = $chartH - 2 * $padY; @endphp @section('content')
Pas de données mensuelles pour l'année.
@endif| Poste de coût | {{ $meta['year'] - 1 }} | {{ $meta['year'] }} | Évolution | Tendance |
|---|---|---|---|---|
| {{ $c['category'] }} | {{ $fmtCompactEur($c['prev']) }} | {{ $fmtCompactEur($c['curr']) }} | {{ $fmtDelta($c['change']) ?? '—' }} | {{ $arrow }} |
Pas de comparaison disponible (aucune dépense N-1).
@endif @if ($esg && !empty($esg['items']))|
{{ $item['label'] }}
{{ $item['value'] }}
|
@endforeach