@php use App\Services\Pilotage\SignauxService; $definitions = SignauxService::definitions(); @endphp {{-- v4.1.0 §E — RAPPORT HEBDO DU PILOTAGE. Trois parties, celles du document de conception : par personne, par marché, signaux à trancher. Généré le vendredi à 17 h, ou à la demande depuis le cockpit. ⚠️ Aucun nom de société en dur : il vient de `Identite`, jamais du gabarit. Le socle sert deux installations et l'archive livrée est rigoureusement la même pour les deux. --}}
{{ $companyName }}
Rapport hebdomadaire de pilotage — semaine {{ $debut->isoWeek }} ({{ $debut->format('d/m/Y') }} → {{ $fin->format('d/m/Y') }})
{{ $societe }} · généré le {{ $generatedAt->format('d/m/Y à H:i') }}
{{-- ── 3. Les signaux à trancher, en tête : c'est ce qui appelle une décision. ── --}}

Signaux à trancher

@foreach ($definitions as $cle => $definition) @endforeach
{{ $signaux[$cle] ?? 0 }} {{ $definition['pastille'] }} {{ $definition['libelle'] }}
{{-- ── 1. Par personne ── --}}

Par personne

@if ($personnes->isEmpty())

Aucun collaborateur en poste — rien à rapporter.

@else {{-- v4.4.0 §D — Les primes de la semaine : des POINTS et des BADGES, jamais un montant. Un tableau trié qui porterait des dirhams serait un classement. --}} @foreach ($personnes as $ligne) @endforeach
Collaborateur Terminées Retards Bloquées Prévues (sem. +1) Reçues / à soiPoints sem. Badges · objectif Ce qui a été fait
{{ $ligne['employee']->full_name }} @if ($ligne['silence'])
⏱ aucun geste depuis le seuil de silence
@endif
{{ $ligne['terminees'] }} {{ $ligne['retards'] }} {{ $ligne['bloquees'] }} {{ $ligne['prevues'] }} {{ $ligne['recues'] }} / {{ $ligne['a_soi'] }} @if (($ligne['points_semaine'] ?? null) === null) — @else {{ $ligne['points_semaine'] }} pts @if (($ligne['serie'] ?? 0) > 0)
série {{ $ligne['serie'] }} j
@endif @endif
@forelse ($ligne['badges'] ?? [] as $badge) ★ {{ $badge }}@if (! $loop->last) · @endif @empty aucun badge @endforelse @if (($ligne['objectifs']['total'] ?? 0) > 0)
objectif {{ $ligne['objectifs']['atteints'] }}/{{ $ligne['objectifs']['total'] }}
@endif
@forelse ($ligne['titres'] as $titre) {{ $titre }}@if (! $loop->last) · @endif @empty rien de terminé cette semaine @endforelse
@endif {{-- ── 2. Par marché ── --}}

Par marché

@if ($marches->isEmpty())

Aucune tâche ouverte — planifiez la semaine.

@else @foreach ($marches as $ligne) @endforeach
Marché Chef de marché Ouvertes En retard Bloquées Livrables sem. Prochain livrable
{{ $ligne['libelle'] }} {{ $ligne['chef'] }} {{ $ligne['ouvertes'] }} {{ $ligne['retards'] }} {{ $ligne['bloquees'] }} {{ $ligne['livrables_semaine'] }} @if ($ligne['prochain_livrable']) {{ $ligne['prochain_livrable']->titre }} ({{ $ligne['prochain_livrable']->echeance->format('d/m') }}) @else — @endif
@endif