changeset 00f9666116e5 in modules/account:5.0
details: https://hg.tryton.org/modules/account?cmd=changeset&node=00f9666116e5
description:
Compute income statement on either dates or periods
issue11040
review389391002
(grafted from bd9dd211985fd9391f1951154e77d90f627c2155)
diffstat:
account.py | 52 +++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 45 insertions(+), 7 deletions(-)
diffs (87 lines):
diff -r 9d1230fd6b98 -r 00f9666116e5 account.py
--- a/account.py Thu Dec 16 22:42:53 2021 +0100
+++ b/account.py Tue Dec 21 23:09:53 2021 +0100
@@ -1834,27 +1834,41 @@
('fiscalyear', '=', Eval('fiscalyear')),
('start_date', '<=', (Eval('end_period'), 'start_date'))
],
- depends=['end_period', 'fiscalyear'])
+ states={
+ 'invisible': Eval('from_date', False) | Eval('to_date', False),
+ },
+ depends=['end_period', 'fiscalyear', 'from_date', 'to_date'])
end_period = fields.Many2One('account.period', 'End Period',
domain=[
('fiscalyear', '=', Eval('fiscalyear')),
('start_date', '>=', (Eval('start_period'), 'start_date')),
],
- depends=['start_period', 'fiscalyear'])
+ states={
+ 'invisible': Eval('from_date', False) | Eval('to_date', False),
+ },
+ depends=['start_period', 'fiscalyear', 'from_date', 'to_date'])
from_date = fields.Date("From Date",
domain=[
If(Eval('to_date') & Eval('from_date'),
('from_date', '<=', Eval('to_date')),
()),
],
- depends=['to_date'])
+ states={
+ 'invisible': (
+ Eval('start_period', False) | Eval('end_period', False)),
+ },
+ depends=['to_date', 'start_period', 'end_period'])
to_date = fields.Date("To Date",
domain=[
If(Eval('from_date') & Eval('to_date'),
('to_date', '>=', Eval('from_date')),
()),
],
- depends=['from_date'])
+ states={
+ 'invisible': (
+ Eval('start_period', False) | Eval('end_period', False)),
+ },
+ depends=['from_date', 'start_period', 'end_period'])
company = fields.Many2One('company.company', 'Company', required=True)
posted = fields.Boolean('Posted Move', help='Show only posted move')
comparison = fields.Boolean('Comparison')
@@ -1924,10 +1938,34 @@
def default_comparison(cls):
return False
- @fields.depends('fiscalyear')
+ @fields.depends('fiscalyear', 'start_period', 'end_period')
def on_change_fiscalyear(self):
- self.start_period = None
- self.end_period = None
+ if (self.start_period
+ and self.start_period.fiscalyear != self.fiscalyear):
+ self.start_period = None
+ if (self.end_period
+ and self.end_period.fiscalyear != self.fiscalyear):
+ self.end_period = None
+
+ @fields.depends('start_period')
+ def on_change_start_period(self):
+ if self.start_period:
+ self.from_date = self.to_date = None
+
+ @fields.depends('end_period')
+ def on_change_end_period(self):
+ if self.end_period:
+ self.from_date = self.to_date = None
+
+ @fields.depends('from_date')
+ def on_change_from_date(self):
+ if self.from_date:
+ self.start_period = self.end_period = None
+
+ @fields.depends('to_date')
+ def on_change_to_date(self):
+ if self.to_date:
+ self.start_period = self.end_period = None
@classmethod
def view_attributes(cls):