From c0a35ca628a2b8a5f187ff4f50366a1adfcb77db Mon Sep 17 00:00:00 2001 From: mktsrl Date: Thu, 24 Nov 2022 11:55:08 +0100 Subject: [PATCH 1/6] [ADD] l10n_it_account_balance_eu --- l10n_it_account_balance_eu/README.rst | 200 ++++ l10n_it_account_balance_eu/__init__.py | 7 + l10n_it_account_balance_eu/__manifest__.py | 36 + .../data/account.balance.eu.csv | 283 ++++++ .../account_balance_eu_reclassification.xml | 950 ++++++++++++++++++ l10n_it_account_balance_eu/i18n/it.po | 568 +++++++++++ .../i18n/l10n_it_account_balance_eu.pot | 564 +++++++++++ l10n_it_account_balance_eu/models/__init__.py | 5 + .../models/account_balance_eu.py | 534 ++++++++++ .../readme/CONFIGURE.rst | 11 + .../readme/CONTRIBUTORS.rst | 3 + .../readme/DESCRIPTION.rst | 35 + l10n_it_account_balance_eu/readme/ROADMAP.rst | 15 + l10n_it_account_balance_eu/readme/USAGE.rst | 37 + l10n_it_account_balance_eu/report/__init__.py | 5 + .../report/account_balance_eu_report.py | 329 ++++++ .../report/account_balance_eu_report.xml | 155 +++ .../report/templates/layouts.xml | 32 + .../security/account_balance_eu.xml | 36 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 527 ++++++++++ .../static/src/css/report.css | 118 +++ .../static/src/js/action_manager_report.js | 35 + .../static/src/js/client_action.js | 77 ++ .../static/src/xml/report.xml | 22 + l10n_it_account_balance_eu/tests/__init__.py | 1 + .../tests/test_balance_eu.py | 254 +++++ .../views/account_balance_eu_view.xml | 108 ++ .../views/report_template.xml | 19 + .../wizards/__init__.py | 5 + .../wizards/account_balance_eu_wizard.py | 160 +++ .../wizards/account_balance_eu_wizard.xml | 101 ++ 32 files changed, 5232 insertions(+) create mode 100644 l10n_it_account_balance_eu/README.rst create mode 100644 l10n_it_account_balance_eu/__init__.py create mode 100644 l10n_it_account_balance_eu/__manifest__.py create mode 100644 l10n_it_account_balance_eu/data/account.balance.eu.csv create mode 100644 l10n_it_account_balance_eu/data/account_balance_eu_reclassification.xml create mode 100644 l10n_it_account_balance_eu/i18n/it.po create mode 100644 l10n_it_account_balance_eu/i18n/l10n_it_account_balance_eu.pot create mode 100644 l10n_it_account_balance_eu/models/__init__.py create mode 100644 l10n_it_account_balance_eu/models/account_balance_eu.py create mode 100644 l10n_it_account_balance_eu/readme/CONFIGURE.rst create mode 100644 l10n_it_account_balance_eu/readme/CONTRIBUTORS.rst create mode 100644 l10n_it_account_balance_eu/readme/DESCRIPTION.rst create mode 100644 l10n_it_account_balance_eu/readme/ROADMAP.rst create mode 100644 l10n_it_account_balance_eu/readme/USAGE.rst create mode 100644 l10n_it_account_balance_eu/report/__init__.py create mode 100644 l10n_it_account_balance_eu/report/account_balance_eu_report.py create mode 100644 l10n_it_account_balance_eu/report/account_balance_eu_report.xml create mode 100644 l10n_it_account_balance_eu/report/templates/layouts.xml create mode 100644 l10n_it_account_balance_eu/security/account_balance_eu.xml create mode 100644 l10n_it_account_balance_eu/static/description/icon.png create mode 100644 l10n_it_account_balance_eu/static/description/index.html create mode 100644 l10n_it_account_balance_eu/static/src/css/report.css create mode 100644 l10n_it_account_balance_eu/static/src/js/action_manager_report.js create mode 100644 l10n_it_account_balance_eu/static/src/js/client_action.js create mode 100644 l10n_it_account_balance_eu/static/src/xml/report.xml create mode 100644 l10n_it_account_balance_eu/tests/__init__.py create mode 100644 l10n_it_account_balance_eu/tests/test_balance_eu.py create mode 100644 l10n_it_account_balance_eu/views/account_balance_eu_view.xml create mode 100644 l10n_it_account_balance_eu/views/report_template.xml create mode 100644 l10n_it_account_balance_eu/wizards/__init__.py create mode 100644 l10n_it_account_balance_eu/wizards/account_balance_eu_wizard.py create mode 100644 l10n_it_account_balance_eu/wizards/account_balance_eu_wizard.xml diff --git a/l10n_it_account_balance_eu/README.rst b/l10n_it_account_balance_eu/README.rst new file mode 100644 index 000000000000..9d5a348524e3 --- /dev/null +++ b/l10n_it_account_balance_eu/README.rst @@ -0,0 +1,200 @@ +========================== +ITA - Bilancio UE con XBRL +========================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:3e738184140e1cdef6ba77a61cb7b20f251b8f95be3bbb4be5264a74e5f3f000 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png + :target: https://odoo-community.org/page/development-status + :alt: Alpha +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--italy-lightgray.png?logo=github + :target: https://github.com/OCA/l10n-italy/tree/14.0-l10n_it_account_balance_eu/l10n_it_account_balance_eu + :alt: OCA/l10n-italy +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/l10n-italy-14-0-l10n_it_account_balance_eu/l10n-italy-14-0-l10n_it_account_balance_eu-l10n_it_account_balance_eu + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-italy&target_branch=14.0-l10n_it_account_balance_eu + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +**Italiano** + +In Odoo è presente il piano dei conti tradizionale e le varie registrazioni +contabili +con gli importi ma non è presente una struttura di voci +che descrivano il Bilancio UE a cui associare le voci del piano dei conti +tradizionale. + +Questo modulo consente di generare un bilancio riclassificato secondo lo schema +del bilancio UE +con tutte le voci delle più recenti tassonomie mettendo a disposizione le +seguenti funzionalità: + +* associare ai conti del piano dei conti le voci del Bilancio UE (con preassociazione automatica in fase di installazione del modulo) +* elaborare le registrazioni contabili di un dato periodo (per esempio l’anno precedente) al fine di ottenere il bilancio contabile in formato UE, facendo gli opportuni controlli di congruenza, associazione di tutti i conti movimentati nel periodo e quadratura del bilancio. Nei report viene riportato anche il dettaglio dei conti associati ad una certa voce del bilancio UE +* generare il report di anteprima del Bilancio UE +* generare la stampa PDF del Bilancio UE +* generare i file XLSX e XBRL del bilancio (utili per successive rielaborazioni e per trasferimento del bilancio UE al Commercialista) + +**English** + +In Odoo there is the traditional chart of accounts and the various registrations +accountants +with amounts but there is no line item structure +that describe the EU financial statements to which to associate the items of the traditional chart of accounts. +This module allows to generate a reclassified financial statements according to the EU format +with all the entries of the most recent taxonomies by making available the +following features: + +* associate the items in the Chart of Accounts with the items in the EU Budget (with automatic pre-association during module installation) +* process the accounting records of a given period (for example + last year) in order to obtain the accounting financial statements in EU format, carrying out the appropriate congruence checks, association of all the accounts moved in the period and balancing of the balance sheet. The reports also show the details of the accounts associated with a certain item of the EU financial statements +* preview then EU financial statements +* PDF printout of the EU financial statements +* download files in XLSX or XBRL format (useful for subsequent re-elaborations and for the transfer of the EU financial statements to the accountant) + +.. IMPORTANT:: + This is an alpha version, the data model and design can change at any time without warning. + Only for development or testing purpose, do not use in production. + `More details on development status `_ + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +**Italiano** + +Il modulo non necessita di nessuna particolare configurazione. +L'installazione del modulo crea le voci del Bilancio UE secondo la più recente tassonomia. +Si consiglia di installare la contabilità con relativo piano dei conti prima di installare questo modulo, per consentire l’associazione automatica dei conti del piano dei conti italiano alle voci del Bilancio UE. + +**English** + +The module does not require any particular configuration. +Module installation creates the items of the EU Financial Statements according to the most recent taxonomy. +It is advisable to install the accounting with the related Chart of Accounts before installing this module, to allow the automatic association of the accounts of the Italian Chart of Accounts to the items of the EU Financial Statements. + +Usage +===== + +**Italiano** + +La maschera "Contabilità / Configurazione / Piano dei conti" è stata arricchita con due +nuovi campi "Associa a Bilancio UE / Dare" e ".../ Avere" che consentono di +definire la riclassificazione dei conti, riclassificazione che viene impostata +a valori predefiniti durante l’installazione del modulo. +Dei due campi "Dare" e "Avere" uno solo dei due è obbligatorio ai fini del report e in caso +siano presenti entrambi vengono usati in base al segno del saldo del valore annuale del +conto contabile. + +La nuova voce di menù "Contabilità / Rendicontazione / Bilancio UE" consente di selezionare il periodo e +scegliere la modalità di esportazione del Bilancio UE. +Nel wizard di “Bilancio UE” sono presenti le seguenti opzioni di generazione: + +* Visualizza valori [2 decimali di Euro / unità di Euro]: consente di stampare i valori del bilancio in Euro (con due decimali) o in unità di Euro (senza decimali). In caso si selezioni “unità di Euro” gli eventuali delta da arrotondamenti vengono riportati in automatico su due apposite voci (una nel Passivo e una nel Conto Economico). I saldi dei conti contabili verranno stampati comunque con 2 decimali +* Nascondere conti a 0: consente di non visualizzare i conti contabili con saldo a 0 e che quindi non influiscono nel calcolo delle voci del bilancio. Il bilancio UE verrà comunque visualizzato completo, con anche le voci con importo 0 +* Solo registrazioni confermate: per utilizzare solo le registrazioni contabili confermate (ignora bozze e annullate) +* Ignora registrazioni di chiusura: consente di stampare un Bilancio UE corretto anche in caso sia già stata effettuata la chiusura d’esercizio e quindi tutti i conti contabili siano a saldo 0 al 31/12. Se per effettuare la chiusura d’esercizio è stato utilizzato il modulo “account_fiscal_year_closing”, questa opzione consente di ignorare le registrazioni contabili di chiusura + +**English** + +The "Accounting / Configuration / Chart of Accounts" mask has been enriched with two +new fields "Match to EU Balance / Debit" and "... / Credit" that allow you to +define the reclassification of accounts, a reclassification that is set +to default values during installation of the module. +Of the two fields "Debit" and "Credit" only one of the two is mandatory for the purposes of the report and in the case +are present both are used according to the sign of the financial statements of the annual value of +accounting account. + +The new menu item "Accounting / Reporting / EU balance" allows you to select the period and +choose how to export the EU financial statements. +The following generation options are present in the "EU balance" wizard: + +* Values show as [2 decimals Euro / Euro units] : allows to print the values in Euros (with two decimals) or in Euro units (without decimals). If "Euro units" is selected, any delta from rounding is automatically reported on two specific Items (one in the Liabilities and one in the Income Statement). +* Hide account with amount 0: allows to not display the accounts with a balance at 0 and which therefore have no influence on the calculation of the financial statements items. The financial statements will be anyway displayed complete, even then items with amount 0 +* Use only posted registration: to use confirmed postings only (ignore drafts and cancelled) +* Ignore closing registration: allows you to print a correct EU financial statements even if the year-end has already been closed and therefore all accounting accounts have a balance of 0 as at 31/12. If the "account_fiscal_year_closing" module was used to carry out the year-end closing, this option allows you to ignore the closing moves + +Known issues / Roadmap +====================== + +**Italiano** + +Il termine "Balance" è errato per indicare in inglese il bilancio. +La traduzione corretta sarebbe "financial statements", come indicato in +https://www.odoo-italia.org/documentazione/14.0/traduzioni/glossari/contabilita.html + +Per la versione 16 modificare tutti gli utilizzi del termine balance, compreso il nome del modulo + +**English** + +The term "Balance" is incorrect to indicate the balance sheet in English. +The correct translation would be "financial statements", as indicated in +https://www.odoo-italia.org/documentazione/14.0/traduzioni/glossari/contabilita.html + +For version 16 change all usages of the term balance, including the module name + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* MKT Srl + +Contributors +~~~~~~~~~~~~ + +* Martinelli Andrea (analisi/sviluppo) +* Bellomi Luca (analisi/supporto) +* Allegretti Daniele (analisi/supervisione/consulenza) + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-mktsrl| image:: https://github.com/mktsrl.png?size=40px + :target: https://github.com/mktsrl + :alt: mktsrl + +Current `maintainer `__: + +|maintainer-mktsrl| + +This module is part of the `OCA/l10n-italy `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/l10n_it_account_balance_eu/__init__.py b/l10n_it_account_balance_eu/__init__.py new file mode 100644 index 000000000000..1eea02005664 --- /dev/null +++ b/l10n_it_account_balance_eu/__init__.py @@ -0,0 +1,7 @@ +# Copyright 2022 Associazione Odoo Italia () +# Copyright 2022 MKT Srl () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import models +from . import wizards +from . import report diff --git a/l10n_it_account_balance_eu/__manifest__.py b/l10n_it_account_balance_eu/__manifest__.py new file mode 100644 index 000000000000..6157f610e62c --- /dev/null +++ b/l10n_it_account_balance_eu/__manifest__.py @@ -0,0 +1,36 @@ +# Copyright 2022 Associazione Odoo Italia () +# Copyright 2022 MKT Srl () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +# last update: 2023-05-23 + +{ + "name": "ITA - Bilancio UE con XBRL", + "version": "14.0.1.0.0", + "category": "Localization/Italy", + "development_status": "Alpha", + "license": "AGPL-3", + "author": "MKT Srl, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/l10n-italy", + "maintainers": ["mktsrl"], + "depends": [ + "account", + "date_range", + "l10n_it_rea", + "l10n_it_fiscalcode", + "report_xlsx", + "report_xml", + ], + "data": [ + "data/account.balance.eu.csv", + "data/account_balance_eu_reclassification.xml", + "report/templates/layouts.xml", + "report/account_balance_eu_report.xml", + "security/account_balance_eu.xml", + "views/account_balance_eu_view.xml", + "views/report_template.xml", + "wizards/account_balance_eu_wizard.xml", + ], + "qweb": ["static/src/xml/report.xml"], + "application": False, + "installable": True, +} diff --git a/l10n_it_account_balance_eu/data/account.balance.eu.csv b/l10n_it_account_balance_eu/data/account.balance.eu.csv new file mode 100644 index 000000000000..1d8fd1918e6d --- /dev/null +++ b/l10n_it_account_balance_eu/data/account.balance.eu.csv @@ -0,0 +1,283 @@ +id,code,name,long_desc,zone_bal,parent_id:id,sequence,sign_calculation,sign_display,tag_xbrl +PA,PA,Attivo,STATO PATRIMONIALE ATTIVO,PA,,1,,+,TotaleAttivo +PA_A,PA.A,Crediti Verso Soci,A) Crediti verso soci per versamenti ancora dovuti,PA,PA,2,,+,TotaleCreditiVersoSociVersamentiAncoraDovuti +PA_A1,PA.A1,Parte richiamata,Parte richiamata,PA,PA_A,3,,+,CreditiVersoSociVersamentiAncoraDovutiParteRichiamata +PA_A2,PA.A2,Parte da richiamare,Parte da richiamare,PA,PA_A,4,,+,CreditiVersoSociVersamentiAncoraDovutiParteRichiamare +PA_B,PA.B,Immobilizzazioni,"B) Immobilizzazioni, con separata indicazione di quelle concesse in locazione finanziaria",PA,PA,5,,+,TotaleImmobilizzazioni +PA_B1,PA.B1,Immobilizzazioni Immateriali,I. Immateriali,PA,PA_B,6,,+,TotaleImmobilizzazioniImmateriali +PA_B11,PA.B11,Costi di Impianto ed Ampliamento,1) Costi di impianto e di ampliamento,PA,PA_B1,7,,+,ImmobilizzazioniImmaterialiCostiImpiantoAmpliamento +PA_B11a,PA.B11a,Costo storico,Costo storico,PA,PA_B11,8,,+, +PA_B11b,PA.B11b,(Fondo ammortamenti),(Fondo ammortamenti),PA,PA_B11,9,,+, +PA_B11c,PA.B11c,(Fondo svalutazioni),(Fondo svalutazioni),PA,PA_B11,10,,+, +PA_B12,PA.B12,Costi di Sviluppo,2) Costi di sviluppo,PA,PA_B1,11,,+,ImmobilizzazioniImmaterialiCostiSviluppo +PA_B12a,PA.B12a,Costo storico,Costo storico,PA,PA_B12,12,,+, +PA_B12b,PA.B12b,(Fondo ammortamenti),(Fondo ammortamenti),PA,PA_B12,13,,+, +PA_B12c,PA.B12c,(Fondo svalutazioni),(Fondo svalutazioni),PA,PA_B12,14,,+, +PA_B13,PA.B13,Brevetti e Diritti Utilizzo Opere dell'Ingegno,3) Diritti di brevetto industriale e di utilizzazione delle opere dell'ingegno,PA,PA_B1,15,,+,ImmobilizzazioniImmaterialiDirittiBrevettoIndustrialeDirittiUtilizzazioneOpereIngegno +PA_B13a,PA.B13a,Costo storico,Costo storico,PA,PA_B13,16,,+, +PA_B13b,PA.B13b,(Fondo ammortamenti),(Fondo ammortamenti),PA,PA_B13,17,,+, +PA_B13c,PA.B13c,(Fondo svalutazioni),(Fondo svalutazioni),PA,PA_B13,18,,+, +PA_B14,PA.B14,"Concessioni, Licenze, Marchi","4) Concessioni, licenze, marchi e diritti simili",PA,PA_B1,19,,+,ImmobilizzazioniImmaterialiConcessioniLicenzeMarchiDirittiSimili +PA_B14a,PA.B14a,Costo storico,Costo storico,PA,PA_B14,20,,+, +PA_B14b,PA.B14b,(Fondo ammortamenti),(Fondo ammortamenti),PA,PA_B14,21,,+, +PA_B14c,PA.B14c,(Fondo svalutazioni),(Fondo svalutazioni),PA,PA_B14,22,,+, +PA_B18,PA.B18,Differenza da consolidamento,Differenza da consolidamento,PA,PA_B1,23,,+, +PA_B15,PA.B15,Avviamento,5) Avviamento,PA,PA_B1,24,,+,ImmobilizzazioniImmaterialiAvviamento +PA_B15a,PA.B15a,Costo storico,Costo storico,PA,PA_B15,25,,+, +PA_B15b,PA.B15b,(Fondo ammortamenti),(Fondo ammortamenti),PA,PA_B15,26,,+, +PA_B15c,PA.B15c,(Fondo svalutazioni),(Fondo svalutazioni),PA,PA_B15,27,,+, +PA_B16,PA.B16,Immobilizzazioni in Corso e Acconti,6) Immobilizzazioni immateriali in corso e acconti,PA,PA_B1,28,,+,ImmobilizzazioniImmaterialiImmobilizzazioniCorsoAcconti +PA_B17,PA.B17,Altre,7) Altre,PA,PA_B1,29,,+,ImmobilizzazioniImmaterialiAltre +PA_B17a,PA.B17a,Costo storico,Costo storico,PA,PA_B17,30,,+, +PA_B17b,PA.B17b,(Fondo ammortamenti),(Fondo ammortamenti),PA,PA_B17,31,,+, +PA_B17c,PA.B17c,(Fondo svalutazioni),(Fondo svalutazioni),PA,PA_B17,32,,+, +PA_B2,PA.B2,Immobilizzazioni Materiali,II. Materiali,PA,PA_B,33,,+,TotaleImmobilizzazioniMateriali +PA_B21,PA.B21,Terreni e Fabbricati,1) Terreni e fabbricati,PA,PA_B2,34,,+,ImmobilizzazioniMaterialiTerreniFabbricati +PA_B21a,PA.B21a,Costo storico,Costo storico,PA,PA_B21,35,,+, +PA_B21b,PA.B21b,(Fondo ammortamenti),(Fondo ammortamenti),PA,PA_B21,36,,+, +PA_B21c,PA.B21c,(Fondo svalutazioni),(Fondo svalutazioni),PA,PA_B21,37,,+, +PA_B22,PA.B22,Impianti e Macchinario,2) Impianti e macchinario,PA,PA_B2,38,,+,ImmobilizzazioniMaterialiImpiantiMacchinario +PA_B22a,PA.B22a,Costo storico,Costo storico,PA,PA_B22,39,,+, +PA_B22b,PA.B22b,(Fondo ammortamenti),(Fondo ammortamenti),PA,PA_B22,40,,+, +PA_B22c,PA.B22c,(Fondo svalutazioni),(Fondo svalutazioni),PA,PA_B22,41,,+, +PA_B23,PA.B23,Attrezzature Industriali e Commerciali,3) Attrezzature industriali e commerciali,PA,PA_B2,42,,+,ImmobilizzazioniMaterialiAttrezzatureIndustrialiCommerciali +PA_B23a,PA.B23a,Costo storico,Costo storico,PA,PA_B23,43,,+, +PA_B23b,PA.B23b,(Fondo ammortamenti),(Fondo ammortamenti),PA,PA_B23,44,,+, +PA_B23c,PA.B23c,(Fondo svalutazioni),(Fondo svalutazioni),PA,PA_B23,45,,+, +PA_B24,PA.B24,Altri Beni,4) Altri beni,PA,PA_B2,46,,+,ImmobilizzazioniMaterialiAltriBeni +PA_B24a,PA.B24a,Costo storico,Costo storico,PA,PA_B24,47,,+, +PA_B24b,PA.B24b,(Fondo ammortamenti),(Fondo ammortamenti),PA,PA_B24,48,,+, +PA_B24c,PA.B24c,(Fondo svalutazioni),(Fondo svalutazioni),PA,PA_B24,49,,+, +PA_B25,PA.B25,Immobilizzazioni in Corso e Acconti,5) Immobilizzazioni in corso e acconti,PA,PA_B2,50,,+,ImmobilizzazioniMaterialiImmobilizzazioniCorsoAcconti +PA_B3,PA.B3,Immobilizzazioni Finanziarie,III. Finanziarie,PA,PA_B,51,,+,TotaleImmobilizzazioniFinanziarie +PA_B31,PA.B31,Partecipazioni,1) Partecipazioni in:,PA,PA_B3,52,,+,ImmobilizzazioniFinanziariePartecipazioniTotalePartecipazioni +PA_B31a,PA.B31a,Partecipazioni in Imprese Controllate,a) imprese controllate,PA,PA_B31,53,,+,ImmobilizzazioniFinanziariePartecipazioniImpreseControllate +PA_B31b,PA.B31b,Partecipazioni in Imprese Collegate,b) imprese collegate,PA,PA_B31,54,,+,ImmobilizzazioniFinanziariePartecipazioniImpreseCollegate +PA_B31c,PA.B31c,Partecipazioni in Imprese Controllanti,c) imprese controllanti,PA,PA_B31,55,,+,ImmobilizzazioniFinanziariePartecipazioniImpreseControllanti +PA_B31e,PA.B31e,Partecipazioni in Imprese sottoposte al controllo delle controllanti,c) imprese sottoposte al controllo delle controllanti,PA,PA_B31,56,,+,ImmobilizzazioniFinanziariePartecipazioniImpreseSottoposteControlloControllanti +PA_B31d,PA.B31d,Partecipazioni in altre Imprese,d) altre imprese,PA,PA_B31,57,,+,ImmobilizzazioniFinanziariePartecipazioniAltreImprese +PA_B32,PA.B32,Crediti,2) Crediti,PA,PA_B3,58,,+,ImmobilizzazioniFinanziarieCreditiTotaleCrediti +PA_B32a,PA.B32a,Crediti verso Imprese Controllate,a) verso imprese controllate,PA,PA_B32,59,,+,ImmobilizzazioniFinanziarieCreditiVersoImpreseControllateTotaleCreditiVersoImpreseControllate +PA_B32a1,PA.B32a1,Esigibili entro l'esercizio successivo,- entro esercizio successivo,PA,PA_B32a,60,,+,ImmobilizzazioniFinanziarieCreditiVersoImpreseControllateEsigibiliEntroEsercizioSuccessivo +PA_B32a2,PA.B32a2,Esigibili oltre l'esercizio successivo,- oltre esercizio successivo,PA,PA_B32a,61,,+,ImmobilizzazioniFinanziarieCreditiVersoImpreseControllateEsigibiliOltreEsercizioSuccessivo +PA_B32b,PA.B32b,Crediti Verso Imprese Collegate,b) verso imprese collegate,PA,PA_B32,62,,+,ImmobilizzazioniFinanziarieCreditiVersoImpreseCollegateTotaleCreditiVersoImpreseCollegate +PA_B32b1,PA.B32b1,Esigibili entro l'esercizio successivo,- entro esercizio successivo,PA,PA_B32b,63,,+,ImmobilizzazioniFinanziarieCreditiVersoImpreseCollegateEsigibiliEntroEsercizioSuccessivo +PA_B32b2,PA.B32b2,Esigibili oltre l'esercizio successivo,- oltre esercizio successivo,PA,PA_B32b,64,,+,ImmobilizzazioniFinanziarieCreditiVersoImpreseCollegateEsigibiliOltreEsercizioSuccessivo +PA_B32c,PA.B32c,Crediti Verso Imprese Controllanti,c) verso imprese controllanti,PA,PA_B32,65,,+,ImmobilizzazioniFinanziarieCreditiVersoControllantiTotaleCreditiVersoControllanti +PA_B32c1,PA.B32c1,Esigibili entro l'esercizio successivo,- entro esercizio successivo,PA,PA_B32c,66,,+,ImmobilizzazioniFinanziarieCreditiVersoControllantiEsigibiliEntroEsercizioSuccessivo +PA_B32c2,PA.B32c2,Esigibili oltre l'esercizio successivo,- oltre esercizio successivo,PA,PA_B32c,67,,+,ImmobilizzazioniFinanziarieCreditiVersoControllantiEsigibiliOltreEsercizioSuccessivo +PA_B32e,PA.B32e,Crediti Verso Imprese sottoposte al controllo delle Controllanti,c) verso imprese sottoposte al controllo delle controllanti,PA,PA_B32,68,,+,ImmobilizzazioniFinanziarieCreditiVersoImpreseSottoposteControlloControllantiTotaleCreditiVersoImpreseSottoposteControlloControllanti +PA_B32e1,PA.B32e1,Esigibili entro l'esercizio successivo,- entro esercizio successivo,PA,PA_B32e,69,,+,ImmobilizzazioniFinanziarieCreditiVersoImpreseSottoposteControlloControllantiEsigibiliEntroEsercizioSuccessivo +PA_B32e2,PA.B32e2,Esigibili oltre l'esercizio successivo,- oltre esercizio successivo,PA,PA_B32e,70,,+,ImmobilizzazioniFinanziarieCreditiVersoImpreseSottoposteControlloControllantiEsigibiliOltreEsercizioSuccessivo +PA_B32d,PA.B32d,Crediti Verso altri,d) verso altri,PA,PA_B32,71,,+,ImmobilizzazioniFinanziarieCreditiVersoAltriTotaleCreditiVersoAltri +PA_B32d1,PA.B32d1,Esigibili entro l'esercizio successivo,- entro esercizio successivo,PA,PA_B32d,72,,+,ImmobilizzazioniFinanziarieCreditiVersoAltriEsigibiliEntroEsercizioSuccessivo +PA_B32d2,PA.B32d2,Esigibili oltre l'esercizio successivo,- oltre esercizio successivo,PA,PA_B32d,73,,+,ImmobilizzazioniFinanziarieCreditiVersoAltriEsigibiliOltreEsercizioSuccessivo +PA_B33,PA.B33,Altri Titoli,3) Altri titoli,PA,PA_B3,74,,+,ImmobilizzazioniFinanziarieAltriTitoli +PA_B35,PA.B35,Strumenti finanziari derivati attivi,4) strumenti finanziari derivati attivi,PA,PA_B3,75,,+,ImmobilizzazioniFinanziarieStrumentiFinanziariDerivatiAttivi +PA_C,PA.C,Attivo Circolante,C) Attivo circolante,PA,PA,76,,+,TotaleAttivoCircolante +PA_C1,PA.C1,Rimanenze,I. Rimanenze,PA,PA_C,77,,+,TotaleRimanenze +PA_C11,PA.C11,"Materie prime, sussidiarie e di consumo","1) Materie prime, sussidiarie e di consumo",PA,PA_C1,78,,+,RimanenzeMateriePrimeSussidiarieConsumo +PA_C12,PA.C12,Prodotti in corso di lavorazione,2) Prodotti in corso di lavorazione e semilavorati,PA,PA_C1,79,,+,RimanenzeProdottiCorsoLavorazioneSemilavorati +PA_C13,PA.C13,Lavori in corso su Ordinazione,3) Lavori in corso su ordinazione,PA,PA_C1,80,,+,RimanenzeLavoriCorsoOrdinazione +PA_C14,PA.C14,Prodotti Finiti e Merci,4) Prodotti finiti e merci,PA,PA_C1,81,,+,RimanenzeProdottiFinitiMerci +PA_C15,PA.C15,Acconti,5) Acconti,PA,PA_C1,82,,+,RimanenzeAcconti +PA_C5,PA.C5,Immobilizzazioni materiali destinate alla vendita,Immobilizzazioni materiali destinate alla vendita,PA,PA_C,83,,+,ImmobilizzazioniMaterialiDestinateAllaVendita +PA_C2,PA.C2,Crediti,II. Crediti,PA,PA_C,84,,+,TotaleCrediti +PA_C21,PA.C21,Crediti Verso Clienti,1) verso clienti,PA,PA_C2,85,,+,CreditiVersoClientiTotaleCreditiVersoClienti +PA_C21a,PA.C21a,Esigibili entro l'esercizio successivo,- entro esercizio successivo,PA,PA_C21,86,,+,CreditiVersoClientiEsigibiliEntroEsercizioSuccessivo +PA_C21b,PA.C21b,Esigibili oltre l'esercizio successivo,- oltre esercizio successivo,PA,PA_C21,87,,+,CreditiVersoClientiEsigibiliOltreEsercizioSuccessivo +PA_C22,PA.C22,Crediti Verso Imprese Controllate,2) verso imprese controllate,PA,PA_C2,88,,+,CreditiVersoImpreseControllateTotaleCreditiVersoImpreseControllate +PA_C22a,PA.C22a,Esigibili entro l'esercizio successivo,- entro esercizio successivo,PA,PA_C22,89,,+,CreditiVersoImpreseControllateEsigibiliEntroEsercizioSuccessivo +PA_C22b,PA.C22b,Esigibili oltre l'esercizio successivo,- oltre esercizio successivo,PA,PA_C22,90,,+,CreditiVersoImpreseControllateEsigibiliOltreEsercizioSuccessivo +PA_C23,PA.C23,Crediti Verso Imprese Collegate,3) verso imprese collegate,PA,PA_C2,91,,+,CreditiVersoImpreseCollegateTotaleCreditiVersoImpreseCollegate +PA_C23a,PA.C23a,Esigibili entro l'esercizio successivo,- entro esercizio successivo,PA,PA_C23,92,,+,CreditiVersoImpreseCollegateEsigibiliEntroEsercizioSuccessivo +PA_C23b,PA.C23b,Esigibili oltre l'esercizio successivo,- oltre esercizio successivo,PA,PA_C23,93,,+,CreditiVersoImpreseCollegateEsigibiliOltreEsercizioSuccessivo +PA_C24,PA.C24,Crediti Verso Controllanti,4) verso controllanti,PA,PA_C2,94,,+,CreditiVersoControllantiTotaleCreditiVersoControllanti +PA_C24a,PA.C24a,Esigibili entro l'esercizio successivo,- entro esercizio successivo,PA,PA_C24,95,,+,CreditiVersoControllantiEsigibiliEntroEsercizioSuccessivo +PA_C24b,PA.C24b,Esigibili oltre l'esercizio successivo,- oltre esercizio successivo,PA,PA_C24,96,,+,CreditiVersoControllantiEsigibiliOltreEsercizioSuccessivo +PA_C26,PA.C26,Crediti Verso imprese sottoposte al controllo delle controllanti,4) verso imprese sottoposte al controllo delle controllanti,PA,PA_C2,97,,+,CreditiVersoImpreseSottoposteControlloControllantiTotaleCreditiVersoImpreseSottoposteControlloControllanti +PA_C26a,PA.C26a,Esigibili entro l'esercizio successivo,- entro esercizio successivo,PA,PA_C26,98,,+,CreditiVersoImpreseSottoposteControlloControllantiEsigibiliEntroEsercizioSuccessivo +PA_C26b,PA.C26b,Esigibili oltre l'esercizio successivo,- oltre esercizio successivo,PA,PA_C26,99,,+,CreditiVersoImpreseSottoposteControlloControllantiEsigibiliOltreEsercizioSuccessivo +PA_C2B,PA.C2B,Crediti Tributari,5-bis) crediti tributari,PA,PA_C2,100,,+,CreditiCreditiTributariTotaleCreditiTributari +PA_C2Ba,PA.C2Ba,Esigibili entro l'esercizio successivo,- entro esercizio successivo,PA,PA_C2B,101,,+,CreditiCreditiTributariEsigibiliEntroEsercizioSuccessivo +PA_C2Bb,PA.C2Bb,Esigibili oltre l'esercizio successivo,- oltre esercizio successivo,PA,PA_C2B,102,,+,CreditiCreditiTributariEsigibiliOltreEsercizioSuccessivo +PA_C2T,PA.C2T,Imposte Anticipate,5-ter) Imposte anticipate,PA,PA_C2,103,,+,CreditiImposteAnticipateTotaleImposteAnticipate +PA_C25,PA.C25,Crediti Verso Altri,5-quater) verso altri,PA,PA_C2,104,,+,CreditiVersoAltriTotaleCreditiVersoAltri +PA_C25a,PA.C25a,Esigibili entro l'esercizio successivo,- entro esercizio successivo,PA,PA_C25,105,,+,CreditiVersoAltriEsigibiliEntroEsercizioSuccessivo +PA_C25b,PA.C25b,Esigibili oltre l'esercizio successivo,- oltre esercizio successivo,PA,PA_C25,106,,+,CreditiVersoAltriEsigibiliOltreEsercizioSuccessivo +PA_C3,PA.C3,Attività Finanziarie che non costit. immobilizz.,III. Attività finanziarie che non costituiscono immobilizzazioni,PA,PA_C,107,,+,TotaleAttivitaFinanziarieNonCostituisconoImmobilizzazioni +PA_C31,PA.C31,Partecipazioni in Imprese Controllate,1) Partecipazioni in imprese controllate,PA,PA_C3,108,,+,AttivitaFinanziarieNonCostituisconoImmobilizzazioniPartecipazioniImpreseControllate +PA_C32,PA.C32,Partecipazioni in Imprese Collegate,2) Partecipazioni in imprese collegate,PA,PA_C3,109,,+,AttivitaFinanziarieNonCostituisconoImmobilizzazioniPartecipazioniImpreseCollegate +PA_C33,PA.C33,Partecipazioni in Imprese Controllanti,3) Partecipazioni in imprese controllanti,PA,PA_C3,110,,+,AttivitaFinanziarieNonCostituisconoImmobilizzazioniPartecipazioniImpreseControllanti +PA_C37,PA.C37,Partecipazioni in imprese sottoposte al controllo delle controllanti,3 bis) Partecipazioni in imprese sottoposte al controllo delle controllanti,PA,PA_C3,111,,+,AttivitaFinanziarieNonCostituisconoImmobilizzazioniPartecipazioniImpreseSottoposteControlloControllanti +PA_C34,PA.C34,Altre Partecipazioni,4) Altre partecipazioni,PA,PA_C3,112,,+,AttivitaFinanziarieNonCostituisconoImmobilizzazioniAltrePartecipazioni +PA_C38,PA.C38,Strumenti finanziari derivati attivi,5) Strumenti finanziari derivati attivi,PA,PA_C3,113,,+,AttivitaFinanziarieNonCostituisconoImmobilizzazioniStrumentiFinanziariDerivatiAttivi +PA_C36,PA.C36,Altri Titoli,6) Altri titoli,PA,PA_C3,114,,+,AttivitaFinanziarieNonCostituisconoImmobilizzazioniAltriTitoli +PA_C3T,PA.C3T,attività finanziarie per la gestione accentrata della tesoreria,attività finanziarie per la gestione accentrata della tesoreria,PA,PA_C3,115,,+,AttivitaFinanziarieNonCostituisconoImmobilizzazioniAttivitaFinanziarieLaGestioneAccentrataTesoreria +PA_C4,PA.C4,Disponibilità Liquide,IV. Disponibilità liquide,PA,PA_C,116,,+,TotaleDisponibilitaLiquide +PA_C41,PA.C41,Depositi Bancari e Postali,1) Depositi bancari e postali,PA,PA_C4,117,,+,DisponibilitaLiquideDepositiBancariPostali +PA_C42,PA.C42,Assegni,2) Assegni,PA,PA_C4,118,,+,DisponibilitaLiquideAssegni +PA_C43,PA.C43,Denaro e Valori in Cassa,3) Denaro e valori in cassa,PA,PA_C4,119,,+,DisponibilitaLiquideDanaroValoriCassa +PA_D,PA.D,Ratei e Risconti,D) Ratei e risconti,PA,PA,120,,+,AttivoRateiRisconti +PP,PP,Passivo,STATO PATRIMONIALE PASSIVO,PP,,121,,-,TotalePassivo +PP_A,PP.A,Patrimonio Netto,A) Patrimonio netto,PP,PP,122,,-,TotalePatrimonioNetto +PP_A1,PP.A1,Capitale,I. Capitale,PP,PP_A,123,,-,PatrimonioNettoCapitale +PP_A2,PP.A2,Riserva da Sovrapprezzo delle Azioni,II. Riserva da sovrapprezzo delle azioni,PP,PP_A,124,,-,PatrimonioNettoRiservaSoprapprezzoAzioni +PP_A3,PP.A3,Riserva di Rivalutazione,III. Riserva di rivalutazione,PP,PP_A,125,,-,PatrimonioNettoRiserveRivalutazione +PP_A4,PP.A4,Riserva Legale,IV. Riserva legale,PP,PP_A,126,,-,PatrimonioNettoRiservaLegale +PP_A6,PP.A6,Riserve Statutarie,V. Riserve statutarie,PP,PP_A,127,,-,PatrimonioNettoRiserveStatutarie +PP_A7,PP.A7,Altre Riserve,"VI. Altre riserve, distintamente indicate:",PP,PP_A,128,,-,PatrimonioNettoAltreRiserveDistintamenteIndicateTotaleAltreRiserve +PP_A7a,PP.A7a,Riserva straordinaria,Riserva straordinaria,PP,PP_A7,129,,-,PatrimonioNettoAltreRiserveDistintamenteIndicateRiservaStraordinaria +PP_A7o,PP.A7o,Riserva da deroghe ex art. 2423 Cod.Civ.,Riserva da deroghe ex art. 2423 Cod.Civ.,PP,PP_A7,130,,-,PatrimonioNettoAltreRiserveDistintamenteIndicateRiservaDerogheExArticolo2423CodiceCivile +PP_A7p,PP.A7p,Riserva azioni (quote) della società controllante,Riserva azioni (quote) della società controllante,PP,PP_A7,131,,-,PatrimonioNettoAltreRiserveDistintamenteIndicateRiservaAzioniQuoteSocietaControllante +PP_A7q,PP.A7q,Riserva da rivalutazione delle partecipazioni,Riserva da rivalutazione delle partecipazioni,PP,PP_A7,132,,-,PatrimonioNettoAltreRiserveDistintamenteIndicateRiservaRivalutazionePartecipazioni +PP_A7r,PP.A7r,Versamenti in conto aumento di capitale,Versamenti in conto aumento di capitale,PP,PP_A7,133,,-,PatrimonioNettoAltreRiserveDistintamenteIndicateVersamentiContoAumentoCapitale +PP_A7s,PP.A7s,Versamenti in conto futuro aumento di capitale,Versamenti in conto futuro aumento di capitale,PP,PP_A7,134,,-,PatrimonioNettoAltreRiserveDistintamenteIndicateVersamentiContoFuturoAumentoCapitale +PP_A7b,PP.A7b,Versamenti in conto capitale,- Versamenti in conto capitale,PP,PP_A7,135,,-,PatrimonioNettoAltreRiserveDistintamenteIndicateVersamentiContoCapitale +PP_A7t,PP.A7t,Versamenti a copertura perdite,Versamenti a copertura perdite,PP,PP_A7,136,,-,PatrimonioNettoAltreRiserveDistintamenteIndicateVersamentiCoperturaPerdite +PP_A7u,PP.A7u,Riserva da riduzione capitale sociale,Riserva da riduzione capitale sociale,PP,PP_A7,137,,-,PatrimonioNettoAltreRiserveDistintamenteIndicateRiservaRiduzioneCapitaleSociale +PP_A7v,PP.A7v,Riserva avanzo di fusione,Riserva avanzo di fusione,PP,PP_A7,138,,-,PatrimonioNettoAltreRiserveDistintamenteIndicateRiservaAvanzoFusione +PP_A7w,PP.A7w,Riserva per utili su cambi non realizzati,Riserva per utili su cambi non realizzati,PP,PP_A7,139,,-,PatrimonioNettoAltreRiserveDistintamenteIndicateRiservaUtiliCambiNonRealizzati +PP_A7x,PP.A7x,Riserva da conguaglio utili in corso,Riserva da conguaglio utili in corso,PP,PP_A7,140,,-,PatrimonioNettoAltreRiserveDistintamenteIndicateRiservaConguaglioUtiliCorso +PP_A7j,PP.A7j,Varie altre riserve,Varie altre riserve,PP,PP_A7,141,,-,PatrimonioNettoAltreRiserveDistintamenteIndicateVarieAltreRiserve +PP_A7j1,PP.A7j1,varie altre riserve,varie altre riserve,PP,PP_A7j,142,,-, +PP=A7j2,PP=A7j2,da arrotondamento automatico,- da arrotondamento automatico in Euro (2 decimali),PP,PP_A7j,143,,-, +PP_AB,PP.AB,Riserva per operazioni di copertura dei flussi finanziari attesi,VII. Riserva per operazioni di copertura dei flussi finanziari attesi,PP,PP_A,146,,-,PatrimonioNettoRiservaOperazioniCoperturaFlussiFinanziariAttesi +PP_A8,PP.A8,Utili (Perdite) Portati a Nuovo,VIII. Utili (perdite) portati a nuovo,PP,PP_A,147,,-,PatrimonioNettoUtiliPerditePortatiNuovo +PP=A9,PP=A9,Utile (Perdita) dell'esercizio,IX. Utile (perdita) dell'esercizio,PP,PP_A,148,,-,PatrimonioNettoUtilePerditaEsercizio +PP_AD,PP.AD,Perdita ripianata nell'esercizio,Perdita ripianata nell'esercizio,PP,PP_A,149,,-,PatrimonioNettoPerditaRipianataEsercizio +PP_AC,PP.AC,Riserva negativa per azioni proprie in portafoglio,X. Riserva negativa per azioni proprie in portafoglio,PP,PP_A,150,,-,PatrimonioNettoRiservaNegativaAzioniPropriePortafoglio +PP_B,PP.B,Fondi per Rischi e Oneri,B) Fondi per rischi e oneri,PP,PP,154,,-,TotaleFondiRischiOneri +PP_B1,PP.B1,Fondi per trattamento di quiescenza e obblighi simili,1) per trattamento di quiescenza e obblighi simili,PP,PP_B,155,,-,FondiRischiOneriTrattamentoQuiescenzaObblighiSimili +PP_B2,PP.B2,"Fondo per Imposte, anche differite","2) per imposte, anche differite",PP,PP_B,156,,-,FondiRischiOneriImposteAncheDifferite +PP_B5,PP.B5,Strumenti finanziari derivati passivi,3) Strumenti finanziari derivati passivi,PP,PP_B,158,,-,FondiRischiOneriStrumentiFinanziariDerivatiPassivi +PP_B3,PP.B3,Altri Fondi,4) Altri fondi,PP,PP_B,159,,-,FondiRischiOneriAltri +PP_C,PP.C,Trattamento di fine rapporto di lavoro subordinato,C) Trattamento di fine rapporto di lavoro subordinato,PP,PP,160,,-,TrattamentoFineRapportoLavoroSubordinato +PP_D,PP.D,Debiti,D) Debiti,PP,PP,161,,-,TotaleDebiti +PP_D1,PP.D1,Obbligazioni,1) Obbligazioni,PP,PP_D,162,,-,DebitiObbligazioniTotaleObbligazioni +PP_D1a,PP.D1a,Esigibili entro l'esercizio successivo,- entro l'esercizio successivo,PP,PP_D1,163,,-,DebitiObbligazioniEsigibiliEntroEsercizioSuccessivo +PP_D1b,PP.D1b,Esigibili oltre l'esercizio successivo,- oltre l'esercizio successivo,PP,PP_D1,164,,-,DebitiObbligazioniEsigibiliOltreEsercizioSuccessivo +PP_D2,PP.D2,Obbligazioni Convertibili,2) Obbligazioni convertibili,PP,PP_D,165,,-,DebitiObbligazioniConvertibiliTotaleObbligazioniConvertibili +PP_D2a,PP.D2a,Esigibili entro l'esercizio successivo,- entro l'esercizio successivo,PP,PP_D2,166,,-,DebitiObbligazioniConvertibiliEsigibiliEntroEsercizioSuccessivo +PP_D2b,PP.D2b,Esigibili oltre l'esercizio successivo,- oltre l'esercizio successivo,PP,PP_D2,167,,-,DebitiObbligazioniConvertibiliEsigibiliOltreEsercizioSuccessivo +PP_DF,PP.DF,Debiti verso soci per finanziamenti,3) Debiti verso soci per finanziamenti,PP,PP_D,168,,-,DebitiDebitiVersoSociFinanziamentiTotaleDebitiVersoSociFinanziamenti +PP_DFa,PP.DFa,Esigibili entro l'esercizio successivo,- entro l'esercizio successivo,PP,PP_DF,169,,-,DebitiDebitiVersoSociFinanziamentiEsigibiliEntroEsercizioSuccessivo +PP_DFb,PP.DFb,Esigibili oltre l'esercizio successivo,- oltre l'esercizio successivo,PP,PP_DF,170,,-,DebitiDebitiVersoSociFinanziamentiEsigibiliOltreEsercizioSuccessivo +PP_D3,PP.D3,Debiti verso banche,4) Debiti verso banche,PP,PP_D,171,,-,DebitiDebitiVersoBancheTotaleDebitiVersoBanche +PP_D3a,PP.D3a,Esigibili entro l'esercizio successivo,- entro l'esercizio successivo,PP,PP_D3,172,,-,DebitiDebitiVersoBancheEsigibiliEntroEsercizioSuccessivo +PP_D3b,PP.D3b,Esigibili oltre l'esercizio successivo,- oltre l'esercizio successivo,PP,PP_D3,173,,-,DebitiDebitiVersoBancheEsigibiliOltreEsercizioSuccessivo +PP_D4,PP.D4,Debiti verso altri finanziatori,5) Debiti verso altri finanziatori,PP,PP_D,174,,-,DebitiDebitiVersoAltriFinanziatoriTotaleDebitiVersoAltriFinanziatori +PP_D4a,PP.D4a,Esigibili entro l'esercizio successivo,- entro l'esercizio successivo,PP,PP_D4,175,,-,DebitiDebitiVersoAltriFinanziatoriEsigibiliEntroEsercizioSuccessivo +PP_D4b,PP.D4b,Esigibili oltre l'esercizio successivo,- oltre l'esercizio successivo,PP,PP_D4,176,,-,DebitiDebitiVersoAltriFinanziatoriEsigibiliOltreEsercizioSuccessivo +PP_D5,PP.D5,Acconti,6) Acconti,PP,PP_D,177,,-,DebitiAccontiTotaleAcconti +PP_D5a,PP.D5a,Esigibili entro l'esercizio successivo,- entro l'esercizio successivo,PP,PP_D5,178,,-,DebitiAccontiEsigibiliEntroEsercizioSuccessivo +PP_D5b,PP.D5b,Esigibili oltre l'esercizio successivo,- oltre l'esercizio successivo,PP,PP_D5,179,,-,DebitiAccontiEsigibiliOltreEsercizioSuccessivo +PP_D6,PP.D6,Debiti verso fornitori,7) Debiti verso fornitori,PP,PP_D,180,,-,DebitiDebitiVersoFornitoriTotaleDebitiVersoFornitori +PP_D6a,PP.D6a,Esigibili entro l'esercizio successivo,- entro l'esercizio successivo,PP,PP_D6,181,,-,DebitiDebitiVersoFornitoriEsigibiliEntroEsercizioSuccessivo +PP_D6b,PP.D6b,Esigibili oltre l'esercizio successivo,- oltre l'esercizio successivo,PP,PP_D6,182,,-,DebitiDebitiVersoFornitoriEsigibiliOltreEsercizioSuccessivo +PP_D7,PP.D7,Debiti rappresentati da titoli di credito,8) Debiti rappresentati da titoli di credito,PP,PP_D,183,,-,DebitiDebitiRappresentatiTitoliCreditoTotaleDebitiRappresentatiTitoliCredito +PP_D7a,PP.D7a,Esigibili entro l'esercizio successivo,- entro l'esercizio successivo,PP,PP_D7,184,,-,DebitiDebitiRappresentatiTitoliCreditoEsigibiliEntroEsercizioSuccessivo +PP_D7b,PP.D7b,Esigibili oltre l'esercizio successivo,- oltre l'esercizio successivo,PP,PP_D7,185,,-,DebitiDebitiRappresentatiTitoliCreditoEsigibiliOltreEsercizioSuccessivo +PP_D8,PP.D8,Debiti verso Imprese Controllate,9) Debiti verso imprese controllate,PP,PP_D,186,,-,DebitiDebitiVersoImpreseControllateTotaleDebitiVersoImpreseControllate +PP_D8a,PP.D8a,Esigibili entro l'esercizio successivo,- entro l'esercizio successivo,PP,PP_D8,187,,-,DebitiDebitiVersoImpreseControllateEsigibiliEntroEsercizioSuccessivo +PP_D8b,PP.D8b,Esigibili oltre l'esercizio successivo,- oltre l'esercizio successivo,PP,PP_D8,188,,-,DebitiDebitiVersoImpreseControllateEsigibiliOltreEsercizioSuccessivo +PP_D9,PP.D9,Debiti verso Imprese Collegate,10) Debiti verso imprese collegate,PP,PP_D,189,,-,DebitiDebitiVersoImpreseCollegateTotaleDebitiVersoImpreseCollegate +PP_D9a,PP.D9a,Esigibili entro l'esercizio successivo,- entro l'esercizio successivo,PP,PP_D9,190,,-,DebitiDebitiVersoImpreseCollegateEsigibiliEntroEsercizioSuccessivo +PP_D9b,PP.D9b,Esigibili oltre l'esercizio successivo,- oltre l'esercizio successivo,PP,PP_D9,191,,-,DebitiDebitiVersoImpreseCollegateEsigibiliOltreEsercizioSuccessivo +PP_DA,PP.DA,Debiti verso Imprese Controllanti,11) Debiti verso controllanti,PP,PP_D,192,,-,DebitiDebitiVersoControllantiTotaleDebitiVersoControllanti +PP_DAa,PP.DAa,Esigibili entro l'esercizio successivo,- entro l'esercizio successivo,PP,PP_DA,193,,-,DebitiDebitiVersoControllantiEsigibiliEntroEsercizioSuccessivo +PP_DAb,PP.DAb,Esigibili oltre l'esercizio successivo,- oltre l'esercizio successivo,PP,PP_DA,194,,-,DebitiDebitiVersoControllantiEsigibiliOltreEsercizioSuccessivo +PP_DE,PP.DE,Debiti verso imprese sottoposte al controllo delle controllanti,11 bis) Debiti verso imprese sottoposte al controllo delle controllanti,PP,PP_D,195,,-,DebitiDebitiVersoImpreseSottoposteControlloControllantiTotaleDebitiVersoImpreseSottoposteControlloControllanti +PP_DEa,PP.DEa,Esigibili entro l'esercizio successivo,- entro l'esercizio successivo,PP,PP_DE,196,,-,DebitiDebitiVersoImpreseSottoposteControlloControllantiEsigibiliEntroEsercizioSuccessivo +PP_DEb,PP.DEb,Esigibili oltre l'esercizio successivo,- oltre l'esercizio successivo,PP,PP_DE,197,,-,DebitiDebitiVersoImpreseSottoposteControlloControllantiEsigibiliOltreEsercizioSuccessivo +PP_DB,PP.DB,Debiti Tributari,12) Debiti tributari,PP,PP_D,198,,-,DebitiDebitiTributariTotaleDebitiTributari +PP_DBa,PP.DBa,Esigibili entro l'esercizio successivo,- entro l'esercizio successivo,PP,PP_DB,199,,-,DebitiDebitiTributariEsigibiliEntroEsercizioSuccessivo +PP_DBb,PP.DBb,Esigibili oltre l'esercizio successivo,- oltre l'esercizio successivo,PP,PP_DB,200,,-,DebitiDebitiTributariEsigibiliOltreEsercizioSuccessivo +PP_DC,PP.DC,Debiti Verso Istituti di Previdenza,13) Debiti verso istituti di previdenza e sicurezza sociale,PP,PP_D,201,,-,DebitiDebitiVersoIstitutiPrevidenzaSicurezzaSocialeTotaleDebitiVersoIstitutiPrevidenzaSicurezzaSociale +PP_DCa,PP.DCa,Esigibili entro l'esercizio successivo,- entro l'esercizio successivo,PP,PP_DC,202,,-,DebitiDebitiVersoIstitutiPrevidenzaSicurezzaSocialeEsigibiliEntroEsercizioSuccessivo +PP_DCb,PP.DCb,Esigibili oltre l'esercizio successivo,- oltre l'esercizio successivo,PP,PP_DC,203,,-,DebitiDebitiVersoIstitutiPrevidenzaSicurezzaSocialeEsigibiliOltreEsercizioSuccessivo +PP_DD,PP.DD,Altri Debiti,14) Altri debiti,PP,PP_D,204,,-,DebitiAltriDebitiTotaleAltriDebiti +PP_DDa,PP.DDa,Esigibili entro l'esercizio successivo,- entro l'esercizio successivo,PP,PP_DD,205,,-,DebitiAltriDebitiEsigibiliEntroEsercizioSuccessivo +PP_DDb,PP.DDb,Esigibili oltre l'esercizio successivo,- oltre l'esercizio successivo,PP,PP_DD,206,,-,DebitiAltriDebitiEsigibiliOltreEsercizioSuccessivo +PP_E,PP.E,Ratei e Risconti Passivi,E) Ratei e risconti,PP,PP,207,,-,PassivoRateiRisconti +E,E,CONTO ECONOMICO,CONTO ECONOMICO,EC,,208,,-, +E_A,E.A,Valore della Produzione,A) Valore della produzione,EC,E,209,,-,TotaleValoreProduzione +E_A1,E.A1,Ricavi delle Vendite e delle Prestazioni,1) Ricavi delle vendite e delle prestazioni,EC,E_A,210,,-,ValoreProduzioneRicaviVenditePrestazioni +E_A2,E.A2,Variazioni delle Rimanenze di Semilavorati e Finiti,"2) Variazioni delle rimanenze di prodotti in corso di lavorazione, semilavorati e finiti",EC,E_A,211,,-,ValoreProduzioneVariazioniRimanenzeProdottiCorsoLavorazioneSemilavoratiFiniti +E_A3,E.A3,Variazione dei Lavori in Corso su Ordinazione,3) Variazione dei lavori in corso su ordinazione,EC,E_A,212,,-,ValoreProduzioneVariazioniLavoriCorsoOrdinazione +E_A4,E.A4,Incrementi di Immobilizzazioni per Lavori Interni,4) Incrementi di immobilizzazioni per lavori interni,EC,E_A,213,,-,ValoreProduzioneIncrementiImmobilizzazioniLavoriInterni +E_A5,E.A5,Altri Ricavi e Proventi,5) Altri ricavi e proventi:,EC,E_A,214,,-,ValoreProduzioneAltriRicaviProventiTotaleAltriRicaviProventi +E_A52,E.A52,Contributi in conto esercizio,- Contributi in conto esercizio,EC,E_A5,215,,-,ValoreProduzioneAltriRicaviProventiContributiContoEsercizio +E_A51,E.A51,Altri,- Altri,EC,E_A5,216,,-,ValoreProduzioneAltriRicaviProventiAltri +E_A511,E.A511,Altri,- Altri,EC,E_A51,217,,-, +E_A512,E=A512,Da arrotondamento automatico,- da arrotondamento automatico in Euro (2 decimali),EC,E_A51,218,,-, +E_B,E.B,Costi della Produzione,B) Costi della produzione,EC,E,219,,+,TotaleCostiProduzione +E_B1,E.B1,"Per Materie Prime, Sussidiarie, di Consumo, Merci","6) per materie prime, sussidiarie, di consumo e di merci",EC,E_B,220,,+,CostiProduzioneMateriePrimeSussidiarieConsumoMerci +E_B2,E.B2,Per Servizi,7) per servizi,EC,E_B,221,,+,CostiProduzioneServizi +E_B3,E.B3,Per Godimento Beni di Terzi,8) per godimento di beni di terzi,EC,E_B,222,,+,CostiProduzioneGodimentoBeniTerzi +E_B4,E.B4,Per il Personale,9) per il personale,EC,E_B,223,,+,CostiProduzionePersonaleTotaleCostiPersonale +E_B41,E.B41,Salari e Stipendi,a) Salari e stipendi,EC,E_B4,224,,+,CostiProduzionePersonaleSalariStipendi +E_B42,E.B42,Oneri Sociali,b) Oneri sociali,EC,E_B4,225,,+,CostiProduzionePersonaleOneriSociali +E_B43,E.B43,Trattamento di fine rapporto,c) Trattamento di fine rapporto,EC,E_B4,226,,+,CostiProduzionePersonaleTrattamentoFineRapporto +E_B44,E.B44,Trattamento di Quiescenza e simili,d) Trattamento di quiescenza e simili,EC,E_B4,227,,+,CostiProduzionePersonaleTrattamentoQuiescenzaSimili +E_B45,E.B45,Altri costi,e) Altri costi,EC,E_B4,228,,+,CostiProduzionePersonaleAltriCosti +E_B5,E.B5,Ammortamenti e Svalutazioni,10) Ammortamenti e svalutazioni,EC,E_B,229,,+,CostiProduzioneAmmortamentiSvalutazioniTotaleAmmortamentiSvalutazioni +E_B51,E.B51,Ammortamento Immobilizzazioni Immateriali,a) Ammortamento delle immobilizzazioni immateriali,EC,E_B5,230,,+,CostiProduzioneAmmortamentiSvalutazioniAmmortamentoImmobilizzazioniImmateriali +E_B52,E.B52,Ammortamento Immobilizzazioni Materiali,b) Ammortamento delle immobilizzazioni materiali,EC,E_B5,231,,+,CostiProduzioneAmmortamentiSvalutazioniAmmortamentoImmobilizzazioniMateriali +E_B53,E.B53,Altre Svalutazioni delle Immobilizzazioni,c) Altre svalutazioni delle immobilizzazioni,EC,E_B5,232,,+,CostiProduzioneAmmortamentiSvalutazioniAltreSvalutazioniImmobilizzazioni +E_B54,E.B54,Svalutazione Attivo Circolante,d) svalutazioni dei crediti compresi nell'attivo circolante e delle disponibilità liquide,EC,E_B5,233,,+,CostiProduzioneAmmortamentiSvalutazioniSvalutazioniCreditiCompresiAttivoCircolanteDisponibilitaLiquide +E_B6,E.B6,"Var Rimanenze di Materie Prime, Sussid., Consumo, MVar","11) Variazioni delle rimanenze di materie prime, sussidiarie, di consumo e merci",EC,E_B,234,,+,CostiProduzioneVariazioniRimanenzeMateriePrimeSussidiarieConsumoMerci +E_B7,E.B7,Accantonamenti per Rischi,12) Accantonamenti per rischi,EC,E_B,235,,+,CostiProduzioneAccantonamentiRischi +E_B8,E.B8,Altri Accantonamenti,13) Altri accantonamenti,EC,E_B,236,,+,CostiProduzioneAltriAccantonamenti +E_B9,E.B9,Oneri Diversi di Gestione,14) Oneri diversi di gestione,EC,E_B,237,,+,CostiProduzioneOneriDiversiGestione +E=B,E=B,Differenza tra Valore e Costo della Produzione,Differenza tra Valore e Costo della Produzione,EC,E,238,,+,DifferenzaValoreCostiProduzione +E_C,E.C,Proventi e Oneri Finanziari,C) Proventi e oneri finanziari,EC,E,239,,+,TotaleProventiOneriFinanziari +E_C1,E.C1,Proventi da Partecipazioni,15) Proventi da partecipazioni,EC,E_C,240,,-,ProventiOneriFinanziariProventiPartecipazioniTotaleProventiPartecipazioni +E_C11,E.C11,Imprese Controllate,- da imprese Controllate,EC,E_C1,241,,-,ProventiOneriFinanziariProventiPartecipazioniImpreseControllate +E_C12,E.C12,Imprese Collegate,- da imprese Collegate,EC,E_C1,242,,-,ProventiOneriFinanziariProventiPartecipazioniImpreseCollegate +E_C14,E.C14,Imprese Controllanti,- da imprese Controllanti,EC,E_C1,243,,-,ProventiOneriFinanziariProventiPartecipazioniImpreseControllanti +E_C15,E.C15,imprese sottoposte al controllo delle controllanti,- da imprese sottoposte al controllo delle Controllanti,EC,E_C1,244,,-,ProventiOneriFinanziariProventiPartecipazioniImpreseSottoposteControlloControllanti +E_C13,E.C13,Altri,- Altri,EC,E_C1,245,,-,ProventiOneriFinanziariProventiPartecipazioniAltri +E_C2,E.C2,Altri Proventi Finanziari,16) Altri proventi finanziari,EC,E_C,246,,-,ProventiOneriFinanziariAltriProventiFinanziariTotaleAltriProventiFinanziari +E_C21,E.C21,da crediti iscritti nelle immobilizzazioni,a) da crediti iscritti nelle immobilizzazioni,EC,E_C2,247,,-,ProventiOneriFinanziariAltriProventiFinanziariCreditiIscrittiImmobilizzazioniTotaleProventiFinanziariCreditiIscrittiImmobilizzazioni +E_C211,E.C211,Da Imprese Controllate,- da imprese Controllate,EC,E_C21,248,,-,ProventiOneriFinanziariAltriProventiFinanziariCreditiIscrittiImmobilizzazioniImpreseControllate +E_C212,E.C212,Da Imprese Collegate,- da imprese Collegate,EC,E_C21,249,,-,ProventiOneriFinanziariAltriProventiFinanziariCreditiIscrittiImmobilizzazioniImpreseCollegate +E_C213,E.C213,Da Imprese Controllanti,- da imprese Controllanti,EC,E_C21,250,,-,ProventiOneriFinanziariAltriProventiFinanziariCreditiIscrittiImmobilizzazioniImpreseControllanti +E_C216,E.C216,Da imprese sottoposte al controllo delle controllanti,- da imprese sottoposte al controllo delle Controllanti,EC,E_C21,251,,-,ProventiOneriFinanziariAltriProventiFinanziariCreditiIscrittiImmobilizzazioniImpreseSottoposteControlloControllanti +E_C215,E.C215,Altri,- Altri,EC,E_C21,252,,-,ProventiOneriFinanziariAltriProventiFinanziariCreditiIscrittiImmobilizzazioniAltri +E_C22,E.C22,da titoli iscritti nelle immobilizzazioni che non costituiscono partecipazioni,b) da titoli iscritti nelle immobilizzazioni che non costituiscono partecipazioni,EC,E_C2,253,,-,ProventiOneriFinanziariAltriProventiFinanziariTitoliIscrittiImmobilizzazioniNonCostituisconoPartecipazioni +E_C23,E.C23,da titoli iscritti nell'attivo circolante che non costituiscono partecipazioni,c) da titoli iscritti nell'attivo circolante che non costituiscono partecipazioni,EC,E_C2,254,,-,ProventiOneriFinanziariAltriProventiFinanziariTitoliIscrittiAttivoCircolanteNonCostituisconoPartecipazioni +E_C24,E.C24,proventi diversi dai precedenti,d) proventi diversi dai precedenti,EC,E_C2,255,,-,ProventiOneriFinanziariAltriProventiFinanziariProventiDiversiPrecedentiTotaleProventiDiversiPrecedenti +E_C241,E.C241,Da Imprese Controllate,- da imprese Controllate,EC,E_C24,256,,-,ProventiOneriFinanziariAltriProventiFinanziariProventiDiversiPrecedentiImpreseControllate +E_C245,E.C245,Da Imprese Collegate,- da imprese Collegate,EC,E_C24,257,,-,ProventiOneriFinanziariAltriProventiFinanziariProventiDiversiPrecedentiImpreseCollegate +E_C242,E.C242,Da Imprese Controllanti,- da imprese Controllanti,EC,E_C24,258,,-,ProventiOneriFinanziariAltriProventiFinanziariProventiDiversiPrecedentiImpreseControllanti +E_C246,E.C246,Da imprese sottoposte al controllo delle controllanti,- da imprese sottoposte al controllo delle Controllanti,EC,E_C24,259,,-,ProventiOneriFinanziariAltriProventiFinanziariProventiDiversiPrecedentiImpreseSottoposteControlloControllanti +E_C244,E.C244,Altri,- Altri,EC,E_C24,260,,-,ProventiOneriFinanziariAltriProventiFinanziariProventiDiversiPrecedentiAltri +E_C3,E.C3,Interessi ed altri Oneri Finanziari,17) Interessi e altri oneri finanziari,EC,E_C,261,-,+,ProventiOneriFinanziariInteressiAltriOneriFinanziariTotaleInteressiAltriOneriFinanziari +E_C31,E.C31,verso Imprese Controllate,- verso imprese Controllate,EC,E_C3,262,,+,ProventiOneriFinanziariInteressiAltriOneriFinanziariVersoImpreseControllate +E_C32,E.C32,verso Imprese Collegate,- verso imprese Collegate,EC,E_C3,263,,+,ProventiOneriFinanziariInteressiAltriOneriFinanziariVersoImpreseCollegate +E_C33,E.C33,verso Imprese Controllanti,- verso imprese Controllanti,EC,E_C3,264,,+,ProventiOneriFinanziariInteressiAltriOneriFinanziariVersoImpreseControllanti +E_C36,E.C36,verso imprese sottoposte al controllo delle controllanti,- verso imprese sottoposte al controllo delle Controllanti,EC,E_C3,265,,+,ProventiOneriFinanziariInteressiAltriOneriFinanziariVersoImpreseSottoposteControlloControllanti +E_C35,E.C35,Altri,- Altri,EC,E_C3,266,,+,ProventiOneriFinanziariInteressiAltriOneriFinanziariAltri +E_C4,E.C4,Utili (perdite) su cambi,17-bis) Utili e perdite su cambi,EC,E_C,267,,-,ProventiOneriFinanziariUtiliPerditeCambi +E_D,E.D,Rettifiche di valore di attività e passività finanziarie,D) Rettifiche di valore di attività e passività finanziarie,EC,E,268,,+,TotaleRettificheValoreAttivitaPassivitaFinanziarie +E_D1,E.D1,Rivalutazioni,18) Rivalutazioni,EC,E_D,269,,-,RettificheValoreAttivitaPassivitaFinanziarieRivalutazioniTotaleRivalutazioni +E_D11,E.D11,Di Partecipazioni,a) di partecipazioni,EC,E_D1,270,,-,RettificheValoreAttivitaPassivitaFinanziarieRivalutazioniPartecipazioni +E_D12,E.D12,Di Immobilizzazioni Finanziarie,b) di immobilizzazioni finanziarie che non costituiscono partecipazioni,EC,E_D1,271,,-,RettificheValoreAttivitaPassivitaFinanziarieRivalutazioniImmobilizzazioniFinanziarieNonCostituisconoPartecipazioni +E_D13,E.D13,Di Titoli Circ. non Partecipazioni,c) di titoli iscritti all'attivo circolante che non costituiscono partecipazioni,EC,E_D1,272,,-,RettificheValoreAttivitaPassivitaFinanziarieRivalutazioniTitoliIscrittiAttivoCircolanteNonCostituisconoPartecipazioni +E_D14,E.D14,Di strumenti finanziari derivati,d) di strumenti finanziari derivati,EC,E_D1,273,,-,RettificheValoreAttivitaPassivitaFinanziarieRivalutazioniStrumentiFinanziariDerivati +E_D1T,E.D1T,di attività finanziarie per la gestione accentrata della tesoreria,di attività finanziarie per la gestione accentrata della tesoreria,EC,E_D1,274,,-,RettificheValoreAttivitaPassivitaFinanziarieRivalutazioniAttivitaFinanziarieLaGestioneAccentrataTesoreria +E_D2,E.D2,Svalutazioni,19) Svalutazioni,EC,E_D,275,-,+,RettificheValoreAttivitaPassivitaFinanziarieSvalutazioniTotaleSvalutazioni +E_D21,E.D21,Di Partecipazioni,a) di partecipazioni,EC,E_D2,276,,+,RettificheValoreAttivitaPassivitaFinanziarieSvalutazioniPartecipazioni +E_D22,E.D22,Di Immobilizzazioni Finanziarie,b) di immobilizzazioni finanziarie che non costituiscono partecipazioni,EC,E_D2,277,,+,RettificheValoreAttivitaPassivitaFinanziarieSvalutazioniImmobilizzazioniFinanziarieNonCostituisconoPartecipazioni +E_D23,E.D23,Di Titoli Circ. non Partecipazioni,c) di titoli inscritti nell'attivo circolante che non costituiscono partecipazioni,EC,E_D2,278,,+,RettificheValoreAttivitaPassivitaFinanziarieSvalutazioniTitoliIscrittiAttivoCircolanteNonCostituisconoPartecipazioni +E_D24,E.D24,Di strumenti finanziari derivati,d) di strumenti finanziari derivati,EC,E_D2,279,,+,RettificheValoreAttivitaPassivitaFinanziarieSvalutazioniStrumentiFinanziariDerivati +E_D2T,E.D2T,Di attività finanziarie per la gestione accentrata della tesoreria,di attività finanziarie per la gestione accentrata della tesoreria,EC,E_D2,280,,+,RettificheValoreAttivitaPassivitaFinanziarieSvalutazioniAttivitaFinanziarieLaGestioneAccentrataTesoreria +E=E,E=E,Risultato Prima delle Imposte,Risultato prima delle imposte,EC,E,281,,+,RisultatoPrimaImposte +E_F,E.F,Imposte sul Reddito dell' Esercizio,20) Imposte sul reddito dell'esercizio,EC,E,282,,+,ImposteRedditoEsercizioCorrentiDifferiteAnticipateTotaleImposteRedditoEsercizioCorrentiDifferiteAnticipate +E_F1,E.F1,Imposte correnti,Imposte correnti,EC,E_F,283,,+,ImposteRedditoEsercizioCorrentiDifferiteAnticipateImposteCorrenti +E_F5,E.F5,imposte relative a esercizi precedenti,imposte relative a esercizi precedenti,EC,E_F,284,,+,ImposteRedditoEsercizioCorrentiDifferiteAnticipateImposteRelativeEserciziPrecedenti +E_F6,E.F6,Imposte differite e anticipate,Imposte differite e anticipate,EC,E_F,285,,+,ImposteRedditoEsercizioCorrentiDifferiteAnticipateImposteDifferiteAnticipate +E_F4,E.F4,Proventi (oneri) da adesione al regime di consolidato fiscale / trasparenza fiscale,d) Proventi (oneri) da adesione al regime di consolidato fiscale / trasparenza fiscale,EC,E_F,286,,+,ImposteRedditoEsercizioCorrentiDifferiteAnticipateProventiOneriAdesioneRegimeConsolidatoFiscaleTrasparenzaFiscale +E=F,E=F,Utile (Perdita) dell' Esercizio,21) Utile (Perdita) dell'esercizio,EC,E,287,,+,UtilePerditaEsercizio +--,--,Ignorare,Conti da ignorare (devono avere saldo zero),--,,999,,+, diff --git a/l10n_it_account_balance_eu/data/account_balance_eu_reclassification.xml b/l10n_it_account_balance_eu/data/account_balance_eu_reclassification.xml new file mode 100644 index 000000000000..17f8d77c9f0f --- /dev/null +++ b/l10n_it_account_balance_eu/data/account_balance_eu_reclassification.xml @@ -0,0 +1,950 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/l10n_it_account_balance_eu/i18n/it.po b/l10n_it_account_balance_eu/i18n/it.po new file mode 100644 index 000000000000..a9492e6e4b0a --- /dev/null +++ b/l10n_it_account_balance_eu/i18n/it.po @@ -0,0 +1,568 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_it_account_balance_eu +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-03-20 09:39+0000\n" +"PO-Revision-Date: 2023-03-20 09:39+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.balance_eu_html_report +msgid " " +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.balance_eu_html_report +msgid "- Fiscal Code" +msgstr "- Cod.Fisc." + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.balance_eu_html_report +msgid "- REA:" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu_wizard__values_precision__d +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "2 decimals Euro" +msgstr "2 decimali di Euro" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.balance_eu_html_report +msgid "" +"
\n" +" Share capital Euro" +msgstr "" +"
\n" +" Capitale sociale Euro" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.balance_eu_html_report +msgid "" +"
\n" +" Taxcode" +msgstr "" +"
\n" +" Partiva IVA" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_search_view +msgid "ASSETS (Balance Sheet)" +msgstr "ATTIVO (Patrimoniale)" + +#. module: l10n_it_account_balance_eu +#: model:ir.model,name:l10n_it_account_balance_eu.model_account_account +msgid "Account" +msgstr "Conto" + +#. module: l10n_it_account_balance_eu +#: model:ir.model,name:l10n_it_account_balance_eu.model_account_balance_eu +msgid "Account Balance EU line" +msgstr "Linee del Bilancio UE" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__account_id +msgid "Account unlinked" +msgstr "Conto non associato" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__sign_calculation__ +msgid "Add" +msgstr "Somma" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,help:l10n_it_account_balance_eu.field_account_account__account_balance_eu_credit_id +msgid "Add this account in a Balance EU line amount CREDITS" +msgstr "inserisci questo conto nel conteggio degli AVERE di una voce del Bilancio UE" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,help:l10n_it_account_balance_eu.field_account_account__account_balance_eu_debit_id +msgid "Add this account in a Balance EU line amount DEBITS" +msgstr "inserisci questo conto nel conteggio dei DARE di una voce del Bilancio UE" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__address +msgid "Address" +msgstr "Indirizzo" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__amount +msgid "Amount" +msgstr "Saldo" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__zone_bal__pa +msgid "Assets" +msgstr "Attivo" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__balance_id +msgid "Balance" +msgstr "Bilancio" + +#. module: l10n_it_account_balance_eu +#: model:ir.actions.report,name:l10n_it_account_balance_eu.action_report_balance_eu_xlsx +#: model:ir.actions.report,name:l10n_it_account_balance_eu.action_report_balance_eu_xml +#: model:ir.ui.menu,name:l10n_it_account_balance_eu.account_balance_eu_wizard_menu +#: code:account_balance_eu_wizard.py:0 +#, python-format +msgid "Balance EU" +msgstr "Bilancio UE" + +#. module: l10n_it_account_balance_eu +#: model:ir.actions.act_window,name:l10n_it_account_balance_eu.account_balance_eu_act_window +#: model:ir.ui.menu,name:l10n_it_account_balance_eu.account_balance_eu_menu +msgid "Balance EU lines" +msgstr "Voci Bilancio UE" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__date_from +msgid "Balance from date" +msgstr "Data inizio bilancio" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__date_to +msgid "Balance to date" +msgstr "Data fine bilancio" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu_wizard__state__unlinked_accounts +msgid "CHECK ACCOUNTS" +msgstr "VERIFICARE CONTI" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu_wizard__state__ok +msgid "COMPLETE" +msgstr "COMPLETO" + +#. module: l10n_it_account_balance_eu +#: model:ir.actions.act_window,name:l10n_it_account_balance_eu.action_account_balance_eu_wizard +msgid "Calculate Balance EU" +msgstr "Calcola Bilancio UE" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_wizard_view +msgid "Cancel" +msgstr "Annulla" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__child_ids +msgid "Childs" +msgstr "Figli" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__city +msgid "City" +msgstr "Città" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__code +msgid "Code" +msgstr "Codice" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__company_id +msgid "Company" +msgstr "Azienda" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__company_name +msgid "Company Name" +msgstr "Ragione Sociale" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__long_desc +msgid "Complete Description" +msgstr "Descrizione Completa" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__complete_name +msgid "Complete Name" +msgstr "Nome Completo" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__create_uid +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__create_uid +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__create_date +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__create_date +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_account__account_balance_eu_credit_id +msgid "Credit (Balance EU)" +msgstr "Avere (Bilancio UE)" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__currency_id +msgid "Currency" +msgstr "Valuta" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__date_range_id +msgid "Date range" +msgstr "Intervallo di date" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_account__account_balance_eu_debit_id +msgid "Debit (Balance EU)" +msgstr "Dare (Bilancio UE)" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__name +msgid "Description" +msgstr "Descrizione" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_account__display_name +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__display_name +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__display_name +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__display_name +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_html_report__display_name +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_xbrl_report__display_name +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_xlsx_report__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: l10n_it_account_balance_eu +#: model:ir.model,name:l10n_it_account_balance_eu.model_report_l10n_it_account_balance_eu_balance_eu_html_report +msgid "Export EU Balance in HTML format" +msgstr "Visualizza Bilancio UE" + +#. module: l10n_it_account_balance_eu +#: model:ir.model,name:l10n_it_account_balance_eu.model_report_l10n_it_account_balance_eu_balance_eu_xbrl_report +msgid "Export EU Balance in XBRL format" +msgstr "Esporta Bilancio UE in formato XBRL" + +#. module: l10n_it_account_balance_eu +#: model:ir.model,name:l10n_it_account_balance_eu.model_report_l10n_it_account_balance_eu_balance_eu_xlsx_report +msgid "Export EU Balance in XLSX format" +msgstr "Esportazione del bilancio UE in formato XLSX" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_wizard_view +#: code:report.xml:0 +#, python-format +msgid "Export XBRL" +msgstr "Esporta XBRL" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_wizard_view +#: code:report.xml:0 +#, python-format +msgid "Export XLSX" +msgstr "Esporta XLSX" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,help:l10n_it_account_balance_eu.field_account_balance_eu_wizard__hide_acc_amount_0 +msgid "" +"Financial statements lines will showed anyway, hide only accounts with " +"balance 0" +msgstr "Le linee di bilancio verranno comunque visualizzate, nasconde solo i conti con saldo 0" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__fiscalcode +msgid "Fiscal Code" +msgstr "Codice Fiscale" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__hide_acc_amount_0 +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "Hide account with amount 0" +msgstr "Nascondere conti a 0" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_account__id +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__id +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__id +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__id +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_html_report__id +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_xbrl_report__id +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_xlsx_report__id +msgid "ID" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_search_view +msgid "INCOME STATEMENT" +msgstr "CONTO ECONOMICO" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__zone_bal__-- +msgid "Ignore" +msgstr "Ignora" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__ignore_closing_move +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "Ignore closing registration" +msgstr "Ignora registrazioni di chiusura" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__zone_bal__ec +msgid "Income statement" +msgstr "Conto economico" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_search_view +msgid "LIABILITIES (Balance Sheet)" +msgstr "PASSIVO (Patrimoniale)" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_account____last_update +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu____last_update +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log____last_update +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard____last_update +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_html_report____last_update +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_xbrl_report____last_update +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_xlsx_report____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__write_uid +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__write_uid +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento il" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__write_date +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__write_date +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__zone_bal__pp +msgid "Liabilities" +msgstr "Passivo" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.view_account_form_balance_ue +msgid "Link to Balance EU" +msgstr "Associa a Bilancio UE" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__name +msgid "Name" +msgstr "Etichetta" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__tag_xbrl +msgid "Name XBRL" +msgstr "Nome XBRL" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__sign_display__- +msgid "Negative" +msgstr "Negativo" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_search_view +msgid "No childs only" +msgstr "Solo voci foglie albero" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__parent_id +msgid "Parent" +msgstr "Padre" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__sign_display__+ +msgid "Positive" +msgstr "Positivo" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__rea_num +msgid "REA number" +msgstr "Numero REA" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__rea_office +msgid "REA office" +msgstr "Ufficio REA" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__sign_calculation +msgid "Sign (calc)" +msgstr "Segno (calcoli)" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__sign_display +msgid "Sign (view)" +msgstr "Segno (visualizzazione)" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__rea_capital +msgid "Share Capital" +msgstr "Capitale sociale" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__state +msgid "State" +msgstr "Stato" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__sign_calculation__- +msgid "Subtract" +msgstr "Sottrai" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu_wizard__state__unbalanced +msgid "UNBALANCED" +msgstr "NON QUADRATO" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__balance_log_ids +msgid "Unlinked Account" +msgstr "Conto non associato" + +#. module: l10n_it_account_balance_eu +#: model:ir.model,name:l10n_it_account_balance_eu.model_account_balance_eu_log +msgid "Unlinked account in balance EU" +msgstr "Conti non associati per bilancio UE" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__only_posted_move +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "Use only posted registration" +msgstr "Solo registrazioni confermate" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__vat_code +msgid "VAT number" +msgstr "Partita IVA" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__vat_code_nation +msgid "VAT number nation" +msgstr "Paese Partita IVA" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__values_precision +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.balance_eu_html_report +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "Values show as" +msgstr "Visualizza valori" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_wizard_view +msgid "View" +msgstr "Visualizza" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__log_warnings +msgid "WARNING:" +msgstr "ATTENZIONE:" + +#. module: l10n_it_account_balance_eu +#: model:ir.model,name:l10n_it_account_balance_eu.model_account_balance_eu_wizard +msgid "Wizard for balance EU calculation" +msgstr "Wizard per calcolo bilancio UE" + +#. module: l10n_it_account_balance_eu +#: model:ir.actions.report,print_report_name:l10n_it_account_balance_eu.action_report_balance_eu_xbrl +#: model:ir.actions.report,name:l10n_it_account_balance_eu.action_report_balance_eu_xbrl +msgid "XBRL-financial-statements" +msgstr "XBRL-bilancio-esercizio" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__year +msgid "Year" +msgstr "Anno" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__zone_bal +msgid "Zone" +msgstr "Zona" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu_wizard__values_precision__u +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "euro units" +msgstr "unità di Euro" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.balance_eu_html_report +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "from" +msgstr "dal" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_wizard_view +msgid "or" +msgstr "o" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.balance_eu_html_report +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "to" +msgstr "al" + +#. module: l10n_it_account_balance_eu +#: code:account_balance_eu.py:0 +#, python-format +msgid "Unbalanced financial statements: {:s} (Assets) - {:s} (Liabilities) = {:s}" +msgstr "Bilancio NON quadrato: {:s} (Attivo) - {:s} (Passivo) = {:s}" + +#. module: l10n_it_account_balance_eu +#: code:account_balance_eu.py:0 +#, python-format +msgid "There are accounts not linked to any balance line:" +msgstr "Sono presenti conti non associati a nessuna voce di bilancio:" + +#. module: l10n_it_account_balance_eu +#: code:account_balance_eu.py:0 +#, python-format +msgid "There are accounts to ignore but with non-zero amount:" +msgstr "Sono presenti conti da ignorare ma che hanno saldo diverso da zero:" + +#. module: l10n_it_account_balance_eu +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "Share capital Euro " +msgstr "Capitale sociale Euro " + +#. module: l10n_it_account_balance_eu +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "YES" +msgstr "SI" + +#. module: l10n_it_account_balance_eu +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "NO" +msgstr "" + +#. module: l10n_it_account_balance_eu +#. openerp-web +#: code:report.xml:0 +#, python-format +msgid "Print PDF" +msgstr "Stampa PDF" + diff --git a/l10n_it_account_balance_eu/i18n/l10n_it_account_balance_eu.pot b/l10n_it_account_balance_eu/i18n/l10n_it_account_balance_eu.pot new file mode 100644 index 000000000000..0e10edde02b9 --- /dev/null +++ b/l10n_it_account_balance_eu/i18n/l10n_it_account_balance_eu.pot @@ -0,0 +1,564 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_it_account_balance_eu +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-28 13:43+0000\n" +"PO-Revision-Date: 2023-04-28 13:43+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.balance_eu_html_report +msgid " " +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.balance_eu_html_report +msgid "- Fiscal Code" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.balance_eu_html_report +msgid "- REA:" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu_wizard__values_precision__d +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "2 decimals Euro" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.balance_eu_html_report +msgid "" +"
\n" +" Share capital Euro" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.balance_eu_html_report +msgid "" +"
\n" +" Taxcode" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_search_view +msgid "ASSETS (Balance Sheet)" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model,name:l10n_it_account_balance_eu.model_account_account +msgid "Account" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model,name:l10n_it_account_balance_eu.model_account_balance_eu +msgid "Account Balance EU line" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__account_id +msgid "Account unlinked" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__sign_calculation__ +msgid "Add" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,help:l10n_it_account_balance_eu.field_account_account__account_balance_eu_credit_id +msgid "Add this account in a Balance EU line amount CREDITS" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,help:l10n_it_account_balance_eu.field_account_account__account_balance_eu_debit_id +msgid "Add this account in a Balance EU line amount DEBITS" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__address +msgid "Address" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__amount +msgid "Amount" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__zone_bal__pa +msgid "Assets" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__balance_id +msgid "Balance" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.actions.report,name:l10n_it_account_balance_eu.action_report_balance_eu_xlsx +#: model:ir.actions.report,name:l10n_it_account_balance_eu.action_report_balance_eu_xml +#: model:ir.ui.menu,name:l10n_it_account_balance_eu.account_balance_eu_wizard_menu +#: code:account_balance_eu_wizard.py:0 +#, python-format +msgid "Balance EU" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.actions.act_window,name:l10n_it_account_balance_eu.account_balance_eu_act_window +#: model:ir.ui.menu,name:l10n_it_account_balance_eu.account_balance_eu_menu +msgid "Balance EU lines" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__date_from +msgid "Balance from date" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__date_to +msgid "Balance to date" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu_wizard__state__unlinked_accounts +msgid "CHECK ACCOUNTS" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu_wizard__state__ok +msgid "COMPLETE" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.actions.act_window,name:l10n_it_account_balance_eu.action_account_balance_eu_wizard +msgid "Calculate Balance EU" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_wizard_view +msgid "Cancel" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__child_ids +msgid "Childs" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__city +msgid "City" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__code +msgid "Code" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__company_id +msgid "Company" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__company_name +msgid "Company Name" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__long_desc +msgid "Complete Description" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__complete_name +msgid "Complete Name" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__create_uid +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__create_uid +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__create_uid +msgid "Created by" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__create_date +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__create_date +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__create_date +msgid "Created on" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_account__account_balance_eu_credit_id +msgid "Credit (Balance EU)" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__currency_id +msgid "Currency" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__date_range_id +msgid "Date range" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_account__account_balance_eu_debit_id +msgid "Debit (Balance EU)" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__name +msgid "Description" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_account__display_name +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__display_name +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__display_name +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__display_name +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_html_report__display_name +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_xbrl_report__display_name +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_xlsx_report__display_name +msgid "Display Name" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model,name:l10n_it_account_balance_eu.model_report_l10n_it_account_balance_eu_balance_eu_html_report +msgid "Export EU Balance in HTML format" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model,name:l10n_it_account_balance_eu.model_report_l10n_it_account_balance_eu_balance_eu_xbrl_report +msgid "Export EU Balance in XBRL format" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model,name:l10n_it_account_balance_eu.model_report_l10n_it_account_balance_eu_balance_eu_xlsx_report +msgid "Export EU Balance in XLSX format" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_wizard_view +#: code:report.xml:0 +#, python-format +msgid "Export XBRL" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_wizard_view +#: code:report.xml:0 +#, python-format +msgid "Export XLSX" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,help:l10n_it_account_balance_eu.field_account_balance_eu_wizard__hide_acc_amount_0 +msgid "" +"Financial statements lines will showed anyway, hide only accounts with " +"balance 0" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__fiscalcode +msgid "Fiscal Code" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__hide_acc_amount_0 +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "Hide account with amount 0" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_account__id +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__id +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__id +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__id +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_html_report__id +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_xbrl_report__id +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_xlsx_report__id +msgid "ID" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_search_view +msgid "INCOME STATEMENT" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__zone_bal__-- +msgid "Ignore" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__ignore_closing_move +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "Ignore closing registration" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__zone_bal__ec +msgid "Income statement" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_search_view +msgid "LIABILITIES (Balance Sheet)" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_account____last_update +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu____last_update +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log____last_update +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard____last_update +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_html_report____last_update +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_xbrl_report____last_update +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_report_l10n_it_account_balance_eu_balance_eu_xlsx_report____last_update +msgid "Last Modified on" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__write_uid +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__write_uid +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__write_date +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_log__write_date +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__write_date +msgid "Last Updated on" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__zone_bal__pp +msgid "Liabilities" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.view_account_form_balance_ue +msgid "Link to Balance EU" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__name +msgid "Name" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__tag_xbrl +msgid "Name XBRL" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__sign_display__- +msgid "Negative" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_search_view +msgid "No childs only" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__parent_id +msgid "Parent" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__sign_display__+ +msgid "Positive" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__rea_num +msgid "REA number" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__rea_office +msgid "REA office" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__rea_capital +msgid "Share Capital" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__sign_calculation +msgid "Sign (calc)" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__sign_display +msgid "Sign (view)" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__state +msgid "State" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu__sign_calculation__- +msgid "Subtract" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu_wizard__state__unbalanced +msgid "UNBALANCED" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__balance_log_ids +msgid "Unlinked Account" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model,name:l10n_it_account_balance_eu.model_account_balance_eu_log +msgid "Unlinked account in balance EU" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__only_posted_move +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "Use only posted registration" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__vat_code +msgid "VAT number" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__vat_code_nation +msgid "VAT number nation" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__values_precision +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.balance_eu_html_report +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "Values show as" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_wizard_view +msgid "View" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__log_warnings +msgid "WARNING:" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model,name:l10n_it_account_balance_eu.model_account_balance_eu_wizard +msgid "Wizard for balance EU calculation" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.actions.report,print_report_name:l10n_it_account_balance_eu.action_report_balance_eu_xbrl +#: model:ir.actions.report,name:l10n_it_account_balance_eu.action_report_balance_eu_xbrl +msgid "XBRL-financial-statements" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu_wizard__year +msgid "Year" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields,field_description:l10n_it_account_balance_eu.field_account_balance_eu__zone_bal +msgid "Zone" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model:ir.model.fields.selection,name:l10n_it_account_balance_eu.selection__account_balance_eu_wizard__values_precision__u +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "euro units" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.balance_eu_html_report +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "from" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.account_balance_eu_wizard_view +msgid "or" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: model_terms:ir.ui.view,arch_db:l10n_it_account_balance_eu.balance_eu_html_report +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "to" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: code:account_balance_eu.py:0 +#, python-format +msgid "Unbalanced financial statements: {:s} (Assets) - {:s} (Liabilities) = {:s}" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: code:account_balance_eu.py:0 +#, python-format +msgid "There are accounts not linked to any balance line:" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: code:account_balance_eu.py:0 +#, python-format +msgid "There are accounts to ignore but with non-zero amount:" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "Share capital Euro " +msgstr "" + +#. module: l10n_it_account_balance_eu +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "YES" +msgstr "" + +#. module: l10n_it_account_balance_eu +#: code:account_balance_eu_report.py:0 +#, python-format +msgid "NO" +msgstr "" + +#. module: l10n_it_account_balance_eu +#. openerp-web +#: code:report.xml:0 +#, python-format +msgid "Print PDF" +msgstr "" + diff --git a/l10n_it_account_balance_eu/models/__init__.py b/l10n_it_account_balance_eu/models/__init__.py new file mode 100644 index 000000000000..99c0f16e1b97 --- /dev/null +++ b/l10n_it_account_balance_eu/models/__init__.py @@ -0,0 +1,5 @@ +# Copyright 2022 Associazione Odoo Italia () +# Copyright 2022 MKT Srl () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import account_balance_eu diff --git a/l10n_it_account_balance_eu/models/account_balance_eu.py b/l10n_it_account_balance_eu/models/account_balance_eu.py new file mode 100644 index 000000000000..9a7eac6fa8b5 --- /dev/null +++ b/l10n_it_account_balance_eu/models/account_balance_eu.py @@ -0,0 +1,534 @@ +# Copyright 2022 MKT srl +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +import logging +import operator + +from odoo import _, api, fields, models, tools +from odoo.exceptions import ValidationError +from odoo.tools.misc import formatLang + +_logger = logging.getLogger(__name__) + + +class AccountBalanceEU(models.Model): + _name = "account.balance.eu" + _description = "Account Balance EU line" + zone_bal = fields.Selection( + [ + ("PA", "Assets"), + ("PP", "Liabilities"), + ("EC", "Income statement"), + ("--", "Ignore"), + ], + string="Zone", + required=True, + ) + code = fields.Char(string="Code", size=8) + name = fields.Char( + string="Description", + ) + long_desc = fields.Char( + string="Complete Description", + ) + sign_calculation = fields.Selection( + selection=[ + ("-", "Subtract"), + ("", "Add"), + ], + string="Sign (calc)", + ) + sign_display = fields.Selection( + selection=[ + ("+", "Positive"), + ("-", "Negative"), + ], + string="Sign (view)", + ) + sequence = fields.Integer( + string="#", + required=False, + ) + tag_xbrl = fields.Char( + string="Name XBRL", + ) + parent_id = fields.Many2one( + comodel_name="account.balance.eu", + string="Parent", + index=True, + ) + child_ids = fields.One2many( + comodel_name="account.balance.eu", + inverse_name="parent_id", + string="Childs", + ) + complete_name = fields.Char( + string="Complete Name", + compute="_compute_complete_name", + store=True, + ) + + def get_parent_path(self): + self.ensure_one() + if self.parent_id: + line = self.parent_id.get_parent_path() + else: + line = "" + return line + self.name + " / " + + @api.depends("code", "name", "parent_id", "parent_id.complete_name") + def _compute_complete_name(self): + for line in self: + if line.parent_id: + p = line.parent_id.get_parent_path() + else: + p = "" + line.complete_name = "[%s] %s%s" % (line.code, p, line.name) + + def name_get(self): + res = [] + for line in self: + res.append((line.id, line.complete_name)) + return res + + @api.model + def name_search(self, name="", args=None, operator="ilike", limit=100): + if not args: + args = [] + if name: + records = self.search( + [("complete_name", operator, name)] + args, + limit=limit, + ) + else: + records = self.search(args, limit=limit) + return records.name_get() + + @api.constrains("code", "zone_bal") + def _check_code_zone(self): + for line in self: + if (line.zone_bal == "PA") and (not line.code.startswith("PA")): + raise ValidationError(_("ASSETS codes must starting by PA")) + elif (line.zone_bal == "PP") and (not line.code.startswith("PP")): + raise ValidationError(_("LIABILITIES codes must starting by PP")) + elif (line.zone_bal == "EC") and (not line.code.startswith("E")): + raise ValidationError(_("INCOME STATEMENT codes must starting by E")) + + @api.model + def account_balance_eu_debit_association( + self, acc_code, account_balance_eu_id, force_update=False + ): + acc_ids = self.env["account.account"].search([("code", "=ilike", acc_code)]) + for acc_id in acc_ids: + if (not acc_id.account_balance_eu_debit_id) or ( + force_update + and (acc_id.account_balance_eu_debit_id.id != account_balance_eu_id) + ): + acc_id.write({"account_balance_eu_debit_id": account_balance_eu_id}) + + @api.model + def account_balance_eu_credit_association( + self, acc_code, account_balance_eu_id, force_update=False + ): + acc_ids = self.env["account.account"].search([("code", "=ilike", acc_code)]) + for acc_id in acc_ids: + if (not acc_id.account_balance_eu_credit_id) or ( + force_update + and (acc_id.account_balance_eu_debit_id.id != account_balance_eu_id) + ): + acc_id.write({"account_balance_eu_credit_id": account_balance_eu_id}) + + def cal_balance_ue_line_amount(self, balance_ue_lines, code): + total_amount = 0 + rounded_amount = 0 + account_balance_eu_child_ids = self.env["account.balance.eu"].search( + [("parent_id", "=", balance_ue_lines[code]["balance_line"].id)] + ) + for child in account_balance_eu_child_ids: + if child.child_ids: + self.cal_balance_ue_line_amount(balance_ue_lines, child.code) + if child.sign_calculation == "-": + rounded_amount -= balance_ue_lines[child.code]["rounded_amount"] + total_amount -= balance_ue_lines[child.code]["total_amount"] + else: + rounded_amount += balance_ue_lines[child.code]["rounded_amount"] + total_amount += balance_ue_lines[child.code]["total_amount"] + balance_ue_lines[code]["rounded_amount"] = tools.float_round(rounded_amount, 2) + balance_ue_lines[code]["total_amount"] = total_amount + + def add_calc_type_domain(self, domain, calc_type, account_balance_eu_id): + if calc_type == "d": + domain.append(("account_balance_eu_debit_id", "=", account_balance_eu_id)) + elif calc_type == "c": + domain.append(("account_balance_eu_credit_id", "=", account_balance_eu_id)) + elif calc_type == "non_assoc": + domain.append(("account_balance_eu_debit_id", "=", False)) + domain.append(("account_balance_eu_credit_id", "=", False)) + + def get_account_list_amount( + self, + company_id, + currency_id, + date_from, + date_to, + only_posted_move, + hide_acc_amount_0, + ignore_closing_move, + calc_type, + account_balance_eu_id, + sign_display, + balance_line_amount, + account_list, + ): + currency_precision = currency_id.decimal_places + domain = [] + domain.append(("company_id", "=", company_id)) + self.add_calc_type_domain(domain, calc_type, account_balance_eu_id) + acc_model = self.env["account.account"] + account_ids = acc_model.read_group( + domain, + fields=[ + "id", + "code", + "name", + "account_balance_eu_debit_id", + "account_balance_eu_credit_id", + ], + groupby=[ + "id", + "code", + "name", + "account_balance_eu_debit_id", + "account_balance_eu_credit_id", + ], + orderby="code", + lazy=False, + ) + if account_ids: + for item in account_ids: + account_id = False + for d in item.get("__domain"): + if type(d) is tuple and d[0] == "id": + account_id = d[2] + if account_id: + acc_credit_id = item.get("account_balance_eu_credit_id") + acc_debit_id = item.get("account_balance_eu_debit_id") + domain = [] + domain.append(("company_id", "=", company_id)) + domain.append(("account_id", "=", account_id)) + domain.append(("date", ">=", date_from)) + domain.append(("date", "<=", date_to)) + if only_posted_move: + domain.append(("move_id.state", "=", "posted")) + if ignore_closing_move: + domain.append(("move_id.closing_type", "!=", "closing")) + domain.append(("move_id.closing_type", "!=", "loss_profit")) + aml_model = self.env["account.move.line"] + amls = aml_model.read_group( + domain, + ["debit", "credit", "account_id"], + ["account_id"], + lazy=False, + ) + if amls: + for line in amls: + acc_amount = tools.float_round( + line.get("debit") - line.get("credit"), + currency_precision, + ) + if ( + (calc_type == "non_assoc") + or ( + (calc_type == "d") # debit + and ( + ( + currency_id.compare_amounts(acc_amount, 0) + >= 0 + ) + or (not acc_credit_id) + ) + ) + or ( + (calc_type == "c") # credit + and ( + ( + currency_id.compare_amounts(acc_amount, 0) + == -1 + ) + or (not acc_debit_id) + ) + ) + ): + if sign_display == "-": + acc_amount = -acc_amount + balance_line_amount = balance_line_amount + acc_amount + if (not hide_acc_amount_0) or (acc_amount != 0): + account_list.append( + { + "code": item.get("code"), + "desc": item.get("name"), + "amount": acc_amount, + } + ) + elif not hide_acc_amount_0: + account_list.append( + { + "code": item.get("code"), + "desc": item.get("name"), + "amount": 0, + } + ) + return balance_line_amount + + def round_bal_val(self, val, precision): + if precision == "u": + return tools.float_round(val, 0) + elif precision == "d": + return tools.float_round(val, 2) + else: + return val + + def cal_balance_ue_data(self, form_data): + balance_ue_lines = {} + company_id = form_data["company_id"][0] + currency_id = self.env["res.currency"].browse(form_data["currency_id"][0]) + date_from = form_data["date_from"] + date_to = form_data["date_to"] + only_posted_move = form_data["only_posted_move"] + hide_acc_amount_0 = form_data["hide_acc_amount_0"] + ignore_closing_move = form_data["ignore_closing_move"] + if ignore_closing_move: + if not self.env["account.move"].fields_get(allfields=["closing_type"]): + ignore_closing_move = False + account_balance_eu_ids = self.search([]) # env["account.balance.eu"]. + for item in account_balance_eu_ids: + account_balance_eu_amount = 0 + account_list = [] + if not item.child_ids: + calcs = ["d", "c"] # d=debit c=credit + for calc_type in calcs: + account_balance_eu_amount = self.get_account_list_amount( + company_id, + currency_id, + date_from, + date_to, + only_posted_move, + hide_acc_amount_0, + ignore_closing_move, + calc_type, + item.id, + item.sign_display, + account_balance_eu_amount, + account_list, + ) + account_list.sort(key=operator.itemgetter("code")) + + account_balance_eu_amount_rounded = self.round_bal_val( + account_balance_eu_amount, form_data["values_precision"] + ) + balance_ue_lines[item.code] = { + "balance_line": item, + "rounded_amount": account_balance_eu_amount_rounded, + "total_amount": account_balance_eu_amount, + "account_list": account_list, + } + self.cal_balance_ue_line_amount(balance_ue_lines, "E.A") + self.cal_balance_ue_line_amount(balance_ue_lines, "E.B") + self.cal_balance_ue_line_amount(balance_ue_lines, "E.C") + self.cal_balance_ue_line_amount(balance_ue_lines, "E.D") + self.cal_balance_ue_line_amount(balance_ue_lines, "E.F") + balance_ue_lines["E=B"]["rounded_amount"] = ( + balance_ue_lines["E.A"]["rounded_amount"] + - balance_ue_lines["E.B"]["rounded_amount"] + ) + balance_ue_lines["E=B"]["total_amount"] = ( + balance_ue_lines["E.A"]["total_amount"] + - balance_ue_lines["E.B"]["total_amount"] + ) + balance_ue_lines["E=E"]["rounded_amount"] = ( + balance_ue_lines["E=B"]["rounded_amount"] + + balance_ue_lines["E.C"]["rounded_amount"] + + balance_ue_lines["E.D"]["rounded_amount"] + ) + balance_ue_lines["E=E"]["total_amount"] = ( + balance_ue_lines["E=B"]["total_amount"] + + balance_ue_lines["E.C"]["total_amount"] + + balance_ue_lines["E.D"]["total_amount"] + ) + balance_ue_lines["E=F"]["rounded_amount"] = ( + balance_ue_lines["E=E"]["rounded_amount"] + - balance_ue_lines["E.F"]["rounded_amount"] + ) + balance_ue_lines["E=F"]["total_amount"] = ( + balance_ue_lines["E=E"]["total_amount"] + - balance_ue_lines["E.F"]["total_amount"] + ) + delta_ef = ( + self.round_bal_val( + balance_ue_lines["E=F"]["total_amount"], form_data["values_precision"] + ) + - balance_ue_lines["E=F"]["rounded_amount"] + ) + if delta_ef != 0: + balance_ue_lines["E=A512"]["rounded_amount"] = delta_ef + balance_ue_lines["E.A51"]["rounded_amount"] += delta_ef + balance_ue_lines["E.A5"]["rounded_amount"] += delta_ef + balance_ue_lines["E.A"]["rounded_amount"] += delta_ef + balance_ue_lines["E=B"]["rounded_amount"] += delta_ef + balance_ue_lines["E=E"]["rounded_amount"] += delta_ef + balance_ue_lines["E=F"]["rounded_amount"] += delta_ef + + balance_ue_lines["PP=A9"]["rounded_amount"] = balance_ue_lines["E=F"][ + "rounded_amount" + ] + balance_ue_lines["PP=A9"]["total_amount"] = balance_ue_lines["E=F"][ + "total_amount" + ] + self.cal_balance_ue_line_amount(balance_ue_lines, "PA") + self.cal_balance_ue_line_amount(balance_ue_lines, "PP") + balance_ue_lines["PP=A7j2"]["total_amount"] = ( + balance_ue_lines["PA"]["rounded_amount"] + - balance_ue_lines["PP"]["rounded_amount"] + ) - ( + balance_ue_lines["PA"]["total_amount"] + - balance_ue_lines["PP"]["total_amount"] + ) + + balance_ue_lines["PP=A7j2"]["rounded_amount"] = self.round_bal_val( + balance_ue_lines["PP=A7j2"]["total_amount"], form_data["values_precision"] + ) + self.cal_balance_ue_line_amount(balance_ue_lines, "PP") + log_warnings = "" + acc_ignore = "" + balance_ue_lines_report_data = [] + for line in balance_ue_lines: + if balance_ue_lines[line]["balance_line"].zone_bal != "--": + balance_ue_lines_report_data.append( + { + "code": balance_ue_lines[line]["balance_line"].code, + "desc": balance_ue_lines[line]["balance_line"].long_desc, + "amount": balance_ue_lines[line]["rounded_amount"], + "accounts": balance_ue_lines[line]["account_list"], + } + ) + else: + for acc in balance_ue_lines[line]["account_list"]: + if acc["amount"] != 0: + acc_ignore += ( + " " + + acc["code"] + + " " + + acc["desc"] + + ": " + + formatLang( + self.env, acc["amount"], currency_obj=currency_id + ) + + "\n" + ) + if acc_ignore != "": + log_warnings += ( + _("There are accounts to ignore but with non-zero amount:") + + "\n" + + acc_ignore + ) + balance_state = "OK" + log_env = self.env["account.balance.eu.log"] + log_env.search([("balance_id", "=", form_data["id"])]).unlink() # clear log + unlinked_account = [] + tot = 0 + self.get_account_list_amount( + company_id, + currency_id, + date_from, + date_to, + only_posted_move, + hide_acc_amount_0, + ignore_closing_move, + "non_assoc", + False, + "", + tot, + unlinked_account, + ) + if ( + balance_ue_lines["PA"]["rounded_amount"] + != balance_ue_lines["PP"]["rounded_amount"] + ): + balance_state = "UNBALANCED" + log_warnings = log_warnings + ( + _( + "Unbalanced financial statements: {:s} (Assets) - {:s} (Liabilities) = {:s}" + ).format( + formatLang( + self.env, + balance_ue_lines["PA"]["rounded_amount"], + currency_obj=currency_id, + ), + formatLang( + self.env, + balance_ue_lines["PP"]["rounded_amount"], + currency_obj=currency_id, + ), + formatLang( + self.env, + tools.float_round( + balance_ue_lines["PA"]["rounded_amount"] + - balance_ue_lines["PP"]["rounded_amount"], + 2, + ), + currency_obj=currency_id, + ), + ) + ) + if len(unlinked_account) > 0: + balance_state = "UNLINKED_ACCOUNTS" + log_warnings += ( + "\n" + _("There are accounts not linked to any balance line:") + "\n" + ) + + for acc in unlinked_account: + account_id = ( + self.env["account.account"] + .search([("code", "=", acc.get("code"))]) + .id + ) + log_env.create( + { + "balance_id": form_data["id"], + "account_id": account_id, + "amount": acc.get("amount"), + } + ) + log_warnings = log_warnings.strip() + if log_warnings == "": + warning_lines = [] + else: + warning_lines = log_warnings.split("\n") + data = { + "form_data": form_data, + "balance_ue_lines": balance_ue_lines_report_data, + "balance_state": balance_state, + "warnings": warning_lines, + "unlinked_account": unlinked_account, + } + return data + + +class AccountRefBalanceEU(models.Model): + _inherit = "account.account" + account_balance_eu_debit_id = fields.Many2one( + "account.balance.eu", + string="Debit (Balance EU)", + domain="[('child_ids','=',False)," + "'|', ('code','=','PP=A9'), ('code','not like','%=%')" + "]", + help="Add this account in a Balance EU line amount DEBITS", + ) + account_balance_eu_credit_id = fields.Many2one( + "account.balance.eu", + string="Credit (Balance EU)", + domain="[('child_ids','=',False)," + "'|', ('code','=','PP=A9'), ('code','not like', '%=%')" + "]", + help="Add this account in a Balance EU line amount CREDITS", + ) diff --git a/l10n_it_account_balance_eu/readme/CONFIGURE.rst b/l10n_it_account_balance_eu/readme/CONFIGURE.rst new file mode 100644 index 000000000000..beef3b5f0806 --- /dev/null +++ b/l10n_it_account_balance_eu/readme/CONFIGURE.rst @@ -0,0 +1,11 @@ +**Italiano** + +Il modulo non necessita di nessuna particolare configurazione. +L'installazione del modulo crea le voci del Bilancio UE secondo la più recente tassonomia. +Si consiglia di installare la contabilità con relativo piano dei conti prima di installare questo modulo, per consentire l’associazione automatica dei conti del piano dei conti italiano alle voci del Bilancio UE. + +**English** + +The module does not require any particular configuration. +Module installation creates the items of the EU Financial Statements according to the most recent taxonomy. +It is advisable to install the accounting with the related Chart of Accounts before installing this module, to allow the automatic association of the accounts of the Italian Chart of Accounts to the items of the EU Financial Statements. diff --git a/l10n_it_account_balance_eu/readme/CONTRIBUTORS.rst b/l10n_it_account_balance_eu/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000000..ec177a0a8183 --- /dev/null +++ b/l10n_it_account_balance_eu/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* Martinelli Andrea (analisi/sviluppo) +* Bellomi Luca (analisi/supporto) +* Allegretti Daniele (analisi/supervisione/consulenza) diff --git a/l10n_it_account_balance_eu/readme/DESCRIPTION.rst b/l10n_it_account_balance_eu/readme/DESCRIPTION.rst new file mode 100644 index 000000000000..7ed1cb82345f --- /dev/null +++ b/l10n_it_account_balance_eu/readme/DESCRIPTION.rst @@ -0,0 +1,35 @@ +**Italiano** + +In Odoo è presente il piano dei conti tradizionale e le varie registrazioni +contabili +con gli importi ma non è presente una struttura di voci +che descrivano il Bilancio UE a cui associare le voci del piano dei conti +tradizionale. + +Questo modulo consente di generare un bilancio riclassificato secondo lo schema +del bilancio UE +con tutte le voci delle più recenti tassonomie mettendo a disposizione le +seguenti funzionalità: + +* associare ai conti del piano dei conti le voci del Bilancio UE (con preassociazione automatica in fase di installazione del modulo) +* elaborare le registrazioni contabili di un dato periodo (per esempio l’anno precedente) al fine di ottenere il bilancio contabile in formato UE, facendo gli opportuni controlli di congruenza, associazione di tutti i conti movimentati nel periodo e quadratura del bilancio. Nei report viene riportato anche il dettaglio dei conti associati ad una certa voce del bilancio UE +* generare il report di anteprima del Bilancio UE +* generare la stampa PDF del Bilancio UE +* generare i file XLSX e XBRL del bilancio (utili per successive rielaborazioni e per trasferimento del bilancio UE al Commercialista) + +**English** + +In Odoo there is the traditional chart of accounts and the various registrations +accountants +with amounts but there is no line item structure +that describe the EU financial statements to which to associate the items of the traditional chart of accounts. +This module allows to generate a reclassified financial statements according to the EU format +with all the entries of the most recent taxonomies by making available the +following features: + +* associate the items in the Chart of Accounts with the items in the EU Budget (with automatic pre-association during module installation) +* process the accounting records of a given period (for example + last year) in order to obtain the accounting financial statements in EU format, carrying out the appropriate congruence checks, association of all the accounts moved in the period and balancing of the balance sheet. The reports also show the details of the accounts associated with a certain item of the EU financial statements +* preview then EU financial statements +* PDF printout of the EU financial statements +* download files in XLSX or XBRL format (useful for subsequent re-elaborations and for the transfer of the EU financial statements to the accountant) diff --git a/l10n_it_account_balance_eu/readme/ROADMAP.rst b/l10n_it_account_balance_eu/readme/ROADMAP.rst new file mode 100644 index 000000000000..b2c41e08aa05 --- /dev/null +++ b/l10n_it_account_balance_eu/readme/ROADMAP.rst @@ -0,0 +1,15 @@ +**Italiano** + +Il termine "Balance" è errato per indicare in inglese il bilancio. +La traduzione corretta sarebbe "financial statements", come indicato in +https://www.odoo-italia.org/documentazione/14.0/traduzioni/glossari/contabilita.html + +Per la versione 16 modificare tutti gli utilizzi del termine balance, compreso il nome del modulo + +**English** + +The term "Balance" is incorrect to indicate the balance sheet in English. +The correct translation would be "financial statements", as indicated in +https://www.odoo-italia.org/documentazione/14.0/traduzioni/glossari/contabilita.html + +For version 16 change all usages of the term balance, including the module name diff --git a/l10n_it_account_balance_eu/readme/USAGE.rst b/l10n_it_account_balance_eu/readme/USAGE.rst new file mode 100644 index 000000000000..3a9d562e019e --- /dev/null +++ b/l10n_it_account_balance_eu/readme/USAGE.rst @@ -0,0 +1,37 @@ +**Italiano** + +La maschera "Contabilità / Configurazione / Piano dei conti" è stata arricchita con due +nuovi campi "Associa a Bilancio UE / Dare" e ".../ Avere" che consentono di +definire la riclassificazione dei conti, riclassificazione che viene impostata +a valori predefiniti durante l’installazione del modulo. +Dei due campi "Dare" e "Avere" uno solo dei due è obbligatorio ai fini del report e in caso +siano presenti entrambi vengono usati in base al segno del saldo del valore annuale del +conto contabile. + +La nuova voce di menù "Contabilità / Rendicontazione / Bilancio UE" consente di selezionare il periodo e +scegliere la modalità di esportazione del Bilancio UE. +Nel wizard di “Bilancio UE” sono presenti le seguenti opzioni di generazione: + +* Visualizza valori [2 decimali di Euro / unità di Euro]: consente di stampare i valori del bilancio in Euro (con due decimali) o in unità di Euro (senza decimali). In caso si selezioni “unità di Euro” gli eventuali delta da arrotondamenti vengono riportati in automatico su due apposite voci (una nel Passivo e una nel Conto Economico). I saldi dei conti contabili verranno stampati comunque con 2 decimali +* Nascondere conti a 0: consente di non visualizzare i conti contabili con saldo a 0 e che quindi non influiscono nel calcolo delle voci del bilancio. Il bilancio UE verrà comunque visualizzato completo, con anche le voci con importo 0 +* Solo registrazioni confermate: per utilizzare solo le registrazioni contabili confermate (ignora bozze e annullate) +* Ignora registrazioni di chiusura: consente di stampare un Bilancio UE corretto anche in caso sia già stata effettuata la chiusura d’esercizio e quindi tutti i conti contabili siano a saldo 0 al 31/12. Se per effettuare la chiusura d’esercizio è stato utilizzato il modulo “account_fiscal_year_closing”, questa opzione consente di ignorare le registrazioni contabili di chiusura + +**English** + +The "Accounting / Configuration / Chart of Accounts" mask has been enriched with two +new fields "Match to EU Balance / Debit" and "... / Credit" that allow you to +define the reclassification of accounts, a reclassification that is set +to default values during installation of the module. +Of the two fields "Debit" and "Credit" only one of the two is mandatory for the purposes of the report and in the case +are present both are used according to the sign of the financial statements of the annual value of +accounting account. + +The new menu item "Accounting / Reporting / EU balance" allows you to select the period and +choose how to export the EU financial statements. +The following generation options are present in the "EU balance" wizard: + +* Values show as [2 decimals Euro / Euro units] : allows to print the values in Euros (with two decimals) or in Euro units (without decimals). If "Euro units" is selected, any delta from rounding is automatically reported on two specific Items (one in the Liabilities and one in the Income Statement). +* Hide account with amount 0: allows to not display the accounts with a balance at 0 and which therefore have no influence on the calculation of the financial statements items. The financial statements will be anyway displayed complete, even then items with amount 0 +* Use only posted registration: to use confirmed postings only (ignore drafts and cancelled) +* Ignore closing registration: allows you to print a correct EU financial statements even if the year-end has already been closed and therefore all accounting accounts have a balance of 0 as at 31/12. If the "account_fiscal_year_closing" module was used to carry out the year-end closing, this option allows you to ignore the closing moves diff --git a/l10n_it_account_balance_eu/report/__init__.py b/l10n_it_account_balance_eu/report/__init__.py new file mode 100644 index 000000000000..b27725abce9c --- /dev/null +++ b/l10n_it_account_balance_eu/report/__init__.py @@ -0,0 +1,5 @@ +# Copyright 2022 Associazione Odoo Italia () +# Copyright 2022 MKT Srl () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import account_balance_eu_report diff --git a/l10n_it_account_balance_eu/report/account_balance_eu_report.py b/l10n_it_account_balance_eu/report/account_balance_eu_report.py new file mode 100644 index 000000000000..1de0b22bed4f --- /dev/null +++ b/l10n_it_account_balance_eu/report/account_balance_eu_report.py @@ -0,0 +1,329 @@ +from datetime import datetime + +from odoo import _, models + + +def print_date(str_date): + return datetime.strptime(str_date, "%Y-%m-%d").strftime("%d/%m/%Y") + + +class BalanceEuXlsxReport(models.AbstractModel): + _name = "report.l10n_it_account_balance_eu.balance_eu_xlsx_report" + _description = "Export EU Balance in XLSX format" + _inherit = "report.report_xlsx.abstract" + + def generate_xlsx_report(self, workbook, data, record_data): + balance_ue_data = self.env["account.balance.eu"].cal_balance_ue_data(data) + sheet = workbook.add_worksheet(_("Balance EU")) + st_bold18 = workbook.add_format({"bold": True, "font_size": 18}) + sheet.write(0, 0, data["company_name"], st_bold18) + sheet.set_row(0, 28) + sheet.write(1, 0, data["address"] + " - " + data["city"]) + sheet.write(2, 0, _("Share capital Euro ") + str(data["rea_capital"])) + sheet.write(4, 0, data["name"], st_bold18) + sheet.set_row(4, 28) + sheet.write( + 5, + 0, + _("from") + + " " + + print_date(data["date_from"]) + + " " + + _("to") + + " " + + print_date(data["date_to"]), + ) + str_opz = "(" + _("Values show as") + ": " + if data["values_precision"] == "d": + str_opz += _("2 decimals Euro") + else: # "u" + str_opz += _("euro units") + str_opz += " / " + _("Hide account with amount 0") + ": " + if data["hide_acc_amount_0"]: + str_opz += _("YES") + else: + str_opz += _("NO") + str_opz += " / " + _("Use only posted registration") + ": " + if data["only_posted_move"]: + str_opz += _("YES") + else: + str_opz += _("NO") + str_opz += " / " + _("Ignore closing registration") + ": " + if data["ignore_closing_move"]: + str_opz += _("YES") + else: + str_opz += _("NO") + str_opz += ")" + st_bold9 = workbook.add_format({"font_size": 9}) + sheet.write(6, 0, str_opz, st_bold9) + + col_title_style = workbook.add_format({"fg_color": "#729fcf"}) + col_title_center_style = workbook.add_format( + {"fg_color": "#729fcf", "align": "center"} + ) + row_table_titles = 8 + sheet.write(row_table_titles, 0, _("Description"), col_title_style) + sheet.write(row_table_titles, 1, _("Code"), col_title_style) + sheet.write(row_table_titles, 2, str(data["year"]), col_title_center_style) + st_des = workbook.add_format({"num_format": "@"}) + st_acc_desc = workbook.add_format( + {"italic": True, "font_size": 9, "fg_color": "#efefef"} + ) + st_acc_code = workbook.add_format( + {"italic": True, "font_size": 9, "align": "right", "fg_color": "#efefef"} + ) + st_acc_amount = workbook.add_format( + { + "italic": True, + "font_size": 9, + "fg_color": "#efefef", + "num_format": "#,##0.00", + } + ) + if data["values_precision"] == "d": + amount_style = workbook.add_format({"num_format": "#,##0.00"}) + elif data["values_precision"] == "u": + amount_style = workbook.add_format({"num_format": "#,##0"}) + row = row_table_titles + 1 + max_l_descr = 0 + max_l_amount = 0 + for line in balance_ue_data["balance_ue_lines"]: + code = line["code"] + length = len(code[code.find(".") :]) + desc = "" + for _c in range(length - 1): + desc += " " + desc += line["desc"] + sheet.write(row, 0, desc, st_des) + sheet.write(row, 1, code) + if code == "E": + sheet.write(row, 2, "", amount_style) + else: + sheet.write(row, 2, line["amount"], amount_style) + row += 1 + if len(desc) > max_l_descr: + max_l_descr = len(desc) + length = len(str(line["amount"])) + if length > max_l_amount: + max_l_amount = length + for acc in line["accounts"]: + sheet.write(row, 0, " " + acc["desc"], st_acc_desc) + sheet.write(row, 1, acc["code"], st_acc_code) + sheet.write(row, 2, acc["amount"], st_acc_amount) + row += 1 + sheet.set_column(0, 0, max_l_descr) + sheet.set_column(2, 2, max_l_amount + 2) + + +class BalanceEuXBRLReport(models.AbstractModel): + _name = "report.l10n_it_account_balance_eu.balance_eu_xbrl_report" + _description = "Export EU Balance in XBRL format" + _inherit = "report.report_xml.abstract" + + def get_xbrl_data_tag(self, str_field, str_year, value, decimal_precision=-1): + complete_field = "itcc-ci:" + str_field + if decimal_precision >= 0: + altri_attr = ' unitRef="eur" decimals="{}"'.format(decimal_precision) + value = f"{value:.{decimal_precision}f}" + else: + altri_attr = "" + return """ + <{} contextRef="{}"{}>{}""".format( + complete_field, str_year, altri_attr, value, complete_field + ) + + def get_balance_line_tags( + self, balance_line_id, balance_ue_lines, str_year, decimal_precision + ): + result = "" + for child in balance_line_id.child_ids: + result += self.get_balance_line_tags( + child, balance_ue_lines, str_year, decimal_precision + ) + if balance_line_id.tag_xbrl: + for line in balance_ue_lines: + if line["code"] == balance_line_id["code"]: + amount = line["amount"] + break + else: + amount = None + if amount is not None: + result += self.get_xbrl_data_tag( + balance_line_id.tag_xbrl, str_year, amount, decimal_precision + ) + return result + + def generate_report(self, ir_report, docids, data=None): + balance_form_data = data + balance_ue_data = self.env["account.balance.eu"].cal_balance_ue_data( + balance_form_data + ) + i_year = "i_" + str(balance_form_data["year"]) + d_year = "d_" + str(balance_form_data["year"]) + xbrl = """ + + """ + + xbrl += """ + + + {} + + + {} + + + Depositato + + """.format( + i_year, + balance_form_data["fiscalcode"], + balance_form_data["date_to"], + ) + + xbrl += """ + + + {} + + + {} + {} + + + Depositato + + """.format( + d_year, + balance_form_data["fiscalcode"], + balance_form_data["date_from"], + balance_form_data["date_to"], + ) + xbrl += """ + + iso4217:EUR + + + xbrli:shares + + + xbrli:pure + + """ + xbrl += self.get_xbrl_data_tag( + "DatiAnagraficiDenominazione", i_year, balance_form_data["company_name"] + ) + xbrl += self.get_xbrl_data_tag( + "DatiAnagraficiSede", + i_year, + balance_form_data["address"] + + " - " + + self.env.company.zip + + " - " + + self.env.company.city, + ) + xbrl += self.get_xbrl_data_tag( + "DatiAnagraficiCapitaleSociale", i_year, balance_form_data["rea_capital"], 0 + ) + xbrl += self.get_xbrl_data_tag( + "DatiAnagraficiCapitaleSocialeInteramenteVersato", i_year, "true" + ) + xbrl += self.get_xbrl_data_tag( + "DatiAnagraficiCodiceCciaa", i_year, balance_form_data["rea_office"] + ) + xbrl += self.get_xbrl_data_tag( + "DatiAnagraficiPartitaIva", i_year, balance_form_data["vat_code"] + ) + xbrl += self.get_xbrl_data_tag( + "DatiAnagraficiCodiceFiscale", i_year, balance_form_data["fiscalcode"] + ) + xbrl += self.get_xbrl_data_tag( + "DatiAnagraficiNumeroRea", + i_year, + balance_form_data["rea_office"] + " " + balance_form_data["rea_num"], + ) + xbrl += self.get_xbrl_data_tag("DatiAnagraficiFormaGiuridica", i_year, "") + xbrl += self.get_xbrl_data_tag( + "DatiAnagraficiSettoreAttivitaPrevalenteAteco", i_year, "" + ) + if self.env.company.rea_liquidation_state == "LS": + tmp_s = "true" + else: + tmp_s = "false" + xbrl += self.get_xbrl_data_tag( + "DatiAnagraficiSocietaLiquidazione", i_year, tmp_s + ) + if self.env.company.rea_member_type == "SU": + tmp_s = "true" + else: + tmp_s = "false" + xbrl += self.get_xbrl_data_tag("DatiAnagraficiSocietaSocioUnico", i_year, tmp_s) + xbrl += self.get_xbrl_data_tag( + "DatiAnagraficiSocietaSottopostaAltruiAttivitaDirezioneCoordinamento", + i_year, + "false", + ) + xbrl += self.get_xbrl_data_tag( + "DatiAnagraficiDenominazioneSocietaEnteEsercitaAttivitaDirezioneCoordinamento", + i_year, + "", + ) + xbrl += self.get_xbrl_data_tag( + "DatiAnagraficiAppartenenzaGruppo", i_year, "false" + ) + xbrl += self.get_xbrl_data_tag( + "DatiAnagraficiDenominazioneSocietaCapogruppo", i_year, "" + ) + xbrl += self.get_xbrl_data_tag("DatiAnagraficiPaeseCapogruppo", i_year, "") + xbrl += self.get_xbrl_data_tag( + "DatiAnagraficiNumeroIscrizioneAlboCooperative", i_year, "" + ) + + if balance_form_data["values_precision"] == "d": + decimal_precision = 2 + else: + decimal_precision = 0 + tmp_balance_lines = self.env["account.balance.eu"].search([("code", "=", "PA")]) + if len(tmp_balance_lines) == 1: + xbrl += self.get_balance_line_tags( + tmp_balance_lines[0], + balance_ue_data["balance_ue_lines"], + i_year, + decimal_precision, + ) + tmp_balance_lines = self.env["account.balance.eu"].search([("code", "=", "PP")]) + if len(tmp_balance_lines) == 1: + xbrl += self.get_balance_line_tags( + tmp_balance_lines[0], + balance_ue_data["balance_ue_lines"], + i_year, + decimal_precision, + ) + tmp_balance_lines = self.env["account.balance.eu"].search([("code", "=", "E")]) + if len(tmp_balance_lines) == 1: + xbrl += self.get_balance_line_tags( + tmp_balance_lines[0], + balance_ue_data["balance_ue_lines"], + d_year, + decimal_precision, + ) + + xbrl += "\n" + return xbrl, "xbrl" + + +class BalanceEuHTMLReport(models.AbstractModel): + _name = "report.l10n_it_account_balance_eu.balance_eu_html_report" + _description = "Export EU Balance in HTML format" + + def _get_report_values(self, docids, data): + balance_ue_data = self.env["account.balance.eu"].cal_balance_ue_data(data) + return balance_ue_data diff --git a/l10n_it_account_balance_eu/report/account_balance_eu_report.xml b/l10n_it_account_balance_eu/report/account_balance_eu_report.xml new file mode 100644 index 000000000000..e7a9eef50cd6 --- /dev/null +++ b/l10n_it_account_balance_eu/report/account_balance_eu_report.xml @@ -0,0 +1,155 @@ + + + + Balance EU + account.balance.eu.wizard + qweb-html + l10n_it_account_balance_eu.balance_eu_html_report + l10n_it_account_balance_eu.balance_eu_html_report + + + + + Balance EU + account.balance.eu.wizard + xlsx + l10n_it_account_balance_eu.balance_eu_xlsx_report + + + + XBRL-financial-statements + account.balance.eu.wizard + qweb-xml + l10n_it_account_balance_eu.balance_eu_xbrl_report + + + + diff --git a/l10n_it_account_balance_eu/report/templates/layouts.xml b/l10n_it_account_balance_eu/report/templates/layouts.xml new file mode 100644 index 000000000000..ad044072e629 --- /dev/null +++ b/l10n_it_account_balance_eu/report/templates/layouts.xml @@ -0,0 +1,32 @@ + + + + diff --git a/l10n_it_account_balance_eu/security/account_balance_eu.xml b/l10n_it_account_balance_eu/security/account_balance_eu.xml new file mode 100644 index 000000000000..8f8e3460c72c --- /dev/null +++ b/l10n_it_account_balance_eu/security/account_balance_eu.xml @@ -0,0 +1,36 @@ + + + + + account.balance.eu.user + + + + + + + + + + account.balance.eu.wizard.user + + + + + + + + + + mkt.log.bil.ue.user + + + + + + + + + + diff --git a/l10n_it_account_balance_eu/static/description/icon.png b/l10n_it_account_balance_eu/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zl&#s4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6# z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f# zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv! zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG z-wfS zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9 z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE# z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1 zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$ zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV( z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4 z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{ zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx} z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22 zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t< z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{} zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/l10n_it_account_balance_eu/static/description/index.html b/l10n_it_account_balance_eu/static/description/index.html new file mode 100644 index 000000000000..9430b458c67e --- /dev/null +++ b/l10n_it_account_balance_eu/static/description/index.html @@ -0,0 +1,527 @@ + + + + + + +ITA - Bilancio UE con XBRL + + + +
+

