From 422b9be13ed68315eed561137a67e717635bb573 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Thu, 8 Sep 2022 12:37:22 +0200 Subject: [PATCH] [IMP] account_financial_report: Hide values that have the same currency as the company currency An amount_different_company_currency cell type is added to apply the following logic: - If the currency is the same as the company's currency, we will leave the value empty. - If the currency is different from the company's currency, we will show the value. TT38722 --- .../report/abstract_report_xlsx.py | 16 ++++++++++++++++ .../report/general_ledger_xlsx.py | 6 ++++-- .../report/templates/general_ledger.xml | 3 +++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/account_financial_report/report/abstract_report_xlsx.py b/account_financial_report/report/abstract_report_xlsx.py index 4b6bd55c..b19566c0 100644 --- a/account_financial_report/report/abstract_report_xlsx.py +++ b/account_financial_report/report/abstract_report_xlsx.py @@ -237,6 +237,22 @@ class AbstractReportXslx(models.AbstractModel): for col_pos, column in report_data["columns"].items(): value = line_dict.get(column["field"], False) cell_type = column.get("type", "string") + # We will use a special cell type according to the currency of + # record and the company's currency: + # - If the currency is the same as the company's currency, we will leave + # the value empty. + # - If the currency is different from the company's currency, we will + # show the value. + if cell_type == "amount_different_company_currency": + if line_dict.get("currency_id") and line_dict.get( + "company_currency_id" + ): + if line_dict["currency_id"] == line_dict["company_currency_id"]: + value = "" + cell_type = "string" + else: + cell_type = "amount_currency" + # All conditions according to cell type. if cell_type == "string": if line_dict.get("type", "") == "group_type": report_data["sheet"].write_string( diff --git a/account_financial_report/report/general_ledger_xlsx.py b/account_financial_report/report/general_ledger_xlsx.py index e92ca35c..b182850f 100644 --- a/account_financial_report/report/general_ledger_xlsx.py +++ b/account_financial_report/report/general_ledger_xlsx.py @@ -78,13 +78,13 @@ class GeneralLedgerXslx(models.AbstractModel): "field": "bal_curr", "field_initial_balance": "initial_bal_curr", "field_final_balance": "final_bal_curr", - "type": "amount_currency", + "type": "amount_different_company_currency", "width": 10, }, { "header": _("Cumul cur."), "field": "total_bal_curr", - "type": "amount_currency", + "type": "amount_different_company_currency", "width": 10, }, ] @@ -182,6 +182,7 @@ class GeneralLedgerXslx(models.AbstractModel): { "account": account["code"], "journal": journals_data[line["journal_id"]]["code"], + "company_currency_id": company_currency.id, } ) if line["currency_id"]: @@ -265,6 +266,7 @@ class GeneralLedgerXslx(models.AbstractModel): { "account": account["code"], "journal": journals_data[line["journal_id"]]["code"], + "company_currency_id": company_currency.id, } ) if line["currency_id"]: diff --git a/account_financial_report/report/templates/general_ledger.xml b/account_financial_report/report/templates/general_ledger.xml index 69755b47..1ca2c8a6 100644 --- a/account_financial_report/report/templates/general_ledger.xml +++ b/account_financial_report/report/templates/general_ledger.xml @@ -591,6 +591,7 @@
@@ -600,6 +601,7 @@ view-type="form" t-raw="line['bal_curr']" t-options="{'widget': 'monetary', 'display_currency': line_currency}" + t-if="line_currency!=company_currency" />
@@ -610,6 +612,7 @@ view-type="form" t-raw="total_bal_curr" t-options="{'widget': 'monetary', 'display_currency': line_currency}" + t-if="line_currency!=company_currency" />