# Solicitudes, Cotización y Abono

Creación de trámites, generación de cotización, visto bueno, aceptación, abono y relación con orden de venta.

# Creación de Solicitudes desde el Portal

Las solicitudes del portal se crean como registros `R_Request` en Lirion. El usuario selecciona empresa, titular, tipo de solicitud, datos del producto y adjuntos requeridos.

<p class="callout info">**Nota:** la solicitud queda asociada a un responsable inicial configurado en iDempiere mediante `IEA_InitialSalesRep`. Ese valor define el usuario IEA que recibirá la notificación inicial.</p>

## Datos cargados por el portal

- Tipos de solicitud: `R_RequestType` filtrado por `ShowInPortal = true`.
- Tipos de control de calidad: `R_Group` filtrado por `ShowInPortal = true`.
- Categorías: `R_Category`.
- Forma farmacéutica: `IEA_PharmaForm`.
- Listas de referencia: clasificación, administración, almacenamiento, esterilidad, condición física, matriz a analizar y tipo de prueba analítica.
- Empresas, titulares y asistentes aprobados relacionados con el usuario autenticado.

## Campos principales enviados a R\_Request

<table id="bkmrk-campo-uso-summary-re" 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;">Campo</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;">`Summary`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Resumen del trámite.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`R_RequestType_ID`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Tipo de solicitud seleccionada.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`CDS_Company_ID`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Empresa representante.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`CDS_Professional_ID`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Profesional responsable en sesión.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`CDS_Assistant_ID`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Asistente asignado cuando aplica.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`C_BPartner_ID` y `AD_User_ID`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Tercero y contacto de la empresa.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`IEA_Holder_ID`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Titular del producto.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`IEA_Product_NotListed`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Nombre del producto si no está listado.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`IEA_Active_Ingredient`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Ingrediente activo.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`SalesRep_ID`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Responsable inicial tomado del configurador de sistema `IEA_InitialSalesRep`. El valor configurado debe ser el `AD_User_ID` del usuario IEA que recibirá las notificaciones iniciales.</td></tr></tbody></table>

## Configuración del responsable inicial

En iDempiere existe el configurador del sistema `IEA_InitialSalesRep`, descrito como **Usuario inicial de las solicitudes por parte del IEA**. En su valor configurado se coloca el ID del registro `AD_User` que debe recibir la notificación cuando entra una solicitud nueva.

Este configurador también se usa desde el workflow **Nueva Solicitud**. En el nodo de envío de correo, el destinatario se resuelve con la expresión `@$sysconfig.IEA_InitialSalesRep@`.

## Adjuntos

Después de crear la solicitud, el portal sube adjuntos sobre el registro `R_Request`. El portal calcula el progreso considerando la creación del trámite y cada archivo adjunto.

## Flujo

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