ITA - Bilancio UE con XBRL

+ + +

Alpha License: AGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runboat

+

Italiano

+

In Odoo è presente il piano dei conti tradizionale e le varie registrazioni +contabili +con gli importi ma non è presente una struttura di voci +che descrivano il Bilancio UE a cui associare le voci del piano dei conti +tradizionale.

+

Questo modulo consente di generare un bilancio riclassificato secondo lo schema +del bilancio UE +con tutte le voci delle più recenti tassonomie mettendo a disposizione le +seguenti funzionalità:

+
    +
  • associare ai conti del piano dei conti le voci del Bilancio UE (con preassociazione automatica in fase di installazione del modulo)
  • +
  • elaborare le registrazioni contabili di un dato periodo (per esempio l’anno precedente) al fine di ottenere il bilancio contabile in formato UE, facendo gli opportuni controlli di congruenza, associazione di tutti i conti movimentati nel periodo e quadratura del bilancio. Nei report viene riportato anche il dettaglio dei conti associati ad una certa voce del bilancio UE
  • +
  • generare il report di anteprima del Bilancio UE
  • +
  • generare la stampa PDF del Bilancio UE
  • +
  • generare i file XLSX e XBRL del bilancio (utili per successive rielaborazioni e per trasferimento del bilancio UE al Commercialista)
  • +
