@extends('reports.pdf.layout') @section('title', $data['meta']['title']) @php $meta = $data['meta']; $kpis = $data['kpis']; $series = $data['monthly_series']; $rows = $data['rows']; $fmtNum = function ($v, $unit = '') { if ($v === null) return '—'; $s = is_numeric($v) ? number_format((float) $v, 0, ',', ' ') : (string) $v; return trim($s . ' ' . $unit); }; $fmtDelta = function ($v, $unit = '%') { if ($v === null) return null; $sign = $v > 0 ? '+' : ''; return $sign . number_format((float) $v, 1, ',', ' ') . $unit; }; // Bar chart geometry — fixed pixel size (wkhtmltopdf 0.12.x renders // width="100%" SVGs at 0×0, see SG-01 for the same caveat). $chartW = 480; $chartH = 140; $padX = 30; $padY = 18; $values = array_map(fn ($r) => $r['value'], $series); $maxV = !empty($values) ? max($values) : 1; if ($maxV <= 0) $maxV = 1; $barW = count($series) > 0 ? (($chartW - 2 * $padX) / count($series)) * 0.6 : 20; $stepX = count($series) > 0 ? ($chartW - 2 * $padX) / count($series) : 0; @endphp @section('content')
Pas de données.
@endif| Conducteur | Score séc. | Score éco | Frein. | Vitesse | Choc | Ralenti | Total |
|---|---|---|---|---|---|---|---|
| {{ $r['driver'] }} | {{ $r['safety_score'] === null ? '—' : $r['safety_score'] }} | {{ $r['eco_score'] === null ? '—' : $r['eco_score'] }} | {{ $r['braking'] }} | {{ $r['speed'] }} | {{ $r['shock'] }} | {{ $r['idle'] }} | {{ $r['total'] }} |
Scores sécurité et éco-conduite — source télématique à venir. Les colonnes événementielles agrégent les alertes télématiques de la période rattachées au conducteur via son affectation véhicule.
@elseAucun conducteur sur la période.
@endif @endsection