From 7e7e3fad8749fd1b4dd4336eb334fe79fc9128c2 Mon Sep 17 00:00:00 2001 From: Patrick T Date: Fri, 1 Jul 2022 09:33:22 +0200 Subject: [PATCH] [MIG][l10n_it_account_balance_report] mig. to v. 14.0 --- .../__manifest__.py | 13 +- l10n_it_account_balance_report/i18n/it.po | 778 ------------------ .../i18n/l10n_it_account_balance_report.pot | 393 ++++----- .../models/account_account.py | 12 +- .../report/__init__.py | 2 +- .../report/account_balance_report.py | 772 ++++++++++++++--- .../report/account_balance_report_xlsx.py | 415 +++++----- .../report/reports.xml | 63 +- .../templates/account_balance_report.xml | 278 +++---- .../report/trial_balance.py | 38 + .../report/trial_balance_report.py | 48 -- .../security/ir.model.access.csv | 4 + .../static/src/xml/report.xml | 13 + .../views/action_client.xml | 2 +- .../wizard/wizard_account_balance_report.py | 37 +- .../wizard/wizard_account_balance_report.xml | 6 +- setup/_metapackage/VERSION.txt | 1 - setup/_metapackage/setup.py | 70 -- 18 files changed, 1310 insertions(+), 1635 deletions(-) delete mode 100644 l10n_it_account_balance_report/i18n/it.po create mode 100644 l10n_it_account_balance_report/report/trial_balance.py delete mode 100644 l10n_it_account_balance_report/report/trial_balance_report.py create mode 100644 l10n_it_account_balance_report/security/ir.model.access.csv create mode 100644 l10n_it_account_balance_report/static/src/xml/report.xml delete mode 100644 setup/_metapackage/VERSION.txt delete mode 100644 setup/_metapackage/setup.py diff --git a/l10n_it_account_balance_report/__manifest__.py b/l10n_it_account_balance_report/__manifest__.py index 661813c3f7d6..d8976296d39a 100644 --- a/l10n_it_account_balance_report/__manifest__.py +++ b/l10n_it_account_balance_report/__manifest__.py @@ -5,20 +5,22 @@ { "name": "ITA - Stato patrimoniale e conto economico", - "summary": "Rendicontazione .pdf e .xls per stato patrimoniale e conto" + "summary": "Rendicontazione .pdf per stato patrimoniale e conto" " economico a sezioni contrapposte", - "version": "12.0.1.0.3", + "version": "14.0.1.0.0", "category": "Localisation/Italy", "author": "Odoo Community Association (OCA), Openforce", - "maintainers": ["SilvioGregorini"], "website": "https://github.com/OCA/l10n-italy" "/l10n_it_account_balance_report", "license": "AGPL-3", "depends": [ + "account", "account_financial_report", - "account_type_menu", + "account_menu", "l10n_it_account", + "web", ], "data": [ + "security/ir.model.access.csv", "data/account_type.xml", "report/templates/account_balance_report.xml", "report/reports.xml", @@ -26,5 +28,8 @@ "views/account_types.xml", "wizard/wizard_account_balance_report.xml", ], + "qweb": [ + "static/src/xml/report.xml", + ], "installable": True, } diff --git a/l10n_it_account_balance_report/i18n/it.po b/l10n_it_account_balance_report/i18n/it.po deleted file mode 100644 index 6da85311b0e8..000000000000 --- a/l10n_it_account_balance_report/i18n/it.po +++ /dev/null @@ -1,778 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * l10n_it_account_balance_report -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-05 15:44+0000\n" -"PO-Revision-Date: 2021-12-28 10:39+0000\n" -"Last-Translator: Sergio Corato \n" -"Language-Team: \n" -"Language: it\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.3.2\n" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:188 -#, python-format -msgid "ASSETS" -msgstr "ATTIVITÀ" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:150 -#: model:ir.model,name:l10n_it_account_balance_report.model_account_account -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__account_ids -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__account_id -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_lines_header -#, python-format -msgid "Account" -msgstr "Conto" - -#. module: l10n_it_account_balance_report -#: model:ir.actions.client,name:l10n_it_account_balance_report.action_account_balance_report -msgid "Account Balance" -msgstr "Bilancio Contabile" - -#. module: l10n_it_account_balance_report -#: model:ir.actions.act_window,name:l10n_it_account_balance_report.action_account_balance_wizard -#: model:ir.ui.menu,name:l10n_it_account_balance_report.menu_account_balance_wizard -msgid "Account Balance Report" -msgstr "Stampa Bilancio Contabile" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_account__account_balance_report_section -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_account_type__account_balance_report_section -msgid "Account Balance Report - Section" -msgstr "Bilancio Contabile - Sezione" - -#. module: l10n_it_account_balance_report -#: model:ir.actions.report,name:l10n_it_account_balance_report.report_account_balance_report_html -msgid "Account Balance Report HTML" -msgstr "Bilancio Contabile in HTML" - -#. module: l10n_it_account_balance_report -#: model:ir.actions.report,name:l10n_it_account_balance_report.report_account_balance_report_pdf -msgid "Account Balance Report PDF" -msgstr "Bilancio Contabile in PDF" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__account_balance_report_type -msgid "Account Balance Report Type" -msgstr "Tipo di bilancio contabile" - -#. module: l10n_it_account_balance_report -#: model:ir.actions.report,name:l10n_it_account_balance_report.report_account_balance_report_xlsx -msgid "Account Balance Report XLSX" -msgstr "Bilancio contabile in XLSX" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__account_group_id -msgid "Account Group" -msgstr "Gruppo contabile" - -#. module: l10n_it_account_balance_report -#: model:ir.model,name:l10n_it_account_balance_report.model_account_account_type -msgid "Account Type" -msgstr "Tipo conto" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:120 -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters -#, python-format -msgid "Account at 0 filter" -msgstr "Filtro conto a 0" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:119 -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters -#, python-format -msgid "All entries" -msgstr "Tutte le registrazioni" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:117 -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters -#, python-format -msgid "All posted entries" -msgstr "Tutte le registrazioni confermate" - -#. module: l10n_it_account_balance_report -#: selection:account.account.type,account_balance_report_section:0 -msgid "Assets" -msgstr "Attività" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:194 -#, python-format -msgid "BALANCE SHEET" -msgstr "STATO PATRIMONIALE" - -#. module: l10n_it_account_balance_report -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_totals -msgid "BALANCE:" -msgstr "SALDO:" - -#. module: l10n_it_account_balance_report -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.wizard_report_account_balance_report -msgid "" -"Balance Report can be computed only if selected\n" -" company have only one unaffected earnings " -"account." -msgstr "" -"Il Bilancio Contabile può essere calcolato solo se l'azienda selezionata\n" -" ha un solo conto di risultato economico." - -#. module: l10n_it_account_balance_report -#: selection:account_balance_report,account_balance_report_type:0 -#: selection:trial.balance.report.wizard,account_balance_report_type:0 -msgid "Balance Sheet" -msgstr "Stato patrimoniale" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:199 -#, python-format -msgid "COSTS" -msgstr "COSTI" - -#. module: l10n_it_account_balance_report -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.wizard_report_account_balance_report -msgid "Cancel" -msgstr "Annulla" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:337 -#, python-format -msgid "Cannot filter lines with attribute `{}`." -msgstr "Impossibile filtrare righe con attributo `{}`." - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:332 -#, python-format -msgid "Cannot filter lines with function `{}({})`." -msgstr "Impossibile filtrare righe con la funzione `{}({})`." - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:340 -#, python-format -msgid "Cannot filter lines with unknown parameter." -msgstr "Impossibile filtrare righe con parametro sconosciuto." - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__child_account_ids -msgid "Child accounts" -msgstr "Conti figli" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:145 -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__code -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_lines_header -#, python-format -msgid "Code" -msgstr "Codice" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__company_id -msgid "Company" -msgstr "Azienda" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__compute_account_ids -msgid "Compute accounts" -msgstr "Calcolare conti" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,help:l10n_it_account_balance_report.field_account_balance_report__hierarchy_on -msgid "" -"Computed Accounts: Use when the account group have codes\n" -" that represent prefixes of the actual accounts.\n" -"\n" -" Child Accounts: Use when your account groups are hierarchical.\n" -"\n" -" No hierarchy: Use to display just the accounts, without any " -"grouping.\n" -" " -msgstr "" -"Conti calcolati: utilizzato quando i gruppi di conti hanno codici\n" -" che rappresentano il prefisso dei conti effettivi.\n" -"\n" -" Conti figli: utilizzato quando i gruppi di conti sono gerarchici.\n" -"\n" -" Nessuna gerarchia: utilizzato per visualizzare solo i conti, senza " -"alcun raggruppo.\n" -" " - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:286 -#, python-format -msgid "" -"Could not retrieve table datas for report '{}': no lines found to be printed." -msgstr "" -"Impossibile recuperare i dati tabella per il rendiconto \"{}\": nessuna riga " -"da stampare trovata." - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:291 -#, python-format -msgid "" -"Could not retrieve table datas for report '{}': unknown columns to be " -"printed." -msgstr "" -"Impossibile recuperare i dati tabella per il rendiconto \"{}\": colonne da " -"stampare sconosciute." - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__create_uid -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__create_uid -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__create_uid -msgid "Created by" -msgstr "Creato da" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__create_date -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__create_date -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__create_date -msgid "Created on" -msgstr "Creato il" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__credit -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__credit -msgid "Credit" -msgstr "Avere" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:163 -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_lines_header -#, python-format -msgid "Cur." -msgstr "Val." - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__currency_id -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__currency_id -msgid "Currency" -msgstr "Valuta" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:541 -#, python-format -msgid "DEFICIT" -msgstr "DISAVANZO" - -#. module: l10n_it_account_balance_report -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_totals -msgid "DEFICIT:" -msgstr "DISAVANZO:" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__date_from -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__date_from -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__date_from -msgid "Date From" -msgstr "Dalla data" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__date_to -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__date_to -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__date_to -msgid "Date To" -msgstr "Alla data" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:114 -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters -#, python-format -msgid "Date range filter" -msgstr "Filtro intervallo date" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__debit -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__debit -msgid "Debit" -msgstr "Dare" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__display_name -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__display_name -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__display_name -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_report_l10n_it_a_b_r_account_balance_report_xlsx__display_name -msgid "Display Name" -msgstr "Nome visualizzato" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__hide_parent_hierarchy_level -msgid "Do not display parent levels" -msgstr "Non visualizzare livelli genitori" - -#. module: l10n_it_account_balance_report -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_lines_header -msgid "Ending balance" -msgstr "Saldo finale" - -#. module: l10n_it_account_balance_report -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_lines_header -msgid "Ending balance cur." -msgstr "Valuta saldo finale" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:167 -#, python-format -msgid "Ending balance in cur." -msgstr "Saldo finale in valuta" - -#. module: l10n_it_account_balance_report -#: selection:account.account.type,account_balance_report_section:0 -msgid "Expenses" -msgstr "Spese" - -#. module: l10n_it_account_balance_report -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.wizard_report_account_balance_report -msgid "Export PDF" -msgstr "Esporta PDF" - -#. module: l10n_it_account_balance_report -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.wizard_report_account_balance_report -msgid "Export XLSX" -msgstr "Esporta XLSX" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__filter_account_ids -msgid "Filter Account" -msgstr "Filtro conto" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__filter_journal_ids -msgid "Filter Journal" -msgstr "Filtro registro" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__filter_partner_ids -msgid "Filter Partner" -msgstr "Filtro partner" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__final_balance -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__final_balance -msgid "Final Balance" -msgstr "Saldo finale" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__final_balance_foreign_currency -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__final_balance_foreign_currency -msgid "Final Balance Foreign Currency" -msgstr "Saldo finale valuta estera" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__foreign_currency -msgid "Foreign Currency" -msgstr "Valuta estera" - -#. module: l10n_it_account_balance_report -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters -msgid "From:" -msgstr "Da:" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:115 -#, python-format -msgid "From: {} To: {}" -msgstr "Da: {} A: {}" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__fy_start_date -msgid "Fy Start Date" -msgstr "Data Inizio Anno Fiscale" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__general_ledger_id -msgid "General Ledger" -msgstr "Libro mastro" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:121 -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters -#, python-format -msgid "Hide" -msgstr "Nascondi" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__hide_account_at_0 -msgid "Hide Account At 0" -msgstr "Nascondi conti a 0" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__hide_line -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__hide_line -msgid "Hide Line" -msgstr "Nascondi riga" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__show_hierarchy_level -msgid "Hierarchy Levels to display" -msgstr "Livelli gerarchici da visualizzare" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__hierarchy_on -msgid "Hierarchy On" -msgstr "Gerarchia su" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__id -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__id -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__id -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_report_l10n_it_a_b_r_account_balance_report_xlsx__id -msgid "ID" -msgstr "ID" - -#. module: l10n_it_account_balance_report -#: selection:account.account.type,account_balance_report_section:0 -msgid "Incomes" -msgstr "Entrate" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__initial_balance -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__initial_balance -msgid "Initial Balance" -msgstr "Saldo iniziale" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__initial_balance_foreign_currency -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__initial_balance_foreign_currency -msgid "Initial Balance Foreign Currency" -msgstr "Saldo iniziale valuta estera" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:192 -#, python-format -msgid "LIABILITIES" -msgstr "PASSIVITÀ" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report____last_update -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account____last_update -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner____last_update -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_report_l10n_it_a_b_r_account_balance_report_xlsx____last_update -msgid "Last Modified on" -msgstr "Ultima modifica il" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__write_uid -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__write_uid -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__write_uid -msgid "Last Updated by" -msgstr "Ultimo aggiornamento di" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__write_date -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__write_date -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__write_date -msgid "Last Updated on" -msgstr "Ultimo aggiornamento il" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__left_col_name -msgid "Left Col Name" -msgstr "Nome col. sinistra" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__level -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters -msgid "Level" -msgstr "Livello" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:129 -#, python-format -msgid "Level %s" -msgstr "Livello %s" - -#. module: l10n_it_account_balance_report -#: selection:account.account.type,account_balance_report_section:0 -msgid "Liabilities" -msgstr "Passività" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:128 -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__limit_hierarchy_level -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters -#, python-format -msgid "Limit hierarchy levels" -msgstr "Limite livelli gerarchia" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__name -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__name -msgid "Name" -msgstr "Nome" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:127 -#, python-format -msgid "No" -msgstr "No" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:131 -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters -#, python-format -msgid "No limit" -msgstr "Nessun limite" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:445 -#, python-format -msgid "No partner allocated" -msgstr "Nessuno partner allocato" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:67 -#, python-format -msgid "No report has been defined for report type '{}'." -msgstr "Nessun rendiconto definito per la tipologia \"{}\"." - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:71 -#, python-format -msgid "No report type has been declared for current print." -msgstr "" -"Non è stato dichiarato alcun tipo di rendiconto per la stampa corrente." - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__only_posted_moves -msgid "Only Posted Moves" -msgstr "Solo registrazioni confermate" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:205 -#, python-format -msgid "PROFIT & LOSS" -msgstr "CONTO ECONOMICO" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__parent_id -msgid "Parent" -msgstr "Padre" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__partner_ids -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__partner_id -msgid "Partner" -msgstr "Partner" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__period_balance -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__period_balance -msgid "Period Balance" -msgstr "Saldo periodo" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:155 -#, python-format -msgid "Period balance" -msgstr "Saldo periodo" - -#. module: l10n_it_account_balance_report -#: selection:account_balance_report,account_balance_report_type:0 -#: selection:trial.balance.report.wizard,account_balance_report_type:0 -msgid "Profit & Loss" -msgstr "Conto economico" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:203 -#, python-format -msgid "REVENUES" -msgstr "RICAVI" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__report_id -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__report_id -msgid "Report" -msgstr "Rendiconto" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__report_account_id -msgid "Report Account" -msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__report_credit_id -msgid "Report Credit" -msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__report_debit_id -msgid "Report Debit" -msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__report_partner_ids -msgid "Report Partner" -msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__report_section_id -msgid "Report Section" -msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_trial_balance_report_wizard__account_balance_report_type -msgid "Report Type" -msgstr "Tipo di rendiconto" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__right_col_name -msgid "Right Col Name" -msgstr "Nome col. destra" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:541 -#, python-format -msgid "SURPLUS" -msgstr "ECCEDENZA" - -#. module: l10n_it_account_balance_report -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_totals -msgid "SURPLUS:" -msgstr "ECCEDENZA:" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__section_credit_ids -msgid "Section Credit" -msgstr "Sezione avere" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__section_debit_ids -msgid "Section Debit" -msgstr "Sezione dare" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__sequence -msgid "Sequence" -msgstr "Sequenza" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:123 -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters -#, python-format -msgid "Show" -msgstr "Mostra" - -#. module: l10n_it_account_balance_report -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.wizard_report_account_balance_report -msgid "Show Ending Balance in Currency" -msgstr "Mostra saldo finale in valuta" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__show_partner_details -msgid "Show Partner Details" -msgstr "Mostra dettagli partner" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:124 -#, python-format -msgid "Show foreign currency" -msgstr "Mostra valuta estera" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:116 -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters -#, python-format -msgid "Target moves filter" -msgstr "Filtro movimenti obiettivo" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__title -msgid "Title" -msgstr "Titolo" - -#. module: l10n_it_account_balance_report -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters -msgid "To:" -msgstr "A:" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__total_balance -msgid "Total Balance" -msgstr "Saldo totale" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__total_credit -msgid "Total Credit" -msgstr "Totale avere" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__total_debit -msgid "Total Debit" -msgstr "Totale dare" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__trial_balance_id -msgid "Trial Balance" -msgstr "Bilancio di verifica" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__trial_balance_line_id -msgid "Trial Balance Line" -msgstr "Riga bilancio di verifica" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__trial_balance_partner_id -msgid "Trial Balance Partner" -msgstr "Partner bilancio di verifica" - -#. module: l10n_it_account_balance_report -#: model:ir.model,name:l10n_it_account_balance_report.model_trial_balance_report_wizard -msgid "Trial Balance Report Wizard" -msgstr "Procedura guidata bilancio di verifica" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:116 -#, python-format -msgid "Unknown report type; cannot parse it into a table." -msgstr "" - -#. module: l10n_it_account_balance_report -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.wizard_report_account_balance_report -msgid "View" -msgstr "Visualizza" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:125 -#, python-format -msgid "Yes" -msgstr "Sì" - -#. module: l10n_it_account_balance_report -#: model:ir.model,name:l10n_it_account_balance_report.model_account_balance_report -msgid "account_balance_report" -msgstr "account_balance_report" - -#. module: l10n_it_account_balance_report -#: model:ir.model,name:l10n_it_account_balance_report.model_account_balance_report_account -msgid "account_balance_report_account" -msgstr "account_balance_report_account" - -#. module: l10n_it_account_balance_report -#: model:ir.model,name:l10n_it_account_balance_report.model_account_balance_report_partner -msgid "account_balance_report_partner" -msgstr "account_balance_report_partner" - -#. module: l10n_it_account_balance_report -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.wizard_report_account_balance_report -msgid "or" -msgstr "oppure" - -#. module: l10n_it_account_balance_report -#: model:ir.model,name:l10n_it_account_balance_report.model_report_l10n_it_a_b_r_account_balance_report_xlsx -msgid "report.l10n_it_a_b_r.account_balance_report_xlsx" -msgstr "report.l10n_it_a_b_r.account_balance_report_xlsx" - -#. module: l10n_it_account_balance_report -#: model:ir.model,name:l10n_it_account_balance_report.model_report_trial_balance_account -msgid "report_trial_balance_account" -msgstr "report_trial_balance_account" diff --git a/l10n_it_account_balance_report/i18n/l10n_it_account_balance_report.pot b/l10n_it_account_balance_report/i18n/l10n_it_account_balance_report.pot index 3e2dc9e4c20e..c99710509694 100644 --- a/l10n_it_account_balance_report/i18n/l10n_it_account_balance_report.pot +++ b/l10n_it_account_balance_report/i18n/l10n_it_account_balance_report.pot @@ -1,12 +1,14 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * l10n_it_account_balance_report +# * l10n_it_account_balance_report # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 14.0+e-20220610\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: <>\n" +"POT-Creation-Date: 2022-07-01 09:31+0000\n" +"PO-Revision-Date: 2022-07-01 09:31+0000\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -14,15 +16,14 @@ msgstr "" "Plural-Forms: \n" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:188 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:0 #, python-format msgid "ASSETS" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:150 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #: model:ir.model,name:l10n_it_account_balance_report.model_account_account -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__account_ids #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__account_id #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_lines_header #, python-format @@ -40,6 +41,16 @@ msgstr "" msgid "Account Balance Report" msgstr "" +#. module: l10n_it_account_balance_report +#: model:ir.model,name:l10n_it_account_balance_report.model_account_balance_report_account +msgid "Account Balance Report - Account" +msgstr "" + +#. module: l10n_it_account_balance_report +#: model:ir.model,name:l10n_it_account_balance_report.model_account_balance_report_partner +msgid "Account Balance Report - Partner" +msgstr "" + #. module: l10n_it_account_balance_report #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_account__account_balance_report_section #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_account_type__account_balance_report_section @@ -67,7 +78,13 @@ msgid "Account Balance Report XLSX" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__account_group_id +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__currency_id +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__currency_id +msgid "Account Currency" +msgstr "" + +#. module: l10n_it_account_balance_report +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__group_id msgid "Account Group" msgstr "" @@ -77,33 +94,48 @@ msgid "Account Type" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:120 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters #, python-format msgid "Account at 0 filter" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:119 +#: model:ir.model,name:l10n_it_account_balance_report.model_account_balance_report +msgid "Account balance report" +msgstr "" + +#. module: l10n_it_account_balance_report +#: model:ir.model.fields.selection,name:l10n_it_account_balance_report.selection__account_balance_report__target_move__all +msgid "All Entries" +msgstr "" + +#. module: l10n_it_account_balance_report +#: model:ir.model.fields.selection,name:l10n_it_account_balance_report.selection__account_balance_report__target_move__posted +msgid "All Posted Entries" +msgstr "" + +#. module: l10n_it_account_balance_report +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters #, python-format msgid "All entries" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:117 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters #, python-format msgid "All posted entries" msgstr "" #. module: l10n_it_account_balance_report -#: selection:account.account.type,account_balance_report_section:0 +#: model:ir.model.fields.selection,name:l10n_it_account_balance_report.selection__account_account_type__account_balance_report_section__assets msgid "Assets" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:194 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:0 #, python-format msgid "BALANCE SHEET" msgstr "" @@ -113,20 +145,27 @@ msgstr "" msgid "BALANCE:" msgstr "" +#. module: l10n_it_account_balance_report +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__balance +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__balance +msgid "Balance" +msgstr "" + #. module: l10n_it_account_balance_report #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.wizard_report_account_balance_report -msgid "Balance Report can be computed only if selected\n" +msgid "" +"Balance Report can be computed only if selected\n" " company have only one unaffected earnings account." msgstr "" #. module: l10n_it_account_balance_report -#: selection:account_balance_report,account_balance_report_type:0 -#: selection:trial.balance.report.wizard,account_balance_report_type:0 +#: model:ir.model.fields.selection,name:l10n_it_account_balance_report.selection__account_balance_report__account_balance_report_type__balance_sheet +#: model:ir.model.fields.selection,name:l10n_it_account_balance_report.selection__trial_balance_report_wizard__account_balance_report_type__balance_sheet msgid "Balance Sheet" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:199 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:0 #, python-format msgid "COSTS" msgstr "" @@ -137,31 +176,25 @@ msgid "Cancel" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:337 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #, python-format msgid "Cannot filter lines with attribute `{}`." msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:332 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #, python-format msgid "Cannot filter lines with function `{}({})`." msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:340 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #, python-format msgid "Cannot filter lines with unknown parameter." msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__child_account_ids -msgid "Child accounts" -msgstr "" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:145 -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__code +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_lines_header #, python-format msgid "Code" @@ -173,31 +206,19 @@ msgid "Company" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__compute_account_ids -msgid "Compute accounts" -msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,help:l10n_it_account_balance_report.field_account_balance_report__hierarchy_on -msgid "Computed Accounts: Use when the account group have codes\n" -" that represent prefixes of the actual accounts.\n" -"\n" -" Child Accounts: Use when your account groups are hierarchical.\n" -"\n" -" No hierarchy: Use to display just the accounts, without any grouping.\n" -" " -msgstr "" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:286 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #, python-format -msgid "Could not retrieve table datas for report '{}': no lines found to be printed." +msgid "" +"Could not retrieve table datas for report '{}': no lines found to be " +"printed." msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:291 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #, python-format -msgid "Could not retrieve table datas for report '{}': unknown columns to be printed." +msgid "" +"Could not retrieve table datas for report '{}': unknown columns to be " +"printed." msgstr "" #. module: l10n_it_account_balance_report @@ -215,26 +236,24 @@ msgid "Created on" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__credit -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__credit -msgid "Credit" -msgstr "" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:163 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_lines_header #, python-format msgid "Cur." msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__currency_id -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__currency_id -msgid "Currency" +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__currency_balance +msgid "Currency Balance" +msgstr "" + +#. module: l10n_it_account_balance_report +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__currency_ending_balance +msgid "Currency Ending Balance" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:541 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #, python-format msgid "DEFICIT" msgstr "" @@ -259,31 +278,47 @@ msgid "Date To" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:114 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters #, python-format msgid "Date range filter" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__debit -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__debit -msgid "Debit" -msgstr "" - -#. module: l10n_it_account_balance_report +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_account__display_name +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_account_type__display_name #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__display_name #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__display_name #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__display_name +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_report_account_financial_report_trial_balance__display_name #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_report_l10n_it_a_b_r_account_balance_report_xlsx__display_name +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_trial_balance_report_wizard__display_name msgid "Display Name" msgstr "" +#. module: l10n_it_account_balance_report +#: model:ir.model.fields,help:l10n_it_account_balance_report.field_account_balance_report__foreign_currency +msgid "" +"Display foreign currency for move lines, unless account currency is not " +"setup through chart of accounts will display initial and final balance in " +"that currency." +msgstr "" + +#. module: l10n_it_account_balance_report +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__only_posted_moves +msgid "Display only posted moves" +msgstr "" + #. module: l10n_it_account_balance_report #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__hide_parent_hierarchy_level msgid "Do not display parent levels" msgstr "" +#. module: l10n_it_account_balance_report +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__ending_balance +msgid "Ending Balance" +msgstr "" + #. module: l10n_it_account_balance_report #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_lines_header msgid "Ending balance" @@ -295,13 +330,13 @@ msgid "Ending balance cur." msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:167 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #, python-format msgid "Ending balance in cur." msgstr "" #. module: l10n_it_account_balance_report -#: selection:account.account.type,account_balance_report_section:0 +#: model:ir.model.fields.selection,name:l10n_it_account_balance_report.selection__account_account_type__account_balance_report_section__expenses msgid "Expenses" msgstr "" @@ -315,75 +350,37 @@ msgstr "" msgid "Export XLSX" msgstr "" -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__filter_account_ids -msgid "Filter Account" -msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__filter_journal_ids -msgid "Filter Journal" -msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__filter_partner_ids -msgid "Filter Partner" -msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__final_balance -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__final_balance -msgid "Final Balance" -msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__final_balance_foreign_currency -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__final_balance_foreign_currency -msgid "Final Balance Foreign Currency" -msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__foreign_currency -msgid "Foreign Currency" -msgstr "" - #. module: l10n_it_account_balance_report #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters msgid "From:" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:115 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #, python-format msgid "From: {} To: {}" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__fy_start_date -msgid "Fy Start Date" -msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__general_ledger_id -msgid "General Ledger" -msgstr "" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:121 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters #, python-format msgid "Hide" msgstr "" +#. module: l10n_it_account_balance_report +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__hide_line +msgid "Hide Line" +msgstr "" + #. module: l10n_it_account_balance_report #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__hide_account_at_0 -msgid "Hide Account At 0" +msgid "Hide accounts at 0" msgstr "" #. module: l10n_it_account_balance_report #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__hide_line -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__hide_line -msgid "Hide Line" +msgid "Hide line" msgstr "" #. module: l10n_it_account_balance_report @@ -392,46 +389,42 @@ msgid "Hierarchy Levels to display" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__hierarchy_on -msgid "Hierarchy On" +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__level +msgid "Hierarchy level" msgstr "" #. module: l10n_it_account_balance_report +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_account__id +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_account_type__id #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__id #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__id #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__id +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_report_account_financial_report_trial_balance__id #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_report_l10n_it_a_b_r_account_balance_report_xlsx__id +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_trial_balance_report_wizard__id msgid "ID" msgstr "" #. module: l10n_it_account_balance_report -#: selection:account.account.type,account_balance_report_section:0 +#: model:ir.model.fields.selection,name:l10n_it_account_balance_report.selection__account_account_type__account_balance_report_section__incomes msgid "Incomes" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__initial_balance -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__initial_balance -msgid "Initial Balance" -msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__initial_balance_foreign_currency -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__initial_balance_foreign_currency -msgid "Initial Balance Foreign Currency" -msgstr "" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:192 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:0 #, python-format msgid "LIABILITIES" msgstr "" #. module: l10n_it_account_balance_report +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_account____last_update +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_account_type____last_update #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report____last_update #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account____last_update #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner____last_update +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_report_account_financial_report_trial_balance____last_update #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_report_l10n_it_a_b_r_account_balance_report_xlsx____last_update +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_trial_balance_report_wizard____last_update msgid "Last Modified on" msgstr "" @@ -455,124 +448,98 @@ msgid "Left Col Name" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__level #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters msgid "Level" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:129 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #, python-format msgid "Level %s" msgstr "" #. module: l10n_it_account_balance_report -#: selection:account.account.type,account_balance_report_section:0 +#: model:ir.model.fields.selection,name:l10n_it_account_balance_report.selection__account_account_type__account_balance_report_section__liabilities msgid "Liabilities" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:128 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__limit_hierarchy_level #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters #, python-format msgid "Limit hierarchy levels" msgstr "" +#. module: l10n_it_account_balance_report +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__code +msgid "Line code" +msgstr "" + #. module: l10n_it_account_balance_report #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__name -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__name -msgid "Name" +msgid "Line name" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:127 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #, python-format msgid "No" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:131 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters #, python-format msgid "No limit" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:445 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #, python-format msgid "No partner allocated" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:67 -#, python-format -msgid "No report has been defined for report type '{}'." -msgstr "" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:71 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:0 #, python-format msgid "No report type has been declared for current print." msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__only_posted_moves -msgid "Only Posted Moves" -msgstr "" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:205 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:0 #, python-format msgid "PROFIT & LOSS" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__parent_id -msgid "Parent" -msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__partner_ids #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__partner_id msgid "Partner" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__period_balance -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__period_balance -msgid "Period Balance" -msgstr "" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:155 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #, python-format msgid "Period balance" msgstr "" #. module: l10n_it_account_balance_report -#: selection:account_balance_report,account_balance_report_type:0 -#: selection:trial.balance.report.wizard,account_balance_report_type:0 +#: model:ir.model.fields.selection,name:l10n_it_account_balance_report.selection__account_balance_report__account_balance_report_type__profit_loss +#: model:ir.model.fields.selection,name:l10n_it_account_balance_report.selection__trial_balance_report_wizard__account_balance_report_type__profit_loss msgid "Profit & Loss" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:203 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:0 #, python-format msgid "REVENUES" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__report_id #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__report_id msgid "Report" msgstr "" -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__report_account_id -msgid "Report Account" -msgstr "" - #. module: l10n_it_account_balance_report #: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__report_credit_id msgid "Report Credit" @@ -604,7 +571,7 @@ msgid "Right Col Name" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:541 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #, python-format msgid "SURPLUS" msgstr "" @@ -625,12 +592,7 @@ msgid "Section Debit" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__sequence -msgid "Sequence" -msgstr "" - -#. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:123 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters #, python-format msgid "Show" @@ -647,13 +609,25 @@ msgid "Show Partner Details" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:124 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__foreign_currency #, python-format msgid "Show foreign currency" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:116 +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__show_hierarchy +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_trial_balance_report_wizard__show_hierarchy +msgid "Show hierarchy" +msgstr "" + +#. module: l10n_it_account_balance_report +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__target_move +msgid "Target Moves" +msgstr "" + +#. module: l10n_it_account_balance_report +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.account_balance_report_filters #, python-format msgid "Target moves filter" @@ -685,69 +659,56 @@ msgid "Total Debit" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__trial_balance_id -msgid "Trial Balance" -msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_account__trial_balance_line_id -msgid "Trial Balance Line" +#: model:ir.model,name:l10n_it_account_balance_report.model_report_account_financial_report_trial_balance +msgid "Trial Balance Report" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report_partner__trial_balance_partner_id -msgid "Trial Balance Partner" +#: model:ir.model,name:l10n_it_account_balance_report.model_trial_balance_report_wizard +msgid "Trial Balance Report Wizard" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model,name:l10n_it_account_balance_report.model_trial_balance_report_wizard -msgid "Trial Balance Report Wizard" +#: model:ir.model.fields,field_description:l10n_it_account_balance_report.field_account_balance_report__trial_balance_wiz_id +msgid "Trial Balance Wiz" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:116 +#: code:addons/l10n_it_account_balance_report/report/account_balance_report.py:0 #, python-format msgid "Unknown report type; cannot parse it into a table." msgstr "" #. module: l10n_it_account_balance_report -#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.wizard_report_account_balance_report -msgid "View" +#: model:ir.model.fields,help:l10n_it_account_balance_report.field_account_balance_report__show_hierarchy +#: model:ir.model.fields,help:l10n_it_account_balance_report.field_trial_balance_report_wizard__show_hierarchy +msgid "Use when your account groups are hierarchical" msgstr "" #. module: l10n_it_account_balance_report -#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:125 -#, python-format -msgid "Yes" +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.wizard_report_account_balance_report +msgid "View" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model,name:l10n_it_account_balance_report.model_account_balance_report -msgid "account_balance_report" +#: model:ir.model.fields,help:l10n_it_account_balance_report.field_account_balance_report__hide_account_at_0 +msgid "" +"When this option is enabled, the trial balance will not display accounts " +"that have initial balance = debit = credit = end balance = 0" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model,name:l10n_it_account_balance_report.model_account_balance_report_account -msgid "account_balance_report_account" +#: model:ir.model,name:l10n_it_account_balance_report.model_report_l10n_it_a_b_r_account_balance_report_xlsx +msgid "XLSX account balance report" msgstr "" #. module: l10n_it_account_balance_report -#: model:ir.model,name:l10n_it_account_balance_report.model_account_balance_report_partner -msgid "account_balance_report_partner" +#: code:addons/l10n_it_account_balance_report/report/account_balance_report_xlsx.py:0 +#, python-format +msgid "Yes" msgstr "" #. module: l10n_it_account_balance_report #: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_report.wizard_report_account_balance_report msgid "or" msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model,name:l10n_it_account_balance_report.model_report_l10n_it_a_b_r_account_balance_report_xlsx -msgid "report.l10n_it_a_b_r.account_balance_report_xlsx" -msgstr "" - -#. module: l10n_it_account_balance_report -#: model:ir.model,name:l10n_it_account_balance_report.model_report_trial_balance_account -msgid "report_trial_balance_account" -msgstr "" - diff --git a/l10n_it_account_balance_report/models/account_account.py b/l10n_it_account_balance_report/models/account_account.py index 655e23f81825..36c3bc4b39cd 100644 --- a/l10n_it_account_balance_report/models/account_account.py +++ b/l10n_it_account_balance_report/models/account_account.py @@ -10,12 +10,12 @@ class Account(models.Model): # report independent from Odoo's accounting workflow, so we'll use this # new field for the report account_balance_report_section = fields.Selection( - [ - ("assets", "Assets"), - ("expenses", "Expenses"), - ("incomes", "Incomes"), - ("liabilities", "Liabilities"), - ], + # [ + # ("assets", "Assets"), + # ("expenses", "Expenses"), + # ("incomes", "Incomes"), + # ("liabilities", "Liabilities"), + # ], readonly=True, related="user_type_id.account_balance_report_section", string="Account Balance Report - Section", diff --git a/l10n_it_account_balance_report/report/__init__.py b/l10n_it_account_balance_report/report/__init__.py index 4092265fcc5f..dfcfb18eddb9 100644 --- a/l10n_it_account_balance_report/report/__init__.py +++ b/l10n_it_account_balance_report/report/__init__.py @@ -2,4 +2,4 @@ from . import account_balance_report from . import account_balance_report_xlsx -from . import trial_balance_report +from . import trial_balance diff --git a/l10n_it_account_balance_report/report/account_balance_report.py b/l10n_it_account_balance_report/report/account_balance_report.py index 885aa53758a4..01ebb0f17915 100644 --- a/l10n_it_account_balance_report/report/account_balance_report.py +++ b/l10n_it_account_balance_report/report/account_balance_report.py @@ -2,8 +2,7 @@ from odoo import _, api, fields, models from odoo.exceptions import ValidationError -from odoo.tools.float_utils import float_compare, float_is_zero -from odoo.tools.pycompat import string_types +from odoo.tools.float_utils import float_compare, float_is_zero, float_round from odoo.tools.safe_eval import safe_eval @@ -14,55 +13,122 @@ def get_xmlid(id_str): class ReportAccountBalanceReport(models.TransientModel): _name = "account_balance_report" - _inherit = "account_financial_report_abstract" - _inherits = {"report_trial_balance": "trial_balance_id"} + _description = "Account balance report" + _inherit = "report.account_financial_report.abstract_report" + + GROUP_TYPE = "group_type" + ACC_TYPE = "account_type" account_balance_report_type = fields.Selection( [("profit_loss", "Profit & Loss"), ("balance_sheet", "Balance Sheet")], ) + + company_id = fields.Many2one( + comodel_name="res.company", + default=lambda self: self.env.company.id, + required=False, + string="Company", + ) + + date_from = fields.Date() + date_to = fields.Date() + + foreign_currency = fields.Boolean( + string="Show foreign currency", + help="Display foreign currency for move lines, unless " + "account currency is not setup through chart of accounts " + "will display initial and final balance in that currency.", + ) + + hide_account_at_0 = fields.Boolean( + string="Hide accounts at 0", + default=True, + help="When this option is enabled, the trial balance will " + "not display accounts that have initial balance = " + "debit = credit = end balance = 0", + ) + left_col_name = fields.Char() right_col_name = fields.Char() + only_posted_moves = fields.Boolean(string="Display only posted moves") section_credit_ids = fields.One2many( "account_balance_report_account", "report_credit_id" ) section_debit_ids = fields.One2many( "account_balance_report_account", "report_debit_id" ) + + show_hierarchy = fields.Boolean( + string="Show hierarchy", + help="Use when your account groups are hierarchical", + ) + limit_hierarchy_level = fields.Boolean("Limit hierarchy levels") + show_hierarchy_level = fields.Integer("Hierarchy Levels to display", default=1) + hide_parent_hierarchy_level = fields.Boolean( + "Do not display parent levels", default=False + ) + + show_partner_details = fields.Boolean() + + target_move = fields.Selection( + [("posted", "All Posted Entries"), ("all", "All Entries")], + string="Target Moves", + ) + title = fields.Char() total_balance = fields.Float(digits=(16, 2)) total_credit = fields.Float(digits=(16, 2)) total_debit = fields.Float(digits=(16, 2)) - trial_balance_id = fields.Many2one( - "report_trial_balance", ondelete="cascade", required=True - ) - @api.multi + trial_balance_wiz_id = fields.Many2one(comodel_name="trial.balance.report.wizard") + def print_report(self, report_type=None): """ - This method is called from the JS widget buttons 'Print' - and 'Export' in the HTML view. - Prints PDF and XLSX reports. + Method used to get data from trial balance, and call method to process + them to be printed + :param report_type: string that represents the report type """ self.ensure_one() - report_type = report_type or "qweb-pdf" - if report_type in ("qweb-pdf", "xlsx"): - res = self.do_print(report_type) - elif report_type == "qweb-html": - res = self.view_report() - elif report_type: - raise ValidationError( - _( - "No report has been defined for report type '{}'.".format( - report_type - ) - ) + tb_vals = self.trial_balance_wiz_id._prepare_report_trial_balance() + trial_obj = self.env["report.account_financial_report.trial_balance"] + tb_data = trial_obj._get_report_values(None, tb_vals) + data = self.compute_data_for_report(tb_data) + + report_name = self._get_report_name(report_type) + return ( + self.env["ir.actions.report"] + .search( + [("report_name", "=", report_name), ("report_type", "=", report_type)], + limit=1, ) + .report_action(self, data=data) + ) + + @api.model + def get_html(self, given_context=None): + """Method needed from JavaScript widget to render HTML view""" + context = dict(self.env.context) + context.update(given_context or {}) + report = self or self.browse(context.get("active_id")) + xml_id = get_xmlid("template_account_balance_report") + + result = {} + if report: + context["o"] = report + result["html"] = self.env.ref(xml_id).render(context) + return result + + def _get_report_name(self, report_type=None): + if report_type == "xlsx": + report_name = "l10n_it_a_b_r.account_balance_report_xlsx" + elif report_type in ("qweb-pdf", "qweb-html"): + report_name = get_xmlid("account_balance_report_qweb") else: raise ValidationError( _("No report type has been declared for current print.") ) - return res + return report_name def do_print(self, report_type): self.ensure_one() @@ -73,28 +139,64 @@ def do_print(self, report_type): report = self.env.ref(xml_id) return report.report_action(self) - @api.multi def view_report(self): """Launches view for HTML report""" self.ensure_one() [act] = self.env.ref(get_xmlid("action_account_balance_report")).read() ctx = act.get("context", {}) - if isinstance(ctx, string_types): - ctx = safe_eval(ctx) + ctx = safe_eval(ctx) # Call update twice to force 'active_%s' values to be overridden ctx.update(dict(self._context)) ctx.update(active_id=self.id, active_ids=self.ids) act["context"] = ctx return act - @api.multi - def compute_data_for_report(self): + def clear_data(self, tb_data): + for element in tb_data["trial_balance"]: + if element["credit"] < 0: + element["credit"] = -element["credit"] + + if element["debit"] < 0: + element["debit"] = -element["debit"] + + if element["balance"] < 0: + element["balance"] = -element["balance"] + + if element["ending_balance"] < 0: + element["ending_balance"] = -element["ending_balance"] + + if not tb_data["docs"].show_partner_details: + for element in tb_data["accounts_data"]: + if tb_data["accounts_data"][element]["credit"] < 0: + tb_data["accounts_data"][element]["credit"] = -tb_data[ + "accounts_data" + ][element]["credit"] + + if tb_data["accounts_data"][element]["debit"] < 0: + tb_data["accounts_data"][element]["debit"] = -tb_data[ + "accounts_data" + ][element]["debit"] + + if tb_data["accounts_data"][element]["balance"] < 0: + tb_data["accounts_data"][element]["balance"] = -tb_data[ + "accounts_data" + ][element]["balance"] + + if tb_data["accounts_data"][element]["ending_balance"] < 0: + tb_data["accounts_data"][element]["ending_balance"] = -tb_data[ + "accounts_data" + ][element]["ending_balance"] + + def compute_data_for_report(self, tb_data): """ Sets data for report. - Defines which lines go on the left (or right) section, which names + Defines which lines go on the left or right section, which names sections should have, the report title, amounts and balances """ self.ensure_one() + + self.clear_data(tb_data) + rep_type = self.account_balance_report_type # Trial balance already has every data we may need @@ -111,59 +213,74 @@ def compute_data_for_report(self): r_sec, r_name = cols["right"]["section"], cols["right"]["name"] valid_sections = [l_sec, r_sec] - for trial_acc_line in self.trial_balance_id.account_ids: - section = self.get_report_section( - trial_acc_line.account_id, trial_acc_line.account_group_id - ) + curr = self.company_id.currency_id or self.company_id._get_euro() + digits = curr.decimal_places + + if not digits: + digits = self.env["decimal.precision"].precision_get("Account") + + if not self.show_partner_details: + lines = tb_data["trial_balance"] + else: + lines = tb_data["accounts_data"].values() + + for ln_data in lines: + section = self.get_report_section(valid_sections, ln_data) + if not (section and section in valid_sections): continue - sign = trial_acc_line.get_balance_sign() - trial_acc_line.period_balance *= sign - for trial_partner_line in trial_acc_line.partner_ids: - trial_partner_line.period_balance *= sign + line_type = ln_data.get("type") + if not self.show_partner_details: + # Group line + if line_type == self.GROUP_TYPE: + line_data = self._get_group_line_data(ln_data, digits) - balance_line_vals = ( - 0, - 0, - { - "date_from": self.date_from, - "date_to": self.date_to, - "report_partner_ids": [ - ( - 0, - 0, - { - "date_from": self.date_from, - "date_to": self.date_to, - "report_id": self.id, - "trial_balance_partner_id": pid, - }, - ) - for pid in trial_acc_line.partner_ids.ids - ], - "trial_balance_line_id": trial_acc_line.id, - }, + # Account line + elif line_type == self.ACC_TYPE: + line_data = self._get_account_line_data(ln_data, digits) + else: + line_data = self._get_account_line_data( + ln_data, + digits, + tb_data.get("partners_data", []), + tb_data.get("total_amount"), + ) + + balance_section_vals = self.get_section_balance_vals(line_data) + + total_debit, total_credit = self._insert_section_values( + section, + l_sec, + r_sec, + section_credit_vals, + section_debit_vals, + total_debit, + total_credit, + balance_section_vals, + line_data, + digits, ) - if section == r_sec: - section_credit_vals.append(balance_line_vals) - if not trial_acc_line.account_group_id: - total_credit += trial_acc_line.period_balance - elif section == l_sec: - section_debit_vals.append(balance_line_vals) - if not trial_acc_line.account_group_id: - total_debit += trial_acc_line.period_balance + if self.show_partner_details and self.show_hierarchy: + credit_account_data = self._get_filtered_account( + tb_data.get("accounts_data"), section_credit_vals + ) + credit_group_data = self._get_group_data( + credit_account_data, tb_data.get("total_amount") + ) + self._compute_group_hierarchy(credit_group_data) + self._add_group_to_section_vals(section_credit_vals, credit_group_data) + debit_account_data = self._get_filtered_account( + tb_data.get("accounts_data"), section_debit_vals + ) + debit_group_data = self._get_group_data( + debit_account_data, tb_data.get("total_amount") + ) + self._compute_group_hierarchy(debit_group_data) + self._add_group_to_section_vals(section_debit_vals, debit_group_data) - curr = self.company_id.currency_id or self.company_id._get_euro() - digits = curr.decimal_places - if not digits: - digits = self.env["decimal.precision"].precision_get("Account") - total_balance = 0 - if float_compare(total_credit, total_debit, digits) == 1: - total_balance = total_credit - total_debit - elif float_compare(total_credit, total_debit, digits) == -1: - total_balance = total_debit - total_credit + total_balance = self.get_total_balance(total_debit, total_credit, digits) self.write( { @@ -208,51 +325,486 @@ def get_column_data(self): }, } - def get_report_section(self, account=None, group=None): + def get_report_section(self, valid_sections, line): + """Get section name where to insert account_balance_report_account + line + + :param valid_sections: ``tuple(str)`` Allowed account type, to insert + in correct section + :param line: ``dict`` The line data, obtained from trial_balance + + :return: ``str`` The section name, where to insert this line + """ section = "" - if not account and group and group.account_ids: - account = group.account_ids[0] + account = self.env["account.account"] + + if line.get("type") == self.GROUP_TYPE: + account = self._get_group_account(valid_sections, line) + elif line.get("type") == self.ACC_TYPE or self.show_partner_details: + account = self.env["account.account"].browse(line.get("id")).exists() + if account: section = account.account_balance_report_section return section - @api.model - def get_html(self, given_context=None): - """Method needed from JavaScript widget to render HTML view""" - context = dict(self.env.context) - context.update(given_context or {}) - report = self or self.browse(context.get("active_id")) - xml_id = get_xmlid("template_account_balance_report") + def _get_group_account(self, valid_sections, line): + """Get balance section from a group line - result = {} - if report: - context["o"] = report - result["html"] = self.env.ref(xml_id).render(context) - return result + if the examined line type is `group_type`, get the account.group + record, and check if it had accounts; if no account are present, try + to get accounts from line data; if at this stage no account are + present, try to traverse backward the group tree to root node until + find one with accounts + + :param valid_sections: ``tuple(str)`` Allowed account type, to + insert in right section + :param line: ``dict`` The line data, obtained from trial_balance + + :return: ``account.account`` The account to be used to compute + section name + """ + group = self.env["account.group"].browse(line.get("id")).exists() + if group and group.account_ids: + accounts = group.account_ids + elif group and not group.account_ids and group.parent_id: + while group and group.parent_id and not group.account_ids: + group = group.parent_id + accounts = group.account_ids + else: + accounts = ( + self.env["account.account"].browse(line.get("account_ids")).exists() + ) + + return accounts.filtered( + lambda acc: acc.account_balance_report_section in valid_sections + )[:1] + + def _get_group_line_data(self, line, digits): + """Use data of group_type line to prepare the values to be inserted + in `account_balance_report_account` + + :param line: ``dict`` The line data + :param digits: ``int`` The rounding digits, used in float calc + + :return: ``dict`` The dictionary with data to be set in the + section report + """ + currency_data = self._get_foreign_currency_data(line, digits) + return { + **line, + **currency_data, + "group_id": line["id"], + } + + def _get_account_line_data( + self, line, digits, partners_data=None, amounts_data=None + ): + """Use data of account_type line to prepare the values to be inserted + in `account_balance_report_account` + + :param line: ``dict`` The line data + :param digits: ``int`` The rounding digits, used in float calc + :param partners_data: ``list`` partner data, used to compute which of + them belongs to an account + :param amounts_data: ``list`` amount data, used to compute account + amounts data + + :return: ``dict`` The dictionary with data to be set in the + section report + """ + + if partners_data is None: + partners_data = [] + if amounts_data is None: + amounts_data = {} + + r_data = { + **line, + "account_id": line["id"], + } + account_id = line.get("id") + account = self.env["account.account"].browse(account_id).exists() + + # The sign was computed only for 'account_type' lines because + # group line don't partecipate in total_balance computation + sign = self.get_balance_sign(account, account.group_id) + + if self.show_partner_details: + balance = amounts_data[account_id].get("balance") * sign + curr_data = self._get_foreign_currency_data(line, digits) + account_partners = self._get_account_partners( + amounts_data[account_id], partners_data + ) + partners = [] + for partner_id in account_partners: + partner_balance = amounts_data[account_id][partner_id]["balance"] + partners.append( + { + "id": partner_id, + "balance": partner_balance * sign, + } + ) + + else: + partners = [] + curr_data = self._get_foreign_currency_data(line, digits) + balance = line.get("balance") * sign + + r_data.update({"balance": balance, "partners": partners, **curr_data}) + + return r_data + + def _get_foreign_currency_data(self, data, digits): + end_curr_bal = data.get("ending_currency_balance", 0.0) + curr_data = { + "ending_currency_balance": end_curr_bal, + } + if self.foreign_currency: + init_curr_bal = data.get("initial_currency_balance", 0.0) + curr_balance = float_round(end_curr_bal - init_curr_bal, digits) + curr_data.update( + { + "currency_balance": curr_balance, + } + ) + else: + curr_data.update( + { + "currency_balance": 0.0, + } + ) + return curr_data + + def get_section_balance_vals(self, data): + """Get the command tuple to get section data + + Used to setup command tuple, to insert values into correct balance + section + + :param data (dict): The data to setup create dictionary, + to insert data into correct balance section. Defaults to {}. + + :return tuple: The insert command tuple, with data to create + `account_balance_report_account` record + """ + return ( + 0, + 0, + { + "account_id": data.get("account_id", False), + "currency_id": data.get("currency_id", False), + "date_from": self.date_from, + "date_to": self.date_to, + "group_id": data.get("group_id", False), + "hide_line": data.get("hide_account", False), + "balance": data.get("balance", 0.0), + "ending_balance": data.get("ending_balance", 0.0), + "currency_balance": data.get("currency_balance", 0.0), + "currency_ending_balance": data.get("ending_currency_balance", 0.0), + "level": data.get("level", 0), + "code": data.get("code", ""), + "name": data.get("name", ""), + "report_partner_ids": [ + ( + 0, + 0, + { + "currency_id": data.get("currency_id", False), + "date_from": self.date_from, + "date_to": self.date_to, + "report_id": self.id, + "balance": p.get("balance", 0.0), + "partner_id": p.get("id"), + }, + ) + for p in data.get("partners", []) + ], + }, + ) + + def get_total_balance(self, total_debit, total_credit, digits): + if float_compare(total_credit, total_debit, digits) == 1: + total_balance = float_round(total_credit - total_debit, digits) + elif float_compare(total_credit, total_debit, digits) == -1: + total_balance = float_round(total_debit - total_credit, digits) + else: + total_balance = 0.0 + return total_balance + + def get_balance_sign(self, account_id=None, group_id=None): + sign = 1 + if account_id: + sign = account_id.user_type_id.account_balance_sign + elif group_id: + sign = group_id.account_balance_sign + return sign + + def _get_account_partners(self, account_data, partners): + """Get the partner(s) that belong to an account + + :param account_data: ``dict`` The account amounts data, including + partner id reference + :param partners: ``dict`` Partners data, contain id and name + + :return: ``list`` partner data to be inserted in + `account_balnace_report_partner` belonging to and + `account_balance_report_account` + """ + account_partners = [] + if isinstance(partners, dict): + account_partners = [p_id for p_id in partners if p_id in account_data] + return account_partners + + def _insert_section_values( + self, + section, + l_sec, + r_sec, + credit_section, + debit_section, + total_debit, + total_credit, + section_vals, + line, + digits, + ): + if section == r_sec: + credit_section.append(section_vals) + if line.get("type", "") != self.GROUP_TYPE: + total_credit += ( + line.get("ending_balance") + if "ending_balance" in line + else line.get("balance") + ) + + elif section == l_sec: + debit_section.append(section_vals) + if line.get("type", "") != self.GROUP_TYPE: + total_debit += ( + line.get("ending_balance") + if "ending_balance" in line + else line.get("balance") + ) + + return float_round(total_debit, digits), float_round(total_credit, digits) + + def _get_filtered_account(self, accounts_data, section_vals): + """Method to filter account for balance section + Filter which account or group of account belongs to correct section of + balance + + :param accounts_data: ``dict`` all account computed from trial + balance + :param section_vals: ``list(tuple)`` section data, used to assign + accounts and its groups to the correct section of balance + + :returns dict: account that belongs to correct balance section + """ + account_data = {} + for sec_val in section_vals: + sec_val_account_id = sec_val[2]["account_id"] + if sec_val_account_id in accounts_data.keys(): + account_data[sec_val_account_id] = accounts_data.keys() + return account_data + + def _get_group_data(self, accounts_data, total_amounts): + """Full override of method in trial_balance model + Method was overrode because, in trial balance when show partner details + is checked, no account grouping is possible + + :param accounts_data: ``dict`` The accounts data, used to build + grouping hierarchy + :param total_amounts: ``dict`` Amount data of every account, used + to compute group totals + + :return ``dict``: Group data with child account and child group + """ + account_obj = self.env["account.account"] + groups_ids = {} + for account_id in accounts_data.keys(): + account = account_obj.browse(account_id).exists() + if account.group_id: + if account.group_id.id not in groups_ids: + groups_ids.update({account.group_id.id: [account.id]}) + else: + groups_ids[account.group_id.id].append(account.id) + + groups = self.env["account.group"].browse(groups_ids.keys()).exists() + groups_data = {} + for group in groups: + groups_data.update( + { + group.id: { + "group_id": group.id, + "code": group.code_prefix_start, + "name": group.name, + "parent_id": group.parent_id.id, + "parent_path": group.parent_path, + "type": "group_type", + "complete_code": group.complete_code, + "account_ids": group.compute_account_ids.ids, + "initial_balance": 0.0, + "credit": 0.0, + "debit": 0.0, + "balance": 0.0, + "ending_balance": 0.0, + } + } + ) + if self.foreign_currency: + groups_data[group.id]["initial_currency_balance"] = 0.0 + groups_data[group.id]["ending_currency_balance"] = 0.0 + group_obj = self.env["account.group"] + for group_id, group_accounts in groups_ids.items(): + for account_id in group_accounts: + t_a_init_bal = total_amounts[account_id]["initial_balance"] + t_a_debit = total_amounts[account_id]["debit"] + t_a_credit = total_amounts[account_id]["credit"] + t_a_balance = total_amounts[account_id]["balance"] + t_a_end_bal = total_amounts[account_id]["ending_balance"] + groups_data[group_id]["initial_balance"] += t_a_init_bal + groups_data[group_id]["debit"] += t_a_debit + groups_data[group_id]["credit"] += t_a_credit + groups_data[group_id]["balance"] += t_a_balance + groups_data[group_id]["ending_balance"] += t_a_end_bal + if self.foreign_currency: + t_a_init_curr_bal = total_amounts[account_id][ + "initial_currency_balance" + ] + t_a_end_curr_bal = total_amounts[account_id][ + "ending_currency_balance" + ] + groups_data[group_id][ + "initial_currency_balance" + ] += t_a_init_curr_bal + groups_data[group_id]["ending_currency_balance"] += t_a_end_curr_bal + group = group_obj.browse(group_id).exists() + grp_sign = self.get_balance_sign(group_id=group) + groups_data[group_id]["balance"] *= grp_sign + return groups_data + + def _compute_group_hierarchy(self, groups_data): + """Full override of method in trial_balance model + Method was overrode because, in trial balance when show partner details + is checked, no account grouping is possible and because in v14.0 trial + balance has been moved to an Abstract model, without any reference in + db + + :param group_data: ``dict`` group data, used to compute hierarchy + and amounts + """ + groups = self.env["account.group"].browse(groups_data.keys()) + for group in groups: + parent_id = groups_data[group.id]["parent_id"] + while parent_id: + if parent_id not in groups_data.keys(): + parent_group = self.env["account.group"].browse(parent_id) + groups_data[parent_group.id] = { + "group_id": parent_group.id, + "code": parent_group.code_prefix_start, + "name": parent_group.name, + "parent_id": parent_group.parent_id.id, + "parent_path": parent_group.parent_path, + "complete_code": parent_group.complete_code, + "account_ids": parent_group.compute_account_ids.ids, + "type": "group_type", + "initial_balance": 0, + "debit": 0, + "credit": 0, + "balance": 0, + "ending_balance": 0, + } + if self.foreign_currency: + groups_data[parent_group.id].update( + initial_currency_balance=0, + ending_currency_balance=0, + ) + acc_keys = ["debit", "credit", "balance"] + acc_keys += ["initial_balance", "ending_balance"] + for acc_key in acc_keys: + groups_data[parent_id][acc_key] += groups_data[group.id][acc_key] + if self.foreign_currency: + groups_data[group.id]["initial_currency_balance"] += groups_data[ + group.id + ]["initial_currency_balance"] + groups_data[group.id]["ending_currency_balance"] += groups_data[ + group.id + ]["ending_currency_balance"] + parent_id = groups_data[parent_id]["parent_id"] + + def _add_group_to_section_vals(self, section_vals, groups_data): + for group_data in groups_data.values(): + counter = group_data["complete_code"].count("/") + group_data["level"] = counter + sect_vals = self.get_section_balance_vals(group_data) + sect_vals[2]["complete_code"] = group_data["complete_code"] + section_vals.append(sect_vals) + + account_obj = self.env["account.account"] + for section_val in section_vals: + data = section_val[2] + if data.get("account_id"): + account = account_obj.browse(data["account_id"]).exists() + if account.group_id: + data["complete_code"] = "/".join( + [account.group_id.complete_code, data["code"]] + ) + else: + data["complete_code"] = data["code"] + + section_vals = sorted(section_vals, key=lambda sv: sv[2]["code"]) + + for section_val in section_vals: + data = section_val[2] + data["level"] = data["complete_code"].count("/") + data.pop("complete_code") class ReportAccountBalanceReportAccount(models.TransientModel): _name = "account_balance_report_account" - _inherit = "account_financial_report_abstract" - _inherits = {"report_trial_balance_account": "trial_balance_line_id"} + _description = "Account Balance Report - Account" + _inherit = "report.account_financial_report.abstract_report" + _order = "code ASC" + + account_id = fields.Many2one(comodel_name="account.account", string="Account") + + currency_id = fields.Many2one( + comodel_name="res.currency", string="Account Currency" + ) date_from = fields.Date() date_to = fields.Date() + + group_id = fields.Many2one(comodel_name="account.group", string="Account Group") + + hide_line = fields.Boolean(string="Hide line") + level = fields.Integer(index=True, default=0, string="Hierarchy level") + + balance = fields.Float(digits=(16, 2)) + ending_balance = fields.Float(digits=(16, 2)) + currency_balance = fields.Float(digits=(16, 2)) + currency_ending_balance = fields.Float(digits=(16, 2)) + report_partner_ids = fields.One2many( "account_balance_report_partner", "report_section_id", ) report_credit_id = fields.Many2one("account_balance_report", ondelete="cascade") report_debit_id = fields.Many2one("account_balance_report", ondelete="cascade") - trial_balance_line_id = fields.Many2one( - "report_trial_balance_account", ondelete="cascade", required=True - ) + + code = fields.Char(string="Line code") + + name = fields.Char(string="Line name") class ReportAccountBalanceReportPartner(models.TransientModel): _name = "account_balance_report_partner" - _inherit = "account_financial_report_abstract" - _inherits = {"report_trial_balance_partner": "trial_balance_partner_id"} + _description = "Account Balance Report - Partner" + _inherit = "report.account_financial_report.abstract_report" + + currency_id = fields.Many2one( + comodel_name="res.currency", string="Account Currency" + ) date_from = fields.Date() date_to = fields.Date() @@ -263,22 +815,20 @@ class ReportAccountBalanceReportPartner(models.TransientModel): report_section_id = fields.Many2one( "account_balance_report_account", ondelete="cascade" ) - trial_balance_partner_id = fields.Many2one( - "report_trial_balance_partner", ondelete="cascade", required=True - ) + partner_id = fields.Many2one("res.partner", required=True) + + balance = fields.Float(digits=(16, 2)) - @api.multi @api.depends( - "period_balance", + "balance", "report_id.hide_account_at_0", - "trial_balance_partner_id.period_balance", ) def _compute_hide_line(self): - report = self.mapped("report_section_id.report_credit_id") + self.mapped( - "report_section_id.report_debit_id" - ) - if report.hide_account_at_0: - for partner_line in self: - p_bal = partner_line.period_balance + for partner_line in self: + if partner_line.report_id.hide_account_at_0: + p_bal = partner_line.balance digits = partner_line.currency_id.decimal_places - partner_line.hide_line = float_is_zero(p_bal, digits) + hide_partner_line = float_is_zero(p_bal, digits) + else: + hide_partner_line = False + partner_line.hide_line = hide_partner_line diff --git a/l10n_it_account_balance_report/report/account_balance_report_xlsx.py b/l10n_it_account_balance_report/report/account_balance_report_xlsx.py index 15cb461824b7..5ddb0850bf60 100644 --- a/l10n_it_account_balance_report/report/account_balance_report_xlsx.py +++ b/l10n_it_account_balance_report/report/account_balance_report_xlsx.py @@ -19,92 +19,10 @@ def order_currency_amount(curr, val): class AccountBalanceReportXslx(models.AbstractModel): _name = "report.l10n_it_a_b_r.account_balance_report_xlsx" + _description = "XLSX account balance report" _inherit = "report.account_financial_report.abstract_report_xlsx" - def __init__(self, pool, cr): - """Adds new attributes""" - super().__init__(pool, cr) - - # Add report data - self.workbook = None - self.data = None - self.report = None - self.lang = None - self.currency = None - - # Add table data - self.left_columns = None - self.right_columns = None - self.left_partner_columns = None - self.right_partner_columns = None - self.left_lines = None - self.right_lines = None - - # Add formats - self.format_amount_right = None - self.format_amount_bold_right = None - self.format_header_amount_right = None - self.format_title = None - self.format_filter_title = None - self.format_filter_value = None - - def generate_xlsx_report(self, workbook, data, objects): - """Set wb, data and report attributes""" - self.workbook = workbook - self.data = data - self.report = objects - self.lang = self.env["res.lang"]._lang_get(self.env.user.lang) - self.currency = ( - self.report.company_id.currency_id - or self.report.company_id._get_euro() - or self.env["res.currency"].search([("active", "=", True)], limit=1) - ) - super().generate_xlsx_report(workbook, data, objects) - - def _define_formats(self, workbook): - """Defines new formats""" - super()._define_formats(workbook) - self.format_amount_right = self.format_amount - self.format_amount_right.set_align("right") - self.format_amount_bold_right = self.format_amount_bold - self.format_amount_bold_right.set_align("right") - # '#875a7b' is Odoo default purple color - self.format_title = workbook.add_format( - { - "align": "center", - "bg_color": "#337AB7", - "bold": True, - "border": True, - "font_color": "white", - "font_size": 16, - } - ) - self.format_filter_title = workbook.add_format( - { - "bg_color": "#337AB7", - "bold": True, - "border": True, - "font_color": "white", - } - ) - self.format_filter_value = workbook.add_format( - { - "bg_color": "#337AB7", - "border": True, - "font_color": "white", - } - ) - # Change background and font color for header formats - self.format_header_center.set_bg_color("#337AB7") - self.format_header_center.set_font_color("#FFFFFF") - self.format_header_right.set_bg_color("#337AB7") - self.format_header_right.set_font_color("#FFFFFF") - self.format_header_amount_right = self.format_header_right - self.format_header_amount_right.set_num_format( - "#,##0." + "0" * self.currency.decimal_places - ) - - def _get_report_name(self, report): + def _get_report_name(self, report, data=False): """ * Overrides standard method * Returns name for both sheet and report title @@ -167,7 +85,7 @@ def _get_report_columns(self, report): "width": 60, }, 2: { - "field": "period_balance", + "field": "ending_balance", "header": _("Period balance"), "type": "amount", "width": 20, @@ -192,14 +110,17 @@ def _get_report_columns(self, report): } ) - self.set_lr_cols(cols) - self.set_partner_columns(cols) - return {**self.left_columns, **self.right_columns} + left_columns, right_columns = self.set_lr_cols(cols) + dict_columns = {"left_columns": left_columns, "right_columns": right_columns} + dict_partner = self.set_partner_columns({**cols, **dict_columns}) + dict_partner.update(dict_columns) + return {**left_columns, **right_columns, **dict_partner} def set_lr_cols(self, cols): """Takes 'cols' as a template for column info, sets L/R columns""" - self.left_columns = self.generate_section_cols(cols, "left") - self.right_columns = self.generate_section_cols(cols, "right") + return self.generate_section_cols(cols, "left"), self.generate_section_cols( + cols, "right" + ) def generate_section_cols(self, cols, mode): """Takes 'cols' as a template for column info, returns L/R column""" @@ -211,21 +132,23 @@ def generate_section_cols(self, cols, mode): return section_cols def set_partner_columns(self, cols): - self.left_partner_columns = self.generate_partner_columns(cols, "left") - self.right_partner_columns = self.generate_partner_columns(cols, "right") + return { + "left_partner_columns": self.generate_partner_columns(cols, "left"), + "right_partner_columns": self.generate_partner_columns(cols, "right"), + } def generate_partner_columns(self, cols, mode): if mode == "left": - left_partner_cols = {k: {} for k in self.left_columns.keys()} + left_partner_cols = {k: {} for k in cols["left_columns"].keys()} left_partner_cols.update( { 1: {"field": "partner_id", "type": "many2one", "width": 60}, - 2: {"field": "period_balance", "type": "amount", "width": 20}, + 2: {"field": "ending_balance", "type": "amount", "width": 20}, } ) return left_partner_cols elif mode == "right": - right_partner_cols = {k: {} for k in self.right_columns.keys()} + right_partner_cols = {k: {} for k in cols["right_columns"].keys()} right_partner_cols.update( { 1 @@ -236,7 +159,7 @@ def generate_partner_columns(self, cols, mode): }, 2 + len(cols): { - "field": "period_balance", + "field": "ending_balance", "type": "amount", "width": 20, }, @@ -245,77 +168,112 @@ def generate_partner_columns(self, cols, mode): return right_partner_cols raise NotImplementedError - def _write_report_title(self, title): + def _write_report_title(self, title, report_data): """ * Overrides standard method * Writes report title on current line using all defined columns width """ - self.sheet.merge_range( - self.row_pos, + report_data["sheet"].merge_range( + report_data["row_pos"], 0, - self.row_pos, - len(self.columns) - 1, + report_data["row_pos"], + len(report_data["columns"]) - 1, title, - self.format_title, + report_data["workbook"].add_format( + { + "align": "center", + "bg_color": "#337AB7", + "bold": True, + "border": True, + "font_color": "white", + "font_size": 16, + } + ), ) - self.row_pos += 3 + report_data["row_pos"] += 3 - def _write_filters(self, filters): + def _write_filters(self, filters, report_data): """ * Overrides standard method * Writes filter info """ - title_format = self.format_filter_title - value_format = self.format_filter_value + title_format = report_data["workbook"].add_format( + { + "bg_color": "#337AB7", + "bold": True, + "border": True, + "font_color": "white", + } + ) + value_format = report_data["workbook"].add_format( + { + "bg_color": "#337AB7", + "border": True, + "font_color": "white", + } + ) for title, value in filters: - self.sheet.write_string(self.row_pos, 0, title, title_format) - self.sheet.write_string(self.row_pos, 1, value, value_format) - self.row_pos += 1 - self.row_pos += 1 + report_data["sheet"].write_string( + report_data["row_pos"], 0, title, title_format + ) + report_data["sheet"].write_string( + report_data["row_pos"], 1, value, value_format + ) + report_data["row_pos"] += 1 + report_data["row_pos"] += 1 - def _generate_report_content(self, workbook, report): + def _generate_report_content(self, workbook, objects, data, report_data): """Creates actual xls report""" - self.write_main_headers() - self.write_sub_headers() - self.generate_table() - self.write_sections_balance() - self.write_total_balance() + self.write_main_headers(objects, report_data) + self.write_sub_headers(report_data) + self.generate_table(objects, report_data) + self.write_sections_balance(objects, report_data) + self.write_total_balance(objects, report_data) - def write_main_headers(self): + def write_main_headers(self, objects, report_data): """Writes main left and right section names""" - self.sheet.merge_range( - self.row_pos, - min(self.left_columns.keys()), - self.row_pos, - max(self.left_columns.keys()), - self.report.left_col_name, - self.format_header_center, + report_data["sheet"].merge_range( + report_data["row_pos"], + min(report_data["left_columns"].keys()), + report_data["row_pos"], + max(report_data["left_columns"].keys()), + objects.left_col_name, + report_data["formats"]["format_header_center"], ) - self.sheet.merge_range( - self.row_pos, - min(self.right_columns.keys()), - self.row_pos, - max(self.right_columns.keys()), - self.report.right_col_name, - self.format_header_center, + report_data["sheet"].merge_range( + report_data["row_pos"], + min(report_data["right_columns"].keys()), + report_data["row_pos"], + max(report_data["right_columns"].keys()), + objects.right_col_name, + report_data["formats"]["format_header_center"], ) - self.row_pos += 1 + report_data["row_pos"] += 1 - def write_sub_headers(self): + def write_sub_headers(self, report_data): """Writes single headers names""" - row, style = self.row_pos, self.format_header_center - for col, val_dict in self.columns.items(): + row, style = ( + report_data["row_pos"], + report_data["formats"]["format_header_center"], + ) + for col, val_dict in report_data["columns"].items(): value = val_dict.get("header", "") - self.sheet.write_string(row, col, value, style) - self.row_pos += 1 + report_data["sheet"].write_string(row, col, value, style) + report_data["row_pos"] += 1 - def generate_table(self): + def generate_table(self, objects, report_data): """Creates the table""" - report = self.report + report = objects - self.left_lines = self.get_report_lines("section_debit_ids") - self.right_lines = self.get_report_lines("section_credit_ids") - table = self.get_table_data() + report_data["left_lines"] = self.get_report_lines( + "section_debit_ids", objects=objects, report_data=report_data + ) + report_data["right_lines"] = self.get_report_lines( + "section_credit_ids", objects=objects, report_data=report_data + ) + table = self.get_table_data( + report_data["left_lines"], report_data["right_lines"], report_data + ) msg = "" if not table.get("row"): @@ -330,35 +288,41 @@ def generate_table(self): ) if msg: _logger.warning(msg) - self.sheet.merge_range( - self.row_pos, + report_data["sheet"].merge_range( + report_data["row_pos"], 0, - self.row_pos, - len(self.columns) - 1, + report_data["row_pos"], + len(report_data["columns"]) - 1, msg, - self.format_bold, + report_data["format_bold"], ) - self.row_pos += 2 + report_data["row_pos"] += 2 return for row in range(table["row"]["first"], table["row"]["last"] + 1): - self.row_pos = row - for (_l, cell), (val, style, allow) in self.get_line_info().items(): + report_data["row_pos"] = row + for (_l, cell), (val, style, allow) in self.get_line_info( + objects=objects, report_data=report_data + ).items(): col, row = cell if allow: - self.sheet.write(row, col, val, style) + report_data["sheet"].write(row, col, val, style) - self.row_pos += 2 + report_data["row_pos"] += 2 - def get_report_lines(self, field, func=None): + def get_report_lines(self, field, func=None, objects=None, report_data=None): """ Returns report's lines, enumerated by row, as assigned by field 'field' and filtered by 'func' (either a function or a dot-separated list of fields). """ - func = func or self.get_default_line_filter_func(field=field) or False + func = ( + func + or self.get_default_line_filter_func(field=field, objects=objects) + or False + ) enum_lines = {} - report = self.report + report = objects lines = getattr(report, field, False) if lines and isinstance(lines, models.BaseModel) and func: @@ -380,7 +344,7 @@ def get_report_lines(self, field, func=None): msg = _("Cannot filter lines with unknown parameter.") _logger.info(msg) - if lines and self.report.show_partner_details: + if lines and report.show_partner_details: counter = 0 for line in lines: enum_lines.update({counter: line}) @@ -393,14 +357,17 @@ def get_report_lines(self, field, func=None): if enum_lines: # Shift line number to actual xls row - enum_lines = {self.row_pos + k: v for k, v in enum_lines.items()} + enum_lines = {report_data["row_pos"] + k: v for k, v in enum_lines.items()} return enum_lines def get_default_line_filter_func(self, **kwargs): func = None field = kwargs.get("field") - if self.report.hide_account_at_0 and field in ( + wizard = self.env["trial.balance.report.wizard"].browse( + self.env.context["active_id"] + ) + if wizard.hide_account_at_0 and field in ( "section_credit_ids", "section_debit_ids", ): @@ -411,14 +378,14 @@ def show(line): func = show return func - def get_table_data(self, left_lines=None, right_lines=None): + def get_table_data(self, left_lines=None, right_lines=None, report_data=None): if not left_lines: - left_lines = self.left_lines + left_lines = report_data["left_lines"] if not right_lines: - right_lines = self.right_lines + right_lines = report_data["right_lines"] table = {} rows = list(left_lines) + list(right_lines) - cols = list(self.left_columns) + list(self.right_columns) + cols = list(report_data["left_columns"]) + list(report_data["right_columns"]) if rows: table.update( { @@ -439,21 +406,23 @@ def get_table_data(self, left_lines=None, right_lines=None): ) return table - def get_line_info(self, row=None): + def get_line_info(self, row=None, objects=None, report_data=None): """Returns {col: (val, style)} for current row""" - row = row or self.row_pos + row = row or report_data["row_pos"] info = {} - l, r = self.left_lines.get(row), self.right_lines.get(row) + l, r = report_data["left_lines"].get(row), report_data["right_lines"].get(row) cols_dict = {} if l: if l._name == "account_balance_report_account": - cols_dict = self.left_columns + cols_dict = report_data["left_columns"] elif l._name == "account_balance_report_partner": - cols_dict = self.left_partner_columns + cols_dict = report_data["left_partner_columns"] info.update( { - (l, (c, row)): self.get_write_data(l, cols_dict[c]) + (l, (c, row)): self.get_write_data( + l, cols_dict[c], objects, report_data + ) for c in cols_dict if cols_dict[c] } @@ -461,12 +430,14 @@ def get_line_info(self, row=None): if r: if r._name == "account_balance_report_account": - cols_dict = self.right_columns + cols_dict = report_data["right_columns"] elif r._name == "account_balance_report_partner": - cols_dict = self.right_partner_columns + cols_dict = report_data["right_partner_columns"] info.update( { - (r, (c, row)): self.get_write_data(r, cols_dict[c]) + (r, (c, row)): self.get_write_data( + r, cols_dict[c], objects, report_data + ) for c in cols_dict if cols_dict[c] } @@ -474,11 +445,11 @@ def get_line_info(self, row=None): return info - def get_write_data(self, line, col_dict): + def get_write_data(self, line, col_dict, objects, report_data): """Returns value and style for cell""" cell_type = col_dict.get("type", "string") field = col_dict.get("field") - decimals = self.currency.decimal_places + decimals = objects.company_id.currency_id.decimal_places value = getattr(line, field, False) style = None @@ -503,7 +474,7 @@ def get_write_data(self, line, col_dict): if getattr(line, "account_group_id", False): style = self.format_amount_bold_right else: - style = self.format_amount_right + style = report_data["formats"]["format_amount"] allow = True elif cell_type == "amount_currency": currency = ( @@ -516,7 +487,7 @@ def get_write_data(self, line, col_dict): if getattr(line, "account_group_id", False): style = self.format_amount_bold_right else: - style = self.format_amount_right + style = report_data["formats"]["format_amount"] allow = True if value: @@ -531,12 +502,7 @@ def get_write_data(self, line, col_dict): ): value = str(value) indent_field, indent_unit = self.get_indent_data(line, col_dict) - if ( - self.report.hierarchy_on != "none" - and indent_field - and indent_unit - and hasattr(line, indent_field) - ): + if indent_field and indent_unit and hasattr(line, indent_field): indent = " " * getattr(line, indent_field, 0) * indent_unit value = indent + value allow = True @@ -550,15 +516,19 @@ def format_value_by_lang(self, value=None, decimals=None): """Mimics `res.lang` model's `format` method""" percent = "%.{}f".format(decimals or 2) value = value or 0 - return self.lang.format(percent, value, grouping=True, monetary=True) + return ( + self.env["res.lang"] + ._lang_get(self.env.user.lang) + .format(percent, value, grouping=True, monetary=True) + ) def get_indent_data(self, line=None, col_dict=None): return col_dict.get("indent_field"), col_dict.get("indent_unit") - def write_sections_balance(self): + def write_sections_balance(self, objects, report_data): """Writes balances rows for left and right sections""" - report = self.report - curr = self.currency + report = objects + curr = objects.company_id.currency_id decimals = curr.decimal_places credit = self.format_value_by_lang(report.total_credit, decimals) credit_data = order_currency_amount(curr, credit) @@ -568,33 +538,33 @@ def write_sections_balance(self): left_str = "{} BALANCE: {} {}".format( report.left_col_name, debit_data[0], debit_data[1] ) - self.sheet.merge_range( - self.row_pos, - min(self.left_columns.keys()), - self.row_pos, - max(self.left_columns.keys()), + report_data["sheet"].merge_range( + report_data["row_pos"], + min(report_data["left_columns"].keys()), + report_data["row_pos"], + max(report_data["left_columns"].keys()), left_str, - self.format_header_right, + report_data["formats"]["format_header_right"], ) right_str = "{} BALANCE: {} {}".format( report.right_col_name, credit_data[0], credit_data[1] ) - self.sheet.merge_range( - self.row_pos, - min(self.right_columns.keys()), - self.row_pos, - max(self.right_columns.keys()), + report_data["sheet"].merge_range( + report_data["row_pos"], + min(report_data["right_columns"].keys()), + report_data["row_pos"], + max(report_data["right_columns"].keys()), right_str, - self.format_header_right, + report_data["formats"]["format_header_right"], ) - self.row_pos += 1 + report_data["row_pos"] += 1 - def write_total_balance(self): + def write_total_balance(self, objects, report_data): """Writes total balance row""" - report = self.report - curr = self.currency + report = objects + curr = objects.company_id.currency_id decimals = curr.decimal_places balance = self.format_value_by_lang(report.total_balance, decimals) total_credit = report.total_credit @@ -605,20 +575,37 @@ def write_total_balance(self): title = _("SURPLUS") if surplus else _("DEFICIT") bal_data = order_currency_amount(curr, balance) balance_str = "{}: {} {}".format(title, bal_data[0], bal_data[1]) - self.sheet.merge_range( - self.row_pos, - min(self.left_columns.keys()), - self.row_pos, - max(self.left_columns.keys()), + report_data["sheet"].merge_range( + report_data["row_pos"], + min(report_data["left_columns"].keys()), + report_data["row_pos"], + max(report_data["left_columns"].keys()), balance_str if surplus else "", - self.format_header_amount_right, + report_data["formats"]["format_header_right"], ) - self.sheet.merge_range( - self.row_pos, - min(self.right_columns.keys()), - self.row_pos, - max(self.right_columns.keys()), + report_data["sheet"].merge_range( + report_data["row_pos"], + min(report_data["right_columns"].keys()), + report_data["row_pos"], + max(report_data["right_columns"].keys()), balance_str if deficit else "", - self.format_header_amount_right, + report_data["formats"]["format_header_right"], ) - self.row_pos += 1 + report_data["row_pos"] += 1 + + def _set_column_width(self, report_data): + report_data.update( + { + "left_partner_columns": report_data["columns"].pop( + "left_partner_columns" + ), + "right_partner_columns": report_data["columns"].pop( + "right_partner_columns" + ), + "left_columns": report_data["columns"].pop("left_columns"), + "right_columns": report_data["columns"].pop("right_columns"), + } + ) + + result = super()._set_column_width(report_data) + return result diff --git a/l10n_it_account_balance_report/report/reports.xml b/l10n_it_account_balance_report/report/reports.xml index 64f16d40ea31..dd5a3f8d49c2 100644 --- a/l10n_it_account_balance_report/report/reports.xml +++ b/l10n_it_account_balance_report/report/reports.xml @@ -1,33 +1,44 @@ - + + Account Balance Report HTML + account_balance_report + qweb-html + l10n_it_account_balance_report.account_balance_report_qweb + l10n_it_account_balance_report.account_balance_report_html + + - + + Account Balance Report PDF + account_balance_report + qweb-pdf + l10n_it_account_balance_report.account_balance_report_qweb + l10n_it_account_balance_report.account_balance_report_qweb + + - + + Account Balance Report XLSX + account_balance_report + xlsx + l10n_it_a_b_r.account_balance_report_xlsx + l10n_it_a_b_r.account_balance_report_xlsx + diff --git a/l10n_it_account_balance_report/report/templates/account_balance_report.xml b/l10n_it_account_balance_report/report/templates/account_balance_report.xml index a97fafbada9c..1515d8fc1975 100644 --- a/l10n_it_account_balance_report/report/templates/account_balance_report.xml +++ b/l10n_it_account_balance_report/report/templates/account_balance_report.xml @@ -46,27 +46,42 @@ t-as="line" > - - + + + + + + + + + + + + - + -
@@ -80,27 +95,42 @@ t-as="line" > - - + + + + + + + + + + + + - + -
@@ -190,59 +220,36 @@