From e50e358b936911abb0562c7b2513fb2a9cbbe85f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 22 Jul 2026 12:28:03 +0200 Subject: [PATCH] Make statement lines readonly when origins are filled Closes #14965 (grafted from ad46e99cf76bee15373625a6ea0ec4e57a58ff06) --HG-- branch : 8.0 --- modules/account_statement/statement.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/account_statement/statement.py b/modules/account_statement/statement.py index d8ec18ae40..92774e8e81 100644 --- a/modules/account_statement/statement.py +++ b/modules/account_statement/statement.py @@ -103,7 +103,10 @@ class Statement(Workflow, ModelSQL, ModelView, ChatMixin): states=_number_states) lines = fields.One2Many('account.statement.line', 'statement', 'Lines', states={ - 'readonly': (Eval('state') != 'draft') | ~Eval('journal'), + 'readonly': ( + (Eval('state') != 'draft') + | ~Eval('journal') + | Eval('origins', [])), }) origins = fields.One2Many('account.statement.origin', 'statement', "Origins", states={ @@ -252,11 +255,15 @@ class Statement(Workflow, ModelSQL, ModelView, ChatMixin): origin.lines = lines self.origins = origins - @fields.depends('lines') + @fields.depends('lines', 'origins') def on_change_lines(self): pool = Pool() Line = pool.get('account.statement.line') + if self.origins: + # let origin manage the pending amounts + return + invoices = {l.invoice for l in self.lines if l.invoice} invoice_id2amount_to_pay = {} for invoice in invoices: