Hi,
To prevent division-by-zero errors in
your formula for calculating the profit margin in Odoo 17, you should
ensure that record.list_price is not zero. This is important because
dividing by zero will raise an exception and can disrupt the Odoo server
or lead to incomplete record creation/updating.
You can wrap the calculation with a condition like this:
for record in self:
if record.list_price: # Implicitly checks that it's not zero or None
record['x_studio_margen_de_utilidad'] = (record.list_price - record.standard_price) / record.list_price
else:
record[
'x_studio_margen_de_utilidad'] = 0.0 # or any default value you prefe
If this is used in a computed field, make sure:
The field has store=True if you want it indexed and searchable.
You add both list_price and standard_price in the depends() decorator so that Odoo knows when to recompute.
Hope it helps