{{-- Les comptes rendus d'une intervention, tels qu'on les relit sur le détail du planning. ⚠️ Inclus par les DEUX vues du détail : `_show_modal` (ouverte depuis une carte du planning) et `show` (la page pleine, depuis une url directe), servies par PlanningController::show() selon que la requête est ajax ou non. Le partiel est ce qui les garde d'accord — voir `rapports/_liste`, qui fait le même travail pour les retours de chantier. Ce n'est pas le même objet : un RapportChantier est la fiche papier que l'équipe de pose ou de maçonnerie remplit au retour, un Rapport est le texte que le technicien dicte sur une intervention et que l'accueil approuve avant qu'il parte dans Gestan. Les deux peuvent se lire sur le même écran, une équipe d'intervention n'ayant pas de fiche de chantier. On écrit d'ici, on ne valide pas : approuver, corriger et clôturer restent sur la fiche de l'intervention, où l'accueil a le contexte des autres comptes rendus. Le bouton mène au même formulaire que cette fiche. Modifier n'apparaît pas non plus : InterventionController::rapportEdit() ne laisse passer que l'auteur, sans dérogation pour l'administrateur. Un lien ici finirait en 403 pour tous les autres. Lire ne demande pas de permission propre — qui peut ouvrir ce planning lit ses comptes rendus, comme ses retours de chantier. Paramètres : $rapports collection de Rapport pour UNE intervention (déjà triée, les plus récents d'abord) $intervention la fiche Gestan de cette intervention, pour son numéro et son état --}} @php $idIntervention = $intervention['IDINTERVENTION'] ?? null; // Même règle que la fiche de l'intervention : une intervention terminée // est partie dans Gestan, son compte rendu ne s'écrit plus. $terminee = ($intervention['ST_INTER'] ?? null) === 'TERMINÉ'; @endphp
{{ __('Comptes rendus') }} @if ($idIntervention && !$terminee) @can('interventions.rapportForm') {{ __('Écrire un compte rendu') }} @endcan @endif
@forelse ($rapports as $rapport)
{{-- Le signataire prime sur l'auteur du compte : c'est le nom que le technicien a donné, celui qui part dans Gestan. Le compte peut être partagé. --}} {{ $rapport->contenu['signataire'] ?? ($rapport->user->nom ?? __('Auteur inconnu')) }} — {{ $rapport->created_at->format('d/m/Y H:i') }} @if (!empty($rapport->contenu['duree'])) ({{ $rapport->contenu['duree'] }}) @endif
{{-- Trois états, dans l'ordre du parcours : le compte rendu attend l'accueil, il est approuvé, il est parti dans Gestan à la clôture. Mêmes libellés que la fiche de l'intervention, pour ne pas avoir à les retraduire d'un écran à l'autre. --}} @if ($rapport->synced_at) {{ __('Dans Gestan') }} @elseif ($rapport->approuve_le) {{ __('Approuvé') }} @else {{ __("Attend l'accueil") }} @endif @if ($rapport->corrige_le) {{ __('Modifié par :qui', ['qui' => $rapport->corrigePar?->prenom ?? __("l'accueil")]) }} @endif
@if (!empty($rapport->contenu['rapport']))
{!! nl2br(e($rapport->contenu['rapport'])) !!}
@else
{{ __('Compte rendu sans texte.') }}
@endif @if ($rapport->documents->isNotEmpty())
@foreach ($rapport->documents as $document) @php $url = asset('storage/' . $document->url); @endphp {{-- Un vocal s'écoute sur place, hors du lien : le technicien dicte plus souvent qu'il n'écrit, et cliquer sur lecture ne doit pas ouvrir le fichier. --}} @if ($document->estAudio()) @continue @endif estImage()) data-visionneuse="rapport-{{ $rapport->id }}" data-legende="{{ $document->description ?: __('Pièce jointe') }}" @endif> @if ($document->estImage()) {{ $document->description ?: __('Pièce jointe') }} @else {{ __('Document') }} @endif @endforeach
@endif
@empty

{{ $terminee ? __("Aucun compte rendu, et l'intervention est terminée.") : __('Aucun compte rendu pour le moment.') }}

@endforelse