From b670a30e1f67e079794c13344b9a4ca75dc1e1b2 Mon Sep 17 00:00:00 2001 From: Jared Esparza Date: Tue, 8 Aug 2023 13:13:12 +0200 Subject: [PATCH] Modify pay button to be readonly if sale is totally paid | #161602 --- sale.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/sale.py b/sale.py index 3ac0073..e12453f 100644 --- a/sale.py +++ b/sale.py @@ -7,7 +7,7 @@ from sql.conditionals import Coalesce from trytond.model import ModelView, fields from trytond.pool import PoolMeta, Pool -from trytond.pyson import Bool, Eval, Not +from trytond.pyson import Bool, Eval, Not, Or, Equal from trytond.transaction import Transaction from trytond.wizard import Wizard, StateView, StateTransition, Button from trytond.i18n import gettext @@ -37,11 +37,14 @@ class Sale(metaclass=PoolMeta): def __setup__(cls): super(Sale, cls).__setup__() cls._buttons.update({ - 'wizard_sale_payment': { - 'invisible': Eval('state') == 'done', - 'readonly': Not(Bool(Eval('lines'))), - }, - }) + 'wizard_sale_payment': { + 'invisible': Eval('state') == 'done', + 'readonly': Or( + Not(Bool(Eval('lines'))), + Equal(Eval('residual_amount', 0), 0) + ), + }, + }) @staticmethod def default_sale_device():