Ir al contenido principal

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


POST /get-user3

La ruta final depende de tus archivos api.php.


🔐 Seguridad

  • No valida token aquí, pero depende del mecanismo usado dentro de general->dbErp y general->ServiceErp.

  • Debe ser usado desde una app autenticada.


📥 Request Body

{ "username": "string" }

Parámetros

Campo Tipo Requerido Descripción
username string Email del usuario o número de documento/pasaporte.

📤 Respuestas

✔️ 200 – Usuario encontrado (Empleado)


{ "valor": true, "msn": "Si hay data", "data": [ { "name": "EMP000123", "employee_name": "Juan Pérez", "tipo_usuario": "Empleado", "status": "Active", "vigencia_contrato": "2024-01-01 hasta 2024-12-31", "contratacion": "primer_contrato", "pets": "0", "fecha_de_nacimiento": "05-12", "...": "otros_campos" } ] }

✔️ 200 – Usuario encontrado (Estudiante)

{ "valor": true, "msn": "Si hay data", "data": [ { "name": "STU00234", "employee_name": "Estudiante Ejemplo", "tipo_usuario": "Estudiante", "statusUser": 1, "fecha_de_nacimiento": "", "...": "otros_campos" } ] }

❌ 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

🧪 Ejemplo curl

curl -X POST https://midominio.com/api/get-user3 \ -H "Content-Type: application/json" \ -d '{"username": "juan.perez@empresa.com"}'