From eb5d8e6cd147052ca26d283473001f060a36eec3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 27 Mar 2025 23:07:41 +0100 Subject: [PATCH] Make lines of sales, subscriptions and purchases read only without a company and currency Closes #13948 (grafted from 47c126ef770e2da3227eaaf10b64398d9b27d6e9) --HG-- branch : 7.0 --- modules/purchase/purchase.py | 10 ++++++++-- modules/sale/sale.py | 12 ++++++++---- modules/sale_subscription/subscription.py | 7 +++++-- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py index 50d9ebe91f..81bc740266 100644 --- a/modules/purchase/purchase.py +++ b/modules/purchase/purchase.py @@ -150,8 +150,14 @@ class Purchase( 'readonly': ((Eval('state') != 'draft') | (Eval('lines', [0]) & Eval('currency'))), }) - lines = fields.One2Many('purchase.line', 'purchase', 'Lines', - states=_states) + lines = fields.One2Many( + 'purchase.line', 'purchase', "Lines", + states={ + 'readonly': ( + (Eval('state') != 'draft') + | ~Eval('company') + | ~Eval('currency')), + }) comment = fields.Text('Comment') untaxed_amount = fields.Function(Monetary( "Untaxed", currency='currency', digits='currency'), diff --git a/modules/sale/sale.py b/modules/sale/sale.py index d57bbfa3d6..c2fba0eed8 100644 --- a/modules/sale/sale.py +++ b/modules/sale/sale.py @@ -177,10 +177,14 @@ class Sale( 'readonly': ((Eval('state') != 'draft') | (Eval('lines', [0]) & Eval('currency', 0))), }) - lines = fields.One2Many('sale.line', 'sale', 'Lines', states={ - 'readonly': Eval('state') != 'draft', - }, - depends={'party'}) + lines = fields.One2Many( + 'sale.line', 'sale', "Lines", + states={ + 'readonly': ( + (Eval('state') != 'draft') + | ~Eval('company') + | ~Eval('currency')), + }) comment = fields.Text('Comment') untaxed_amount = fields.Function(Monetary( "Untaxed", digits='currency', currency='currency'), 'get_amount') diff --git a/modules/sale_subscription/subscription.py b/modules/sale_subscription/subscription.py index 71b4ac182d..c43a9da455 100644 --- a/modules/sale_subscription/subscription.py +++ b/modules/sale_subscription/subscription.py @@ -146,8 +146,11 @@ class Subscription(Workflow, ModelSQL, ModelView): lines = fields.One2Many( 'sale.subscription.line', 'subscription', "Lines", states={ - 'readonly': ((Eval('state') != 'draft') - | ~Eval('start_date')), + 'readonly': ( + (Eval('state') != 'draft') + | ~Eval('start_date') + | ~Eval('company') + | ~Eval('currency')), }) quoted_by = employee_field(