[IMP] Mandate Sale: mandate visible only if mandate required

This commit is contained in:
Thomas Binsfeld
2019-02-20 09:22:07 +01:00
committed by Alexis de Lattre
parent c9a49db3e6
commit 79fb4f18eb
3 changed files with 12 additions and 6 deletions

View File

@@ -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

View File

@@ -1 +1,2 @@
* Alexis de Lattre <alexis.delattre@akretion.com>
* Thomas Binsfeld <thomas.binsfeld@acsone.eu>

View File

@@ -6,7 +6,6 @@
<odoo>
<record id="view_order_form" model="ir.ui.view">
<field name="name">account_banking_mandate_sale.sale_order.form</field>
<field name="model">sale.order</field>
@@ -15,10 +14,11 @@
<field name="fiscal_position_id" position="after">
<field name="commercial_partner_id" invisible="1"/>
<field name="mandate_id"
domain="[('partner_id', '=', commercial_partner_id), ('state', 'in', ('draft', 'valid'))]"/>
domain="[('partner_id', '=', commercial_partner_id), ('state', 'in', ('draft', 'valid'))]"
attrs="{'invisible': [('mandate_required', '=', False)]}"/>
<field name="mandate_required" invisible="1"/>
</field>
</field>
</record>
</odoo>