diff --git a/addons/sale/i18n/sale.pot b/addons/sale/i18n/sale.pot index d5bd71d36ee..7b736619c08 100644 --- a/addons/sale/i18n/sale.pot +++ b/addons/sale/i18n/sale.pot @@ -5022,6 +5022,13 @@ msgstr "" msgid "You cannot cancel a locked order. Please unlock it first." msgstr "" +#. module: sale +#. odoo-python +#: code:addons/sale/models/sale_order.py:0 +#, python-format +msgid "You cannot change the pricelist of a confirmed order !" +msgstr "" + #. module: sale #. odoo-python #: code:addons/sale/models/product_product.py:0 diff --git a/addons/sale/models/sale_order.py b/addons/sale/models/sale_order.py index 54007845b14..bcdfcaa1fb5 100644 --- a/addons/sale/models/sale_order.py +++ b/addons/sale/models/sale_order.py @@ -786,6 +786,11 @@ class SaleOrder(models.Model): ] return super().copy_data(default) + def write(self, values): + if 'pricelist_id' in values and any(so.state == 'sale' for so in self): + raise UserError(_("You cannot change the pricelist of a confirmed order !")) + return super().write(values) + @api.ondelete(at_uninstall=False) def _unlink_except_draft_or_cancel(self): for order in self: