details:   https://code.tryton.org/tryton/commit/08ef103638c1
branch:    7.0
user:      Cédric Krier <[email protected]>
date:      Thu Oct 01 09:54:29 2026 +0200
description:
        Show price and currency fields on stock move when they are not required 
but still filled

        This is to let the user clear the invalid fields from past moves.

        Closes #14919
        (grafted from d5ace112f8a9315a6740ef75c2bda4cc8b94b90e)
diffstat:

 modules/stock/move.py |  14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diffs (38 lines):

diff -r 61a5c9347e3e -r 08ef103638c1 modules/stock/move.py
--- a/modules/stock/move.py     Fri Oct 02 01:13:04 2026 +0200
+++ b/modules/stock/move.py     Thu Oct 01 09:54:29 2026 +0200
@@ -276,8 +276,10 @@
         help="The company the stock move is associated with.")
     unit_price = fields.Numeric('Unit Price', digits=price_digits,
         states={
-            'invisible': ~Eval('unit_price_required'),
-            'required': Bool(Eval('unit_price_required')),
+            'invisible': (
+                ~Eval('unit_price_required', False)
+                & (Eval('unit_price', None) == None)),  # noqa: E711
+            'required': Eval('unit_price_required', False),
             'readonly': Eval('state') != 'draft',
             })
     unit_price_company = fields.Function(
@@ -295,7 +297,7 @@
     cost_price = fields.Numeric(
         "Cost Price", digits=price_digits, readonly=True,
         states={
-            'invisible': ~Eval('cost_price_required'),
+            'invisible': ~Eval('cost_price_required', False),
             'required': (
                 (Eval('state') == 'done')
                 & Eval('cost_price_required', False)),
@@ -309,8 +311,10 @@
         "when different from the cost price of the move.")
     currency = fields.Many2One('currency.currency', 'Currency',
         states={
-            'invisible': ~Eval('unit_price_required'),
-            'required': Bool(Eval('unit_price_required')),
+            'invisible': (
+                ~Eval('unit_price_required')
+                & (Eval('currency', None) == None)),  # noqa: E711
+            'required': Eval('unit_price_required', False),
             'readonly': Eval('state') != 'draft',
             },
         help="The currency in which the unit price is specified.")

Reply via email to