Obtiene descarga boleta de pago (1,2,3,4,5,6,7,8) - [getDownloadBoletaPago]
🧾 Descripción General
Este servicio valida si un empleado debe descargar su boleta de pago (Salary Slip) correspondiente al mes anterior.
La validación depende:
-
Del día del mes actual
-
Del estado del empleado
-
De si existe o no una boleta generada
-
De si dicha boleta está habilitada
-
De si ya registró una descarga previa
La lógica se usa para bloquear marcaciones o solicitudes cuando un trabajador tiene una boleta pendiente por descargar.
🚀 Endpoint
Parámetro Path:
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| empleado | string | Sí | Código del empleado (Employee.name en ERPNext). |
🔐 Seguridad
No usa autenticación dentro de esta función, pero depende de endpoints internos ERPNext vía dbErp.
Se recomienda incluirlo dentro de rutas protegidas.
🧠 Flujo Lógico (Resumen Ejecutivo)
-
Validación de fechas
-
Si el día actual es mayor a 3, no se hace validación → se retorna éxito.
-
-
Consultar datos del empleado
-
Obtiene desde ERP:
-
fecha_de_ingreso_real -
status
-
-
-
Casos especiales por estado
-
Si el empleado está en PreActivo, no se valida.
-
-
Determinar si corresponde validar
-
Calcula el último día del mes anterior.
-
Si el ingreso del trabajador es posterior a ese mes → no se valida.
-
-
Validar si existe boleta generada
-
Consulta Salary Slip del mes anterior.
-
Si no existe boleta → no corresponde validar.
-
-
Validar si la boleta mensual está habilitada (Estado Boleta Mensual)
-
Revisa si está habilitada para ese mes.
-
-
Verificar si ya descargó boleta
-
Revisa tabla
historial_procesos_appen MySQL. -
Si no descargó → retorna mensaje de pendiente.
-
-
Caso final
-
Si todo está correcto → retorna éxito.
-
📥 Request
Sin body.
Solo recibe el parámetro {empleado} en la URL.
📤 Responses
✔️ 200 – No corresponde validación (día mayor a 3)
{
"status": true,
"msn": "No está dentro del rango de fecha de validación"
} |
✔️ 200 – Empleado en PreActivo
{
"status": true,
"msn": "No validar descarga de boleta en PreActivo"
} |
✔️ 200 – No corresponde validación (ingresó después)
{
"status": true,
"msn": "No tiene boleta de pago por lo tanto no se valida"
} |
❌ 200 – Boleta pendiente por descargar (validación negativa)
{
"status": false,
"msn": "Para poder registrar su marcación o realizar alguna solicitud, descargar su boleta pendiente del mes"
} |
✔️ 200 – Boleta descargada previamente
{
"status": true,
"msn": "Se ha descargado la boleta de pago"
} |
✔️ 200 – Error capturado (retorna como éxito)
Este mensaje parece incorrecto para el contexto (habla de contrato en vez de boleta), pero se documenta tal como el código lo retorna.
📚 Lógica de Consultas Usadas
1. Obtener datos del empleado
Consulta a ERP:
2. Validar Salary Slip del mes anterior
3. Validar estado de boleta (habilitado)
4. Validar si el empleado ya descargó su boleta
Tabla: historial_procesos_app (mysql2)
Filtro:
-
proceso = NOMINA
-
employee
-
month
-
year
🧩 Posibles Errores de Diseño (para tu control interno)
-
El
catchretorna mensaje incorrecto: “Se ha descargado el contrato de trabajo”. -
En validación final siempre retorna “status: true” aunque haya fallas.
-
Se usa
POSTen algunas consultas SQL cuando debería serGET.
(Solo informativo; no se incluye en documentación oficial si no lo deseas.)
No hay comentarios para mostrar
No hay comentarios para mostrar