diff --git a/addons/account/models/account_account.py b/addons/account/models/account_account.py index 7bfc08ad600df583feb2c5d992e6d239739293ef..1abd0c51b3b0bde73801fef7444d7005e4101c1f 100644 --- a/addons/account/models/account_account.py +++ b/addons/account/models/account_account.py @@ -787,6 +787,9 @@ class AccountAccount(models.Model): 'template': '/account/static/xls/coa_import_template.xlsx' }] + def _merge_method(self, destination, source): + raise UserError(_("You cannot merge accounts.")) + class AccountGroup(models.Model): _name = "account.group" diff --git a/addons/account/models/partner.py b/addons/account/models/partner.py index d8215c505d0ecd4601705db7e0f362d96335b34a..59b75f7f5660d10198f0aae262de15dd67391edb 100644 --- a/addons/account/models/partner.py +++ b/addons/account/models/partner.py @@ -667,3 +667,11 @@ class ResPartner(models.Model): :return: an array of ir.model.fields for which the user should provide values. """ return [] + + def _merge_method(self, destination, source): + """ + Prevent merging partners that are linked to already hashed journal items. + """ + if self.env['account.move.line'].search([('move_id.inalterable_hash', '!=', False), ('partner_id', 'in', source.ids)], limit=1): + raise UserError(_('Partners that are used in hashed entries cannot be merged.')) + return super()._merge_method(destination, source) diff --git a/odoo/addons/base/wizard/base_partner_merge.py b/odoo/addons/base/wizard/base_partner_merge.py index 85df8df4506ffb638345d1f9d75b8d23de741b12..1a64897c0aa6917bfaed311fbb8b9b8e8171880f 100644 --- a/odoo/addons/base/wizard/base_partner_merge.py +++ b/odoo/addons/base/wizard/base_partner_merge.py @@ -322,10 +322,6 @@ class MergePartnerAutomatic(models.TransientModel): src_partners = ordered_partners[:-1] _logger.info("dst_partner: %s", dst_partner.id) - # FIXME: is it still required to make and exception for account.move.line since accounting v9.0 ? - if extra_checks and 'account.move.line' in self.env and self.env['account.move.line'].sudo().search([('partner_id', 'in', [partner.id for partner in src_partners])]): - raise UserError(_("Only the destination contact may be linked to existing Journal Items. Please ask the Administrator if you need to merge several contacts linked to existing Journal Items.")) - # Make the company of all related users consistent with destination partner company if dst_partner.company_id: partner_ids.mapped('user_ids').sudo().write({