From e1fcd85f261e755517c5b8f722afca2967045825 Mon Sep 17 00:00:00 2001 From: "Nicolas (vin)" Date: Tue, 28 Sep 2021 10:42:48 +0000 Subject: [PATCH] [FIX] snailmail_account: Fix traceback When clicking on send&print on an account move without partner, we are getting a traceback because of the address verification. Instead, check if any such move is selected and return a user error. Task id #2655365 closes odoo/odoo#77385 X-original-commit: dfba014189c35f9df0140c57effe9ea45637e0ec Signed-off-by: Florian Gilbert --- addons/snailmail_account/i18n/snailmail_account.pot | 6 ++++++ addons/snailmail_account/wizard/account_invoice_send.py | 3 +++ 2 files changed, 9 insertions(+) diff --git a/addons/snailmail_account/i18n/snailmail_account.pot b/addons/snailmail_account/i18n/snailmail_account.pot index e563fc827a0..fb1bea94db9 100644 --- a/addons/snailmail_account/i18n/snailmail_account.pot +++ b/addons/snailmail_account/i18n/snailmail_account.pot @@ -167,3 +167,9 @@ msgstr "" #: model:ir.model.fields,field_description:snailmail_account.field_account_invoice_send__snailmail_cost msgid "Stamp(s)" msgstr "" + +#. module: snailmail_account +#: code:addons/snailmail_account/wizard/account_invoice_send.py:0 +#, python-format +msgid "You cannot send an invoice which has no partner assigned." +msgstr "" diff --git a/addons/snailmail_account/wizard/account_invoice_send.py b/addons/snailmail_account/wizard/account_invoice_send.py index c093c7b99b3..0b5c7ffbc2e 100644 --- a/addons/snailmail_account/wizard/account_invoice_send.py +++ b/addons/snailmail_account/wizard/account_invoice_send.py @@ -2,6 +2,7 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import api, fields, models, Command, _ +from odoo.exceptions import UserError class AccountInvoiceSend(models.TransientModel): @@ -21,6 +22,8 @@ class AccountInvoiceSend(models.TransientModel): @api.depends('invoice_ids') def _compute_invalid_addresses(self): for wizard in self: + if any(not invoice.partner_id for invoice in wizard.invoice_ids): + raise UserError(_('You cannot send an invoice which has no partner assigned.')) invalid_invoices = wizard.invoice_ids.filtered(lambda i: not self.env['snailmail.letter']._is_valid_address(i.partner_id)) wizard.invalid_invoices = len(invalid_invoices) invalid_partner_ids = invalid_invoices.partner_id.ids