+

English

+

In Odoo there is the traditional chart of accounts and the various registrations +accountants +with amounts but there is no line item structure +that describe the EU financial statements to which to associate the items of the traditional chart of accounts. +This module allows to generate a reclassified financial statements according to the EU format +with all the entries of the most recent taxonomies by making available the +following features:

+
    +
  • associate the items in the Chart of Accounts with the items in the EU Budget (with automatic pre-association during module installation)
  • +
  • process the accounting records of a given period (for example +last year) in order to obtain the accounting financial statements in EU format, carrying out the appropriate congruence checks, association of all the accounts moved in the period and balancing of the balance sheet. The reports also show the details of the accounts associated with a certain item of the EU financial statements
  • +
  • preview then EU financial statements
  • +
  • PDF printout of the EU financial statements
  • +
  • download files in XLSX or XBRL format (useful for subsequent re-elaborations and for the transfer of the EU financial statements to the accountant)
  • +
+
+

Important

+

This is an alpha version, the data model and design can change at any time without warning. +Only for development or testing purpose, do not use in production. +More details on development status

+
+

Table of contents

+ +
+

Configuration

+

Italiano

+

Il modulo non necessita di nessuna particolare configurazione. +L’installazione del modulo crea le voci del Bilancio UE secondo la più recente tassonomia. +Si consiglia di installare la contabilità con relativo piano dei conti prima di installare questo modulo, per consentire l’associazione automatica dei conti del piano dei conti italiano alle voci del Bilancio UE.

