Bitácora y ranking de horas
Qué tiempo se cuenta, rango de fechas, sesiones y límites
Qué registra
El recurso inicia una sesión cuando un personaje está conectado con un job presente en Config.Jobs. La cierra al desconectarse, cambiar de job o detener normalmente el recurso. No comprueba automáticamente que esté de servicio, trabajando, en el local ni libre de AFK. El resumen llamado online/onduty también cuenta por job conectado.
Cambiar de grado sin cambiar de job puede mantener la sesión iniciada y su etiqueta inicial; no interpretes cada ascenso como una sesión nueva.
Consulta
Menus.timeclock.rangeDays es 7 por defecto. Un job puede utilizar timeclockDays para cambiar su ventana. El ranking devuelve hasta 25 empleados y el listado hasta 50 sesiones. Calcula duración de sesiones abiertas con el reloj actual.
La selección de fecha incluye sesiones cuyo inicio esté dentro de la ventana. No recorta automáticamente una sesión que comenzó antes y cruzó la fecha límite. Eso importa al comparar sesiones muy largas.
El acceso es de jefe completo; los limitados no reciben esos datos. Desactivar el módulo de interfaz no debe usarse como promesa de que ya no se guardan sesiones: el código de seguimiento se inicia para jobs configurados.
Cierre abrupto
Una detención normal cierra sesiones. Si FXServer se cae, pueden quedar filas con ended_at NULL y la consulta tratarlas como activas hasta revisarlas. Guarda copia antes de corregir duración de incidentes; no conviertas todas las filas abiertas en horas trabajadas verificadas.
Prueba
Conecta un empleado, espera unos minutos, revisa sesión activa, desconecta y verifica duración cerrada. Cambia de job y confirma el cierre. Esa prueba valida el conteo de conexión; para un reloj de servicio real necesitas una integración específica.
