Ir al contenido principal

Utilidades(Consultar Utilidades (1)) - [getYearUtilidades]

🧾 Descripción

Este servicio obtiene:

  1. La lista de años registrados en el ERP (tabla Year), ordenados de forma descendente.

  2. Valida si el empleado tiene utilidades asignadas para al menos un año (tabla Utilidades).

El objetivo es determinar si el empleado cuenta con utilidades cargadas y retornar la lista de años disponibles para consulta.


🚀 Endpoint

POST /get-year-utilidades


📥 Parámetros de entrada (Request Body)

{ "employee": "EMP-0001" }

Campos

Campo Tipo Obligatorio Descripción
employee string ID del empleado para validar si tiene utilidades.

🔐 Seguridad

Utiliza autenticación mediante ServiceErp() (token interno del ERP).
No requiere permisos adicionales, ya que solo consulta información.


🧠 Flujo del Servicio (explicación real)

1️⃣ Obtener los años disponibles (tabla Year)

Llama al ERP: GET Year?limit=None&fields=["name"]

  • Extrae todos los registros.

  • Toma únicamente la columna name.

  • Ordena los años de forma descendente.


2️⃣ Validar si el empleado tiene utilidades registradas

Consulta al ERP: GET Utilidades?limit=None&fields=["name"]&filters=[["empleado","=", employee]]

  • Si no existe ningún registro → El empleado no tiene utilidades asignadas.

  • Si existe al menos un registro → El empleado sí tiene utilidades asignadas.


📤 Response 200 – Ejemplo

Caso 1 — El empleado NO tiene utilidades

{ "valor": false, "msn": "Hemos verificado que no tiene utilidades asignadas. Para más detalles, consultar con el área de RRHH", "data": ["2024", "2023", "2022"] }

Caso 2 — El empleado SÍ tiene utilidades

{ "valor": true, "msn": "Hemos verificado que no tiene utilidades asignadas. Para más detalles, consultar con el área de RRHH", "data": ["2024", "2023", "2022"] }

📌 Nota: El mensaje es el mismo en ambos escenarios, siguiendo el comportamiento del código original.


❗ Posibles Errores

Caso Respuesta
Error al obtener años del ERP years → [] (no rompe el flujo)
Error de conexión con el ERP years → []
El empleado no tiene utilidades "valor": false
El empleado sí tiene utilidades "valor": true"

📚 Tablas usadas (schemas)

📄 Year (GET)

Campos usados: { "name": "string" }

📄 Utilidades (GET)

Campos usados: { "name": "string" }


🗃 Lógica en pseudo-código

employee = request.employee years = GET Year years = list of names sort years desc utilidades = GET Utilidades where empleado = employee if utilidades.count == 0: return { valor: false, msn: "...", data: years } return { valor: true, msn: "...", data: years }