+

English

+

The module does not require any particular configuration. +Module installation creates the items of the EU Financial Statements according to the most recent taxonomy. +It is advisable to install the accounting with the related Chart of Accounts before installing this module, to allow the automatic association of the accounts of the Italian Chart of Accounts to the items of the EU Financial Statements.

+
+
+

Usage

+

Italiano

+

La maschera “Contabilità / Configurazione / Piano dei conti” è stata arricchita con due +nuovi campi “Associa a Bilancio UE / Dare” e “…/ Avere” che consentono di +definire la riclassificazione dei conti, riclassificazione che viene impostata +a valori predefiniti durante l’installazione del modulo. +Dei due campi “Dare” e “Avere” uno solo dei due è obbligatorio ai fini del report e in caso +siano presenti entrambi vengono usati in base al segno del saldo del valore annuale del +conto contabile.

+

La nuova voce di menù “Contabilità / Rendicontazione / Bilancio UE” consente di selezionare il periodo e +scegliere la modalità di esportazione del Bilancio UE. +Nel wizard di “Bilancio UE” sono presenti le seguenti opzioni di generazione:

+
    +
  • Visualizza valori [2 decimali di Euro / unità di Euro]: consente di stampare i valori del bilancio in Euro (con due decimali) o in unità di Euro (senza decimali). In caso si selezioni “unità di Euro” gli eventuali delta da arrotondamenti vengono riportati in automatico su due apposite voci (una nel Passivo e una nel Conto Economico). I saldi dei conti contabili verranno stampati comunque con 2 decimali
  • +
  • Nascondere conti a 0: consente di non visualizzare i conti contabili con saldo a 0 e che quindi non influiscono nel calcolo delle voci del bilancio. Il bilancio UE verrà comunque visualizzato completo, con anche le voci con importo 0
  • +
  • Solo registrazioni confermate: per utilizzare solo le registrazioni contabili confermate (ignora bozze e annullate)
  • +
  • Ignora registrazioni di chiusura: consente di stampare un Bilancio UE corretto anche in caso sia già stata effettuata la chiusura d’esercizio e quindi tutti i conti contabili siano a saldo 0 al 31/12. Se per effettuare la chiusura d’esercizio è stato utilizzato il modulo “account_fiscal_year_closing”, questa opzione consente di ignorare le registrazioni contabili di chiusura
  • +
