diff --git a/addons/product/models/res_config_settings.py b/addons/product/models/res_config_settings.py index fc34357c15b..53eeefc4e84 100644 --- a/addons/product/models/res_config_settings.py +++ b/addons/product/models/res_config_settings.py @@ -67,7 +67,8 @@ class ResConfigSettings(models.TransientModel): pl = self.env['product.pricelist'].search([('discount_policy', '=', 'without_discount')]) pl.write({'discount_policy': 'with_discount'}) - if self.group_product_pricelist: + had_group_pl = self.default_get(['group_product_pricelist'])['group_product_pricelist'] + if self.group_product_pricelist and not had_group_pl: self.env['res.company']._activate_or_create_pricelists() - else: + elif not self.group_product_pricelist: self.env['product.pricelist'].sudo().search([]).action_archive() diff --git a/addons/product/models/res_currency.py b/addons/product/models/res_currency.py index 5df9248c45f..fe23deba606 100644 --- a/addons/product/models/res_currency.py +++ b/addons/product/models/res_currency.py @@ -10,6 +10,7 @@ class ResCurrency(models.Model): def _activate_group_multi_currency(self): # for Sale/ POS - Multi currency flows require pricelists super()._activate_group_multi_currency() - group_user = self.env.ref('base.group_user').sudo() - group_user._apply_group(self.env.ref('product.group_product_pricelist')) - self.env['res.company']._activate_or_create_pricelists() + if not self.user_has_groups('product.group_product_pricelist'): + group_user = self.env.ref('base.group_user').sudo() + group_user._apply_group(self.env.ref('product.group_product_pricelist')) + self.env['res.company']._activate_or_create_pricelists()