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

Interventions

{{ __('Calcul tarifs') }}
@include('admin.gestan._stale_banner')
{{-- Retour du modal de rapport : le layout n'affiche pas les messages flash, sans ce bloc l'envoi passerait en silence. --}} {{-- Messages : sur-place.js les fait flotter en haut a droite. --}}
@if (session('success'))
{{ session('success') }}
@endif @if (session('warning'))
{{ session('warning') }}
@endif @if (session('error'))
{{ session('error') }}
@endif @if ($errors->any())
    @foreach ($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif
@php // Chaque groupe de badges garde le filtre de l'autre : on // peut croiser « À FAIRE » et « À FACTURER ». Les valeurs // vides sautent, mais pas le code 0 (« NON RENSEIGNÉ »). $garder = fn (array $p) => array_filter($p, fn ($v) => $v !== null && $v !== ''); @endphp {{-- Filtres État --}} {{-- Filtres Facturation (ST_FACT). Masqués tant que l'api ne renvoie pas les compteurs. --}} @if ($factBadges->isNotEmpty() && !$enFile) @endif @if ($enFile) @include('admin.gestan.interventions._file-attente', [ 'clotures' => $clotures, 'seuil' => $seuil, ]) @else
{{-- Barre recherche GET --}}
{{-- Conserver état actif --}} @if (request('etat')) @endif @if ($facture !== null) @endif @if ($libres) @endif
@if ($q) Réinitialiser @endif
{{-- « Non prises » : vue À FAIRE seulement. Une intervention en cours est prise par définition, le filtre y viderait la page (voir InterventionController::index). --}} @if ($nonPrisesDispo) @endif @if ($groupeIncomplet)
{{ __('Seules les :n interventions les plus récentes sont regroupées ici.', ['n' => $interventions->count()]) }}
@endif {{-- Tableau --}}
{{-- Deux lignes par intervention (voir _rows) : l'adresse passe sous le client, les rapports à côté de l'état. --}} {{-- Regroupe, le secteur est deja dans l'en-tete de section : la colonne repeterait la meme valeur sur toutes les lignes du groupe. --}} @unless ($parSecteur) @endunless @if ($groupes !== null) {{-- « À FAIRE » : une section par secteur, repliable. Chaque section a son propre , que l'en-tête masque ou affiche (script en bas de page). --}} @forelse ($groupes as $secteur => $liste) @php $gid = 'secteur-' . $loop->index; $retards = $liste->filter(fn ($i) => gestan_inter_retard($i))->count(); @endphp @include('admin.gestan.interventions._rows', [ 'interventions' => $liste, 'rapports' => $rapports, 'parSecteur' => $parSecteur, ]) @empty @include('admin.gestan.interventions._rows', [ 'interventions' => collect(), 'rapports' => $rapports, 'parSecteur' => $parSecteur, ]) @endforelse @else @include('admin.gestan.interventions._rows', [ 'interventions' => $interventions, 'rapports' => $rapports, 'parSecteur' => $parSecteur, ]) @endif
ID Client Descriptif État {{ __('Facturation') }}{{ __('Secteur') }}{{ __('Créée') }} Actions
{{-- Pagination --}} @include('admin.gestan.interventions._pagination', [ 'interventions' => $interventions, ]) @endif {{-- Un modal par inter ouverte à la saisie, rendus après le tableau : posés dans une cellule, Bootstrap les place par rapport au tableau et le fond gris déborde. Même formulaire que la page rapport. --}} @foreach ($interventions as $i) @continue(!gestan_inter_saisie_rapport($i)) @php $id = $i['IDINTERVENTION']; @endphp @endforeach
{{-- Même feuille que l'index des commandes et des découpes : la pastille de retard (cmd-tag, cmd-echeance-retard) en vient. --}} {{-- Plier / déplier un secteur. `hidden` plutôt que le collapse de Bootstrap, qui anime mal un . --}} @push('scripts') @endpush @endsection