+

English

+

The “Accounting / Configuration / Chart of Accounts” mask has been enriched with two +new fields “Match to EU Balance / Debit” and “… / Credit” that allow you to +define the reclassification of accounts, a reclassification that is set +to default values during installation of the module. +Of the two fields “Debit” and “Credit” only one of the two is mandatory for the purposes of the report and in the case +are present both are used according to the sign of the financial statements of the annual value of +accounting account.

+

The new menu item “Accounting / Reporting / EU balance” allows you to select the period and +choose how to export the EU financial statements. +The following generation options are present in the “EU balance” wizard:

+
    +
  • Values show as [2 decimals Euro / Euro units] : allows to print the values in Euros (with two decimals) or in Euro units (without decimals). If “Euro units” is selected, any delta from rounding is automatically reported on two specific Items (one in the Liabilities and one in the Income Statement).
  • +
  • Hide account with amount 0: allows to not display the accounts with a balance at 0 and which therefore have no influence on the calculation of the financial statements items. The financial statements will be anyway displayed complete, even then items with amount 0
  • +
  • Use only posted registration: to use confirmed postings only (ignore drafts and cancelled)
  • +
  • Ignore closing registration: allows you to print a correct EU financial statements even if the year-end has already been closed and therefore all accounting accounts have a balance of 0 as at 31/12. If the “account_fiscal_year_closing” module was used to carry out the year-end closing, this option allows you to ignore the closing moves
  • +
