Obtener Usuario (3) - [getUser3]
🧾 Descripción
Este servicio permite obtener la información completa de un usuario, ya sea Empleado o Estudiante, usando cualquiera de los siguientes identificadores:
-
Correo (user_id)
-
DNI / Pasaporte (passport_number)
La función consulta múltiples tablas del ERP y retorna la información enriquecida del usuario, incluyendo:
-
Datos personales
-
Datos laborales
-
Contratos
-
Imagen de usuario
-
Estado actual
-
Sucursal, puesto, departamento
-
Datos adicionales (PETS, tipo de jornada, fondo de pensiones, etc.)
Si el usuario no es empleado, se intenta validar como estudiante.
El servicio aplica múltiples reglas de negocio internas sobre estado, tipo de usuario y permisos.
🚀 Endpoint
POST /get-user-3
📥 Body esperado
O también:
🔐 Seguridad
Este servicio requiere autenticación interna contra el ERP mediante dbErp() y ServiceErp() con token válido del sistema.
🧠 Flujo del Servicio (Resumen Real)
1. Determinar tipo de búsqueda
Si username contiene @, se asume que es user_id.
Si no contiene, se usa como passport_number (DNI).
Se arma el filtro dinámicamente:
| Caso | Campo filtrado |
|---|---|
| Correo | emp.user_id |
| DNI / Pasaporte | emp.passport_number |
2. Buscar al usuario como Empleado
Consulta principal: POST method/send-query-database
Incluye joins a:
-
tabUser
-
tabBranch
-
tabContrato de Trabajo
-
tabDepartment
Si existe un registro válido:
-
Se valida que NO esté inactivo.
-
Se formatea fecha de nacimiento.
-
Se determina si el contrato es renovación o primer contrato.
-
Se normalizan campos (pets, cuenta haberes, vigencia del contrato, tipo_usuario = "Empleado").
📌 Si todo está correcto, el servicio termina aquí retornando la data del empleado.
3. Si NO existe empleado → Buscar como Estudiante
Filtros dependen de correo o DNI.
Validaciones aplicadas:
-
Debe estar habilitado (
enabled = 1). -
Si no existe → acceso denegado.
-
Si está deshabilitado → retorno con error.
Datos retornados incluyen:
-
Nombre completo
-
Sucursal, departamento
-
Tipo de puesto (convertido desde convocatoria si aplica)
-
Imagen de usuario
-
Tipo_usuario = “Estudiante”
4. Retornar la data final
Si es empleado → retorna información laboral con contratos.
Si es estudiante → retorna información básica educativa.
📤 Response 200 – Ejemplo (Empleado)
❗ Posibles Errores
1. No existe como empleado ni estudiante
2. Empleado Inactivo
3. Usuario deshabilitado (estudiante)
4. Error al consultar ERP
📚 Tablas consultadas
Empleado
-
tabEmployee -
tabUser -
tabBranch -
tabContrato de Trabajo -
tabDepartment
Estudiante
-
tabStudent -
tabUser -
tabBranch -
tabJob Applicant -
tabRequerimiento de Personal -
tabDesignation -
tabDepartment
No hay comentarios para mostrar
No hay comentarios para mostrar