# Visión General

Arquitectura, componentes, alcance y glosario del proyecto IEA.

# Resumen del Proyecto

## Alcance funcional

La documentación cubre los flujos principales del portal y del backend:

- Creación de cuenta del Profesional Responsable.
- Registro de Empresa, Titular y Asistente.
- Validación de correo, asignación de roles y aprobación por parte del IEA.
- Creación de solicitudes de análisis y pruebas de negatividad.
- Generación de cotización, aceptación, visto bueno y abono.
- Relación entre evaluaciones, materiales requeridos y avance operativo a estado “En Proceso”.

## Componentes principales

<table id="bkmrk-componenterolfuente-" style="width: 100%; border-collapse: collapse; margin: 12px 0px 20px; height: 222px;"><thead><tr style="height: 41px;"><th style="border: 1px solid rgb(216, 222, 233); padding: 12px; background: rgb(238, 242, 247); text-align: left; height: 41px; width: 24.8215%;">Componente</th><th style="border: 1px solid rgb(216, 222, 233); padding: 12px; background: rgb(238, 242, 247); text-align: left; height: 41px; width: 75.29769%;">Rol</th></tr></thead><tbody><tr style="height: 66px;"><td style="border: 1px solid rgb(216, 222, 233); padding: 12px; vertical-align: top; height: 66px; width: 24.8215%;">**Portal IEA**</td><td style="border: 1px solid rgb(216, 222, 233); padding: 12px; vertical-align: top; height: 66px; width: 75.29769%;">Aplicación Flutter web usada por clientes externos para registrarse, administrar empresas/personas relacionadas, crear solicitudes, aceptar cotizaciones y enviar pagos.</td></tr><tr style="height: 57px;"><td style="border: 1px solid rgb(216, 222, 233); padding: 12px; vertical-align: top; height: 57px; width: 24.8215%;">**Bus de integración**</td><td style="border: 1px solid rgb(216, 222, 233); padding: 12px; vertical-align: top; height: 57px; width: 75.29769%;">API REST de iDempiere usada por Flutter para leer modelos, crear registros, subir adjuntos y ejecutar procesos.</td></tr><tr style="height: 58px;"><td style="border: 1px solid rgb(216, 222, 233); padding: 12px; vertical-align: top; height: 58px; width: 24.8215%;">**Lirion**</td><td style="border: 1px solid rgb(216, 222, 233); padding: 12px; vertical-align: top; height: 58px; width: 75.29769%;">Instancia iDempiere donde viven las ventanas, tablas, roles, procesos, solicitudes, cotizaciones y aprobaciones.</td></tr></tbody></table>

## Entornos de Lirion identificados

- Producción: `https://iea.lirion.io`
- Pruebas: `https://ieadev.primware.net`

# Arquitectura y Componentes

La arquitectura se organiza alrededor de tres piezas: el Portal IEA, el bus de integración REST y Lirion.

## Arquitectura lógica

El portal Flutter consume endpoints REST de iDempiere. Las operaciones de negocio se ejecutan sobre modelos, ventanas y procesos configurados en Lirion.

<div drawio-diagram="98"><img src="https://docs.primware.net/uploads/images/drawio/2026-05/L9K1EGgE4o7dv25K-drawing-1-1778728689.png" alt=""/></div>

## Endpoints principales del BUS (API)

<table id="bkmrk-endpointusoad_userco" style="width: 100%; border-collapse: collapse; margin: 12px 0 20px 0;"><thead><tr><th style="border: 1px solid #d8dee9; padding: 12px; background: #eef2f7; text-align: left;">Endpoint</th><th style="border: 1px solid #d8dee9; padding: 12px; background: #eef2f7; text-align: left;">Uso</th></tr></thead><tbody><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`AD_User`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Contactos, usuarios, correo, teléfono y vínculo con tercero.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`C_BPartner`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Terceros: profesionales, empresas, titulares y asistentes.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`C_BP_Relation`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Relaciones entre tercero y tercero, por ejemplo Profesional Responsable, Representante Legal o Asistente.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`CDS_Professional`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Registro base del Profesional Responsable.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`CDS_Company`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Registro base de Empresa.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`CDS_CompanyDetails`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Relación de Empresa con profesional, titular, representante legal y otros roles.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`CDS_Assistant`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Registro base del Asistente.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`CDS_ProfessionalDetails`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Relación Asistente - Profesional - Empresa.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`R_Request`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Solicitudes/trámites del portal.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`C_Order`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Cotizaciones generadas desde solicitudes.</td></tr></tbody></table>

## Procesos invocados

- `setpassword`: asigna contraseña a un usuario de Lirion.
- `cds_authuser`: asigna rol según posición y marca el registro como público.
- `cotizacion-iea`: genera o procesa la cotización relacionada con una orden.

# Glosario del Proyecto

Este glosario fija los nombres usados en la documentación para evitar confusiones entre términos del portal, iDempiere y operación interna.

<table id="bkmrk-t%C3%A9rminosignificadopo" style="width: 100%; border-collapse: collapse; margin: 12px 0 20px 0;"><thead><tr><th style="border: 1px solid #d8dee9; padding: 12px; background: #eef2f7; text-align: left;">Término</th><th style="border: 1px solid #d8dee9; padding: 12px; background: #eef2f7; text-align: left;">Significado</th></tr></thead><tbody><tr><td style="border: 1px solid #d8dee9; padding: 12px;">**Portal**</td><td style="border: 1px solid #d8dee9; padding: 12px;">Aplicación Flutter web usada por usuarios externos del IEA.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">**Lirion**</td><td style="border: 1px solid #d8dee9; padding: 12px;">Nombre operativo usado para iDempiere en este proyecto.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">**Bus de integración**</td><td style="border: 1px solid #d8dee9; padding: 12px;">API REST de iDempiere usada por el portal para comunicarse con Lirion.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">**Profesional Responsable**</td><td style="border: 1px solid #d8dee9; padding: 12px;">Persona que representa técnica y administrativamente a una empresa frente al IEA para los productos que tramita.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">**Empresa**</td><td style="border: 1px solid #d8dee9; padding: 12px;">Persona jurídica o representante registrada en el portal para gestionar solicitudes.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">**Titular**</td><td style="border: 1px solid #d8dee9; padding: 12px;">Entidad o persona asociada a la empresa como titular del producto/trámite.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">**Asistente**</td><td style="border: 1px solid #d8dee9; padding: 12px;">Usuario autorizado por el Profesional Responsable para apoyar trámites de una empresa.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">**Solicitud**</td><td style="border: 1px solid #d8dee9; padding: 12px;">Registro `R_Request` creado desde el portal para un trámite del IEA.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">**Cotización**</td><td style="border: 1px solid #d8dee9; padding: 12px;">Orden de venta/cotización `C_Order` vinculada a una solicitud mediante `R_Request.C_Order_ID`.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">**Visto Bueno**</td><td style="border: 1px solid #d8dee9; padding: 12px;">Registro `CDS_Approval` asociado a una solicitud cuando se requiere aprobación previa al pago.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">**Abono**</td><td style="border: 1px solid #d8dee9; padding: 12px;">Referencia de pago y comprobante adjunto que el usuario envía desde el portal.</td></tr></tbody></table>

<p class="callout info">**Convención:** cuando esta documentación menciona “API”, “REST” o “bus de integración”, se refiere al API de iDempiere expuesto por Lirion.</p>