diff --git a/delivery_carrier_partner_account/models/carrier_account_mixin.py b/delivery_carrier_partner_account/models/carrier_account_mixin.py index 4ca287f..0a6cce0 100644 --- a/delivery_carrier_partner_account/models/carrier_account_mixin.py +++ b/delivery_carrier_partner_account/models/carrier_account_mixin.py @@ -160,7 +160,7 @@ class CarrierAccountMixin(models.AbstractModel): ): if rec.carrier_account_id: raise UserError( - _("No carrier account should be set for no charge delivery.") + "No carrier account should be set for no charge delivery." ) continue # We allow empty carrier account for third party since we can't always @@ -170,8 +170,15 @@ class CarrierAccountMixin(models.AbstractModel): and not rec.carrier_account_id ): continue - if rec.carrier_account_id not in rec.valid_carrier_account_ids: - raise UserError(_("Invalid carrier account selected.")) + if ( + rec.carrier_account_id + and rec.carrier_account_id not in rec.valid_carrier_account_ids + ): + raise UserError( + f"Invalid carrier account selected. Account: {rec.carrier_account_id} for carrier {rec.carrier_id} from sender {rec.sender_id} to recipient {rec.recipient_id} in mode {rec.delivery_billing_mode}." + f"\nSender accounts: {rec.sender_id.carrier_account_ids}" + f"\nRecipient accounts: {rec.recipient_id.carrier_account_ids}" + ) def _inverse_carrier_account_id(self): pass diff --git a/delivery_carrier_partner_account/models/delivery_carrier_account.py b/delivery_carrier_partner_account/models/delivery_carrier_account.py index 574b62c..136fe82 100644 --- a/delivery_carrier_partner_account/models/delivery_carrier_account.py +++ b/delivery_carrier_partner_account/models/delivery_carrier_account.py @@ -39,12 +39,6 @@ class DeliveryCarrierAccount(models.Model): for record in self: record.display_name = record.account_number - @api.constrains("partner_id", "delivery_carrier_id") - def _constrain_partner_carrier_same_company(self): - for rec in self: - if rec.partner_id.company_id != rec.delivery_carrier_id.company_id: - raise UserError(_("Partner and Carrier must be in the same company.")) - def write(self, vals): res = super().write(vals) for partner in self.partner_id.filtered(