From 7009b71d45545353b1bb6587f1ce076b1b3dba7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20BEAU?= Date: Thu, 8 Sep 2022 16:50:23 +0200 Subject: [PATCH] shopinvader_sale_configurator_option: fix price computation with pricelist without discount --- .../models/__init__.py | 1 + .../models/product_pricelist.py | 18 ++++++++++++++++++ .../models/product_product.py | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 shopinvader_sale_configurator_option/models/product_pricelist.py diff --git a/shopinvader_sale_configurator_option/models/__init__.py b/shopinvader_sale_configurator_option/models/__init__.py index 06f69a40..0dec283e 100644 --- a/shopinvader_sale_configurator_option/models/__init__.py +++ b/shopinvader_sale_configurator_option/models/__init__.py @@ -1,3 +1,4 @@ from . import product_product from . import shopinvader_variant from . import sale_order_line +from . import product_pricelist diff --git a/shopinvader_sale_configurator_option/models/product_pricelist.py b/shopinvader_sale_configurator_option/models/product_pricelist.py new file mode 100644 index 00000000..ba75980c --- /dev/null +++ b/shopinvader_sale_configurator_option/models/product_pricelist.py @@ -0,0 +1,18 @@ +# Copyright 2022 Akretion (https://www.akretion.com). +# @author Sébastien BEAU +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import models + + +class ProductPricelist(models.Model): + _inherit = "product.pricelist" + + def get_product_price_rule( + self, product, quantity, partner, date=False, uom_id=False + ): + # The following line will convert NewId with origin to normal record + product = self.env["product.product"].browse(product.ids) + return super().get_product_price_rule( + product, quantity, partner, date=date, uom_id=uom_id + ) diff --git a/shopinvader_sale_configurator_option/models/product_product.py b/shopinvader_sale_configurator_option/models/product_product.py index 5fe8c13f..b221fad4 100644 --- a/shopinvader_sale_configurator_option/models/product_product.py +++ b/shopinvader_sale_configurator_option/models/product_product.py @@ -49,7 +49,7 @@ def _compute_shopinvader_price(self): old_delegate = shopinvader_variant._fields["record_id"].delegate shopinvader_variant._fields["record_id"].delegate = False - shopinvader_variant["record_id"] = record.id + shopinvader_variant.record_id = record shopinvader_variant._fields["record_id"].delegate = old_delegate record.shopinvader_price = shopinvader_variant.price