From c7b93a6c76f9cdae1595e181a4ac79d2caa93cb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Thu, 15 Feb 2024 10:44:48 +0100 Subject: [PATCH] [IMP] account_financial_report: Add Missing partner support in trial balance If there are records without partner_id set and we show the detail of partners we need to take into account those records grouped as "Missing partner". TT47771 --- .../report/trial_balance.py | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/account_financial_report/report/trial_balance.py b/account_financial_report/report/trial_balance.py index da37df5c..72304244 100644 --- a/account_financial_report/report/trial_balance.py +++ b/account_financial_report/report/trial_balance.py @@ -4,7 +4,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo import api, models +from odoo import _, api, models from odoo.tools.float_utils import float_is_zero @@ -280,31 +280,31 @@ class TrialBalanceReport(models.AbstractModel): partners_data = {} for tb in tb_period_prt: acc_id = tb["account_id"][0] - if tb["partner_id"]: - prt_id = tb["partner_id"][0] - if tb["partner_id"] not in partners_ids: - partners_data.update( - {prt_id: {"id": prt_id, "name": tb["partner_id"][1]}} - ) - total_amount[acc_id][prt_id] = self._prepare_total_amount( - tb, foreign_currency + prt_id = tb["partner_id"][0] if tb["partner_id"] else 0 + if prt_id not in partners_ids: + partner_name = ( + tb["partner_id"][1] if tb["partner_id"] else _("Missing Partner") ) - total_amount[acc_id][prt_id]["credit"] = tb["credit"] - total_amount[acc_id][prt_id]["debit"] = tb["debit"] - total_amount[acc_id][prt_id]["balance"] = tb["balance"] - total_amount[acc_id][prt_id]["initial_balance"] = 0.0 - partners_ids.add(tb["partner_id"]) + partners_data.update({prt_id: {"id": prt_id, "name": partner_name}}) + total_amount[acc_id][prt_id] = self._prepare_total_amount( + tb, foreign_currency + ) + total_amount[acc_id][prt_id]["credit"] = tb["credit"] + total_amount[acc_id][prt_id]["debit"] = tb["debit"] + total_amount[acc_id][prt_id]["balance"] = tb["balance"] + total_amount[acc_id][prt_id]["initial_balance"] = 0.0 + partners_ids.add(prt_id) for tb in tb_initial_prt: acc_id = tb["account_id"][0] - if tb["partner_id"]: - prt_id = tb["partner_id"][0] - if tb["partner_id"] not in partners_ids: - partners_data.update( - {prt_id: {"id": prt_id, "name": tb["partner_id"][1]}} - ) - total_amount = self._compute_acc_prt_amount( - total_amount, tb, acc_id, prt_id, foreign_currency + prt_id = tb["partner_id"][0] if tb["partner_id"] else 0 + if prt_id not in partners_ids: + partner_name = ( + tb["partner_id"][1] if tb["partner_id"] else _("Missing Partner") ) + partners_data.update({prt_id: {"id": prt_id, "name": partner_name}}) + total_amount = self._compute_acc_prt_amount( + total_amount, tb, acc_id, prt_id, foreign_currency + ) return total_amount, partners_data def _remove_accounts_at_cero(self, total_amount, show_partner_details, company):