Campo computado en Odoo
En este tutorial mostraremos como crear un campo computado en Odoo v17. Los campos computados se usan mayormente para realizar cálculos automáticos con campos dentro del mismo modelo o contenidos en otro modelo. Estos pueden o no almacenarse en la base de datos, esto especificándolo dentro de un atributo del campo.
Carlos Blanco
7/16/20242 min read


Para crear nuestro campo computado utilizaremos el campo costo, agregado en un anterior blog a las líneas de ventas.


Crearemos el nuevo campo que será computado en el modelo de sale.order y que realizara la suma de los costos de todas las líneas de la venta.


1.- Campo nuevo: Nombre del atributo con su definición de tipo de campo Monetary.
2.- Atributo compute: En este atributo indicamos que método se utilizara para calcular el dato que necesitamos.
3.- Atributo store: Este atributo indica si el campo será almacenado en la base de datos o no. (Los campos que no son almacenados en la BD no pueden agregarse en filtros de búsqueda, ni en agrupaciones.)
4.- Método: Método que realizara las operaciones para calcular el campo.
5.- api.depends: Este atributo puede o no agregarse, al agregarlo le estamos indicando que el campo solo se calculara cuando se modifiquen los campo contenidos dentro del depends.
Ahora agregaremos el nuevo campo computado dentro de la vista formulario de ventas. Lo agregaremos dentro de la pestaña “otra información” creándole un grupo llamado “Costo”.


Así es como se ve en el formulario de ventas.


Ahora si actualizamos algún monto de la línea de venta, nuestro campo computado realizara la suma de los costos de todas las líneas de la venta.




Con esto terminamos un ejemplo basico de un campo computado, apartir de aquí se pueden realizar campos computados tan complejos como los necesites.
En Exdoo podemos desarrollar cualquier módulo para Odoo en México, implementamos tu ERP con consultores experimentados no solo en Odoo sino en procesos de negocios, tenemos 10 años trabajando solamente con Odoo en México y otros países.