[IMP] account_banking_mandate: Fill payment line with first valid mandate

This commit is contained in:
Carlos Dauden
2017-10-24 23:38:17 +02:00
committed by Enric Tobella
parent 5adeb942c5
commit 04e876192d
3 changed files with 30 additions and 18 deletions

View File

@@ -30,7 +30,7 @@ TODO
Usage
=====
To use this module, see menu "Accounting > payment > SEPA direct debit mandates"
To use this module, see menu "Accounting > payment > SEPA direct debit mandates"
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
@@ -61,6 +61,7 @@ Contributors
* Stéphane Bidoul <stephane.bidoul@acsone.eu>
* Sergio Teruel (Incaser) <sergio@incaser.es>
* Cédric Pigeon <cedric.pigeon@acsone.eu>
* Carlos Dauden <carlos.dauden@tecnativa.com>
Maintainer
----------

View File

@@ -1,13 +1,15 @@
# -*- coding: utf-8 -*-
# © 2014 Compassion CH - Cyril Sester <csester@compassion.ch>
# © 2014 Tecnativa - Pedro M. Baeza
# © 2015-2016 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
# Copyright 2014 Compassion CH - Cyril Sester <csester@compassion.ch>
# Copyright 2014 Tecnativa - Pedro M. Baeza
# Copyright 2015-16 Akretion - Alexis de Lattre <alexis.delattre@akretion.com>
# Copyright 2017 Tecnativa - Carlos Dauden <carlos.dauden@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
'name': 'Account Banking Mandate',
'summary': 'Banking mandates',
'version': '11.0.1.0.1',
'version': '11.0.1.0.0',
'version': '10.0.1.1.3',
'license': 'AGPL-3',
'author': "Compassion CH, "
"Tecnativa, "

View File

@@ -1,6 +1,8 @@
# -*- coding: utf-8 -*-
# © 2016 Akretion (http://www.akretion.com/)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
# Copyright Akretion (http://www.akretion.com/)
# Copyright 2017 Carlos Dauden <carlos.dauden@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models, fields, api
@@ -16,14 +18,21 @@ class AccountMoveLine(models.Model):
def _prepare_payment_line_vals(self, payment_order):
vals = super(AccountMoveLine, self)._prepare_payment_line_vals(
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
if payment_order.payment_type != 'inbound':
return vals
mandate = self.mandate_id
if not mandate and vals.get('mandate_id', False):
mandate = mandate.browse(vals['mandate_id'])
if not mandate:
partner_bank_id = vals.get('partner_bank_id', False)
if partner_bank_id:
domain = [('partner_bank_id', '=', partner_bank_id)]
else:
domain = [('partner_id', '=', self.partner_id.id)]
domain.append(('state', '=', 'valid'))
mandate = mandate.search(domain, limit=1)
vals.update({
'mandate_id': mandate.id,
'partner_bank_id': mandate.partner_bank_id.id or partner_bank_id,
})
return vals