@extends('reports.pdf.layout') @section('title', $data['meta']['title']) @php $meta = $data['meta']; $kpis = $data['kpis']; $ranking = $data['ranking']; $dist = $data['distribution']; $note = $data['note']; $fmtNum = function ($v, $unit = '') { if ($v === null) return '—'; $s = is_numeric($v) ? number_format((float) $v, 0, ',', ' ') : (string) $v; return trim($s . ' ' . $unit); }; // Rank-list bar — pixel widths proportional to score / 100. $tierBg = ['success' => '#10B981', 'warning' => '#F59E0B', 'danger' => '#EF4444', 'neutral' => '#9CA3AF']; // Distribution bar chart geometry. $chartW = 240; $chartH = 140; $padX = 24; $padY = 18; $maxCount = !empty($dist) ? max(array_column($dist, 'count') ?: [0]) : 0; if ($maxCount <= 0) $maxCount = 1; $barW = count($dist) > 0 ? (($chartW - 2 * $padX) / count($dist)) * 0.65 : 18; $stepX = count($dist) > 0 ? ($chartW - 2 * $padX) / count($dist) : 0; @endphp @section('content')
DADYCAR FLEET MANAGER

{{ $meta['title'] }}

Conducteurs {{ $meta['code'] }} Période : {{ $meta['period']['label'] }} · {{ $meta['site_label'] }} · {{ $meta['total_drivers'] }} conducteurs · Généré le {{ $meta['generated_at']->locale('fr')->isoFormat('D MMMM YYYY') }}

Indicateurs clés

Conducteur en tête
{{ $kpis['top_driver']['value'] }}
{{ $kpis['top_driver']['delta_label'] }}
Score moyen flotte
{{ $fmtNum($kpis['avg_score']['value']) }}{{ $kpis['avg_score']['unit'] }}
{{ $kpis['avg_score']['delta_label'] }}
Conducteurs critiques
{{ $fmtNum($kpis['critical_drivers']['value']) }}
{{ $kpis['critical_drivers']['delta_label'] }}
Écart à la moyenne
{{ $fmtNum($kpis['spread']['value']) }}{{ $kpis['spread']['unit'] }}
{{ $kpis['spread']['delta_label'] }}

{{ $note }}

Classement complet

@if (!empty($ranking)) @foreach ($ranking as $r) @php $w = max(2, (int) round(($r['score'] / 100) * 100)); $bg = $tierBg[$r['tier']] ?? $tierBg['neutral']; @endphp @endforeach
#{{ $r['rank'] }} {{ $r['driver'] }}
{{ number_format($r['score'], 0, ',', ' ') }}/100 {{ $r['alerts'] }} alerte{{ $r['alerts'] > 1 ? 's' : '' }}
@else

Aucun conducteur à classer.

@endif

Distribution des scores

@if (!empty($dist)) @foreach ($dist as $i => $b) @php $h = $b['count'] > 0 ? (($b['count'] / $maxCount) * ($chartH - 2 * $padY)) : 0; $x = $padX + $i * $stepX + ($stepX - $barW) / 2; $y = $chartH - $padY - $h; @endphp {{ $b['label'] }} @if ($b['count'] > 0) {{ $b['count'] }} @endif @endforeach @else

Pas de données.

@endif
@endsection