From ccdd113260c1a3c8e225f6d726cfe4da36a4df92 Mon Sep 17 00:00:00 2001 From: Yannick Tivisse Date: Tue, 2 Nov 2021 13:04:13 +0100 Subject: [PATCH] [IMP] sale: Convert _onchange_update_product_packaging_qty into compute method --- addons/sale/models/sale_order_line.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/addons/sale/models/sale_order_line.py b/addons/sale/models/sale_order_line.py index bbd3575c9ae..68ebf42fe5f 100644 --- a/addons/sale/models/sale_order_line.py +++ b/addons/sale/models/sale_order_line.py @@ -326,7 +326,8 @@ class SaleOrderLine(models.Model): compute='_compute_product_packaging_id', store=True, readonly=False, domain="[('sales', '=', True), ('product_id','=',product_id)]", check_company=True) - product_packaging_qty = fields.Float('Packaging Quantity') + product_packaging_qty = fields.Float( + 'Packaging Quantity', compute='_compute_product_packaging_qty', store=True, readonly=False) @api.depends('state') def _compute_product_uom_readonly(self): @@ -446,14 +447,17 @@ class SaleOrderLine(models.Model): }, } - @api.onchange('product_packaging_id', 'product_uom', 'product_uom_qty') - def _onchange_update_product_packaging_qty(self): - if not self.product_packaging_id: - self.product_packaging_qty = False - else: - packaging_uom = self.product_packaging_id.product_uom_id - packaging_uom_qty = self.product_uom._compute_quantity(self.product_uom_qty, packaging_uom) - self.product_packaging_qty = float_round(packaging_uom_qty / self.product_packaging_id.qty, precision_rounding=packaging_uom.rounding) + @api.depends('product_packaging_id', 'product_uom', 'product_uom_qty') + def _compute_product_packaging_qty(self): + for line in self: + if not line.product_packaging_id: + line.product_packaging_qty = False + else: + packaging_uom = line.product_packaging_id.product_uom_id + packaging_uom_qty = line.product_uom._compute_quantity(line.product_uom_qty, packaging_uom) + line.product_packaging_qty = float_round( + packaging_uom_qty / line.product_packaging_id.qty, + precision_rounding=packaging_uom.rounding) @api.onchange('product_packaging_qty') def _onchange_product_packaging_qty(self):