@extends('admin.layout') @section('title', $rapport->exists ? __('Modifier le retour de chantier') : __('Retour de chantier')) @section('content') @php $questions = config('rapport_chantiers.questions'); $champs = config('rapport_chantiers.champs_par_type')[$type] ?? []; // Les deux réponses de tout ce qui s'entoure sur le papier. $ouiNon = ['oui' => 'Oui', 'non' => 'Non']; // Remet une valeur de colonne sous la forme que postent les boutons : // true/false redeviennent 'oui'/'non', un null reste vide. Sans ça, un // formulaire rouvert en modification n'aurait aucune case cochée. $ternaire = function (?bool $valeur) { return $valeur === null ? null : ($valeur ? 'oui' : 'non'); }; // `old()` d'abord : un retour de validation échouée doit retrouver ce // qui venait d'être saisi, pas ce qui est en base. $val = fn (string $champ, $defaut = null) => old($champ, $defaut); @endphp

@yield('title')

{{-- Déroulé des champs « si oui, préciser » : ils n'ont rien à montrer tant que la question n'a pas sa réponse. --}}
@if ($errors->any())
    @foreach ($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif {{-- De quel chantier on revient. En lecture seule : la fiche est ouverte depuis le planning, elle ne peut pas se tromper de chantier. --}}
@if ($enTete['client'] ?? null)
{{ $enTete['client'] }}
@endif @if ($enTete['nature'] ?? null)
{{ $enTete['nature'] }}
@endif
{{ $planning->equipe?->nom ?? __('Équipe inconnue') }}
{{ __('Chantier n° :id', ['id' => $planning->id]) }} @if ($planning->date_debut) — {{ $planning->date_debut->format('d/m/Y') }} @if ($planning->date_fin && !$planning->date_fin->isSameDay($planning->date_debut)) {{ __('au') }} {{ $planning->date_fin->format('d/m/Y') }} @endif @endif
@csrf @if ($rapport->exists) @method('PUT') @endif {{-- La date du retour, en haut de la fiche comme sur le papier. Pré-remplie avec la fin du chantier : une fiche se saisit souvent le lendemain. --}}

@foreach ($champs as $champ) @php $question = $questions[$champ] ?? ['label' => $champ]; $question['label'] = $question['label_par_type'][$type] ?? $question['label']; @endphp @switch($champ) {{-- ---------- Les questions qui s'entourent ---------- --}} @case('client_present') @case('panneau_pub') @include('admin.plannings.rapports._choix', [ 'name' => $champ, 'label' => $question['label'], 'valeur' => $val($champ, $ternaire($rapport->$champ)), 'options' => $ouiNon, ]) @break {{-- ---------- « à faire // fait le … » ---------- --}} @case('peinture_cloture') @case('decoffrage') @include('admin.plannings.rapports._choix', [ 'name' => $champ, 'label' => $question['label'], 'valeur' => $val($champ, $rapport->$champ), 'options' => config('rapport_chantiers.' . $champ), 'precision' => [ 'name' => $question['precision'], 'label' => 'Le', 'valeur' => $val($question['precision'], $rapport->{$question['precision']}?->toDateString()), 'quand' => $question['quand'], 'type' => 'date', ], ]) @break {{-- ---------- Le tableau en plus / en moins ---------- --}} @case('articles') @include('admin.plannings.rapports._articles', [ 'rapport' => $rapport, 'label' => $question['label'], ]) @break {{-- ---------- Celles qui ont leur propre liste ---------- --}} @case('mini_pelle') @case('avis_client') @case('avancement') @include('admin.plannings.rapports._choix', [ 'name' => $champ, 'label' => $question['label'], 'valeur' => $val($champ, $rapport->$champ), 'options' => config('rapport_chantiers.' . $champ), ]) @break {{-- ---------- Ce qui se tape ---------- --}} @case('telecommandes')
@break @case('commentaires')
@break @default
@endswitch @endforeach
{{-- ============ PROCÈS-VERBAL D'IMPLANTATION ============ --}}
{{ __('Acceptation implantation travaux') }}
{{-- Le texte du papier, nom et date dans la phrase là où le papier a ses blancs, avec le métier de l'équipe. Préremplis à la création (client, date du chantier), modifiables : c'est parfois le conjoint qui signe. --}}
exists) data-suit="date_chantier" @endunless>. {{ __('Les garanties découlant des articles 1792, 1792-2 et 1792-3 du Code Civil commencent à courir à compter de la signature du présent procès-verbal, avec ou sans réserve.') }}
@if ($rapport->signature) {{-- Un paraphe déjà recueilli reste affiché : il engage le client, on ne le remplace qu'en traçant par-dessus. --}}

{{ __('Tracer une nouvelle signature remplacera celle-ci.') }}

@endif
{{ __('Retour') }}
@if ($rapport->exists)
@csrf @method('DELETE')
@endif
@endsection