diff --git a/account_banking_mandate/README.rst b/account_banking_mandate/README.rst index 0fb4974ece19..3b5d39c9acbc 100644 --- a/account_banking_mandate/README.rst +++ b/account_banking_mandate/README.rst @@ -60,6 +60,7 @@ Contributors * Alexandre Fayolle * Stéphane Bidoul * Sergio Teruel (Incaser) +* Cédric Pigeon Maintainer ---------- diff --git a/account_banking_mandate/__manifest__.py b/account_banking_mandate/__manifest__.py index 553c4f7dfde7..42969b56355c 100644 --- a/account_banking_mandate/__manifest__.py +++ b/account_banking_mandate/__manifest__.py @@ -7,7 +7,7 @@ { 'name': 'Account Banking Mandate', 'summary': 'Banking mandates', - 'version': '10.0.1.1.0', + 'version': '10.0.1.1.2', 'license': 'AGPL-3', 'author': "Compassion CH, " "Tecnativa, " diff --git a/account_banking_mandate/models/account_invoice.py b/account_banking_mandate/models/account_invoice.py index 7c086d9f936b..7adb49f107a8 100644 --- a/account_banking_mandate/models/account_invoice.py +++ b/account_banking_mandate/models/account_invoice.py @@ -65,7 +65,7 @@ def _prepare_refund( @api.onchange('partner_id', 'company_id') def _onchange_partner_id(self): """Select by default the first valid mandate of the partner""" - super(AccountInvoice, self)._onchange_partner_id() + res = super(AccountInvoice, self)._onchange_partner_id() if ( self.type == 'out_invoice' and self.partner_id.customer_payment_mode_id. @@ -81,6 +81,7 @@ def _onchange_partner_id(self): self.mandate_id = mandates[0] else: self.mandate_id = False + return res @api.onchange('payment_mode_id') def payment_mode_id_change(self): diff --git a/account_banking_mandate/models/account_move_line.py b/account_banking_mandate/models/account_move_line.py index 52aaef2c748d..8306ca1e4db7 100644 --- a/account_banking_mandate/models/account_move_line.py +++ b/account_banking_mandate/models/account_move_line.py @@ -19,4 +19,11 @@ def _prepare_payment_line_vals(self, payment_order): if payment_order.payment_type == 'inbound' and self.mandate_id: vals['mandate_id'] = self.mandate_id.id vals['partner_bank_id'] = self.mandate_id.partner_bank_id.id + partner_bank_id = vals.get('partner_bank_id', False) + if partner_bank_id and 'mandate_id' not in vals: + mandate = self.env['account.banking.mandate'].search( + [('partner_bank_id', '=', partner_bank_id), + ('state', '=', 'valid')], limit=1) + if mandate: + vals['mandate_id'] = mandate.id return vals