From 7786946d386f6185e99b499b0246018c5262b5e8 Mon Sep 17 00:00:00 2001 From: sergio-teruel Date: Tue, 28 Nov 2023 10:49:10 +0100 Subject: [PATCH] [IMP] product_secondary_unit: Add helper method to secondary units to get secondary qty computed --- product_secondary_unit/models/product_second_unit.py | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 + )