diff --git a/product_secondary_unit/models/product_second_unit.py b/product_secondary_unit/models/product_second_unit.py index c9307b65f62..98c42efc63e 100644 --- a/product_secondary_unit/models/product_second_unit.py +++ b/product_secondary_unit/models/product_second_unit.py @@ -1,6 +1,7 @@ # Copyright 2018 Tecnativa - Sergio Teruel # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from odoo import api, fields, models +from odoo.tools.float_utils import float_round class ProductSecondaryUnit(models.Model): @@ -67,3 +68,13 @@ def name_search(self, name="", args=None, operator="ilike", limit=100): name=name, args=args, operator=operator, limit=limit ) return units.name_get() + + def _get_secondary_qty(self, qty, uom, product_uom_field="uom_id"): + """Helper method to obtain the secondary uom quantity from a given main unit""" + self.ensure_one() + factor = self.factor * ( + uom.factor if self.product_id[product_uom_field] != uom else 1.0 + ) + return float_round( + qty / (factor or 1.0), precision_rounding=self.uom_id.rounding + )