Require party on statement line if account requires one

issue5881
review26651002
This commit is contained in:
Sergi Almacellas Abellana
2022-08-02 09:37:51 +02:00
parent e8cd7bcaba
commit 380035d686
2 changed files with 14 additions and 0 deletions
+2
View File
@@ -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
+12
View File
@@ -769,6 +769,8 @@ class Line(origin_mixin(_states), sequence_ordered(), ModelSQL, ModelView):
('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 @@ class Line(origin_mixin(_states), sequence_ordered(), ModelSQL, ModelView):
| 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 @@ class Line(origin_mixin(_states), sequence_ordered(), ModelSQL, ModelView):
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)