Bienvenido a los foros %s

Foro comunidad hispana Dolibarr

Identificarse Registrarse

¿Inconsistencia en módulo Multidivisa para Contratos? (v22.0.4)

Cuestiones sobre cómo utilizar Dolibarr, ayudas sobre las funcionalidades o cualquier cuestión que no está relacionada con un error.
wcappia
Novato
Mensajes: 2
Registrado: Vie, 27/02/2026, 17:36

¿Inconsistencia en módulo Multidivisa para Contratos? (v22.0.4)

Mensaje por wcappia »

Hola a todos,

Estoy trabajando con la versión 22.0.4 de Dolibarr y me he encontrado con una duda técnica respecto al comportamiento del módulo Multidivisa (Multicurrency) en el módulo de Contratos.

Al analizar la estructura de la base de datos, he notado lo siguiente:

La tabla de líneas de contrato (llx_contratdet) contiene correctamente los campos multicurrency_*.

Sin embargo, la tabla de cabecera del contrato (llx_contrat) no dispone de estos campos (como multicurrency_code o multicurrency_tx).

El problema: Al intentar generar una factura desde un contrato que tiene precios definidos en una moneda extranjera en sus líneas, la factura resultante se genera con importes en cero o con conversiones incorrectas, ya que la cabecera del contrato no parece "saber" en qué moneda está operando el documento global. Además, en la interfaz de usuario (UI) de Contratos, no aparece el selector de moneda ni la tasa de cambio, algo que sí funciona perfectamente en Facturas o Pedidos.

Mis preguntas son:

¿Es este un comportamiento esperado para el módulo de contratos o se trata de una implementación incompleta del soporte multidivisa en este módulo específico?

¿Existe alguna configuración oculta o parámetro en "Configuración -> Varios" para habilitar el soporte completo de multidivisa en la cabecera de los contratos?

¿Alguien más ha logrado integrar el flujo Contrato -> Factura manteniendo la moneda extranjera de forma nativa en la versión 22?

Agradezco de antemano cualquier luz sobre este tema, ya que para la gestión de servicios recurrentes internacionales es vital que el contrato mantenga la referencia de la moneda original.

Saludos cordiales,

MuhammadAli.Dev
Novato
Mensajes: 8
Registrado: Mié, 17/06/2026, 14:35

Mensaje por MuhammadAli.Dev »

Hola @wcappia,

Tu análisis es completamente correcto. El soporte multidivisa en el módulo de Contratos de Dolibarr está incompleto respecto a Facturas y Pedidos — no es un parámetro oculto, sino una limitación de la implementación actual.

Lo que ocurre internamente:
La tabla llx_contrat efectivamente carece de los campos multicurrency_code, multicurrency_tx y multicurrency_price_* en la cabecera, mientras que llx_contratdet sí los tiene en las líneas. Cuando Dolibarr genera una factura desde el contrato, toma los importes de las líneas sin el contexto de moneda de la cabecera — de ahí los importes en cero o las conversiones erróneas.

Opciones prácticas para v22:

1. Crear la factura directamente con la moneda correcta, sin usar "Generar factura desde contrato". Usa el contrato solo como referencia de seguimiento y genera las facturas manualmente con la divisa del cliente. Menos automatismo, pero funciona sin código adicional.

2. Módulo personalizado con hook: El hook createFrom (en la clase de facturación) permite interceptar la creación de factura desde contrato e inyectar el multicurrency_code y multicurrency_tx correctos antes del INSERT. Es la solución más limpia y actualización-segura para un flujo automatizado.

3. GitHub: Este comportamiento está documentado como issue conocido. Si lo confirmas en v23, vale la pena comentarlo en el repositorio — el equipo de desarrollo lo prioriza cuando hay casos concretos con impacto en producción.

Para servicios recurrentes internacionales, la opción 2 es la más robusta si el volumen lo justifica. He trabajado en flujos similares de Contrato → Factura con divisas extranjeras — si te interesa la estructura del hook o tienes preguntas sobre la implementación, lo comentamos.


Ali — Consultor IA Dolibarr / SiliconBlaze.com