@php use Carbon\Carbon; $anioActual = Carbon::now()->format('Y'); $anioAnterior = Carbon::now()->subYear()->format('Y'); // Agrupar documentos por tipo de solicitud, luego por año y finalmente por expediente $documentosPorTipoYAnio = $documentos ->groupBy('tipo_solicitud') ->map(function($docsPorTipo) { return $docsPorTipo ->groupBy(fn($doc) => Carbon::parse($doc->fecha_subida)->format('Y')) ->map(fn($docsPorAnio) => $docsPorAnio->groupBy(fn($doc) => $doc->expediente_id)) ->sortKeys(); }) ->sortKeys(); $mostrarTodos = !$auditor->tipo_solicitud; @endphp
{{-- Mostrar archivo de cotejo si existe --}} @if ($auditor->cotejo_url)

Última Nota de Cotejo:

Nota de Cotejo.pdf
@endif

Documentos Adjuntos

{{-- Botón cotejo --}} @if ($auditor->tipo_solicitud && !$auditor->es_cotejado && auth()->user()->can('cotejar auditor'))

Coteja los documentos antes de registrar el auditor.

Cotejar Documentos
@elseif ($auditor->es_cotejado)

✔ Documentos cotejados

@endif {{-- Documentos --}} @if ($documentos->isEmpty())

No hay documentos adjuntos.

@else @foreach ($documentosPorTipoYAnio as $tipoSolicitud => $anios)

{{ $tipoSolicitud ?: 'Sin tipo de solicitud' }}

@foreach ($anios as $anio => $expedientes) @php $esVisible = $mostrarTodos || $anio == $anioActual || $anio == $anioAnterior; @endphp

{{ $anio }}

@foreach ($expedientes as $expId => $docsExp)
Expediente: {{ $docsExp->first()->expediente?->numero_expediente ?? 'Sin expediente' }}
@foreach ($docsExp as $documento)
{{ $documento->nombre_documento ?? ($documento->nombreDocumento->nombre_documento ?? 'Documento sin nombre') }}
@endforeach
@endforeach
@endforeach
@endforeach @if (!$mostrarTodos)
@endif @endif
{{-- Modal Alpine para subir resolución de cotejo --}}

Subir nota de cotejo

@error('resolucionCotejo') {{ $message }} @enderror
Cancelar Guardar y Cotejar
{{-- Modal visor PDF --}}