Saltar a contenido

Ausencias

¿Qué es?

El módulo de Ausencias registra las inasistencias justificadas de los empleados: vacaciones, incapacidades médicas, licencias de maternidad/paternidad, permisos y cualquier tipo de ausencia formal. Cada registro vincula un empleado con un tipo de ausencia, un rango de fechas y un estado de aprobación. El sistema calcula automáticamente el número de días.


Vista principal

Columnas de la tabla

  • Código — Código interno auto-generado del registro de ausencia. Fuente monoespaciada. Ancho 160 px.
  • Empleado — Nombre del empleado. Ancho máximo 260 px, truncado.
  • Tipo — Nombre del tipo de ausencia más su código abreviado en paréntesis (ej. "Vacaciones (V)"). Ancho 200 px, truncado.
  • Inicio — Fecha de inicio en formato AAAA-MM-DD. Fuente monoespaciada. Ancho 120 px.
  • Fin — Fecha de fin en formato AAAA-MM-DD. Fuente monoespaciada. Ancho 120 px.
  • Días — Número de días de la ausencia, calculado automáticamente. Alineado a la derecha, fuente monoespaciada. Ancho 80 px.
  • Estado — Badge de color según el estado (ver tabla de estados). Ancho 120 px.

Ordenación por defecto

Ordenada por fecha de inicio descendente (date_start DESC).

Filtros

  • Buscar empleado, tipo, código... — Campo de texto libre que busca en nombre de empleado, tipo de ausencia y código.
  • Estado — Selector: Todos, Borrador, Confirmada, Aprobada, Rechazada.

Estados de la ausencia

Estado Código Badge Descripción
Borrador draft Gris Registrada pero pendiente de revisión
Confirmada confirm Azul Enviada para aprobación
Aprobada validate Verde Aprobada por el administrador
Rechazada refuse Rojo Rechazada; no aplica para nómina

Acciones disponibles

Botón "Nueva ausencia"

Visible con permiso leave: create. Abre el modal de creación.

Botón "Catálogos"

Visible con permiso leave: view. Abre el panel deslizante lateral de Tipos de ausencia. Este catálogo es compartido con el módulo de Novedades (Reemplazos).

Exportar

Botón de exportación. Descarga un archivo ausencias. Requiere permiso leave: export.

Acciones masivas

Al seleccionar una o más ausencias aparece la barra flotante inferior:

  • Cambiar estado — Selector de estado (Borrador, Confirmada, Aprobada, Rechazada) + botón Aplicar. Requiere permiso leave: edit.
  • Rechazar (eliminar) — Doble confirmación. El primer clic muestra "¿Confirmar?" en rojo, el segundo clic ejecuta la eliminación permanente. Requiere permiso leave: delete.
  • Cerrar selección — Botón X.

Campos del formulario

  • Empleado (employee_id) — Autocompletado de empleados (obligatorio). Al hacer clic sin texto, carga los primeros resultados. Nota debajo del campo: "El contrato activo del empleado se asocia automáticamente."
  • Tipo de ausencia (leave_type_id) — Autocompletado del catálogo de tipos (obligatorio). Placeholder: "Vacaciones, incapacidad, licencia..."
  • Fecha inicio (date_start) — Selector de fecha formato DD/MM/AAAA (obligatorio). Tiene restricción de días retroactivos según la configuración (max_past_days_for_absence). Si está configurado, muestra "Hasta N días atrás permitidos".
  • Fecha fin (date_end) — Selector de fecha (obligatorio). La fecha de fin no puede ser anterior a la de inicio (el sistema la ajusta automáticamente a la fecha de inicio si el usuario intenta ponerla antes).
  • Indicador de días — Cálculo automático que muestra "Duración: N día(s)" cuando ambas fechas están completas. Fórmula: floor((fecha_fin - fecha_inicio) / 86400000) + 1. Un solo día cuenta como 1.
  • Estado (state) — Selector: Borrador, Confirmada, Aprobada, Rechazada. Por defecto: Borrador.
  • Observación (observaciones) — Campo de texto libre (máximo 500 caracteres). Opcional.

Validaciones

  • Empleado es obligatorio: "Selecciona un empleado".
  • Tipo de ausencia es obligatorio: "Selecciona un tipo de ausencia".
  • Fecha inicio y Fecha fin son obligatorias: "Fechas de inicio y fin requeridas".
  • Fecha fin debe ser igual o posterior a la fecha de inicio: "La fecha fin debe ser igual o posterior a la fecha de inicio".

