⚠️ Arquitectura de Datos y Guardado: La aplicación opera bajo un modelo híbrido de almacenamiento:
Memoria Local (Modo Desconectado): Por defecto, guarda los datos en la memoria caché del navegador (LocalStorage/IndexedDB). Si se borra la caché, los datos se pierden.
Sistema de Archivos Local (Modo Conectado - Recomendado): Permite vincular una carpeta física de tu ordenador. Los datos se leen y guardan directamente en archivos .json dentro de esa carpeta, garantizando su persistencia y seguridad.
Ubicada en la parte superior, contiene los controles principales de gestión de archivos y sincronización de la base de datos.
📂 Conectar Carpeta (Botón Índigo): Abre el explorador de archivos nativo de tu sistema operativo. Permite seleccionar una carpeta de trabajo. Al hacerlo, se abrirá un panel lateral para navegar, crear o cargar archivos .json directamente desde tu disco duro.
💾 Guardar Cambios (Botón Azul intermitente): Solo visible cuando estás en Modo Conectado y hay cambios sin guardar. Guarda instantáneamente tu progreso en el archivo .json enlazado.
⬇️ Exportar Backup (Botón Verde): Genera y descarga una copia de seguridad manual en formato .json (ej: backup_planificpro.json).
⬆️ Importar Archivo Suelto (Botón Ámbar): Carga un archivo .json externo a la memoria temporal de la aplicación. (Nota: esto desvinculará cualquier carpeta conectada por seguridad).
🛑 Resetear App (Botón Rojo): Borrado crítico. Elimina toda la base de datos del navegador, desvincula carpetas y deja la aplicación de fábrica. Solicita confirmación.
Pantalla de inicio y centro de control de los datos maestros (parámetros base del sistema).
Nombre Empresa: Se imprime en la cabecera de todos los informes PDF.
Horas Anuales Convenio: Parámetro Crítico. Define el objetivo estándar (100% de jornada) anual (por defecto 1760h). Modificar este valor recalcula automáticamente los objetivos de horas de todos los empleados de la plantilla.
Logotipo y Firma: Permite subir imágenes (clic en los recuadros) que se incrustarán en los informes PDF (logo en cabecera, firma a pie de página).
Define las entidades globales que se utilizarán en el resto del sistema:
Centros: Ubicaciones físicas o departamentos (ej: "Sede Central", "Delegación Norte").
Categorías: Roles laborales o puestos funcionales (ej: "Auxiliar", "Técnico").
Festivos: Rango de fechas no laborables. Se marcan en rojo en el planificador. Permite importar/exportar listas de festivos independientes.
Tipos de Ausencia: Motivos de inactividad (ej: "Baja IT", "Vacaciones"). Requieren un Nombre y un Código abreviado (1-3 letras) para optimizar el espacio en el cuadrante visual. Permite importación/exportación.
Módulo de alta, baja y modificación de la plantilla.
Datos Personales: Nombre, Apellidos, DNI. El ID Sistema es autogenerado e inmutable.
Gestión de Jornada:
% Jornada: Define el peso laboral del empleado. Calcula dinámicamente el objetivo de horas en base al convenio configurado.
Ajuste Anual: Horas a favor o en contra arrastradas (ej: exceso del año anterior). Modifica el balance final.
Exturno: Horas extra o de soporte realizadas fuera de cuadrante regular.
Preferencia Horaria (Ventana Auto-Asignación): Parámetro utilizado por el algoritmo automático. Define la franja horaria (Inicio - Fin) ideal para el trabajador.
Filtros de Asignación: Restringe operativamente al empleado asociándolo a determinados Centros y Categorías.
Definición de los bloques horarios disponibles para el servicio.
Identidad y Estilo: Nombre, Horario (Inicio - Fin), color de fondo y color de texto.
Personal Req. (Requerido): Volumen mínimo de personal necesario para considerar el turno "cubierto" en la vista de cobertura.
El comportamiento de cada turno en el planificador está dictado por las reglas que configures en su ficha. Estas reglas actúan como filtros estrictos: si un día no cumple todas las reglas marcadas, el turno no se podrá asignar.
A continuación, se detalla cómo funciona cada parámetro:
Son los días base en los que el turno "existe".
Si marcas un día (ej. L, M, X): El turno se podrá asignar esos días de la semana.
Si desmarcas un día (ej. S, D): El turno quedará completamente bloqueado para los fines de semana. Nunca aparecerá como opción para un sábado o domingo.
Permitir en Festivos: * Casilla desmarcada (por defecto): El turno NO se puede trabajar en festivo. Si el día 15 es festivo, el turno no aparecerá.
Casilla marcada: El turno se habilita para poder trabajarse con normalidad aunque el día sea festivo.
Solo Festivos (Exclusivo):
Si la marcas, el turno se convierte en un turno de retén o guardia festiva. Solo aparecerá en los días que sean oficialmente festivos.
Aviso de combinación: Esta regla se combina con los "Días de la semana". Si marcas "Solo Festivos" y solo tienes marcada la letra "S" (Sábado), este turno únicamente servirá para Festivos que caigan en Sábado. Si quieres que valga para cualquier festivo del año, debes tener marcadas todas las letras (L-D).
Para que un turno funcione, DEBE tener asignado al menos un Centro y al menos una Categoría.
Si guardas un turno sin marcar ningún Centro o ninguna Categoría, el sistema lo etiquetará en rojo como INCOMPLETO.
Un turno incompleto no se puede asignar ni a mano ni de forma automática.
Nota: Si seleccionas varios Centros o Categorías, el turno será visible para los empleados que coincidan con cualquiera de ellos.
Interfaz principal de operaciones y cuadre de horarios.
Navegación y Filtros: Control de meses (flechas) y filtro para visualizar el cuadrante por Centro de trabajo.
Alternancia de Vista:
Vista Empleados: Filas = Empleados. Para la gestión individual de horas y turnos.
Vista Cobertura: Filas = Turnos. Para la gestión del servicio y detección de descubiertos.
Herramientas de Operación:
Deshacer (Icono Flecha): Revertirá la última acción realizada en el cuadrante (ej: borrado accidental o auto-asignación fallida). Soporta un historial de múltiples pasos.
Auto-Asignar: Algoritmo que distribuye turnos intentando equilibrar horas, respetando estrictamente las reglas de turno, centro, categoría, disponibilidad y preferencias horarias.
Limpiar: Borrado masivo del mes actual en pantalla.
Ubicadas en el botón "Herramientas", operan de manera inteligente sobre grandes volúmenes de datos:
Copiar Mes (Inteligente): Traspasa el cuadrante de un mes a otro. No copia fechas fijas, sino patrones de días de la semana (Lunes a Lunes) para no romper las rotaciones. Respeta los festivos del mes de destino y no sobrescribe las bajas o vacaciones previamente introducidas.
Clonar Año (Inteligente): Replíca los patrones de 12 meses completos a un nuevo año, alineando días de la semana y protegiendo la disponibilidad (ausencias) ya marcada en el año destino.
Purgar Año: Herramienta de optimización. Elimina de forma definitiva y permanente todos los turnos y ausencias de un año fiscal antiguo introducido, reduciendo el peso del archivo .json y mejorando el rendimiento.
En Vista Empleados: Abre el modal de asignación múltiple. Permite:
Asignar múltiples turnos a un mismo día.
Modificar el valor en horas computable de un turno específico de forma manual.
Registrar ausencias (totales o parciales especificando horario de inicio/fin).
Aplicar los cambios en rango ("Aplicar hasta").
En Vista Cobertura: Muestra un panel de resolución rápida de descubiertos. Despliega la lista de empleados elegibles ordenados por horas trabajadas. Identifica solapamientos ("OCUPADO") y bajas ("BAJA") impidiendo su asignación automática.
Módulo de generación documental en PDF, con soporte para descargas individuales o en lotes comprimidos (ZIP).
Notas al pie: Campo de texto (con soporte para guardado de plantillas recurrentes) que se inyecta en el pie de página de los documentos generados.
Balance Anual de Horas: Tabla consolidada por año fiscal. Muestra: Objetivo vs Trabajado, calculando la diferencia neta tras aplicar los Ajustes Anuales y Exturnos del empleado.
Informes Individuales:
Detallado: Desglose cronológico mensual de un trabajador.
Hoja Anual: Matriz compacta que condensa 12 meses de turnos y ausencias de un trabajador en formato apaisado, incluyendo su balance en el pie de página.
Informes Globales:
Lista Cuadrante: Sábana matricial tradicional (Empleados en Eje Y, Días en Eje X).
Visual: Diagrama de barras cromático (tipo Gantt), optimizado para lectura rápida de la cobertura operativa.
Informe de Ausencias: Recuento estadístico de la siniestralidad/ausentismo, sumando días gastados por cada Tipo de Ausencia configurado.