From dfc62485d078a338f61704893a7da561cd07e032 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 28 Feb 2026 15:26:23 +0100 Subject: [PATCH] Sort statement lines per origin before creating moves Closes #13941 (grafted from 9b3a8fcbe0f6b3f46150f7bba2986f9da7e3ab41) --HG-- branch : 6.0 --- modules/account_statement/statement.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/account_statement/statement.py b/modules/account_statement/statement.py index 808dee582c..fc201799f1 100644 --- a/modules/account_statement/statement.py +++ b/modules/account_statement/statement.py @@ -547,8 +547,16 @@ class Statement(Workflow, ModelSQL, ModelView): moves = [] for statement in statements: - for key, lines in groupby( - statement.lines, key=statement._group_key): + if statement.origins: + origin_index = { + o: index for index, o in enumerate(statement.origins)} + size = len(statement.origins) + sorted_lines = sorted( + statement.lines, + key=lambda l: origin_index.get(l.origin, size)) + else: + sorted_lines = statement.lines + for key, lines in groupby(sorted_lines, key=statement._group_key): lines = list(lines) key = dict(key) move = statement._get_move(key)