Catálogo de Tipos de ausencia

El botón Catálogos abre el panel deslizante lateral. Este catálogo es compartido con el módulo de Novedades (Reemplazos): los tipos creados aquí también aparecen en Novedades y viceversa.

El panel muestra una nota informativa azul: "Este catálogo se comparte con el módulo de Reemplazos."

Campos de un tipo de ausencia

  • Nombre — Nombre descriptivo del tipo (obligatorio). Ej: "VACACIONES". No puede duplicarse con otro tipo existente.
  • Código — Abreviatura corta en mayúsculas (obligatorio). Ej: "V". Se guarda en mayúsculas automáticamente.
  • Categoría — Clasificación contable del tipo:
  • o_rights — Permisos / Ausencias / Licencias
  • o_salarial_earnings — Devengado salarial
  • earnings — Devengado general
  • Comportamiento en nómina (category_type) — Define cómo se procesa en nómina:
  • PAY — Remunerado
  • NO_PAY — No remunerado
  • SICKNESS — Incapacidad / Enfermedad
  • AT_EP — Accidente laboral / Enfermedad profesional
  • MAT_LIC — Licencia de maternidad
  • PAT_LIC — Licencia de paternidad
  • VAC — Vacaciones
  • VAC_MONEY — Vacaciones compensadas en dinero
  • BONUS — Bonificación

Acciones sobre tipos

  • Editar (ícono lápiz, aparece al pasar el cursor, requiere leave: edit) — Abre el formulario de edición del tipo.
  • Eliminar (ícono papelera, requiere leave: delete) — Confirmación con diálogo. Si el tipo tiene ausencias asociadas, el servidor puede rechazar la operación.
  • Nuevo tipo de ausencia — Botón en la parte superior del panel (requiere leave: create).

Permisos

Acción Permiso requerido
Ver ausencias leave: view
Crear ausencia leave: create
Editar ausencia leave: edit
Eliminar leave: delete
Exportar leave: export

Páginas relacionadas

  • Empleados — Cada ausencia pertenece a un empleado. El contrato activo del empleado se asocia automáticamente.
  • Novedades — Comparte el catálogo de tipos de ausencia. Los reemplazos en Novedades usan los mismos tipos.
  • Nómina — Las ausencias aprobadas afectan el cálculo de nómina según su tipo (category_type).
  • Contratos — La ausencia se vincula al contrato activo del empleado seleccionado.

Preguntas frecuentes

¿Por qué el catálogo de Tipos de ausencia se comparte con Novedades? Ambos módulos usan la misma tabla hr_leave_type de la base de datos. Los tipos de ausencia (vacaciones, incapacidad, licencia) pueden aplicar tanto a una ausencia formal como a una novedad de reemplazo. Esto evita duplicar el mantenimiento de catálogos.

¿Cómo se calcula el número de días? El sistema cuenta días calendario: fecha de fin menos fecha de inicio más 1. Un día de ausencia que empieza y termina el mismo día cuenta como 1 día. Una ausencia del lunes al viernes cuenta como 5 días (incluye solo días calendario, no hábiles).

¿Qué pasa si cambio la fecha de fin a una fecha antes de la fecha de inicio? El sistema ajusta automáticamente la fecha de fin para que sea igual a la fecha de inicio. No se puede guardar una ausencia con fecha de fin anterior a la de inicio.

¿Puedo aprobar una ausencia directamente al crearla? Sí. El campo Estado permite seleccionar "Aprobada" al momento de crear el registro, si el usuario tiene permiso de edición.

¿Hay un límite de días retroactivos para registrar ausencias? Depende de la configuración de la empresa (max_past_days_for_absence). Si está configurado, el selector de fecha de inicio muestra "Hasta N días atrás permitidos" y no permite seleccionar fechas anteriores a ese límite.

¿Qué diferencia hay entre "Confirmada" y "Aprobada"? "Confirmada" (confirm) indica que la ausencia fue registrada y enviada para revisión, pero aún no aprobada. "Aprobada" (validate) indica que un administrador autorizó la ausencia. Solo las ausencias "Aprobadas" se procesan formalmente en nómina.

¿La ausencia aparece en la app móvil del empleado? El módulo de Ausencias es exclusivo del portal web de administración. Los empleados no gestionan ausencias desde la app móvil directamente.