Turnos y horarios¶
¿Qué es?¶
El módulo de Turnos y horarios gestiona las programaciones de trabajo del personal. Una programación es un documento mensual que asigna a un grupo de empleados sus días laborables, descansos y horarios para un proyecto y mes específicos. Desde aquí se crean programaciones, se gestionan los catálogos de Patrones y Horarios, y se visualiza el detalle diario de cada empleado.
Vista principal — Lista de programaciones¶
La tabla muestra todas las programaciones con las siguientes columnas:
- Estado — Badge de color según el estado actual de la programación (ver tabla de estados).
- Nombre — Nombre de la programación (generalmente auto-generado como
Proyecto AAAA-MM). Ancho variable. - Proyecto — Proyecto al que pertenece la programación. Ancho variable.
- Personal asignado — Número de empleados incluidos en la programación (alineado a la derecha).
- Mes — Abreviatura del mes (ej. "Ene", "Feb"). Ancho fijo.
- Año — Año de la programación. Ancho fijo.
- Encargado — Empleado responsable de la programación. Ancho variable.
- Tipo — Tipo o modalidad de la programación (
prog_type). Ancho variable.
Filtros¶
- Buscar — Campo de texto libre (nombre, proyecto, encargado).
- Estado — Selector con todos los estados disponibles.
- Mes — Selector de mes (Enero–Diciembre).
- Año — Selector de año (año actual y hasta 5 años atrás).
Ordenación por defecto¶
Ordenada por fecha descendente (más reciente primero).
Estados de una programación¶
| Estado | Badge | Descripción |
|---|---|---|
| Borrador | Gris | En construcción, no publicada |
| Pre-programado | Azul claro | Programación preliminar cargada |
| Confirmado | Verde | Aprobada y en ejecución |
| No confirmado | Amarillo/Amber | Pendiente de aprobación |
| Cancelado | Rojo | Anulada definitivamente |
Acciones disponibles en la lista¶
Botón "Nueva programación"¶
Visible solo con permiso schedule: create. Abre el modal de creación con los siguientes campos:
- Nombre — Se genera automáticamente al seleccionar Proyecto + Mes + Año (ej. "Proyecto Alpha 2025-03"). Editable manualmente.
- Mes — Selector de mes (1–12).
- Año — Selector de año.
- Tipo — Selector de tipo de programación (
prog_type, obligatorio). - Proyecto — Autocompletado de proyectos (obligatorio).
- Encargado — Autocompletado de empleados (opcional).
Acciones masivas¶
Al seleccionar una o más programaciones aparece la barra flotante:
- Cambiar estado — Selector de estado + botón Aplicar. Afecta a todas las programaciones seleccionadas.
- Eliminar — Elimina permanentemente. Requiere confirmación en dos pasos.
Catálogos¶
Botón Catálogos (visible con permiso schedule: view) abre el panel deslizante lateral con dos pestañas:
Pestaña Patrones¶
Un patrón define el ciclo de rotación del personal (ej. "5X2", "6X1", "3X3X2"). Cada patrón incluye:
- Nombre del patrón — Texto libre (ej. "5X2").
- Jornada principal — Hora de entrada + hora de salida obligatorias.
- Jornada secundaria — Solo aplica para patrones rotativos de tres partes. Hora de entrada + salida adicional.
- Número de personal — Cantidad de empleados que rota con este patrón.
- Desfase — Desplazamiento del ciclo en días para distribuir los empleados.
- Estado —
BorradoroConfirmado. - Festivo — Toggle para incluir o no los días festivos como laborables.
Vista previa del patrón — Muestra símbolos que representan el ciclo:
- ■ — Jornada principal.
- ▲ — Jornada secundaria.
- · — Día de descanso.
También muestra la rotación calculada por empleado según el desfase.
Pestaña Horarios (avanzado)¶
Un horario define una franja horaria específica dentro de un patrón. Incluye:
- Nombre — Se genera automáticamente como "HH-HH" (ej. "06-14"). Editable manualmente.
- Es descanso — Toggle. Si está activo, el horario representa un día de descanso (campo marcado como "DESCANSO").
- Hora de entrada (
time_in) — Obligatorio si no es descanso. - Hora de salida (
time_out) — Obligatorio si no es descanso. - Activo — Toggle (solo en modo edición).
El sistema calcula automáticamente al definir las horas:
- Duración total.
- Horas diurnas (06:00–21:00, legislación colombiana).
- Horas nocturnas (21:00–06:00).
- Tipo de jornada (Diurno/Nocturno/Mixto, campo dn_type).
Detalle de programación¶
Al hacer clic en una programación de la lista, se navega a la página de detalle (schedule-detail).
Encabezado del detalle¶
- Flecha Volver para regresar a la lista.
- Nombre de la programación en grande.
- Subtítulo con Proyecto y Encargado.
- Datos contextuales: Mes + Año, Tipo, cantidad de personal asignado.
- Badge del estado actual (clickeable con permiso de edición para cambiar estado).
- Botón Editar programación — Abre el modal para modificar nombre, proyecto, mes/año, encargado.
Tabla de líneas de programación (modo vista)¶
Una tabla horizontal con las siguientes columnas fijas a la izquierda:
- Empleado — Nombre del empleado (columna fija izquierda).
- Modalidad — Nombre del patrón/modalidad asignada.
- Puesto — Puesto de trabajo asignado.
Seguidas de columnas dinámicas para cada día del mes (1 al 31 según el mes). Los fines de semana tienen fondo diferente. Cada celda muestra el código del horario asignado con color según el tipo de jornada: - Amarillo — Jornada diurna (HD). - Índigo/Azul — Jornada nocturna (HN). - Morado — Jornada mixta.
Al final de cada fila hay dos columnas resumen (fijas a la derecha): - HD — Total de horas diurnas del empleado en el mes. - HN — Total de horas nocturnas del empleado en el mes.
Modo edición de la tabla¶
Al hacer clic en Editar (en la barra de la tabla), la vista de solo lectura se reemplaza por una hoja de cálculo editable (Jspreadsheet):
- Cada celda de día acepta un código de horario.
- Autocompletado de horarios: al escribir en una celda se muestra un desplegable con los horarios disponibles.
- Botón "Auto generar" — Llena automáticamente los días según la modalidad de cada empleado y el patrón configurado. Solo funciona si cada línea tiene modalidad asignada.
- Botón "Guardar" — Guarda los cambios. Deshabilitado si hay celdas con error. Muestra "Guardando..." durante el proceso.
- Botón "Cancelar" — Descarta los cambios no guardados.
- Borrador automático — El sistema guarda un borrador local automáticamente. Si hay un borrador guardado al entrar en modo edición, aparece un banner amber: "Borrador guardado encontrado" con opciones Restaurar / Descartar.
- Indicador de validación — Badge verde "Listo" cuando no hay errores; badge amarillo "N celda(s) con error" + botón Ver para saltar a la primera celda inválida.
Agregar empleados a la programación¶
El botón Agregar empleados abre un modal con:
- Buscar empleados — Autocompletado para seleccionar uno o más empleados (múltiple selección con chips).
- Modalidad — Selector del patrón/modalidad a asignar.
- Puesto — Autocompletado de puestos de trabajo.
- Contador de seleccionados.
- Botón Agregar (deshabilitado hasta que haya al menos un empleado, modalidad y puesto seleccionados).
Modal de cambio de estado¶
Al hacer clic en el badge de estado (modo vista, con permiso), se abre un modal que muestra:
- Estado actual → Estado nuevo (con flechas visuales).
- Selector de nuevo estado:
BorradoroConfirmado(la opción actual queda deshabilitada). - Campo de Notas opcional (motivo del cambio).
- Botón Confirmar cambio.
Permisos¶
| Acción | Permiso requerido |
|---|---|
| Ver programaciones | schedule: view |
| Crear programación | schedule: create |
| Editar programación / líneas | schedule: edit |
| Eliminar | schedule: delete |
Páginas relacionadas¶
- Empleados — El personal que se asigna a las programaciones.
- Puestos — Los puestos de trabajo usados en las líneas.
- Proyectos — Cada programación pertenece a un proyecto.
- Asistencia — Los registros de asistencia se verifican contra los turnos programados.
- Novedades — Reemplazos y cambios de turno no programados.
Preguntas frecuentes¶
¿Cuál es la diferencia entre un Patrón y un Horario? Un Horario define una franja de horas (ej. 06:00 a 14:00 con sus horas diurnas/nocturnas calculadas). Un Patrón agrupa horarios en un ciclo de rotación (ej. 5 días laborando el horario "06-14" seguidos de 2 días de descanso = patrón "5X2").
¿Qué hace el botón "Auto generar"? Toma la modalidad (patrón) asignada a cada empleado en la programación y llena automáticamente cada día del mes con el horario que corresponde según el ciclo, el desfase y si el día es festivo o fin de semana.
¿Puedo cambiar el horario de un solo día para un empleado? Sí. En modo edición, cada celda de día es editable individualmente. Puedes cambiar el código de horario de cualquier celda sin afectar el resto.
¿Qué significa "N celda(s) con error" en modo edición? Hay celdas con un valor de horario que no existe en el catálogo o que es inválido. No se puede guardar hasta corregirlas. Haz clic en Ver para saltar a la primera celda con problema.
¿La programación en "Cancelado" puede reactivarse?
Sí, el cambio de estado permite mover a Borrador o Confirmado desde cualquier estado, incluyendo Cancelado. Usa el modal de cambio de estado y agrega una nota con el motivo.