{{-- Accordéon des plannings d'un utilisateur. Variables attendues : - $plannings : collection de App\Models\Planning (avec relation equipe) - $planningInfos : map [planning_id => infos API (duree/employes/contact/devis/interventions)] - $user : App\Models\User courant (pour exclure des techniciens) - $toutReplie : facultatif, tout replié au départ (page « Voir tout ») ; sinon le premier est ouvert --}} @if ($plannings->count())
@foreach ($plannings as $p) @php $info = $planningInfos[$p->id] ?? []; $contact = $info['contact'] ?? null; $devisL = $info['devis'] ?? []; $interL = $info['interventions'] ?? []; $duree = $info['duree'] ?? null; // L'API renvoie des lignes ['id' => .., 'observation' => ..] ; // certains plannings portent aussi une chaine simple. $observL = collect($info['observations'] ?? []) ->map(fn ($o) => is_array($o) ? ($o['observation'] ?? null) : $o) ->filter() ->values(); // Equipe complete du chantier, utilisateur courant inclus : sur sa fiche, // le voir absent de la ligne "Techniciens" du planning ou il figure // pourtant est deroutant. $techniciens = collect($info['employes'] ?? [])->values(); $raison = $contact ? ($contact['raison_sociale'] ?? (trim(($contact['prenom'] ?? '') . ' ' . ($contact['nom'] ?? '')) ?: null)) : null; $itemId = 'planning_' . $p->id; $isOpen = $loop->first && !($toutReplie ?? false); @endphp

{{-- Infos chantier --}}
Durée {{ $duree ?? '—' }}
Techniciens @forelse ($techniciens as $t) {{-- L'utilisateur dont on consulte la fiche est mis en avant --}} {{ trim(($t['prenom'] ?? '') . ' ' . ($t['nom'] ?? '')) ?: '—' }} @empty Aucun technicien affecté @endforelse
{{-- Client --}}
Client
@if ($contact)
Raison sociale {{ $raison ?? '—' }}
E-mail @if (!empty($contact['email'])) {{ $contact['email'] }} @else — @endif
Téléphone @if (!empty($contact['tel'])) {{ $contact['tel'] }} @else — @endif
@else

—

@endif @include('admin.plannings._nature_ligne', ['travaux' => $info['travaux'] ?? null]) @include('admin.plannings._adresse_ligne', ['lieu' => $info['lieu'] ?? null]) {{-- Devis --}} @if (!empty($devisL))
Devis
@foreach ($devisL as $d) @php $adresseChantier = implode(', ', array_filter([ trim(($d['adresse_1'] ?? '') . ' ' . ($d['adresse_2'] ?? '')), trim(($d['code_postal'] ?? '') . ' ' . ($d['ville'] ?? '')), ])) ?: '—'; @endphp @endforeach
N° Référence Nature Adresse du devis
@if (!empty($d['id'])) {{ $d['id'] }} @else — @endif {{ $d['reference'] ?? '—' }} {{ $d['nature'] ?? '—' }} {{ $adresseChantier }}
@endif {{-- Interventions --}} @if (!empty($interL))
Interventions
@foreach ($interL as $i) @endforeach
N° Libellé Secteur
{{ $i['id'] ?? '—' }} {{ $i['libelle'] ?? '—' }} {{ $i['secteur'] ?? '—' }}
@endif {{-- Observations (masqué si vide) --}} @if ($observL->isNotEmpty())
Observations
    @foreach ($observL as $obs)
  • {{ $obs }}
  • @endforeach
@endif {{-- Lien vers la fiche complete du planning --}} @can('plannings.view') Voir le planning @endcan
@endforeach
@else

Aucun planning.

@endif