Obtiene descarga boleta de pago (2) - [getDownloadBoletaPago]
🧾 Descripción
Este servicio valida si un empleado debe descargar obligatoriamente su boleta de pago del último mes antes de poder realizar acciones como:
-
Registrar marcación
-
Registrar solicitudes en la app
-
Acceder a otros módulos operativos
El servicio evalúa:
-
Si está dentro del rango de validación (solo del día 1 al 3 de cada mes).
-
La fecha de ingreso del trabajador.
-
Si tiene boleta generada el mes anterior.
-
Si el mes correspondiente está habilitado para descarga.
-
Si el empleado ya descargó la boleta (se revisa historial en MySQL).
-
Si el empleado está PreActivo, no se valida la descarga.
🚀 Endpoint
GET /get-download-boleta-pago/{empleado}
📌 Parámetro obligatorio:
-
empleado → ID del Employee (name)
🔐 Seguridad
-
Requiere autenticación interna por el ERP mediante
dbErp()y conexión MySQL interna. -
El servicio está pensado solo para uso interno de la aplicación móvil corporativa.
🧠 Flujo del Servicio (resumen)
1️⃣ Validación de fecha
Solo se ejecuta validación si el día actual está entre 1 y 3.
Si el día > 3 → se omite toda validación:
2️⃣ Obtener información del empleado
Consulta ERP:
Si el empleado está PreActivo, no se valida boleta:
3️⃣ Comparar fecha de ingreso vs fecha límite
Se calcula:
-
Mes anterior
-
Último día del mes anterior
Solo se valida si el empleado ingresó antes del cierre del mes previo.
4️⃣ Verificar en MySQL si ya descargó la boleta
Consulta tabla historial_procesos_app:
Si no existe registro se sigue validación.
5️⃣ Validar si EXISTE boleta en ERP
Consulta Salary Slip del último mes:
Si no tiene boleta:
6️⃣ Validar si el mes está habilitado para descarga
Consulta:
Si está habilitado pero el trabajador NO la descargó, se bloquea:
7️⃣ Si pasa todas las validaciones → OK
📥 Request
No usa body, solo el parámetro de ruta: empleado: string
📤 Response – Ejemplos
✔ Caso permitido (día fuera de rango)
✔ Empleado en PreActivo
✔ No tiene boleta generada
❌ No ha descargado la boleta y es obligatoria
✔ Todo correcto
❗ Posibles errores
| Error | Descripción |
|---|---|
| Empleado no existe | No se encuentra en ERP |
| No tiene boleta generada | Salary Slip del mes anterior vacío |
| Boleta habilitada pero no descargada | Bloquea marcación y solicitudes |
| Error en ERP o MySQL | Respuesta capturada por el catch |
🧩 Tablas consultadas
ERP (Frappe/ERPNext)
-
tabEmployee -
tabSalary Slip -
tabEstado Boleta Mensual
MySQL externo
-
historial_procesos_app
No hay comentarios para mostrar
No hay comentarios para mostrar