Ir al contenido

Horas Extras (`overtime/`)

Ruta: /owner/hr/overtime

Sistema de gestión de horas extraordinarias con compensación flexible.

Manual:

1. Manager registra horas extras
2. Indica empleado y fecha
3. Especifica horas realizadas
4. Añade motivo/proyecto
5. Guarda registro

Automático desde Fichajes:

1. Sistema detecta horas > jornada contractual
2. Genera registro automático
3. Marca como "pendiente de revisión"
4. Manager aprueba o ajusta

Según el Estatuto de los Trabajadores:

  • Máximo anual: 80 horas extras
  • Voluntarias: Salvo pacto o convenio
  • Compensación: Económica o con descanso
  • Registro obligatorio: Según ITSS

Alertas del Sistema:

  • 🟡 Acumulación > 40h en 6 meses
  • 🔴 Acumulación > 70h en el año
  • 🔴 Superación del límite legal (80h)
Detalles Técnicos

Componentes:

OvertimeQueue.tsx // Cola de registros pendientes
OvertimeCompensationManager.tsx // Gestión de compensaciones
OvertimeDetailDialog.tsx // Detalle de registro
OvertimePolicySettings.tsx // Configuración de políticas

Tabla: overtime_records

CREATE TABLE overtime_records (
id UUID PRIMARY KEY,
employee_id UUID NOT NULL,
business_id UUID NOT NULL,
date DATE NOT NULL,
hours DECIMAL(5,2) NOT NULL,
reason TEXT,
status TEXT DEFAULT 'pending', -- pending, approved, compensated
compensation_type TEXT, -- economic, time_off
compensation_applied BOOLEAN DEFAULT FALSE,
approved_by UUID,
created_at TIMESTAMP DEFAULT NOW()
);

Edge Function: overtime-compensation-alert

Ejecutada semanalmente, notifica a RRHH sobre:

  • Empleados con acumulación alta
  • Horas próximas a caducar
  • Límites legales cercanos

Los empleados pueden optar por compensar horas extras con descanso.

1. Empleado tiene horas extras aprobadas
2. Solicita compensación con tiempo libre
3. Indica proporción (típicamente 1.5:1)
- 10h extras = 15h de descanso
4. Solicita días específicos
5. Manager aprueba
6. Sistema descuenta de saldo de horas extras
7. Genera ausencia tipo "compensatory_time"

Por empresa, se pueden configurar:

  • Ratio de compensación: 1:1, 1.5:1, 2:1
  • Caducidad: 3, 6, 12 meses
  • Acumulación máxima: Límite de horas
  • Prioridad: Económica o tiempo libre