Saltar a contenido

Reportes PDF de Fichajes

Endpoints dedicados a la generación de reportes en formato PDF para el control de horas y cumplimiento normativo.


✅ Generar Reporte PDF Individual por Empleado

Método/Ruta: GET /api/v2/timerecord/history/employee/pdf/:employeeId
Auth: Bearer JWT (rol: Superadmin)

Descripción: Genera un PDF compilado con los fichajes de un empleado. Permite filtrar por mes, rango personalizado o curso escolar completo.

Params

Param Tipo Ubicación Requerido Descripción Ejemplo
employeeId number path ID del empleado 4
mode string query Modo: by_month, range, full_course range
month number query ⚠️ Mes (1-12). Requerido si mode=by_month 1
year number query ⚠️ Año. Requerido si mode=by_month 2026
startDate string query ⚠️ Inicio (ISO). Requerido si mode=range 2025-12-15
endDate string query ⚠️ Fin (ISO). Requerido si mode=range 2025-12-31
schoolCourseId number query ID del curso escolar (opcional, para contexto de festivos/lectivos) 10

Variantes y Ejemplos

1. Reporte Mensual

Obtiene los fichajes de un mes específico.

curl -X GET "http://localhost:7001/api/v2/timerecord/history/employee/pdf/4?mode=by_month&month=1&year=2026" \
  -H "Authorization: Bearer <TOKEN>" \
  --output fichajes-empleado-4-enero-2026.pdf

2. Reporte por Rango de Fechas (Personalizado)

Útil para periodos irregulares (ej. vacaciones, bajas, auditorías). Se puede especificar schoolCourseId para asegurar el contexto correcto del calendario escolar.

curl -X GET "http://localhost:7001/api/v2/timerecord/history/employee/pdf/4?mode=range&startDate=2025-12-15&endDate=2025-12-31&schoolCourseId=10" \
  -H "Authorization: Bearer <TOKEN>" \
  --output fichajes-empleado-4-rango-dic.pdf
(Nota: El parámetro year es opcional en este modo si las fechas ya incluyen el año, pero puede enviarse por consistencia).

3. Reporte de Curso Escolar Completo

Genera un informe extenso con todos los fichajes del curso activo (o el especificado en schoolCourseId).

curl -X GET "http://localhost:7001/api/v2/timerecord/history/employee/pdf/4?mode=full_course" \
  -H "Authorization: Bearer <TOKEN>" \
  --output fichajes-empleado-4-curso-completo.pdf

✅ Generar Reporte Global de Fichajes

Método/Ruta: GET /api/v2/timerecord/history/report/pdf
Auth: Bearer JWT (rol: Superadmin)

Descripción: Genera un listado masivo de fichajes de todos los empleados. Diseñado para informes de RRHH, inspecciones o archivo mensual.

Params

Param Tipo Requerido Descripción Ejemplo
mode string by_month (default) o full_course full_course
month number ⚠️ Requerido si mode=by_month 1
year number ⚠️ Requerido si mode=by_month 2026
schoolCourseId number Filtrar por curso específico 5
onlyWithRecords boolean true: Ignora empleados sin fichajes true
showOpenIncidents boolean false: Oculta tabla de incidencias abiertas false
showProblemRecords boolean false: Oculta fichajes con problemas true
compact boolean true: Ahorra papel cortando tablas false

Variantes y Ejemplos

1. Reporte Mensual Global

El uso más común para el cierre de nóminas/mes.

curl -X GET "http://localhost:7001/api/v2/timerecord/history/report/pdf?month=1&year=2026" \
  -H "Authorization: Bearer <TOKEN>" \
  --output reporte-global-enero-2026.pdf

2. Reporte de Curso Completo (Filtrado)

Ejemplo avanzado: Curso completo, solo empleados que hayan fichado, y ocultando las incidencias para un reporte más limpio/externo.

curl -X GET "http://localhost:7001/api/v2/timerecord/history/report/pdf?mode=full_course&onlyWithRecords=true&showOpenIncidents=false" \
  -H "Authorization: Bearer <TOKEN>" \
  --output reporte-global-curso-clean.pdf

3. Reporte Compacto

Usa compact=true para reducir el número de páginas, permitiendo que las tablas de fichajes de un empleado continúen en la siguiente columna o página inmediatamente sin saltos de página forzados por empleado.

curl -X GET "http://localhost:7001/api/v2/timerecord/history/report/pdf?month=1&year=2026&compact=true" \
  -H "Authorization: Bearer <TOKEN>" \
  --output reporte-compacto.pdf