Ir al contenido principal

Verificar *** - [verifyDownloadSalary]

🧾 Descripción

Valida si un trabajador ha descargado su boleta de pago correspondiente al mes anterior.
La validación solo aplica del día 1 al 7 de cada mes; fuera de ese rango, se asume automáticamente como validación positiva.

El servicio consulta el registro de descargas en la tabla historial_procesos_app.


🚀 Endpoint


POST /verify-download-salary

La ruta final depende de cómo esté configurada en routes/api.php.


🔐 Seguridad

No se valida token en el controlador, pero se recomienda proteger el endpoint detrás de autenticación de la app.


📥 Request Body

{ "employee": "string", "fechaIngreso": "string (YYYY-MM-DD)" }

Campos requeridos

Campo Tipo Obligatorio Descripción
employee string Código del empleado (ID del trabajador).
fechaIngreso string Fecha de ingreso del trabajador en formato YYYY-MM-DD.

🧠 Reglas de negocio

  1. Validación por fecha
    Si la fecha actual es mayor al día 7 del mes → no corresponde validación.

  2. Obtiene el mes anterior y convierte el número en texto (ej. 01 → Enero).

  3. Si fechaIngreso >= primer día del mes actual, entonces el trabajador ingresó recientemente → no se valida descarga.

  4. Consulta en la BD (mysql2.historial_procesos_app) si existe un registro:

    • proceso = 'NOMINA'

    • empleado = <employee>

    • month y year del mes anterior

    • Registros con fecha ascendente

  5. Si existe registro → sí descargó
    Si no → debe descargar su boleta pendiente.


📤 Responses

🟦 Caso 1: Fuera del rango de fechas (después del día 7)

{ "valor": true, "msg": "No corresponde validación, fuera de fecha." }

🟥 Error: falta fecha de ingreso

{ "valor": false, "msg": "Debe enviar la fecha de ingreso del trabajador" }

🟥 Error: falta empleado

{ "valor": false, "msg": "Debe enviar el código de empleado del trabajador" }

🟦 Caso 2: Ingreso reciente (no se valida)

{ "valor": true, "msg": "No corresponde validación" }

🟩 Caso 3: El trabajador SÍ descargó su boleta

{ "valor": true, "msg": "Si descargó boleta." }

🟥 Caso 4: El trabajador NO descargó su boleta

{ "valor": false, "msg": "Tiene pendiente descargar su boleta de pago del mes de <MesTexto> <Año>, descárguelo desde el módulo Boletas de Pago." }

Ejemplo:

{ "valor": false, "msg": "Tiene pendiente descargar su boleta de pago del mes de Enero 2025, descárguelo desde el módulo Boletas de Pago." }

🔎 Ejemplo de consumo (curl)

curl -X POST https://midominio.com/api/verify-download-salary \ -H "Content-Type: application/json" \ -d '{"employee":"EMP-001","fechaIngreso":"2023-02-15"}'