From c6d5948c757ccb2cdc51f54c1db81338e33c94f4 Mon Sep 17 00:00:00 2001 From: Robin Heinz Date: Tue, 7 Jul 2020 09:39:38 +0000 Subject: [PATCH] [FIX] Delivery: Endless decimal display on list price When creating a new delivery method with a provider based on rules, if the base list_base_price was equal to x.8, that ended to a float with endless decimal. (eg: 2.8000000000003) This fix modify the display to show a rounded value. closes odoo/odoo#54177 Task-id: 2272472 Signed-off-by: pimodoo --- addons/delivery/models/delivery_grid.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/delivery/models/delivery_grid.py b/addons/delivery/models/delivery_grid.py index 17bc32a4f3b..9df02ea297c 100644 --- a/addons/delivery/models/delivery_grid.py +++ b/addons/delivery/models/delivery_grid.py @@ -14,13 +14,13 @@ class PriceRule(models.Model): @api.depends('variable', 'operator', 'max_value', 'list_base_price', 'list_price', 'variable_factor') def _compute_name(self): for rule in self: - name = 'if %s %s %s then' % (rule.variable, rule.operator, rule.max_value) + name = 'if %s %s %.02f then' % (rule.variable, rule.operator, rule.max_value) if rule.list_base_price and not rule.list_price: - name = '%s fixed price %s' % (name, rule.list_base_price) + name = '%s fixed price %.02f' % (name, rule.list_base_price) elif rule.list_price and not rule.list_base_price: - name = '%s %s times %s' % (name, rule.list_price, rule.variable_factor) + name = '%s %.02f times %s' % (name, rule.list_price, rule.variable_factor) else: - name = '%s fixed price %s plus %s times %s' % (name, rule.list_base_price, rule.list_price, rule.variable_factor) + name = '%s fixed price %.02f plus %.02f times %s' % (name, rule.list_base_price, rule.list_price, rule.variable_factor) rule.name = name name = fields.Char(compute='_compute_name')