Obtener Usuario (2) - [get-user3]
🧾 Descripción
Obtiene la información completa de un usuario del sistema, ya sea Empleado o Estudiante, de acuerdo al identificador enviado (email o DNI/pasaporte).
Retorna datos personales, laborales, de contrato y estado del usuario.
Si es empleado, consulta tablas de Employee —si no existe— consulta Student.
🚀 Endpoint
La ruta final depende de tus archivos
api.php.
🔐 Seguridad
-
No valida token aquí, pero depende del mecanismo usado dentro de
general->dbErpygeneral->ServiceErp. -
Debe ser usado desde una app autenticada.
📥 Request Body
{
"username": "string"
} |
Parámetros
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| username | string | Sí | Email del usuario o número de documento/pasaporte. |
📤 Respuestas
✔️ 200 – Usuario encontrado (Empleado)
✔️ 200 – Usuario encontrado (Estudiante)
❌ Usuario no encontrado en Employee ni Student
{
"valor": false,
"msn": "Sin Estudiante: Su usuario no tiene permisos para acceder al aplicativo. Contactar con soporte.",
"data": []
} |
❌ Empleado inactivo
{
"valor": false,
"msn": "Empleado Inactivo: Comuníquese con su administrador para que pueda verificar el estado de su empleado.",
"data": [ ... ]
} |
❌ Usuario estudiante deshabilitado
{
"valor": false,
"msn": "Usuario Deshabilitado: Comuníquese con su administrador para que pueda verificar el estado de su empleado.",
"data": [ ... ]
} |
🧩 Lógica del Servicio
1️⃣ Determinar tipo de búsqueda
Si el username contiene @, se busca por: Employee.user_id = username
Si no: Employee.passport_number = username
2️⃣ Consulta principal (Employee)
Usa dbErp con una consulta SQL dinámica unida a:
-
tabEmployee
-
tabUser
-
tabBranch
-
tabContrato de Trabajo
-
tabDepartment
Si no hay resultados → se intenta en Student.
3️⃣ Consulta secundaria (Student)
Busca en:
-
tabStudent
-
tabUser
-
tabBranch
-
tabJob Applicant
-
tabRequerimiento de Personal
-
tabDesignation
-
tabDepartment
Si no existe → usuario sin permisos.
4️⃣ Validaciones adicionales
-
Employee con status
"Inactive"→ error. -
Student con
enabled = 0→ error. -
Formatear
fecha_de_nacimiento→"m-d".
5️⃣ Validación de contratos
Se consulta: resource/Contrato de Trabajo
Se determina:
-
"primer_contrato"o -
"renovacion"
6️⃣ Ajuste final de campos
-
pets → transformado a “0” si viene null.
-
Se asignan alias y campos calculados.
📚 Response Schema
Para Empleado
Incluye (parcial):
| Campo | Descripción |
|---|---|
| name | ID del Employee |
| employee_name | Nombre completo |
| tipo_usuario | "Empleado" |
| status | Active, PreActivo, Inactive |
| vigencia_contrato | Rango de fechas |
| contratacion | primer_contrato / renovacion |
| pets | Valor convertido a string |
| fecha_de_nacimiento | mm-dd |
Más de 40 campos adicionales según tu SQL.
Para Estudiante
Incluye:
| Campo | Descripción |
|---|---|
| name | ID del Student |
| employee_name | Nombre completo |
| tipo_usuario | Estudiante |
| statusUser | 1 ó 0 |
| user_image | Foto |
| gender | Género |
| dni | Documento |
No hay comentarios para mostrar
No hay comentarios para mostrar