diff --git a/account_maturity_date_default/models/__init__.py b/account_maturity_date_default/models/__init__.py index 8795b3bea..0d5ab6a2f 100644 --- a/account_maturity_date_default/models/__init__.py +++ b/account_maturity_date_default/models/__init__.py @@ -1 +1,2 @@ +from . import account_move from . import account_move_line diff --git a/account_maturity_date_default/models/account_move.py b/account_maturity_date_default/models/account_move.py new file mode 100644 index 000000000..61fd8dc44 --- /dev/null +++ b/account_maturity_date_default/models/account_move.py @@ -0,0 +1,18 @@ +# Copyright 2021 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo import models + + +class AccountMove(models.Model): + _inherit = "account.move" + + def write(self, vals): + res = super().write(vals) + if vals.get("date"): + self.mapped("line_ids").filtered( + lambda x: ( + not x.date_maturity + and x.account_internal_type in {"receivable", "payable"} + ) + ).write({"date_maturity": vals["date"]}) + return res diff --git a/account_maturity_date_default/tests/test_account_move.py b/account_maturity_date_default/tests/test_account_move.py index 52e424df0..1c89bfb5e 100644 --- a/account_maturity_date_default/tests/test_account_move.py +++ b/account_maturity_date_default/tests/test_account_move.py @@ -56,6 +56,17 @@ class TestAccountMove(common.SavepointCase): invoice = move_form.save() return invoice + def test_invoice_move_update(self): + invoice = self._create_invoice() + invoice.line_ids.write({"date_maturity": False}) + invoice.write({"date": "1999-12-31"}) + invoice_line = invoice.line_ids.filtered( + lambda x: x.account_id.internal_type == "receivable" + ) + self.assertEqual( + invoice_line.date_maturity, fields.Date.from_string("1999-12-31") + ) + def test_invoice_reconciliation(self): invoice = self._create_invoice() invoice.action_post()