diff --git a/account_banking_mandate_sale/__manifest__.py b/account_banking_mandate_sale/__manifest__.py index 51bbe7840..d5031421d 100644 --- a/account_banking_mandate_sale/__manifest__.py +++ b/account_banking_mandate_sale/__manifest__.py @@ -1,17 +1,17 @@ -# Copyright 2016-2020 Akretion (Alexis de Lattre ) +# Copyright 2016-2022 Akretion (Alexis de Lattre ) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "Account Banking Mandate Sale", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "category": "Banking addons", "license": "AGPL-3", "summary": "Adds mandates on sale orders", - "author": "Odoo Community Association (OCA), " "Akretion", + "author": "Odoo Community Association (OCA), Akretion", + "maintainers": ["alexis-via"], "website": "https://github.com/OCA/bank-payment", "depends": [ "account_payment_sale", - "sale_commercial_partner", "account_banking_mandate", ], "data": [ diff --git a/account_banking_mandate_sale/models/sale_order.py b/account_banking_mandate_sale/models/sale_order.py index ddb400831..f78799d42 100644 --- a/account_banking_mandate_sale/models/sale_order.py +++ b/account_banking_mandate_sale/models/sale_order.py @@ -1,4 +1,4 @@ -# Copyright 2014-2020 Akretion (Alexis de Lattre ) +# Copyright 2014-2022 Akretion (Alexis de Lattre ) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from odoo import api, fields, models @@ -7,15 +7,18 @@ from odoo import api, fields, models class SaleOrder(models.Model): _inherit = "sale.order" - # This field commercial_partner_id should be moved - # in an OCA base module named for example sale_commercial_partner + commercial_invoice_partner_id = fields.Many2one( + related="partner_invoice_id.commercial_partner_id", + string="Invoicing Commercial Entity", + store=True, + ) mandate_id = fields.Many2one( "account.banking.mandate", string="Direct Debit Mandate", ondelete="restrict", check_company=True, readonly=False, - domain="[('partner_id', '=', commercial_partner_id), " + domain="[('partner_id', '=', commercial_invoice_partner_id), " "('state', 'in', ('draft', 'valid')), " "('company_id', '=', company_id)]", ) @@ -26,20 +29,25 @@ class SaleOrder(models.Model): def _prepare_invoice(self): """Copy mandate from sale order to invoice""" vals = super()._prepare_invoice() - vals["mandate_id"] = self.mandate_id.id or False + if self.mandate_id: + vals["mandate_id"] = self.mandate_id.id return vals - @api.depends("partner_id") + @api.depends("partner_invoice_id") def _compute_payment_mode(self): - """Select by default the first valid mandate of the partner""" - super()._compute_payment_mode() + """Select by default the first valid mandate of the invoicing partner""" + res = super()._compute_payment_mode() abm_obj = self.env["account.banking.mandate"] for order in self: - if order.mandate_required and order.partner_id: + if order.mandate_required and order.partner_invoice_id: mandate = abm_obj.search( [ ("state", "=", "valid"), - ("partner_id", "=", order.commercial_partner_id.id), + ( + "partner_id", + "=", + order.partner_invoice_id.commercial_partner_id.id, + ), ("company_id", "=", order.company_id.id), ], limit=1, @@ -47,3 +55,4 @@ class SaleOrder(models.Model): order.mandate_id = mandate or False else: order.mandate_id = False + return res diff --git a/account_banking_mandate_sale/views/sale_order.xml b/account_banking_mandate_sale/views/sale_order.xml index 1cab55954..5d1470d84 100644 --- a/account_banking_mandate_sale/views/sale_order.xml +++ b/account_banking_mandate_sale/views/sale_order.xml @@ -1,6 +1,6 @@ @@ -11,12 +11,12 @@ - + diff --git a/account_banking_mandate_sale/wizard/sale_make_invoice_advance.py b/account_banking_mandate_sale/wizard/sale_make_invoice_advance.py index bc91d6448..17037cec0 100644 --- a/account_banking_mandate_sale/wizard/sale_make_invoice_advance.py +++ b/account_banking_mandate_sale/wizard/sale_make_invoice_advance.py @@ -1,4 +1,4 @@ -# Copyright 2016-2020 Akretion (Alexis de Lattre ) +# Copyright 2016-2022 Akretion (Alexis de Lattre ) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from odoo import models diff --git a/setup/account_banking_mandate_sale/odoo/addons/account_banking_mandate_sale b/setup/account_banking_mandate_sale/odoo/addons/account_banking_mandate_sale new file mode 120000 index 000000000..8f89bfe9f --- /dev/null +++ b/setup/account_banking_mandate_sale/odoo/addons/account_banking_mandate_sale @@ -0,0 +1 @@ +../../../../account_banking_mandate_sale \ No newline at end of file diff --git a/setup/account_banking_mandate_sale/setup.py b/setup/account_banking_mandate_sale/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/account_banking_mandate_sale/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)