changeset 4a7701368f61 in modules/account_statement:default
details:
https://hg.tryton.org/modules/account_statement?cmd=changeset&node=4a7701368f61
description:
Do no copy lines when statement has origins
issue11182
review366631002
diffstat:
statement.py | 20 ++++++++++++++++++++
tests/scenario_statement_origin.rst | 4 ++++
2 files changed, 24 insertions(+), 0 deletions(-)
diffs (48 lines):
diff -r e8967555ced0 -r 4a7701368f61 statement.py
--- a/statement.py Sun Jan 30 13:06:39 2022 +0100
+++ b/statement.py Sun Jan 30 13:16:08 2022 +0100
@@ -651,6 +651,20 @@
def reconcile(cls, statements):
pass
+ @classmethod
+ def copy(cls, statements, default=None):
+ default = default.copy() if default is not None else {}
+ new_statements = []
+ for origins, sub_statements in groupby(
+ statements, key=lambda s: bool(s.origins)):
+ sub_statements = list(sub_statements)
+ sub_default = default.copy()
+ if origins:
+ sub_default.setdefault('lines')
+ new_statements.extend(super().copy(
+ statements, default=sub_default))
+ return new_statements
+
def origin_mixin(_states, _depends):
class Mixin:
@@ -1125,6 +1139,12 @@
group_by=table.id))
return [('id', 'in', query)]
+ @classmethod
+ def copy(cls, origins, default=None):
+ default = default.copy() if default is not None else {}
+ default.setdefault('lines')
+ return super().copy(origins, default=default)
+
del _states, _depends
diff -r e8967555ced0 -r 4a7701368f61 tests/scenario_statement_origin.rst
--- a/tests/scenario_statement_origin.rst Sun Jan 30 13:06:39 2022 +0100
+++ b/tests/scenario_statement_origin.rst Sun Jan 30 13:16:08 2022 +0100
@@ -98,3 +98,7 @@
>>> report = Report('account.statement')
>>> _ = report.execute([statement], {})
+
+Test copy statement::
+
+ >>> _ = statement.duplicate()