[FIX] account_financial_report: Amount accumulated several times using hierarchy
TT56255
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
|
|
||||||
from odoo import _, api, models
|
from odoo import _, api, models
|
||||||
|
from odoo.exceptions import UserError
|
||||||
from odoo.tools.float_utils import float_is_zero
|
from odoo.tools.float_utils import float_is_zero
|
||||||
|
|
||||||
|
|
||||||
@@ -687,8 +688,26 @@ class TrialBalanceReport(models.AbstractModel):
|
|||||||
return trial_balance, total_amount_grouped
|
return trial_balance, total_amount_grouped
|
||||||
|
|
||||||
def _get_hierarchy_groups(self, group_ids, groups_data, foreign_currency):
|
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"]
|
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:
|
while parent_id:
|
||||||
if parent_id not in groups_data.keys():
|
if parent_id not in groups_data.keys():
|
||||||
group = self.env["account.group"].browse(parent_id)
|
group = self.env["account.group"].browse(parent_id)
|
||||||
|
|||||||
Reference in New Issue
Block a user