@extends('layouts.app') @section('title', 'Dashboard RRHH') @section('content')

Dashboard RRHH

Gestión integral de recursos humanos

Total Empleados
{{ number_format($stats['total_employees'] ?? 0) }}
Empleados Activos
{{ number_format($stats['active_employees'] ?? 0) }}
Departamentos
{{ number_format($stats['departments'] ?? 0) }}
Posiciones
{{ number_format($stats['positions'] ?? 0) }}
Solicitudes Pendientes
{{ number_format($stats['pending_leave_requests'] ?? 0) }}
Capacitaciones Próximas
{{ number_format($stats['upcoming_trainings'] ?? 0) }}
Empleados Recientes
@forelse($recent_employees as $employee) @empty @endforelse
Empleado Departamento Posición Fecha Ingreso
{{ $employee->full_name ?? 'N/A' }}
{{ $employee->department->name ?? 'N/A' }} {{ $employee->position->name ?? 'N/A' }} {{ $employee->hire_date ? $employee->hire_date->format('d/m/Y') : 'N/A' }}
No hay empleados registrados
Solicitudes Pendientes
@forelse($pending_requests as $request) @empty @endforelse
Empleado Tipo Período Días
{{ $request->employee->full_name ?? 'N/A' }}
{{ $request->leaveType->name ?? 'N/A' }} {{ $request->start_date ? $request->start_date->format('d/m') : 'N/A' }} - {{ $request->end_date ? $request->end_date->format('d/m/Y') : 'N/A' }} {{ $request->total_days ?? 0 }}
No hay solicitudes pendientes
Capacitaciones Próximas
Ver Todas
@if(isset($upcoming_trainings) && $upcoming_trainings->count() > 0)
@foreach($upcoming_trainings as $training) @endforeach
Capacitación Tipo Proveedor Fecha Inicio Duración Costo Estado
{{ $training->name }}
@if($training->description) {{ Str::limit($training->description, 50) }} @endif
@php $typeColors = [ 'internal' => 'bg-primary', 'external' => 'bg-info', 'online' => 'bg-success', 'certification' => 'bg-warning' ]; $typeLabels = [ 'internal' => 'Interna', 'external' => 'Externa', 'online' => 'En Línea', 'certification' => 'Certificación' ]; @endphp {{ $typeLabels[$training->type] ?? ucfirst($training->type) }} {{ $training->provider ?? 'N/A' }} {{ $training->start_date ? $training->start_date->format('d/m/Y') : 'N/A' }} @if($training->start_date)
{{ $training->start_date->diffForHumans() }} @endif
@if($training->start_date && $training->end_date) @php $days = $training->start_date->diffInDays($training->end_date) + 1; @endphp {{ $days }} día{{ $days > 1 ? 's' : '' }} @else N/A @endif @if($training->cost) {{ number_format($training->cost, 2) }} {{ $training->currency }} @else Gratuito @endif @php $now = now(); $startDate = $training->start_date; if (!$startDate) { $status = 'scheduled'; $statusColor = 'bg-secondary'; $statusText = 'Programada'; } elseif ($startDate->isFuture()) { $status = 'upcoming'; $statusColor = 'bg-info'; $statusText = 'Próxima'; } elseif ($startDate->isToday()) { $status = 'today'; $statusColor = 'bg-warning'; $statusText = 'Hoy'; } else { $status = 'past'; $statusColor = 'bg-success'; $statusText = 'Completada'; } @endphp {{ $statusText }}
@else
No hay capacitaciones próximas

Las capacitaciones programadas para los próximos 30 días aparecerán aquí.

Crear Capacitación
@endif
@push('styles') @endpush @endsection