Margenes en dólares

Una pequeña introducción a los campos computados
23 de abril de 2024 por
Gustavo Orrillo
| Sin comentarios aún
 

Odoo tiene un módulo maravilloso llamado sale_margin el cual agrega a los pedidos de venta el margen en la moneda de la empresa junto con el porcentaje del margen. Dicho margen tiene un pequeño drama para muchos países latinoamericanos, está expresado en la moneda de la empresa (por ejemplo pesos mexicanos o argentinos).

Para resolver este pequeño tema, desarrollamos el módulo margin_usd el cual se instala como cualquier módulo. No tiene requerimientos (si tienen problema con la instalación del módulo, en realidad tienen problema con su instalación de Odoo).

El módulo margin_usd agrega varias vistas en las que se añaden el campo de margen en USD a la vista tipo lista de los pedidos de venta


Y en el formulario del pedido, tanto en el total del pedido


Como en las líneas de los pedidos (haciendo opcionales los campos de márgenes)


Notas técnicas

Este módulo hace uso de campos computados para calcular el margen en USD. Para ello define el campo margin_usd para el margen en la moneda extranjera, y luego lo computa utilizando la función _convert del model res.currency, utilizando la moneda del pedido como base y convirtiendo el monto del margen al dolar.

    def _compute_margin_usd(self):
for rec in self:
res = 0
res = rec.currency_id._convert(
rec.margin,
self.env.ref('base.USD'),
rec.company_id,
rec.date_order,
)
rec.margin_usd = res

margin_usd = fields.Float('Margin USD',compute=_compute_margin_usd)

 

Gustavo Orrillo 23 de abril de 2024
Compartir
Archivar
Identificarse dejar un comentario