Saltar al contenido

Campo computado en Odoo

🐍 ODOO · DESARROLLO · CAMPOS COMPUTADOS

Campo computado en Odoo

Atributos cuyo valor se calcula al vuelo mediante un método Python. Reflejan el resultado de operaciones sobre otros campos del modelo. Aquí, sumamos los costos de las líneas de venta y los exponemos en el formulario.

1Punto de partida

Usaremos el campo costo agregado en un blog anterior a las líneas de venta:

Campo costo en líneas de ventas

2Definir el campo computado en sale.order

Crearemos un nuevo atributo en el modelo sale.order que sumará el costo de todas las líneas:

Definición del campo computado

3Anatomía del campo computado

1️⃣ Campo nuevo
Nombre del atributo con su tipo (en este caso Monetary).
2️⃣ Atributo compute
Indica el método que se ejecutará para calcular el valor.
3️⃣ Atributo store
Define si el valor se persiste en BD. Sin store, el campo no puede usarse en filtros ni agrupaciones.
4️⃣ Método de cálculo
Función Python que realiza las operaciones y asigna el resultado al campo.
5️⃣ @api.depends(...)
Opcional. El campo se recalcula solo cuando cambien los campos listados — evita cómputos innecesarios.

4Mostrar el campo en la vista

Agregamos el campo dentro de la pestaña “Otra información” del formulario de ventas, en un grupo llamado Costo:

Vista XML con el nuevo campo en el grupo Costo
Vista del campo en el formulario de ventas

5Resultado en uso

Al modificar cualquier monto en una línea, el campo computado recalcula y suma todos los costos:

Resultado del cómputo - cambio 1
Resultado del cómputo - cambio 2
💡 SIGUIENTE NIVEL
Este es un ejemplo básico. Los campos computados pueden contener cualquier lógica de negocio: márgenes ponderados, validaciones cruzadas, integración con otros modelos. Tan complejos como necesites.

📌 En resumen

Los campos computados son la base para cualquier cálculo derivado en Odoo: totales, márgenes, indicadores. Recuerda usar @api.depends para evitar recálculos innecesarios y store=True si necesitas filtrar o agrupar por él. Si tienes dudas escríbenos a info@exdoo.mx.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

¿Te gustaría implementar Odoo en tu empresa?

12 años de experiencia · +60 implementaciones exitosas · Partner Gold de Odoo en México

Hablemos por WhatsApp