diff --git a/addons/pos_adyen/i18n/pos_adyen.pot b/addons/pos_adyen/i18n/pos_adyen.pot index 4e8d04b58ff..c6b500372c0 100644 --- a/addons/pos_adyen/i18n/pos_adyen.pot +++ b/addons/pos_adyen/i18n/pos_adyen.pot @@ -146,6 +146,12 @@ msgstr "" msgid "Terminal %s is already used on payment method %s." msgstr "" +#. module: pos_adyen +#: code:addons/pos_adyen/models/pos_payment_method.py:0 +#, python-format +msgid "Terminal %s is already used in company %s on payment method %s." +msgstr "" + #. module: pos_adyen #: model:ir.model.fields,help:pos_adyen.field_pos_payment_method__adyen_api_key msgid "" diff --git a/addons/pos_adyen/models/pos_payment_method.py b/addons/pos_adyen/models/pos_payment_method.py index 1e677843023..6b6103ffb18 100644 --- a/addons/pos_adyen/models/pos_payment_method.py +++ b/addons/pos_adyen/models/pos_payment_method.py @@ -32,12 +32,19 @@ class PosPaymentMethod(models.Model): for payment_method in self: if not payment_method.adyen_terminal_identifier: continue - existing_payment_method = self.search([('id', '!=', payment_method.id), + # sudo() to search all companies + existing_payment_method = self.sudo().search([('id', '!=', payment_method.id), ('adyen_terminal_identifier', '=', payment_method.adyen_terminal_identifier)], limit=1) if existing_payment_method: - raise ValidationError(_('Terminal %s is already used on payment method %s.') + if existing_payment_method.company_id == payment_method.company_id: + raise ValidationError(_('Terminal %s is already used on payment method %s.') % (payment_method.adyen_terminal_identifier, existing_payment_method.display_name)) + else: + raise ValidationError(_('Terminal %s is already used in company %s on payment method %s.') + % (payment_method.adyen_terminal_identifier, + existing_payment_method.company_id.name, + existing_payment_method.display_name)) def _get_adyen_endpoints(self): return {