Obtiene descarga boleta de pago (3) - [getDownloadBoletaPago]
🧾 Descripción
Valida si un empleado debe descargar su boleta de pago del mes anterior antes de poder registrar marcaciones o realizar solicitudes en el sistema.
La validación se aplica únicamente dentro de un periodo permitido (del día 1 al 3 del mes).
Este servicio combina datos entre:
-
Employee(ERP) -
Salary Slip(Boleta de pago, ERP) -
Estado Boleta Mensual(ERP) -
historial_procesos_app(Base MySQL interna)
Permite determinar si el usuario:
-
No debe validar nada.
-
No tiene boleta para ese mes.
-
Tiene boleta habilitada y aún no la descargó → Debe descargarla.
-
Ya descargó → Se libera el acceso.
🚀 Endpoint
POST /get-download-boleta-pago
📥 Parámetros
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| empleado | string | Sí | ID del empleado (Employee.name) |
🔐 Seguridad
El servicio requiere:
-
Acceso API válido al ERP (vía
dbErp()). -
Acceso a la base interna MySQL (
mysql2).
🧠 Flujo del Servicio (resumen real)
1️⃣ Verifica si está dentro del rango permitido
-
Solo valida del día 1 al 3.
-
Si el día es mayor a 3 → no valida nada.
2️⃣ Obtiene datos del empleado
Consulta:
GET tabEmployee
fields = ["fecha_de_ingreso_real", "status"] |
Si el empleado está PreActivo, no se valida boleta.
3️⃣ Determina el mes anterior
Se calcula:
-
Primer día del mes anterior
-
Último día del mes anterior
Se verifica que el empleado haya ingresado antes del fin del mes anterior.
4️⃣ Verifica si existe boleta del mes anterior
Consulta a ERP:
tabSalary Slip
WHERE employee = empleado
AND posting_date BETWEEN primer_día_mes_pasado AND último_día_mes_pasado |
Si no tiene boleta, no se valida nada.
5️⃣ Valida si el mes está habilitado para descarga
Consulta:
tabEstado Boleta Mensual
WHERE mes = <mes anterior en texto>
AND año = <año>
AND habilitado = 1 |
6️⃣ Consulta si el usuario ya descargó la boleta
Busca en MySQL:
historial_procesos_app
WHERE empleado = empleado
AND proceso = 'NOMINA'
AND month = mes
AND year = año |
Si no existe descarga previa y el mes está habilitado → debe descargar.
📤 Respuestas Posibles
✔️ 1. No está en rango de validación
✔️ 2. Empleado PreActivo
✔️ 3. No tiene boleta del mes
❌ 4. Debe descargar la boleta (regla principal)
✔️ 5. Ya descargó la boleta
✔️ 6. Error controlado
📚 Tablas y esquemas usados
🔹 Employee (ERP)
Campos utilizados:
🔹 Salary Slip (ERP)
Campo utilizado: posting_date
🔹 Estado Boleta Mensual (ERP)
Campos utilizados:
🔹 historial_procesos_app (MySQL)
Campos usados:
No hay comentarios para mostrar
No hay comentarios para mostrar