[![Captura de pantalla 2026-05-19 a la(s) 4.11.02 p. m..png](https://docs.primware.net/uploads/images/gallery/2026-05/scaled-1680-/jTyr32J3IuJuS1U1-captura-de-pantalla-2026-05-19-a-las-4-11-02-p-m.png)](https://docs.primware.net/uploads/images/gallery/2026-05/jTyr32J3IuJuS1U1-captura-de-pantalla-2026-05-19-a-las-4-11-02-p-m.png)

# Cotización, Visto Bueno y Abono

La cotización conecta una solicitud `R_Request` con una orden/cotización `C_Order`. El portal permite consultar el detalle, aceptar la cotización, enviar mensajes de ajuste y registrar el abono.

## Generación de la cotización

En el plugin se identifica el proceso `CreateQuoteFromRequest`, que crea una `C_Order` de venta tipo cotización desde el registro activo de `R_Request`. El proceso:

1. Valida que exista una solicitud activa.
2. Exige organización y almacén.
3. Lee `C_BPartner_ID`, `AD_User_ID`, `SalesRep_ID` y `Summary` desde la solicitud.
4. Resuelve tipo de documento de cotización/propuesta/oferta.
5. Resuelve lista de precios desde parámetro, tercero o lista de precios de venta por defecto.
6. Busca ubicación activa del tercero, prefiriendo facturación.
7. Crea `C_Order` con vínculo `R_Request_ID`.
8. Opcionalmente crea línea con producto.
9. Actualiza `R_Request.C_Order_ID`.

## Aceptación y ajuste

- El portal lee la cotización desde `C_Order` expandiendo `C_OrderLine`.
- Si el usuario acepta, el portal actualiza `R_Request.CDS_QuoteAccepted = true`.
- Si el usuario solicita ajuste o conversa sobre la cotización, se crean mensajes en `CDS_QuoteCorrections`.

## Chat de cotización

El chat de cotización permite la comunicación entre el portal y Lirion mientras la cotización todavía no ha sido aceptada. Se usa para dudas, ajustes o aclaraciones relacionadas con la cotización antes de que el cliente confirme la aceptación.

<p class="callout warning">**Regla de bloqueo:** cuando `CDS_QuoteAccepted = 'Y'`, el chat queda en solo lectura tanto en el portal como en Lirion. Desde ese momento ya no se pueden escribir nuevos mensajes.</p>

<table id="bkmrk-condici%C3%B3n-comportami" 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;">Condición</th><th style="border: 1px solid #d8dee9; padding: 12px; background: #eef2f7; text-align: left;">Comportamiento del chat</th></tr></thead><tbody><tr><td style="border: 1px solid #d8dee9; padding: 12px; vertical-align: top;">`CDS_QuoteAccepted != 'Y'`</td><td style="border: 1px solid #d8dee9; padding: 12px; vertical-align: top;">El portal y Lirion pueden registrar mensajes sobre la cotización.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px; vertical-align: top;">`CDS_QuoteAccepted = 'Y'`</td><td style="border: 1px solid #d8dee9; padding: 12px; vertical-align: top;">El chat queda bloqueado para escritura y solo permite consultar el historial.</td></tr></tbody></table>

[![Captura de pantalla 2026-05-19 a la(s) 4.09.27 p. m..png](https://docs.primware.net/uploads/images/gallery/2026-05/scaled-1680-/xy7K3j18Z8P7RIg1-captura-de-pantalla-2026-05-19-a-las-4-09-27-p-m.png)](https://docs.primware.net/uploads/images/gallery/2026-05/xy7K3j18Z8P7RIg1-captura-de-pantalla-2026-05-19-a-las-4-09-27-p-m.png)

## Visto bueno

Cuando una solicitud requiere aprobación, el portal bloquea el pago hasta que `CDS_ApprovalStatus` indique aprobación. El evento `RequestApprovalLinker` crea o actualiza un registro `CDS_Approval` cuando cambia el estado de aprobación en `R_Request`.

## Abono

Cuando la cotización está aceptada y no requiere visto bueno, o ya fue aprobada, el portal permite registrar el abono. El portal actualiza `ReferenceNo`, mantiene `CDS_QuoteAccepted = true` y adjunta el comprobante de pago al `R_Request`.

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

# Evaluaciones, Materiales Requeridos y En Proceso

La evaluación se trabaja desde Lirion sobre la misma solicitud y sus registros relacionados. En esta etapa se revisa la información enviada, se asignan evaluadoras, se registran materiales requeridos y se gestionan observaciones hacia el cliente cuando hay correcciones o dudas.

## Tablas y ventanas reconocidas

<table id="bkmrk-elemento-uso-reconoc" 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;">Elemento</th><th style="border: 1px solid #d8dee9; padding: 12px; background: #eef2f7; text-align: left;">Uso reconocido</th></tr></thead><tbody><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`IEA_RequestEvaluation`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Cabecera de evaluación asociada a una solicitud.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`IEA_RequestEvaluationDetails`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Detalle de evaluación y posibles adjuntos/elementos asociados.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`IEA_RequestEvaluation_Material`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Cabecera/listado de materiales requeridos por solicitud.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px;">`IEA_RequestEvaluation_MaterialDetails`</td><td style="border: 1px solid #d8dee9; padding: 12px;">Detalle de materiales requeridos.</td></tr></tbody></table>

## Procesos reconocidos

- `AssignEvaluatorAndDateOnRequestEvaluation`: asigna el usuario actual y fecha actual a columnas configurables de `IEA_RequestEvaluation`.
- `AssignDateFinishOnRequestEvaluation`: asigna `DateFinish` cuando `Evaluator_1` y `Evaluator_2` están marcados.
- `AssignEvaluatorUserOnOrder`: asigna usuario evaluador actual en una columna configurable de `C_Order`.

## Observaciones de evaluación

En Lirion, dentro de la misma solicitud, existe una pestaña de observaciones. Esta pestaña usa el mismo modelo funcional del chat, pero su propósito no es negociar la cotización, sino manejar correcciones o dudas de evaluación.

Las evaluadoras pueden enviar observaciones al cliente cuando necesitan aclaraciones, correcciones o información adicional. El cliente responde esas observaciones desde el portal, manteniendo la conversación asociada a la solicitud evaluada.

<table id="bkmrk-canal-d%C3%B3nde-se-usa-p" 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;">Canal</th><th style="border: 1px solid #d8dee9; padding: 12px; background: #eef2f7; text-align: left;">Dónde se usa</th><th style="border: 1px solid #d8dee9; padding: 12px; background: #eef2f7; text-align: left;">Propósito</th></tr></thead><tbody><tr><td style="border: 1px solid #d8dee9; padding: 12px; vertical-align: top;">Chat de cotización</td><td style="border: 1px solid #d8dee9; padding: 12px; vertical-align: top;">Portal y Lirion, antes de aceptar la cotización.</td><td style="border: 1px solid #d8dee9; padding: 12px; vertical-align: top;">Resolver dudas o ajustes relacionados con la cotización.</td></tr><tr><td style="border: 1px solid #d8dee9; padding: 12px; vertical-align: top;">Observaciones de evaluación</td><td style="border: 1px solid #d8dee9; padding: 12px; vertical-align: top;">Pestaña de observaciones en la solicitud de Lirion y respuesta del cliente desde el portal.</td><td style="border: 1px solid #d8dee9; padding: 12px; vertical-align: top;">Enviar correcciones, dudas o solicitudes de aclaración desde las evaluadoras hacia el cliente, y recibir las respuestas del cliente.</td></tr></tbody></table>

<p class="callout info">**Nota:** aunque las observaciones comparten el modelo de conversación con el chat, deben entenderse como parte del proceso de evaluación y corrección de la solicitud.</p>

[![Captura de pantalla 2026-05-19 a la(s) 4.07.20 p. m..png](https://docs.primware.net/uploads/images/gallery/2026-05/scaled-1680-/xtaeU9h0cMYPuL0A-captura-de-pantalla-2026-05-19-a-las-4-07-20-p-m.png)](https://docs.primware.net/uploads/images/gallery/2026-05/xtaeU9h0cMYPuL0A-captura-de-pantalla-2026-05-19-a-las-4-07-20-p-m.png)

[![Captura de pantalla 2026-05-19 a la(s) 4.07.30 p. m..png](https://docs.primware.net/uploads/images/gallery/2026-05/scaled-1680-/TBl0U21C4lPpzDik-captura-de-pantalla-2026-05-19-a-las-4-07-30-p-m.png)](https://docs.primware.net/uploads/images/gallery/2026-05/TBl0U21C4lPpzDik-captura-de-pantalla-2026-05-19-a-las-4-07-30-p-m.png)