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(