[FIX] account_financial_report: Amount accumulated several times using hierarchy

TT56255
This commit is contained in:
Carlos Dauden
2025-05-06 23:45:09 +02:00
parent 5cfc0dcc3e
commit 26c72726b6

View File

@@ -5,6 +5,7 @@
from odoo import _, api, models
from odoo.exceptions import UserError
from odoo.tools.float_utils import float_is_zero
@@ -687,8 +688,26 @@ class TrialBalanceReport(models.AbstractModel):
return trial_balance, total_amount_grouped
def _get_hierarchy_groups(self, group_ids, groups_data, foreign_currency):
for group_id in group_ids:
processed_groups = []
# Sort groups so that parent groups are processed before child groups
groups = (
self.env["account.group"]
.browse(group_ids)
.sorted(key=lambda x: x.complete_code)
)
for group in groups:
group_id = group.id
parent_id = groups_data[group_id]["parent_id"]
if group_id in processed_groups:
raise UserError(
_(
"There is a problem in the structure of the account groups. "
"You may need to create some child group of %s."
)
% groups_data[group_id]["name"]
)
else:
processed_groups.append(parent_id)
while parent_id:
if parent_id not in groups_data.keys():
group = self.env["account.group"].browse(parent_id)