changeset 92522a1c18a2 in modules/account_statement:default
details: 
https://hg.tryton.org/modules/account_statement?cmd=changeset&node=92522a1c18a2
description:
        Require party on statement line if account requires one

        issue5881
        review26651002
diffstat:

 CHANGELOG    |   2 ++
 statement.py |  12 ++++++++++++
 2 files changed, 14 insertions(+), 0 deletions(-)

diffs (45 lines):

diff -r c79d6ac1a6d0 -r 92522a1c18a2 CHANGELOG
--- a/CHANGELOG Sat May 07 11:35:14 2022 +0200
+++ b/CHANGELOG Tue Aug 02 09:37:51 2022 +0200
@@ -1,3 +1,5 @@
+* Require party on statement line if account requires one
+
 Version 6.4.0 - 2022-05-02
 * Bug fixes (see mercurial logs for details)
 * Use reference field for statement line relation
diff -r c79d6ac1a6d0 -r 92522a1c18a2 statement.py
--- a/statement.py      Sat May 07 11:35:14 2022 +0200
+++ b/statement.py      Tue Aug 02 09:37:51 2022 +0200
@@ -769,6 +769,8 @@
             ('statement', '=', Eval('statement', -1)),
             ('date', '=', Eval('date', None)),
             ])
+    party_required = fields.Function(
+        fields.Boolean("Party Required"), 'on_change_with_party_required')
 
     @classmethod
     def __setup__(cls):
@@ -779,6 +781,10 @@
                 | Bool(Eval('origin', 0))),
             }
         cls.account.required = True
+        cls.party.states = {
+            'required': (Eval('party_required', False)
+                & (Eval('statement_state') == 'draft')),
+            }
         t = cls.__table__()
         cls._sql_constraints += [
             ('check_statement_line_amount', Check(t, t.amount != 0),
@@ -815,6 +821,12 @@
     def invoice(self, value):
         self.related_to = value
 
+    @fields.depends('account')
+    def on_change_with_party_required(self, name=None):
+        if self.account:
+            return self.account.party_required
+        return False
+
     @staticmethod
     def default_amount():
         return Decimal(0)

Reply via email to