@extends('admin.admin_dashboard_hipotecario') @section('content') @php $camposOficinaCompletos = !empty($bitacora->nombre_oficina) && !empty($bitacora->id_entidad_federativa) && !empty($bitacora->zona); $zonas = ['CENTRO', 'NORTE', 'OCCIDENTE', 'SUR']; // Consecutivo global que solo cuenta filas de tarea (no encabezados de bloque) $consecutivo = 0; @endphp
{{-- Breadcrumb --}}
{{-- ── Badge de estado ── --}}
Bitácora #{{ $bitacora->id }} @if($bitacora->status === 'finalizado') Finalizada @else En proceso @endif
{{-- ── Alerta de éxito al guardar datos de oficina ── --}} @if(session('oficina_guardada'))
✓ Datos de la oficina guardados correctamente.
@endif {{-- ── Alerta si faltan datos de la oficina ── --}} @if(!$camposOficinaCompletos && $bitacora->status !== 'finalizado')
Datos de la oficina incompletos. Completa el Nombre de la Oficina, la Entidad Federativa y la Zona y guárdalos antes de poder finalizar actividades.
@endif {{-- ════════════════════════════════════════════ SECCIÓN 1 — DATOS DE LA NUEVA OFICINA ═════════════════════════════════════════════ --}}
Datos de la nueva Oficina / Sucursal @if($bitacora->status !== 'finalizado') * Requerido para finalizar actividades @endif
@if($bitacora->status !== 'finalizado')
@csrf
@error('nombre_oficina')
{{ $message }}
@enderror
@error('id_entidad_federativa')
{{ $message }}
@enderror
@error('zona')
{{ $message }}
@enderror
@else
@endif
{{-- ════════════════════════════════════════════ SECCIÓN 2 — DATOS DEL ASOCIADO ═════════════════════════════════════════════ --}}
Datos del Asociado
{{-- ── Barra de progreso ── --}}
Progreso general {{ $tareasFinalizadas }} de {{ $totalTareas }} tareas completadas ({{ $porcentaje }}%)
{{ $porcentaje }}%
{{-- ── Tabla de tareas ── --}}
@foreach($tareas as $bloque => $items) @php $totalBloque = $items->count(); $finalizBloque = $items->where('status', 'finalizado')->count(); $esBloqueActual = $bloque === $bloqueActual; if ($finalizBloque === $totalBloque) { $headerClass = 'table-success'; } elseif ($finalizBloque > 0) { $headerClass = 'table-warning'; } else { $headerClass = 'table-secondary'; } @endphp {{-- ── Fila de encabezado de bloque (colspan=7 ahora) ── --}} @foreach($items as $tarea) @php $consecutivo++; // ← incrementa solo en filas de tarea $userTeam = Auth::user()->current_team_id; $esAdmin = $userTeam === 1; $puedeFinalizar = $tarea->status === 'pendiente' && $esBloqueActual && ( $esAdmin || ($tarea->responsable === 'Capacitación' && $userTeam === 10) || ($tarea->responsable === 'Atención Asociados' && $userTeam === 7) ); // Detectar extensión para decidir si es imagen o archivo genérico $esImagen = false; if ($tarea->archivo_path) { $ext = strtolower(pathinfo($tarea->archivo_path, PATHINFO_EXTENSION)); $esImagen = in_array($ext, ['jpg', 'jpeg', 'png', 'gif', 'webp']); } @endphp {{-- ── Consecutivo automático ── --}} {{-- ── Estatus / Botón finalizar ── --}} {{-- ── Comentario ── --}} {{-- ── Evidencia / Archivo adjunto ── --}} @endforeach @endforeach
# Módulo Actividad a Realizar Responsable Estatus Comentarios / Retroalimentación Evidencia
{{ $bloque }} {{ $finalizBloque }}/{{ $totalBloque }} completadas @if($finalizBloque === $totalBloque) ✓ Completado @elseif($esBloqueActual) En curso @endif
{{ $consecutivo }} {{ $tarea->modulo }} {{ $tarea->actividad }} {{ $tarea->responsable }} @if($tarea->status === 'finalizado') ✓ Finalizado @if($tarea->finalizado_at)
{{ \Carbon\Carbon::parse($tarea->finalizado_at)->format('d/m/Y H:i') }} @endif @elseif($puedeFinalizar) @if($camposOficinaCompletos) @else @endif @else Pendiente @endif
@if($tarea->comentario) {{ $tarea->comentario }} @elseif($tarea->status === 'finalizado') Sin comentarios @endif @if($tarea->archivo_path) @if($esImagen) {{-- Imagen: miniatura con click para ampliar --}} Evidencia @else {{-- Archivo genérico (PDF, DOC, etc.) --}} Ver @endif @elseif($tarea->status === 'finalizado') @endif
{{-- ─────────────── Modal: Finalizar Actividad ─────────────── --}} {{-- ─────────────── Scripts ─────────────── --}} @endsection