Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

l10n-italy main sync #4430

Open
wants to merge 4 commits into
base: 16.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions l10n_it_fatturapa_out_rc/models/account_move.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ def generate_self_invoice(self):
doc_id = self.fatturapa_attachment_in_id.name
else:
doc_id = self.ref if self.ref else self.name
self.rc_self_invoice_id.related_documents = [(5, False, False)]
self.rc_self_invoice_id.related_documents = [
(
0,
Expand Down
1 change: 1 addition & 0 deletions l10n_it_financial_statement_eu/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ ITA - Bilancio UE con XBRL

**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
Expand Down
14 changes: 14 additions & 0 deletions l10n_it_financial_statement_eu/readme/CONFIGURE.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
**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.
Sarà poi possibile modificare le associazioni o integrare quelle mancanti tramite la maschera Configurazione / Piano dei conti / Imposta


**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.
It will then be possible to modify the associations or integrate the missing ones via the Configuration / Chart of Accounts / SETUP
3 changes: 3 additions & 0 deletions l10n_it_financial_statement_eu/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
* Martinelli Andrea (analisi/sviluppo) <https://github.com/TennyMkt>
* Bellomi Luca (analisi/supporto) <https://github.com/mktsrl>
* Allegretti Daniele (analisi/supervisione/consulenza) <https://www.mkt.it/>
35 changes: 35 additions & 0 deletions l10n_it_financial_statement_eu/readme/DESCRIPTION.rst
Original file line number Diff line number Diff line change
@@ -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)
37 changes: 37 additions & 0 deletions l10n_it_financial_statement_eu/readme/USAGE.rst
Original file line number Diff line number Diff line change
@@ -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 Financial statement EU / 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 / Financial statement EU" allows you to select the period and
choose how to export the EU financial statements.
The following generation options are present in the "Financial statement EU" 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
73 changes: 73 additions & 0 deletions l10n_it_financial_statement_eu/static/src/js/report.esm.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
/** @odoo-module */

import {useComponent, useEffect} from "@odoo/owl";

function toTitleCase(str) {
return str
.replaceAll(".", " ")
.replace(
/\w\S*/g,
(txt) => `${txt.charAt(0).toUpperCase()}${txt.substr(1).toLowerCase()}`
);
}

function enrich(component, targetElement, selector, isIFrame = false) {
let doc = window.document;
let contentDocument = targetElement;

// If we are in an iframe, we need to take the right document
// both for the element and the doc
if (isIFrame) {
contentDocument = targetElement.contentDocument;
doc = contentDocument;
}

// If there are selector, we may have multiple blocks of code to enrich
const targets = [];
if (selector) {
targets.push(...contentDocument.querySelectorAll(selector));
} else {
targets.push(contentDocument);
}

// Search the elements with the selector, update them and bind an action.
for (const currentTarget of targets) {
const elementsToWrap = currentTarget.querySelectorAll("[res-model][domain]");
for (const element of elementsToWrap.values()) {
const wrapper = doc.createElement("a");
wrapper.setAttribute("href", "#");
wrapper.addEventListener("click", (ev) => {
ev.preventDefault();
component.env.services.action.doAction({
type: "ir.actions.act_window",
res_model: element.getAttribute("res-model"),
domain: element.getAttribute("domain"),
name: toTitleCase(element.getAttribute("res-model")),
views: [
[false, "list"],
[false, "form"],
],
});
});
element.parentNode.insertBefore(wrapper, element);
wrapper.appendChild(element);
}
}
}

export function useEnrichWithActionLinks(ref, selector = null) {
const comp = useComponent();
useEffect(
(element) => {
// If we get an iframe, we need to wait until everything is loaded
if (element.matches("iframe")) {
element.addEventListener("load", () =>
enrich(comp, element, selector, true)
);
} else {
enrich(comp, element, selector);
}
},
() => [ref.el]
);
}
3 changes: 3 additions & 0 deletions l10n_it_reverse_charge/models/account_move.py
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,7 @@ def _prepare_rc_supplier_invoice_payment(self, rc_invoice, rc_type):
line_to_reconcile = self._rc_get_move_line_to_reconcile()
payment_debit_line_data = self.rc_debit_line_vals(
line_to_reconcile.account_id,

payment_credit_line_data["amount_currency"],
payment_credit_line_data["credit"],
)
Expand Down Expand Up @@ -482,6 +483,8 @@ def generate_supplier_self_invoice(self):

if not supplier_invoice:
supplier_invoice = self.create(supplier_invoice_vals)
else:
supplier_invoice.write(supplier_invoice_vals)
invoice_line_vals = []
for inv_line in self.invoice_line_ids:
line_vals = inv_line.copy_data()[0]
Expand Down
Loading