[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', 'account.banking.mandate', string='Direct Debit Mandate',
ondelete='restrict', readonly=True, ondelete='restrict', readonly=True,
states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}) states={'draft': [('readonly', False)], 'sent': [('readonly', False)]})
mandate_required = fields.Boolean(
related='payment_mode_id.payment_method_id.mandate_required',
readonly=True,
)
@api.multi @api.multi
def _prepare_invoice(self): def _prepare_invoice(self):
@@ -27,11 +31,12 @@ class SaleOrder(models.Model):
@api.onchange('payment_mode_id') @api.onchange('payment_mode_id')
def payment_mode_change(self): def payment_mode_change(self):
"""Select by default the first valid mandate of the partner""" """Select by default the first valid mandate of the partner"""
if ( self.ensure_one()
self.payment_mode_id.payment_method_id.mandate_required and if self.mandate_required and self.partner_id:
self.partner_id):
mandates = self.env['account.banking.mandate'].search([ mandates = self.env['account.banking.mandate'].search([
('state', '=', 'valid'), ('state', '=', 'valid'),
('partner_id', '=', self.commercial_partner_id.id), ('partner_id', '=', self.commercial_partner_id.id),
]) ])
self.mandate_id = mandates[:1] self.mandate_id = mandates[:1]
else:
self.mandate_id = False

View File

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

View File

@@ -6,7 +6,6 @@
<odoo> <odoo>
<record id="view_order_form" model="ir.ui.view"> <record id="view_order_form" model="ir.ui.view">
<field name="name">account_banking_mandate_sale.sale_order.form</field> <field name="name">account_banking_mandate_sale.sale_order.form</field>
<field name="model">sale.order</field> <field name="model">sale.order</field>
@@ -15,10 +14,11 @@
<field name="fiscal_position_id" position="after"> <field name="fiscal_position_id" position="after">
<field name="commercial_partner_id" invisible="1"/> <field name="commercial_partner_id" invisible="1"/>
<field name="mandate_id" <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>
</field> </field>
</record> </record>
</odoo> </odoo>