diff --git a/account_banking_mandate_sale/models/sale_order.py b/account_banking_mandate_sale/models/sale_order.py index 7089c0e97..4d64683ef 100644 --- a/account_banking_mandate_sale/models/sale_order.py +++ b/account_banking_mandate_sale/models/sale_order.py @@ -16,6 +16,10 @@ class SaleOrder(models.Model): 'account.banking.mandate', string='Direct Debit Mandate', ondelete='restrict', readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}) + mandate_required = fields.Boolean( + related='payment_mode_id.payment_method_id.mandate_required', + readonly=True, + ) @api.multi def _prepare_invoice(self): @@ -27,11 +31,12 @@ class SaleOrder(models.Model): @api.onchange('payment_mode_id') def payment_mode_change(self): """Select by default the first valid mandate of the partner""" - if ( - self.payment_mode_id.payment_method_id.mandate_required and - self.partner_id): + self.ensure_one() + if self.mandate_required and self.partner_id: mandates = self.env['account.banking.mandate'].search([ ('state', '=', 'valid'), ('partner_id', '=', self.commercial_partner_id.id), ]) self.mandate_id = mandates[:1] + else: + self.mandate_id = False diff --git a/account_banking_mandate_sale/readme/CONTRIBUTORS.rst b/account_banking_mandate_sale/readme/CONTRIBUTORS.rst index ff65d68ce..e0b9ee19e 100644 --- a/account_banking_mandate_sale/readme/CONTRIBUTORS.rst +++ b/account_banking_mandate_sale/readme/CONTRIBUTORS.rst @@ -1 +1,2 @@ * Alexis de Lattre +* Thomas Binsfeld diff --git a/account_banking_mandate_sale/views/sale_order.xml b/account_banking_mandate_sale/views/sale_order.xml index a020c1c80..88ea0b81a 100644 --- a/account_banking_mandate_sale/views/sale_order.xml +++ b/account_banking_mandate_sale/views/sale_order.xml @@ -6,7 +6,6 @@ - account_banking_mandate_sale.sale_order.form sale.order @@ -15,10 +14,11 @@ + domain="[('partner_id', '=', commercial_partner_id), ('state', 'in', ('draft', 'valid'))]" + attrs="{'invisible': [('mandate_required', '=', False)]}"/> + -