+
+
+

Known issues / Roadmap

+

Italiano

+

Il termine “Balance” è errato per indicare in inglese il bilancio. +La traduzione corretta sarebbe “financial statements”, come indicato in +https://www.odoo-italia.org/documentazione/14.0/traduzioni/glossari/contabilita.html

+

Per la versione 16 modificare tutti gli utilizzi del termine balance, compreso il nome del modulo

+

English

+

The term “Balance” is incorrect to indicate the balance sheet in English. +The correct translation would be “financial statements”, as indicated in +https://www.odoo-italia.org/documentazione/14.0/traduzioni/glossari/contabilita.html

+

For version 16 change all usages of the term balance, including the module name

+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • MKT Srl
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainer:

+

mktsrl

+

This module is part of the OCA/l10n-italy project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/l10n_it_account_balance_eu/static/src/css/report.css b/l10n_it_account_balance_eu/static/src/css/report.css new file mode 100644 index 000000000000..238eedc055ba --- /dev/null +++ b/l10n_it_account_balance_eu/static/src/css/report.css @@ -0,0 +1,118 @@ +.act_as_table { + display: table !important; + background-color: white; +} +.act_as_row { + display: table-row !important; + page-break-inside: avoid; +} +.act_as_cell { + display: table-cell !important; + page-break-inside: avoid; +} +.act_as_thead { + display: table-header-group !important; +} +.act_as_tbody { + display: table-row-group !important; +} +.list_table, +.data_table, +.totals_table { + width: 100% !important; +} +.act_as_row.labels { + background-color: #f0f0f0 !important; +} +.list_table, +.data_table, +.totals_table, +.list_table .act_as_row { + border-left: 0px; + border-right: 0px; + text-align: center; + font-size: 10px; + padding-right: 3px; + padding-left: 3px; + padding-top: 2px; + padding-bottom: 2px; + border-collapse: collapse; +} +.totals_table { + font-weight: bold; + text-align: center; +} +.list_table .act_as_row.labels, +.list_table .act_as_row.initial_balance, +.list_table .act_as_row.lines { + border-color: grey !important; + border-bottom: 1px solid lightGrey !important; +} +.data_table .act_as_cell { + border: 1px solid lightGrey; + text-align: center; +} +.data_table .act_as_cell, +.list_table .act_as_cell, +.totals_table .act_as_cell { + word-wrap: break-word; +} +.data_table .act_as_row.labels, +.totals_table .act_as_row.labels { + font-weight: bold; +} +.initial_balance .act_as_cell { + font-style: italic; +} +.account_row { + font-size: 0.8em; + font-style: italic; +} +.account_row_background { + background-color: #efefef; +} +.period { + padding-bottom: 20px; +} +.act_as_cell.amount { + word-wrap: normal; + text-align: right; +} +.act_as_cell.left { + text-align: left; +} +.act_as_cell.right { + text-align: right; +} +.list_table .act_as_cell.first_column { + padding-left: 0px; +} +.overflow_ellipsis { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} +.custom_footer { + font-size: 7px !important; +} +.page_break { + page-break-inside: avoid; +} + +.button_row { + padding-bottom: 10px; +} + +.o_account_balance_eu_page { + padding-top: 10px; + width: 90%; + margin-right: auto; + margin-left: auto; + font-family: Helvetica, Arial; +} + +.warnings { + padding: 10px; + color: #af0000; + background-color: #ffdfdf; +} diff --git a/l10n_it_account_balance_eu/static/src/js/action_manager_report.js b/l10n_it_account_balance_eu/static/src/js/action_manager_report.js new file mode 100644 index 000000000000..df26a881f98b --- /dev/null +++ b/l10n_it_account_balance_eu/static/src/js/action_manager_report.js @@ -0,0 +1,35 @@ +odoo.define("l10n_it_account_balance_eu.ReportActionManager", function (require) { + "use strict"; + + const ActionManager = require("web.ActionManager"); + require("web.ReportActionManager"); + + ActionManager.include({ + /** + * @override + */ + _executeReportClientAction: function (action, options) { + const MODULE_NAME = "l10n_it_account_balance_eu"; + + // When 'report_action' is called from the backend, Odoo hardcodes the action tag. + // We have to make a hack to use our own report controller. + if (action.report_name.startsWith(`${MODULE_NAME}.`)) { + const urls = this._makeReportUrls(action); + const clientActionOptions = _.extend({}, options, { + context: action.context, + data: action.data, + display_name: action.display_name, + name: action.name, + report_file: action.report_file, + report_name: action.report_name, + report_url: urls.html, + }); + return this.doAction( + "l10n_it_account_balance_eu.client_action", + clientActionOptions + ); + } + return this._super.apply(this, arguments); + }, + }); +}); diff --git a/l10n_it_account_balance_eu/static/src/js/client_action.js b/l10n_it_account_balance_eu/static/src/js/client_action.js new file mode 100644 index 000000000000..56436bf51efc --- /dev/null +++ b/l10n_it_account_balance_eu/static/src/js/client_action.js @@ -0,0 +1,77 @@ +odoo.define("l10n_it_account_balance_eu.client_action", function (require) { + "use strict"; + + var ReportAction = require("report.client_action"); + var core = require("web.core"); + + var QWeb = core.qweb; + + const BalEUReportAction = ReportAction.extend({ + start: function () { + return this._super.apply(this, arguments).then(() => { + this.$buttons = $( + QWeb.render( + "l10n_it_account_balance_eu.client_action.ControlButtons", + {} + ) + ); + this.$buttons.on("click", ".o_report_print", this.on_click_print); + this.$buttons.on("click", ".o_report_xlsx", this.on_click_xlsx); + this.$buttons.on("click", ".o_report_xbrl", this.on_click_xbrl); + + this.controlPanelProps.cp_content = { + $buttons: this.$buttons, + }; + + this._controlPanelWrapper.update(this.controlPanelProps); + }); + }, + + on_click_xlsx: function () { + const action = { + type: "ir.actions.report", + report_type: "xlsx", + report_name: "l10n_it_account_balance_eu.balance_eu_xlsx_report", + report_file: this._get_xlsx_name(this.report_file), + data: this.data, + context: this.context, + display_name: this.title, + }; + return this.do_action(action); + }, + + /** + * @param {String} str + * @returns {String} + */ + _get_xlsx_name: function (str) { + if (!_.isString(str)) { + return str; + } + const parts = str.split("."); + return `a_f_r.report_${parts[parts.length - 1]}_xlsx`; + }, + + on_click_xbrl: function () { + const action = { + name: this.name, + print_report_name: + String(this.data.year) + "-XBRL-financial-statements", + type: "ir.actions.report", + report_type: "qweb-xml", + report_name: "l10n_it_account_balance_eu.balance_eu_xbrl_report", + data: this.data, + context: this.context, + display_name: this.title, + }; + return this.do_action(action); + }, + }); + + core.action_registry.add( + "l10n_it_account_balance_eu.client_action", + BalEUReportAction + ); + + return BalEUReportAction; +}); diff --git a/l10n_it_account_balance_eu/static/src/xml/report.xml b/l10n_it_account_balance_eu/static/src/xml/report.xml new file mode 100644 index 000000000000..853acbc508c3 --- /dev/null +++ b/l10n_it_account_balance_eu/static/src/xml/report.xml @@ -0,0 +1,22 @@ + diff --git a/l10n_it_account_balance_eu/tests/__init__.py b/l10n_it_account_balance_eu/tests/__init__.py new file mode 100644 index 000000000000..d83f0c607738 --- /dev/null +++ b/l10n_it_account_balance_eu/tests/__init__.py @@ -0,0 +1 @@ +from . import test_balance_eu diff --git a/l10n_it_account_balance_eu/tests/test_balance_eu.py b/l10n_it_account_balance_eu/tests/test_balance_eu.py new file mode 100644 index 000000000000..cef2e8dd727a --- /dev/null +++ b/l10n_it_account_balance_eu/tests/test_balance_eu.py @@ -0,0 +1,254 @@ +from datetime import datetime + +from odoo.tests import tagged +from odoo.tests.common import TransactionCase + + +def _get_balance_line_amount(bal_lines, line_code): + for line in bal_lines: + if line["code"] == line_code: + return line["amount"] + + +@tagged("-at_install", "post_install") +class TestBalanceEU(TransactionCase): + def setUp(self): + # add env on cls and many other things + super(TestBalanceEU, self).setUp() + + def _find_or_create_account_account(self, company_id, code, name, code_bal_eu): + acc_id = self.env["account.account"].search( + [("company_id", "=", company_id), ("code", "=", code)] + ) + if not acc_id: + user_type_id = self.env["account.account.type"].search([], limit=1).id + acc_id = self.env["account.account"].create( + { + "code": code, + "name": name, + "user_type_id": user_type_id, + "reconcile": True, + } + ) + id_bal_eu = ( + self.env["account.balance.eu"].search([("code", "=", code_bal_eu)]).id + ) + if (not acc_id.account_balance_eu_debit_id) or ( + acc_id.account_balance_eu_debit_id.id != id_bal_eu + ): + self.env["account.balance.eu"].account_balance_eu_debit_association( + code, id_bal_eu, True + ) + return acc_id + + def _add_move(self, company_id, ref, journal, date, line_list): + lines = [] + for line in line_list: + acc_id = self._find_or_create_account_account( + company_id, + line["code"], + line["name"], + line["bal_eu"], + ) + if acc_id: + lines.append( + ( + 0, + 0, + { + "debit": line["debit"], + "credit": line["credit"], + "account_id": acc_id.id, + }, + ) + ) + + move_vals = { + "ref": ref, + "journal_id": journal.id, + "date": date, + "line_ids": lines, + } + move = self.env["account.move"].create(move_vals) + move.action_post() + + def _get_balance_values(self, date_start, date_end, values_precision): + wiz_balance_eu = self.env["account.balance.eu.wizard"].create( + { + "date_from": date_start, + "date_to": date_end, + "values_precision": values_precision, + "hide_acc_amount_0": True, + "only_posted_move": True, + "ignore_closing_move": True, + } + ) + form_data = wiz_balance_eu.get_data() + return self.env[ + "report.l10n_it_account_balance_eu.balance_eu_html_report" + ]._get_report_values(wiz_balance_eu, data=form_data) + + def test_balance_eu_1(self): + company_id = self.env.company.id + journal = self.env["account.journal"].search( + [("company_id", "=", company_id)], limit=1 + ) + self._add_move( + company_id, + "vendita a cliente", + journal, + datetime(2023, 3, 1).date(), + ( + { + "code": "150100", + "name": "crediti v/clienti", + "bal_eu": "PA.B11a", + "debit": 37.52, + "credit": 0, + }, + { + "code": "260100", + "name": "IVA n/debito", + "bal_eu": "PP.DBa", + "debit": 0, + "credit": 6.77, + }, + { + "code": "310100", + "name": "merci c/vendite", + "bal_eu": "E.A1", + "debit": 0, + "credit": 30.75, + }, + ), + ) + self._add_move( + company_id, + "incasso da cliente", + journal, + datetime(2023, 4, 5).date(), + ( + { + "code": "182001", + "name": "Banca", + "bal_eu": "PA.C41", + "debit": 37.52, + "credit": 0, + }, + { + "code": "150100", + "name": "crediti v/clienti", + "bal_eu": "PA.B11a", + "debit": 0, + "credit": 37.52, + }, + ), + ) + self._add_move( + company_id, + "giroconto per generare un delta nel PATRIMONIALE " + + "su bilancio UE arrotondato alla unità", + journal, + datetime(2023, 4, 1).date(), + ( + { + "code": "110100", + "name": "Costi di impianto", + "bal_eu": "PA.B11a", + "debit": 100.10, + "credit": 0, + }, + { + "code": "110600", + "name": "Software", + "bal_eu": "PA.B13a", + "debit": 200.20, + "credit": 0, + }, + { + "code": "110800", + "name": "Avviamento", + "bal_eu": "PA.B15a", + "debit": 300.30, + "credit": 0, + }, + { + "code": "120500", + "name": "macchine d'ufficio", + "bal_eu": "PA.B24a", + "debit": 399.40, + "credit": 0, + }, + { + "code": "210100", + "name": "Patrimonio netto", + "bal_eu": "PP.A1", + "debit": 0, + "credit": 1000, + }, + ), + ) + self._add_move( + company_id, + "giroconto per generare un delta nel CONTO ECONOMICO " + + "su bilancio UE arrotondato alla unità", + journal, + datetime(2023, 4, 1).date(), + ( + { + "code": "410100", + "name": "merci c/acquisti", + "bal_eu": "E.B1", + "debit": 100.10, + "credit": 0, + }, + { + "code": "411100", + "name": "ribassi e abbuoni attivi", + "bal_eu": "E.B2", + "debit": 200.20, + "credit": 0, + }, + { + "code": "430100", + "name": "fitti passivi", + "bal_eu": "E.B3", + "debit": 300.30, + "credit": 0, + }, + { + "code": "440100", + "name": "salari e stipendi", + "bal_eu": "E.B41", + "debit": 399.40, + "credit": 0, + }, + { + "code": "310300", + "name": "rimborsi spese di vendita", + "bal_eu": "E.A511", + "debit": 0, + "credit": 1000, + }, + ), + ) + # checks with decimals + bal_values = self._get_balance_values( + datetime(2023, 1, 1).date(), datetime(2023, 12, 31).date(), "d" + ) + self.assertNotEqual(bal_values.get("balance_state"), "UNBALANCED") + bal_lines = bal_values.get("balance_ue_lines") + self.assertEqual(_get_balance_line_amount(bal_lines, "PA.C21a"), 0) + self.assertEqual(_get_balance_line_amount(bal_lines, "PA"), 1037.52) + self.assertEqual(_get_balance_line_amount(bal_lines, "E.A"), 1030.75) + self.assertEqual(_get_balance_line_amount(bal_lines, "E=F"), 30.75) + # checks without decimals + bal_values = self._get_balance_values( + datetime(2023, 1, 1).date(), datetime(2023, 12, 31).date(), "u" + ) + self.assertNotEqual(bal_values.get("balance_state"), "UNBALANCED") + bal_lines = bal_values.get("balance_ue_lines") + self.assertEqual(_get_balance_line_amount(bal_lines, "PA.C21a"), 0) + self.assertEqual(_get_balance_line_amount(bal_lines, "PA"), 1037) + self.assertEqual(_get_balance_line_amount(bal_lines, "E.A"), 1030) + self.assertEqual(_get_balance_line_amount(bal_lines, "E=F"), 31) diff --git a/l10n_it_account_balance_eu/views/account_balance_eu_view.xml b/l10n_it_account_balance_eu/views/account_balance_eu_view.xml new file mode 100644 index 000000000000..cf9d463ea3bd --- /dev/null +++ b/l10n_it_account_balance_eu/views/account_balance_eu_view.xml @@ -0,0 +1,108 @@ + + + + + account.balance.eu.form + account.balance.eu + +
+ + + + + + + + + + + +
+
+
+ + + account.balance.eu.search + account.balance.eu + + + + + + + + + + + + + + + + account.balance.eu.tree + account.balance.eu + + + + + + + + + Balance EU lines + account.balance.eu + tree,form + [] + {} + + + + Balance EU lines + + + + + + + view.account.form.balance.ue + account.account + + + + + + + + + + + + + + + + + +
diff --git a/l10n_it_account_balance_eu/views/report_template.xml b/l10n_it_account_balance_eu/views/report_template.xml new file mode 100644 index 000000000000..a84438a8966b --- /dev/null +++ b/l10n_it_account_balance_eu/views/report_template.xml @@ -0,0 +1,19 @@ + + +