Ir al contenido principal

Documento de Ingresos (Registrar Proceso de Descarga (1)) - [registerProcessApp]

🧾 Descripción

Registra en la tabla historial_procesos_app cada evento o proceso realizado por un usuario dentro de la aplicación móvil.
Además, dependiendo del tipo de proceso, realiza validaciones adicionales como:

  • Validación de renovación de contrato

  • Validación de cambio de modalidad

  • Creación automática de usuario conductor en sistema externo

  • Validación de existencia del empleado en ERP

Este servicio funciona como logger centralizado de acciones críticas del trabajador.


🚀 Endpoint

POST /register-process-app


📥 Parámetros de Entrada (Body)

{ "usuario": "string", "empleado": "string", "agencia": "string", "latitude": "string", "longitude": "string", "proceso": "string", "month": "int", "year": "int" }


🔐 Seguridad

  • Acceso interno del sistema

  • Requiere conexión válida a BD secundaria (mysql2)

  • Valida datos contra API ERP mediante dbErp y ServiceErp


🧠 Flujo del Servicio (Resumen Real)

1️⃣ Obtiene parámetros principales del request:

  • usuario

  • empleado

  • agencia

  • lat/long

  • proceso

  • month / year


2️⃣ Si el proceso es descargaContratoReingreso

  • Ejecuta validación de renovación del contrato:

$this->validateProcessContractRenovation($request, $connection);

  • Ejecuta validación de cambio de modalidad:

$this->validateProcessContractChangeModality($request,$connection);


3️⃣ Si el proceso es descargaContratoTrabajo

a) Obtiene datos del empleado en el ERP

(Documento, sucursal, nombre y puesto)

SELECT passport_number, id_sucursal, nombre_completo, designation FROM `tabEmployee`

b) Si el puesto contiene la palabra CONDUCTOR

El sistema crea un usuario conductor en un sistema externo:

POST EMPRESARIAL/api/crearUsuarioConductor { documento: DNI, ter_id: id_sucursal, nombre: nombre_completo }

Cualquier error en este paso retorna:

{ "valor": false, "msn": "Ocurrio un error al registrar el proceso." }


4️⃣ Inserta el registro del proceso en historial_procesos_app

Campos insertados:

Campo Descripción
usuario Usuario que ejecuta el proceso
empleado Código del empleado
agencia ID de la agencia
latitude Latitud
longitude Longitud
proceso Nombre del proceso ejecutado
fecha Fecha y hora actual
estado 1 (registrado)
month Mes
year Año

5️⃣ Devuelve respuesta exitosa

{ "valor": true, "msn": "Proceso registrado con éxito." }


📤 Respuestas

200 – Éxito

{ "valor": true, "msn": "Proceso registrado con éxito." }


❗ Error al insertar registro

{ "valor": false, "msn": "Ocurrio un error al registrar el proceso." }


❗ Empleado no encontrado

{ "valor": false, "msn": "No se encontró al empleado." }


❗ Error de creación de usuario conductor

{ "valor": false, "msn": "Ocurrio un error al registrar el proceso." }


📚 Estructuras utilizadas

Tabla: historial_procesos_app

{ "usuario": "string", "empleado": "string", "agencia": "string", "latitude": "string", "longitude": "string", "proceso": "string", "fecha": "datetime", "estado": 1, "month": "int", "year": "int" }

ERP: Employee

Campos usados:

{ "passport_number": "string", "id_sucursal": "string", "nombre_completo": "string", "designation": "string" }


🗃 Lógica en Pseudocódigo

leer usuario, empleado, proceso, month, year, lat, long si proceso == "descargaContratoReingreso": validar renovación de contrato validar cambio de modalidad si proceso == "descargaContratoTrabajo": traer datos del empleado si puesto incluye "CONDUCTOR": crear usuario conductor en sistema externo insertar registro en historial_procesos_app si inserción falla: retornar error retornar éxito