Obtiene descarga Renovación de contrato (3) - [getRenovacionContrato]
🧾 Descripción
Valida si un empleado debe descargar la renovación de contrato antes de poder registrar marcaciones o realizar solicitudes dentro del aplicativo.
El servicio evalúa:
-
La fecha actual (solo aplica desde el día 26 de cada mes).
-
La fecha de ingreso del empleado.
-
Si el empleado tiene un proceso de renovación registrado y validado en ERP.
-
Si ya existe un registro de descarga previo en
historial_procesos_app.
Este servicio actúa como una regla de negocio obligatoria para habilitar o bloquear el uso del aplicativo.
🚀 Endpoint
POST /get-renovacion-contrato
📌 Recibe un único parámetro:
🔐 Seguridad
-
Requiere credenciales autorizadas para consumir la API del ERP.
-
Utiliza internamente
dbErp()para ejecutar consultas SQL seguras contra ERPNext. -
Accede a
mysql2para verificar registros de descargas.
🧠 Flujo del Servicio (Resumen Real)
1️⃣ Validación inicial por fecha
-
Solo permite validar renovación desde el día 26 del mes.
Si es antes:
2️⃣ Obtener fecha real de ingreso del empleado
Consulta al ERP:
Si no existe → el servicio simplemente finaliza sin error.
3️⃣ Determinar si el empleado ya debería tener renovación
-
Calcula el último día del mes anterior.
-
Si el ingreso es anterior a ese período, el empleado califica para renovación.
4️⃣ Consultar renovación en ERP (contratos validados)
Busca registros de:
-
Mes actual (en texto: Enero, Febrero…)
-
Año del mes previo
-
Código del empleado
-
renueva = Si -
estado_de_documento = Validado
Consulta ejecutada:
5️⃣ Validar si el empleado YA descargó la renovación
Consulta en base de datos interna:
-
Si NO la descargó → Bloquea acciones del app:
6️⃣ Si todo está correcto
Retorna éxito:
📥 Request Body
📤 Response 200 – Ejemplos
✔ Caso correcto (ya descargó renovación)
❌ Debe descargar renovación antes de usar el app
✔ Aún no es día válido
❗ Posibles Errores
| Error | Respuesta |
|---|---|
| Día inválido para la operación | "No es el día correcto para la renovación de contrato" |
| Empleado sin renovación validada | "Para poder registrar su marcación..." |
| Error inesperado en ejecución | Se devuelve mensaje genérico, pero siempre con status: true |
| No existe el empleado | El flujo simplemente finaliza sin error explícito |
📚 Consultas y estructuras usadas
✔ ERP — Employee
Campos consultados:
✔ ERP — Solicitud de Renovaciones
Consulta combinada mediante JOIN:
-
data_12(mes) -
año -
codigo -
renueva -
estado_de_documento
✔ Base interna MySQL (mysql2)
Tabla: historial_procesos_app
Campo crítico: proceso = 'descargaContratoRenovacion'
No hay comentarios para mostrar
No hay comentarios para mostrar