@extends('layouts.admin') @section('title', 'Dashboard Administrativo') @section('styles') @endsection @section('content')

Dashboard Administrativo

Resumen general del sistema de solicitudes

{{ now(-4)->format('d/m/Y H:i') }}
{{ $estadisticas['total'] }}

Total de Solicitudes

Hoy: {{ $estadisticas['hoy'] }}
{{ $estadisticas['pendientes'] }}

Pendientes

Esta semana: {{ $estadisticas['esta_semana'] }}
{{ $estadisticas['en_gestion'] }}

En Gestión

Este mes: {{ $estadisticas['este_mes'] }}
{{ $estadisticas['cerradas'] }}

Cerradas

Promedio: {{ $tiempoPromedioResolucion }} días
Tendencia de Solicitudes (Últimos 7 días)
Estado de Solicitudes
Solicitudes Urgentes
@if($solicitudesUrgentes->count() > 0)
@foreach($solicitudesUrgentes as $solicitud) @php $limite = $solicitud->fecha_asignacion ?? $solicitud->created_at; $horasLimite = $solicitud->tiempo_limite_horas ?? 168; $fechaLimite = \Carbon\Carbon::parse($limite)->addHours($horasLimite); $horasRestantes = now()->diffInHours($fechaLimite, false); $vencida = $fechaLimite->isPast(); // Formatear tiempo de manera más legible if ($vencida) { $tiempoTexto = 'Vencida'; $tiempoClase = 'text-danger fw-bold'; $tiempoIcono = 'fas fa-exclamation-circle'; } else { $dias = floor(abs($horasRestantes) / 24); $horas = abs($horasRestantes) % 24; if ($dias > 0) { $tiempoTexto = $dias . 'd ' . $horas . 'h'; } else { $tiempoTexto = $horas . 'h'; } $tiempoClase = $horasRestantes <= 24 ? 'text-warning fw-bold' : 'text-warning'; $tiempoIcono = $horasRestantes <= 24 ? 'fas fa-clock' : 'fas fa-hourglass-half'; } @endphp @endforeach
ID Tipo Organismo Gestor Estado Tiempo
#{{ $solicitud->id }} {{ Str::limit($solicitud->tipoSolicitud->denominacion ?? 'N/A', 15) }} {{ Str::limit($solicitud->organismoRequeridor->nombre ?? 'N/A', 20) }} {{ Str::limit($solicitud->gestor->name ?? 'Sin asignar', 15) }} @if($solicitud->estado == 'pendiente') Pendiente @elseif($solicitud->estado == 'en_gestion') En gestión @else {{ ucfirst(str_replace('_', ' ', $solicitud->estado)) }} @endif {{ $tiempoTexto }}
Desliza horizontalmente para ver más columnas
@else
No hay solicitudes urgentes

Todas las solicitudes están dentro de los tiempos normales

@endif
Top Gestores
@foreach($topGestores as $index => $gestor)
{{ $index + 1 }}
{{ $gestor->name }}
{{ $gestor->activas }} activas | {{ $gestor->cerradas }} cerradas
@endforeach
Últimas Solicitudes
@foreach($ultimasSolicitudes as $solicitud) @endforeach
ID Tipo Organismo Estado Fecha
#{{ $solicitud->id }} {{ $solicitud->tipoSolicitud->denominacion ?? 'N/A' }} {{ Str::limit($solicitud->organismoRequeridor->nombre ?? 'N/A', 30) }} {{ ucfirst(str_replace('_', ' ', $solicitud->estado)) }} {{ $solicitud->created_at->format('d/m/Y H:i') }}
Tipos de Solicitud Más Comunes
@forelse($tiposSolicitudComunes as $tipo)
{{ Str::limit($tipo->denominacion, 25) }}
{{ $tipo->total_solicitudes }} solicitudes registradas
{{ $tipo->total_solicitudes }}
@empty

No hay tipos de solicitud registrados

@endforelse
Organismos Más Activos
@forelse($organismosActivos as $organismo)
{{ Str::limit($organismo->nombre, 25) }}
{{ $organismo->activas }} activas {{ $organismo->total_solicitudes }} total
{{ $organismo->activas }}
@php $porcentajeActivas = $organismo->total_solicitudes > 0 ? round(($organismo->activas / $organismo->total_solicitudes) * 100) : 0; @endphp
{{ $porcentajeActivas }}% de solicitudes están activas
@empty

No hay organismos con solicitudes activas

@endforelse
@endsection @section('scripts') @endsection