Merge PR #1379 into 18.0

Signed-off-by pedrobaeza
This commit is contained in:
OCA-git-bot
2025-08-11 18:36:57 +00:00
2 changed files with 24 additions and 40 deletions

View File

@@ -191,8 +191,7 @@ class GeneralLedgerReport(models.AbstractModel):
acc_id = gl["account_id"][0] acc_id = gl["account_id"][0]
data[acc_id] = self._prepare_gen_ld_data_item(gl) data[acc_id] = self._prepare_gen_ld_data_item(gl)
data[acc_id]["id"] = acc_id data[acc_id]["id"] = acc_id
if grouped_by: data[acc_id][grouped_by] = False
data[acc_id][grouped_by] = False
method = f"_prepare_gen_ld_data_group_{grouped_by}" method = f"_prepare_gen_ld_data_group_{grouped_by}"
if not hasattr(self, method): if not hasattr(self, method):
return data return data
@@ -503,15 +502,13 @@ class GeneralLedgerReport(models.AbstractModel):
gen_ld_data[acc_id] = self._initialize_data(foreign_currency) gen_ld_data[acc_id] = self._initialize_data(foreign_currency)
gen_ld_data[acc_id]["id"] = acc_id gen_ld_data[acc_id]["id"] = acc_id
gen_ld_data[acc_id]["mame"] = move_line["account_id"][1] gen_ld_data[acc_id]["mame"] = move_line["account_id"][1]
if grouped_by: gen_ld_data[acc_id][grouped_by] = False
gen_ld_data[acc_id][grouped_by] = False
if acc_id in acc_prt_account_ids: if acc_id in acc_prt_account_ids:
item_ids = self._prepare_ml_items(move_line, grouped_by) item_ids = self._prepare_ml_items(move_line, grouped_by)
for item in item_ids: for item in item_ids:
item_id = item["id"] item_id = item["id"]
if item_id not in gen_ld_data[acc_id]: if item_id not in gen_ld_data[acc_id]:
if grouped_by: gen_ld_data[acc_id][grouped_by] = True
gen_ld_data[acc_id][grouped_by] = True
gen_ld_data[acc_id][item_id] = self._initialize_data( gen_ld_data[acc_id][item_id] = self._initialize_data(
foreign_currency foreign_currency
) )
@@ -662,7 +659,7 @@ class GeneralLedgerReport(models.AbstractModel):
"grouped_by": grouped_by, "grouped_by": grouped_by,
} }
) )
if grouped_by and not gen_led_data[acc_id][grouped_by]: if not gen_led_data[acc_id][grouped_by]:
account = self._create_account( account = self._create_account(
account, acc_id, gen_led_data, rec_after_date_to_ids account, acc_id, gen_led_data, rec_after_date_to_ids
) )
@@ -676,37 +673,23 @@ class GeneralLedgerReport(models.AbstractModel):
): ):
continue continue
else: else:
if grouped_by: account, list_grouped = self._get_list_grouped_item(
account, list_grouped = self._get_list_grouped_item( gen_led_data[acc_id],
gen_led_data[acc_id], account,
account, rec_after_date_to_ids,
rec_after_date_to_ids, hide_account_at_0,
hide_account_at_0, rounding,
rounding, )
account.update({"list_grouped": list_grouped})
if (
hide_account_at_0
and float_is_zero(
gen_led_data[acc_id]["init_bal"]["balance"],
precision_rounding=rounding,
) )
account.update({"list_grouped": list_grouped}) and account["list_grouped"] == []
if ( ):
hide_account_at_0 continue
and float_is_zero(
gen_led_data[acc_id]["init_bal"]["balance"],
precision_rounding=rounding,
)
and account["list_grouped"] == []
):
continue
else:
account = self._create_account_not_show_item(
account, acc_id, gen_led_data, rec_after_date_to_ids, grouped_by
)
if (
hide_account_at_0
and float_is_zero(
gen_led_data[acc_id]["init_bal"]["balance"],
precision_rounding=rounding,
)
and account["move_lines"] == []
):
continue
general_ledger += [account] general_ledger += [account]
return general_ledger return general_ledger
@@ -755,7 +738,7 @@ class GeneralLedgerReport(models.AbstractModel):
centralized_ml = {} centralized_ml = {}
if isinstance(date_to, str): if isinstance(date_to, str):
date_to = datetime.datetime.strptime(date_to, "%Y-%m-%d").date() date_to = datetime.datetime.strptime(date_to, "%Y-%m-%d").date()
if grouped_by and account[grouped_by]: if account[grouped_by]:
for item in account["list_grouped"]: for item in account["list_grouped"]:
for move_line in item["move_lines"]: for move_line in item["move_lines"]:
centralized_ml = self._calculate_centralization( centralized_ml = self._calculate_centralization(
@@ -846,7 +829,7 @@ class GeneralLedgerReport(models.AbstractModel):
gen_ld_data[account["id"]]["init_bal"]["balance"], gen_ld_data[account["id"]]["init_bal"]["balance"],
rec_after_date_to_ids, rec_after_date_to_ids,
) )
if grouped_by and account[grouped_by]: if account[grouped_by]:
account[grouped_by] = False account[grouped_by] = False
del account["list_grouped"] del account["list_grouped"]
general_ledger = sorted(general_ledger, key=lambda k: k["code"]) general_ledger = sorted(general_ledger, key=lambda k: k["code"])

View File

@@ -76,8 +76,9 @@ class GeneralLedgerReportWizard(models.TransientModel):
help="Ending account in a range", help="Ending account in a range",
) )
grouped_by = fields.Selection( grouped_by = fields.Selection(
selection=[("", "None"), ("partners", "Partners"), ("taxes", "Taxes")], selection=[("none", "None"), ("partners", "Partners"), ("taxes", "Taxes")],
default="partners", default="partners",
required=True,
) )
show_cost_center = fields.Boolean( show_cost_center = fields.Boolean(
string="Show Analytic Account", string="Show Analytic Account",