@extends('admin.layout') @section('title', 'Planning interventions') @section('content')

Planification des interventions

{{-- Deroule des blocs qui apparaissent en cours de saisie : le bloc equipe quand les dates tiennent. Regles partagees avec les autres formulaires. --}} {{-- Les blocs et la liste des employes, comme sur le formulaire d'un chantier. --}}
{{-- Un refus du serveur (intervention introuvable dans Gestan, saisie invalide) : sans ce bloc l'ecran revenait vide, sans rien dire. sur-place.js le fait flotter en haut a droite. --}}
@if (session('error'))
{{ session('error') }}
@endif @if ($errors->any())
    @foreach ($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif
{{-- La file a gauche, la saisie a droite. Toutes les interventions a planifier sont sous les yeux, rangees par secteur : on en clique une, on pose son creneau, son equipe et ses employes a droite, on clique la suivante. Celles qui sont pretes se cochent dans la file avec leur creneau, et un seul « Enregistrer » pose le tout. Avant, une liste deroulante par intervention, et autant de blocs empiles a faire defiler. Chaque intervention cliquee recoit son bloc `.intervention-block`, tire du modele plus bas ; un seul est affiche a la fois (js/interventions/file.js). Les scripts des dates, de l'equipe, des absences et des conflits entre interventions travaillent par bloc, comme avant : ils ne savent pas que les autres sont caches. `novalidate` : un champ obligatoire dans un bloc cache bloquerait l'envoi sans qu'on voie ou. file.js verifie lui-meme, et ramene a l'ecran l'intervention a completer. `data-no-draft` : les champs naissent au clic, un brouillon (js/form-draft.js) ne retrouverait pas ou se reposer. --}}
@csrf
{{ __('Annuler') }}
{{-- ================= LA FILE ================= --}}
{{ __('À planifier') }}
{{ $interventionsBySecteur->flatten(1)->count() }}
@forelse ($interventionsBySecteur as $secteur => $items)
{{ $secteur }}
@foreach ($items as $inter) @php $client = $inter['CLIENT'] ?? null; $nomClient = $client['RAISON_SOCIALE'] ?? trim(($client['NOMFAMILLE'] ?? '') . ' ' . ($client['PRENOM'] ?? '')); // Là où on envoie le technicien : le LIEU, sinon le client $lieu = gestan_inter_adresse($inter); $libelle = $inter['LIBINTER'] ?? 'Sans description'; @endphp @endforeach
@empty

{{ __('Aucune intervention à planifier.') }}

@endforelse
{{-- ================= LA SAISIE ================= --}}
{{ __('Choisissez une intervention dans la liste pour poser son créneau.') }}
{{-- Le modele d'un bloc. Dans un