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