@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
| #{{ $r['rank'] }} |
{{ $r['driver'] }} |
|
{{ number_format($r['score'], 0, ',', ' ') }}/100
|
{{ $r['alerts'] }} alerte{{ $r['alerts'] > 1 ? 's' : '' }}
|
@endforeach
@else
Aucun conducteur à classer.
@endif
Distribution des scores
@if (!empty($dist))
@else
Pas de données.
@endif
@endsection