Plugin de Registro Horario con Geolocalización
Características Principales
- Registro de Horarios:
- Los usuarios pueden registrar tanto las horas de entrada como de salida.
- El sistema calcula automáticamente la diferencia de tiempo entre la entrada y la salida, proporcionando el total de horas trabajadas.
- Geolocalización:
- Captura las coordenadas de ubicación del usuario al momento de realizar el fichaje de entrada y salida.
- Visualización de las ubicaciones en un mapa interactivo.
- Interfaz de Usuario Amigable:
- Botones de acción intuitivos para registrar entradas y salidas.
- Visualización en un mapa de las ubicaciones de los fichajes, con iconos personalizados para entradas y salidas.
Uso del Plugin
- Registrar Entrada:
- El usuario hace clic en el botón de entrada, y el sistema captura la hora y las coordenadas actuales, registrándolas en la base de datos.

- Registrar Salida:
- El usuario hace clic en el botón de salida, y el sistema captura la hora y las coordenadas actuales, calculando la duración del turno y actualizando la base de datos.

- Visualización de Fichajes:
- Los usuarios con permiso para ver solo los suyos, pueden ver un resumen de los fichajes que ellos han realizado, y ver en un mapa con marcadores que indican las ubicaciones de entrada y salida. A parte de poder complementar la información de registro con explicación en cualquier momento.

- Si no le das permiso a la página para que te registre la ubicación, el fichaje se guarda igualmente con la ubicación "No disponibles" (sin marcador exacto en el mapa). Se recomienda conceder el permiso.

- Los usuarios con permisos para visualizar todos los registros, tienen una visió más amplia que mediante filtros pueden acotar los resultados y pueden exportar informes de asistencia.
Pausas y resúmenes
- Con los botones PAUSA y REANUDAR se registran las pausas de la jornada. El tiempo de pausa se descuenta de las horas trabajadas y, si hay una pausa abierta al fichar la salida, se cierra automáticamente.
- En la pestaña Resumen cada usuario ve sus horas y pausas por semana y por mes. En Resumen Admin se ven los de todos los trabajadores, con selector de usuario.
Novedades de la versión 4.0: registro horario certificable
La versión 4.0 convierte el plugin en un sistema de registro de jornada certificable, pensado para poder demostrar ante la Inspección de Trabajo que los datos no se han manipulado.
Libro de eventos inmutable
Cada acción (entrada, salida, pausa, reanudación, corrección) se guarda como un evento en un libro de solo añadir. Cada evento queda encadenado con el anterior mediante un hash SHA-256: si alguien altera un dato, la cadena se rompe y el botón Verificar integridad lo detecta. Los registros no se pueden borrar.

En Registro Horario > Libro de eventos aparece cada evento con su hash y el estado de su sello de tiempo. Los botones permiten verificar toda la cadena y reintentar los sellos pendientes.
Correcciones con motivo obligatorio
Si hay que corregir un registro, el sistema exige indicar el motivo y no sobrescribe el original: añade un evento de corrección con el valor anterior, el nuevo y el motivo. Sin motivo, el cambio se rechaza.

Firma digital y sello de tiempo
- Firma digital: cada evento se firma con un certificado X.509 (formato JWS). Por defecto se genera un certificado autofirmado; se recomienda configurar uno emitido por una entidad de certificación reconocida.
- Sello de tiempo: cada evento se sella con un servidor de tiempo externo (TSA, RFC 3161). Solo se envía la huella del evento, nunca datos personales. Si la TSA no responde, el fichaje se guarda igualmente y el sello se reintenta automáticamente cada 15 minutos.
Ambos se configuran en Administrador > Panel de control > registrohorario.

Exportación verificable y acceso de la Inspección
En Registro Horario > Exportar / Inspección se puede descargar el registro en JSON o XML (validado con un esquema XSD incluido en el plugin). Cada jornada incluye sus eventos con hash, firma y sello de tiempo, de modo que cualquier tercero puede verificarlos sin acceso al sistema. La geolocalización solo se incluye si se marca expresamente, y un empleado solo puede exportar sus propios datos.

Para la Inspección de Trabajo hay una API REST de solo lectura. Crea una clave en Panel de control > API Keys con acceso solo GET al recurso registrohorario y entrégasela a la inspección:
GET /api/3/registrohorario/fichajes?desde=2026-01-01&hasta=2026-01-31&formato=json|xml: jornadas y eventos verificables.GET /api/3/registrohorario/verificar: verifica la cadena, las firmas y los sellos.GET /api/3/registrohorario/esquema: esquema JSON o XSD.GET /api/3/registrohorario/certificado: certificado público de firma.
curl -H "X-Auth-Token: TU_CLAVE" "https://tu-dominio/api/3/registrohorario/fichajes?desde=2026-01-01&hasta=2026-01-31&formato=xml"
Protección de datos (RGPD)
- La geolocalización, la IP y las fotografías se guardan cifradas con AES-256. La geolocalización no se vuelca a los logs.
- Las exportaciones, las consultas por API y la visualización de fotos quedan registradas en la auditoría.
- Al desinstalar el plugin no se elimina ningún dato, porque los registros de jornada deben conservarse 4 años.
- La clave de cifrado se genera en
MyFiles/RegistroHorario/Private/datos.key. En producción se recomienda definirla enconfig.phpconFS_RH_CLAVE_CIFRADO(64 caracteres hexadecimales) y hacer copia de seguridad: sin ella, la geolocalización y las fotos cifradas no se pueden recuperar.
Permisos
A los permisos que ya se configuran para el plugin (ver la guía de permisos) hay que añadir los submenús Libro de eventos y Exportar / Inspección. Un empleado con la opción "Mostrar solamente registros del usuario" solo exportará sus propios datos.
Resumen de cumplimiento
- Registro de entrada/salida: sí.
- Inmutabilidad del dato: antes no garantizada; ahora hash chain SHA-256.
- Sello de tiempo: antes reloj del servidor propio; ahora TSA externa (RFC 3161).
- Firma digital: antes no; ahora certificado X.509 / JWS.
- Exportación verificable: antes formatos variables; ahora JSON/XML con esquema publicado.
- Acceso ITSS: antes manual o por solicitud; ahora API REST.
- Protección de datos: antes política genérica; ahora RGPD por diseño, AES-256.
Importante: con la configuración por defecto (certificado autofirmado y TSA gratuita) se detecta cualquier manipulación, pero no se trata de una firma ni de un sello cualificado eIDAS. Para el máximo valor probatorio, configura un certificado de una entidad reconocida y una TSA cualificada. Además, el esquema de exportación es el propio del plugin: no existe un esquema oficial de la Inspección de Trabajo.
Este plugin es una herramienta esencial para empresas que desean mejorar la precisión y el control de los registros de horario de sus empleados, añadiendo la seguridad adicional de la geolocalización.