{{-- Card d'intervention moderne et optimisée Variables attendues: $intervention --}}
{{-- Header avec client et statut --}}
{{-- Logo client --}}
@if($intervention->client && $intervention->client->client_logo) {{ $intervention->client->client_name }} @elseif($intervention->client && $intervention->client->client_type === 'particulier') @php $nameParts = explode(' ', $intervention->client->client_name); $initials = strtoupper(substr($nameParts[0], 0, 1)); if (isset($nameParts[1])) { $initials .= strtoupper(substr($nameParts[1], 0, 1)); } @endphp
{{ $initials }}
@else
@endif
{{-- Info client --}}
{{ $intervention->client->client_name ?? 'Client inconnu' }}
#{{ $intervention->id }}
{{-- Badges priorité et statut --}}
{{ ucfirst($intervention->priority ?? 'Normal') }}
{{-- Corps de la card --}}
{{-- Titre --}}

{{ $intervention->title }}

{{-- Description --}}

{{ $intervention->description ?? 'Pas de description' }}

{{-- Informations clés --}}
{{-- Statut --}}
Statut
{{-- Badge de statut --}} @php $status = $intervention->status ?? 'new'; $statusLabels = [ 'new' => 'Non planifié', 'planned' => 'Planifié', 'in_progress' => 'En cours', 'late' => 'En retard', 'completed' => 'Terminé' ]; $statusIcons = [ 'new' => 'fa-clock', 'planned' => 'fa-calendar-check', 'in_progress' => 'fa-spinner', 'late' => 'fa-exclamation-triangle', 'completed' => 'fa-check-circle' ]; // Calculer les jours de retard si late (par rapport à intervention_date) $daysLate = 0; $interventionDateFormatted = ''; if ($status === 'late' && $intervention->intervention_date) { $daysLate = (int) now()->diffInDays($intervention->intervention_date, false); $daysLate = abs($daysLate); $interventionDateFormatted = $intervention->intervention_date->format('d/m/Y'); } @endphp {{ $statusLabels[$status] ?? ucfirst($status) }} @if($status === 'late' && $daysLate > 0) de {{ $daysLate }} {{ $daysLate > 1 ? 'jours' : 'jour' }} ({{ $interventionDateFormatted }}) @elseif($status === 'planned' && $intervention->intervention_date) - {{ $intervention->intervention_date->format('d/m/Y') }} @elseif($status === 'in_progress' && $intervention->intervention_date) - {{ $intervention->intervention_date->format('d/m/Y') }} @elseif($status === 'completed' && $intervention->finished_at) - {{ $intervention->finished_at->format('d/m/Y') }} @if($intervention->finishedByUser) par {{ $intervention->finishedByUser->prenom }} {{ $intervention->finishedByUser->nom }} @endif @endif
{{-- Deadline --}}
Deadline
@if($intervention->deadline) @if($status === 'completed') {{-- Si terminé, afficher simplement la date --}} {{ $intervention->deadline->format('d/m/Y') }} @else @php $daysUntilDeadline = (int) now()->startOfDay()->diffInDays($intervention->deadline->startOfDay(), false); $daysUntilDeadlineAbs = abs($daysUntilDeadline); @endphp @if($daysUntilDeadline < 0) {{-- Deadline dépassée (rouge) --}} Dépassée de {{ $daysUntilDeadlineAbs }} {{ $daysUntilDeadlineAbs > 1 ? 'jours' : 'jour' }} ({{ $intervention->deadline->format('d/m/Y') }}) @elseif($daysUntilDeadline === 0) {{-- Aujourd'hui (orange) --}} Aujourd'hui ({{ $intervention->deadline->format('d/m/Y') }}) @elseif($daysUntilDeadline >= 1 && $daysUntilDeadline <= 6) {{-- Entre 1 et 6 jours (jaune) --}} Dans {{ $daysUntilDeadline }} {{ $daysUntilDeadline > 1 ? 'jours' : 'jour' }} ({{ $intervention->deadline->format('d/m/Y') }}) @else {{-- 7 jours et + (vert) --}} {{ $intervention->deadline->format('d/m/Y') }} @endif @endif @else Non définie @endif
{{-- Intervenants assignés --}}
Intervenants @php $workerCount = $intervention->workers->count(); @endphp @if($workerCount > 0) {{ $workerCount }} assigné{{ $workerCount > 1 ? 's' : '' }} @else Non assignée @endif
{{-- Footer avec actions --}}