From 3c0f4304051d1d5f3be89dee49935b5796575011 Mon Sep 17 00:00:00 2001 From: Hardikgiri Goswami Date: Mon, 13 Jan 2025 18:11:09 +0530 Subject: [PATCH] APX-2986: [FIX] product_multi_price: Fixed Missing Record when calculating the price --- product_multi_price/__manifest__.py | 2 +- product_multi_price/models/product_pricelist.py | 2 +- product_multi_price/models/product_product.py | 11 +++++++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/product_multi_price/__manifest__.py b/product_multi_price/__manifest__.py index 95b54b2..aa39b82 100644 --- a/product_multi_price/__manifest__.py +++ b/product_multi_price/__manifest__.py @@ -3,7 +3,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Product Multi Price", - "version": "16.0.1.0.1", + "version": "16.0.1.0.2", "author": "Tecnativa," "Odoo Community Association (OCA)", "website": "https://github.com/OCA/product-attribute", "category": "Product Management", diff --git a/product_multi_price/models/product_pricelist.py b/product_multi_price/models/product_pricelist.py index 738459c..4752d16 100644 --- a/product_multi_price/models/product_pricelist.py +++ b/product_multi_price/models/product_pricelist.py @@ -26,5 +26,5 @@ def _compute_base_price(self, product, quantity, uom, date, target_currency): product, quantity, uom, date, target_currency ) if self.compute_price == "formula" and self.base == "multi_price": - result = product.sudo()._get_multiprice_pricelist_price(self) + result = product.sudo()._get_multiprice_pricelist_base_price(self) return result diff --git a/product_multi_price/models/product_product.py b/product_multi_price/models/product_product.py index 1816edc..11c7c02 100644 --- a/product_multi_price/models/product_product.py +++ b/product_multi_price/models/product_product.py @@ -16,11 +16,9 @@ def _convert_to_price_uom(self, price): price_uom = self.env["uom.uom"].browse([qty_uom_id]) return self.uom_id._compute_price(price, price_uom) - def _get_multiprice_pricelist_price(self, rule): - """Method for getting the price from multi price.""" - self.ensure_one() + def _get_multiprice_pricelist_base_price(self, rule): company = rule.company_id or self.env.user.company_id - price = ( + return ( self.env["product.multi.price"] .sudo() .search( @@ -33,6 +31,11 @@ def _get_multiprice_pricelist_price(self, rule): .price or 0 ) + + def _get_multiprice_pricelist_price(self, rule): + """Method for getting the price from multi price.""" + self.ensure_one() + price = self._get_multiprice_pricelist_base_price(rule) if price: # We have to replicate this logic in this method as pricelist # method are atomic and we can't hack inside.