diff --git a/account_vat_period_end_statement/README.rst b/account_vat_period_end_statement/README.rst index cb2ebf09905f..e281bf70069f 100644 --- a/account_vat_period_end_statement/README.rst +++ b/account_vat_period_end_statement/README.rst @@ -7,7 +7,7 @@ ITA - Liquidazione IVA !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:4e1782830a749b907fe436e7051c24a052fff7e828b57888d30753b1a016fcba + !! source digest: sha256:425107ea1eecce0eaab7a10d43dcd7e922879455f3c3c1f147f800fb6581b387 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -30,60 +30,60 @@ ITA - Liquidazione IVA **Italiano** - Per fare la liquidazione IVA, aprire Fatturazione > Contabilità > Liquidazioni IVA, il menù è visibile solo quando è abilitato il gruppo 'Mostrare funzionalità contabili complete'. - Selezionare un registro che conterrà le registrazioni contabili della liquidazione. - Il campo 'Conto IVA erario' contiene il conto dove verrà effettuata la registrazione della liquidazione IVA. - - L'oggetto 'Liquidazione IVA' permette di specificare ogni importo e il conto utilizzato dalla liquidazione. - Di norma, gli importi di debito e credito delle imposte vengono caricati automaticamente dai periodi selezionati - (vedere Configurazione per generare correttamente i periodi). - I debiti e crediti precedenti vengono caricati dalle liquidazioni IVA precedenti, in base allo stato del loro pagamento. - - A seguito dell’introduzione della normativa OSS, per chi fa vendite online su diversi paesi, deve necessariamente escludere dalla liquidazione iva ciò che farà parte della liquidazione OSS. - E’ stato introdotto un nuovo campo per filtrare le imposte da elaborare, quindi va indicato il conto configurato nelle imposte “Conto utilizzato per la liquidazione IVA”. - Quindi selezionare il conto IVA debito per elaborare liquidazione iva su tutte le imposte che hanno in configurazione il conto IVA debito. Per la liquidazione OSS invece selezionare conto dedicato ad esempio IVA debito OSS Francia. - E’ necessario creare un periodo di dichiarazione IVA dedicato all’OSS . - Per caricare invece tutte le imposte che hanno un conto per la liquidazione IVA, è sufficiente lasciare vuoto il filtro per conti. - - Per creare la registrazione contabile, fare clic sul pulsante 'Crea movimento', dentro la scheda 'Conti'. - Se i termini di pagamento sono impostati viene scritta anche la scadenza (o le scadenze). - - La scheda 'Erario' contiene informazioni sui pagamenti, - qui si possono visualizzare i risultati della liquidazione ('Importo IVA erario') - e l'importo residuo da pagare ('Importo a saldo'). - La liquidazione può essere pagata come qualunque altro debito, con la riconciliazione delle registrazioni contabili. - - È inoltre possibile stampare la liquidazione IVA facendo clic su Stampa > Stampa liquidazione IVA. + Per fare la liquidazione IVA, aprire Fatturazione > Contabilità > + Liquidazioni IVA, il menù è visibile solo quando è abilitato il + gruppo 'Mostrare funzionalità contabili complete'. Selezionare un + registro che conterrà le registrazioni contabili della liquidazione. + Il campo 'Conto IVA erario' contiene il conto dove verrà effettuata + la registrazione della liquidazione IVA. + + L'oggetto 'Liquidazione IVA' permette di specificare ogni importo e + il conto utilizzato dalla liquidazione. Di norma, gli importi di + debito e credito delle imposte vengono caricati automaticamente dai + periodi selezionati (vedere Configurazione per generare correttamente + i periodi). I debiti e crediti precedenti vengono caricati dalle + liquidazioni IVA precedenti, in base allo stato del loro pagamento. + + Per creare la registrazione contabile, fare clic sul pulsante 'Crea + movimento', dentro la scheda 'Conti'. Se i termini di pagamento sono + impostati viene scritta anche la scadenza (o le scadenze). + + La scheda 'Erario' contiene informazioni sui pagamenti, qui si + possono visualizzare i risultati della liquidazione ('Importo IVA + erario') e l'importo residuo da pagare ('Importo a saldo'). La + liquidazione può essere pagata come qualunque altro debito, con la + riconciliazione delle registrazioni contabili. + + È inoltre possibile stampare la liquidazione IVA facendo clic su + Stampa > Stampa liquidazione IVA. **English** - In order to create a 'VAT Statement', open Accounting > Adviser > VAT Statements, this menu is only visible when the group 'Show Full Accounting Features' is enabled. - Select a Journal that will contain the journal entries of the statement. - The field 'Tax authority VAT' account contains the account where the statement balance will be registered. - - The 'VAT statement' object allows to specify every amount and relative account - used by the statement. - By default, amounts of debit and credit taxes are automatically loaded - from taxes of the selected periods (see Configuration to correctly generate the periods). - Previous debit or credit is loaded from previous VAT statement, according - to its payments status. + In order to create a 'VAT Statement', open Accounting > Adviser > VAT + Statements, this menu is only visible when the group 'Show Full + Accounting Features' is enabled. Select a Journal that will contain + the journal entries of the statement. The field 'Tax authority VAT' + account contains the account where the statement balance will be + registered. - Following the introduction of the OSS legislation, for those who make online sales in different countries, it must necessarily exclude from the VAT settlement what will be part of the OSS settlement. - A new field has been introduced to filter the taxes to be processed, so the account configured in the taxes "Account used for VAT settlement" must be indicated. - Then select the VAT debit account to process VAT settlement on all taxes that have the VAT debit account in setup. - For OSS settlement, on the other hand, select a dedicated account, for example, OSS debit VAT France. It is necessary to create a VAT return period dedicated to the OSS. - To load all taxes that have a VAT settlement account instead, just leave the filter by accounts blank. + The 'VAT statement' object allows to specify every amount and + relative account used by the statement. By default, amounts of debit + and credit taxes are automatically loaded from taxes of the selected + periods (see Configuration to correctly generate the periods). + Previous debit or credit is loaded from previous VAT statement, + according to its payments status. - In order to generate the journal entry, click on 'Create move' button, inside the 'Accounts' tab. - If you select a payment term, the due date(s) will be set. + In order to generate the journal entry, click on 'Create move' + button, inside the 'Accounts' tab. If you select a payment term, the + due date(s) will be set. - The 'tax authority' tab contains information about payment(s), - here you can see statement's result ('authority VAT amount') and residual - amount to pay ('Balance'). - The statement can be paid like every other debit, by journal item - reconciliation. + The 'tax authority' tab contains information about payment(s), here + you can see statement's result ('authority VAT amount') and residual + amount to pay ('Balance'). The statement can be paid like every other + debit, by journal item reconciliation. - It is also possible to print the 'VAT statement' clicking on print > Print VAT period end statement. + It is also possible to print the 'VAT statement' clicking on print > + Print VAT period end statement. **Table of contents** @@ -95,44 +95,58 @@ Configuration **Italiano** - Per generare i periodi della dichiarazione IVA, - aprire Fatturazione > Configurazione > Contabilità > Intervalli date > Generazione intervalli data (visibile solo in modalità debug): + Per generare i periodi della dichiarazione IVA, aprire Fatturazione > + Configurazione > Contabilità > Intervalli date > Generazione + intervalli data (visibile solo in modalità debug): - * prefisso nome intervallo: prefisso identificativo per i periodi da generare (tipicamente l'anno) - * durata: 1 mese - * numero di intervalli da generare: 12 - * tipo: creare un tipo o utilizzarne uno esistente, non è richiesta una configurazione particolare - * data iniziale: primo giorno del primo periodo che sarà generato (tipicamente il primo giorno dell'anno i.e. 01/01/2018) + - prefisso nome intervallo: prefisso identificativo per i periodi da + generare (tipicamente l'anno) + - durata: 1 mese + - numero di intervalli da generare: 12 + - tipo: creare un tipo o utilizzarne uno esistente, non è richiesta + una configurazione particolare + - data iniziale: primo giorno del primo periodo che sarà generato + (tipicamente il primo giorno dell'anno i.e. 01/01/2018) - Per caricare l'importo corretto, un'imposta deve essere associata al conto utilizzato nella liquidazione: + Per caricare l'importo corretto, un'imposta deve essere associata al + conto utilizzato nella liquidazione: - #. aprire l'imposta da Fatturazione > Configurazione > Contabilità > Imposte, - #. nella scheda 'Opzioni avanzate' selezionare il conto corretto (ad esempio IVA debito) - per il campo 'Conto utilizzato per la liquidazione IVA'. Se si è soggetti a liquidazione OSS indicare un conto dedicato (ad esempio IVA debito OSS Francia) + 1. aprire l'imposta da Fatturazione > Configurazione > Contabilità > + Imposte, + 2. nella scheda 'Opzioni avanzate' selezionare il conto corretto (ad + esempio IVA debito) per il campo 'Conto utilizzato per la + liquidazione IVA'. - Per calcolare gli interessi, è possibile aggiungere le informazioni da utilizzare (conto e percentuale) - nei dati aziendali, nella scheda 'Liquidazione IVA'. + Per calcolare gli interessi, è possibile aggiungere le informazioni + da utilizzare (conto e percentuale) nei dati aziendali, nella scheda + 'Liquidazione IVA'. **English** - In order to generate VAT statement's periods, - open Accounting > Configuration > Accounting > Date ranges > Generate Date Ranges (visible only in debug mode): + In order to generate VAT statement's periods, open Accounting > + Configuration > Accounting > Date ranges > Generate Date Ranges + (visible only in debug mode): - * range name prefix: prefix identifying the periods to be generated (usually the year) - * duration: 1 month - * number of ranges to generate: 12 - * type: create a type or use an existing one, no specific configuration is required - * date start: first day of the first period to be generated (usually the first day of the year e.g. 01/01/2018) + - range name prefix: prefix identifying the periods to be generated + (usually the year) + - duration: 1 month + - number of ranges to generate: 12 + - type: create a type or use an existing one, no specific + configuration is required + - date start: first day of the first period to be generated (usually + the first day of the year e.g. 01/01/2018) - In order to load the correct amount from tax, the tax has to be - associated to the account involved in the statement: + In order to load the correct amount from tax, the tax has to be + associated to the account involved in the statement: - #. open a tax in Accounting > Configuration > Accounting > Taxes, - #. in the tab 'Advanced Options' select the correct account (for instance the account debit VAT) - for the field 'Account used for VAT statement'. If you are subject to OSS settlement indicate a dedicated account (for example OSS debit VAT France) + 1. open a tax in Accounting > Configuration > Accounting > Taxes, + 2. in the tab 'Advanced Options' select the correct account (for + instance the account debit VAT) for the field 'Account used for + VAT statement'. - If you need to calculate interest, you can add default information in your - company data (percentage and account), in the 'VAT statement' tab. + If you need to calculate interest, you can add default information in + your company data (percentage and account), in the 'VAT statement' + tab. Bug Tracker =========== @@ -148,29 +162,29 @@ Credits ======= Authors -~~~~~~~ +------- * Agile Business Group * LinkIt Spa Contributors -~~~~~~~~~~~~ - -* Lorenzo Battistini -* Elena Carlesso -* Marco Marchiori -* Sergio Corato -* Andrea Gallina -* Alex Comba -* Alessandro Camilli -* Simone Rubino -* Giacomo Grasso -* Lara Baggio -* Gianmarco Conte -* Michele Rusticucci +------------ + +- Lorenzo Battistini +- Elena Carlesso +- Marco Marchiori +- Sergio Corato +- Andrea Gallina +- Alex Comba +- Alessandro Camilli +- Simone Rubino +- Giacomo Grasso +- Lara Baggio +- Gianmarco Conte +- Michele Rusticucci Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/account_vat_period_end_statement/__manifest__.py b/account_vat_period_end_statement/__manifest__.py index 40d32e52064d..7a57740651c5 100644 --- a/account_vat_period_end_statement/__manifest__.py +++ b/account_vat_period_end_statement/__manifest__.py @@ -2,11 +2,13 @@ # Copyright 2012-17 Agile Business Group () # Copyright 2012-15 LinkIt Spa () # Copyright 2015 Associazione Odoo Italia () +# Copyright 2021 Gianmarco Conte +# - Dinamiche Aziendali Srl () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { "name": "ITA - Liquidazione IVA", - "version": "16.0.1.1.0", + "version": "16.0.1.2.2", "category": "Localization/Italy", "summary": "Allow to create the 'VAT Statement'.", "license": "AGPL-3", @@ -32,7 +34,8 @@ ], "assets": { "web.assets_backend": [ - "account_vat_period_end_statement/static/src/css/l10n_it_vat_registries.css", + "account_vat_period_end_statement/static/src/css/" + "account_vat_period_end_statement.css", ], }, "installable": True, diff --git a/account_vat_period_end_statement/i18n/account_vat_period_end_statement.pot b/account_vat_period_end_statement/i18n/account_vat_period_end_statement.pot index 2b69a4dd2295..2e1a69ee344e 100644 --- a/account_vat_period_end_statement/i18n/account_vat_period_end_statement.pot +++ b/account_vat_period_end_statement/i18n/account_vat_period_end_statement.pot @@ -77,6 +77,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/am.po b/account_vat_period_end_statement/i18n/am.po index d52a70dd3e4b..62da855d164b 100644 --- a/account_vat_period_end_statement/i18n/am.po +++ b/account_vat_period_end_statement/i18n/am.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/ar.po b/account_vat_period_end_statement/i18n/ar.po index bc4a49d39d3d..93a4ed27f5f3 100644 --- a/account_vat_period_end_statement/i18n/ar.po +++ b/account_vat_period_end_statement/i18n/ar.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/bg.po b/account_vat_period_end_statement/i18n/bg.po index 2dcf62f9dc26..e4f82cfa3fc8 100644 --- a/account_vat_period_end_statement/i18n/bg.po +++ b/account_vat_period_end_statement/i18n/bg.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/bs.po b/account_vat_period_end_statement/i18n/bs.po index 0a7a1c59df44..f54dcfaa43ab 100644 --- a/account_vat_period_end_statement/i18n/bs.po +++ b/account_vat_period_end_statement/i18n/bs.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/ca.po b/account_vat_period_end_statement/i18n/ca.po index 90a0e77e8610..358ca6e43bdd 100644 --- a/account_vat_period_end_statement/i18n/ca.po +++ b/account_vat_period_end_statement/i18n/ca.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/ca_ES.po b/account_vat_period_end_statement/i18n/ca_ES.po index abb3a36429da..5b914c6a3343 100644 --- a/account_vat_period_end_statement/i18n/ca_ES.po +++ b/account_vat_period_end_statement/i18n/ca_ES.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/cs.po b/account_vat_period_end_statement/i18n/cs.po index bf488fd6f745..6852aec5537e 100644 --- a/account_vat_period_end_statement/i18n/cs.po +++ b/account_vat_period_end_statement/i18n/cs.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/da.po b/account_vat_period_end_statement/i18n/da.po index baa9eb320379..3c744bc7bcd7 100644 --- a/account_vat_period_end_statement/i18n/da.po +++ b/account_vat_period_end_statement/i18n/da.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/de.po b/account_vat_period_end_statement/i18n/de.po index 828838d6f623..a2fa13072399 100644 --- a/account_vat_period_end_statement/i18n/de.po +++ b/account_vat_period_end_statement/i18n/de.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/el_GR.po b/account_vat_period_end_statement/i18n/el_GR.po index ba886be8b954..84fd8d40fc4a 100644 --- a/account_vat_period_end_statement/i18n/el_GR.po +++ b/account_vat_period_end_statement/i18n/el_GR.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/en_AU.po b/account_vat_period_end_statement/i18n/en_AU.po index b641eb6698f5..a054746135b5 100644 --- a/account_vat_period_end_statement/i18n/en_AU.po +++ b/account_vat_period_end_statement/i18n/en_AU.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/en_GB.po b/account_vat_period_end_statement/i18n/en_GB.po index 963fac30e2e7..c48e7726918c 100644 --- a/account_vat_period_end_statement/i18n/en_GB.po +++ b/account_vat_period_end_statement/i18n/en_GB.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/es.po b/account_vat_period_end_statement/i18n/es.po index 196b0a0a7bae..342653e05d5b 100644 --- a/account_vat_period_end_statement/i18n/es.po +++ b/account_vat_period_end_statement/i18n/es.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/es_AR.po b/account_vat_period_end_statement/i18n/es_AR.po index 9d9d1e299828..9b5b43613b1b 100644 --- a/account_vat_period_end_statement/i18n/es_AR.po +++ b/account_vat_period_end_statement/i18n/es_AR.po @@ -85,6 +85,11 @@ msgstr "" msgid "Accounts" msgstr "Cuentas" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/es_CL.po b/account_vat_period_end_statement/i18n/es_CL.po index 179f935d0d01..723b0a2ff4b3 100644 --- a/account_vat_period_end_statement/i18n/es_CL.po +++ b/account_vat_period_end_statement/i18n/es_CL.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/es_CO.po b/account_vat_period_end_statement/i18n/es_CO.po index 56782f77accd..2a4bea016ac0 100644 --- a/account_vat_period_end_statement/i18n/es_CO.po +++ b/account_vat_period_end_statement/i18n/es_CO.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/es_CR.po b/account_vat_period_end_statement/i18n/es_CR.po index 0733736adc4d..39117d78e387 100644 --- a/account_vat_period_end_statement/i18n/es_CR.po +++ b/account_vat_period_end_statement/i18n/es_CR.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/es_DO.po b/account_vat_period_end_statement/i18n/es_DO.po index a191b2a3fa76..38cc72f6612d 100644 --- a/account_vat_period_end_statement/i18n/es_DO.po +++ b/account_vat_period_end_statement/i18n/es_DO.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/es_EC.po b/account_vat_period_end_statement/i18n/es_EC.po index e8d1a5966719..4d45df8119b7 100644 --- a/account_vat_period_end_statement/i18n/es_EC.po +++ b/account_vat_period_end_statement/i18n/es_EC.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/es_ES.po b/account_vat_period_end_statement/i18n/es_ES.po index ac8c7c96f33e..d1bf5e7d54ca 100644 --- a/account_vat_period_end_statement/i18n/es_ES.po +++ b/account_vat_period_end_statement/i18n/es_ES.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/es_MX.po b/account_vat_period_end_statement/i18n/es_MX.po index 92150f64be91..4bf89e19a020 100644 --- a/account_vat_period_end_statement/i18n/es_MX.po +++ b/account_vat_period_end_statement/i18n/es_MX.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/es_PE.po b/account_vat_period_end_statement/i18n/es_PE.po index 8d9af96770a3..99adc8340bad 100644 --- a/account_vat_period_end_statement/i18n/es_PE.po +++ b/account_vat_period_end_statement/i18n/es_PE.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/es_PY.po b/account_vat_period_end_statement/i18n/es_PY.po index 8f8d153121c6..4eb1e899aca3 100644 --- a/account_vat_period_end_statement/i18n/es_PY.po +++ b/account_vat_period_end_statement/i18n/es_PY.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/es_VE.po b/account_vat_period_end_statement/i18n/es_VE.po index 84c817936561..b79ceac5dd1f 100644 --- a/account_vat_period_end_statement/i18n/es_VE.po +++ b/account_vat_period_end_statement/i18n/es_VE.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/et.po b/account_vat_period_end_statement/i18n/et.po index f5e78e26ef5f..c61cb00e9403 100644 --- a/account_vat_period_end_statement/i18n/et.po +++ b/account_vat_period_end_statement/i18n/et.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/eu.po b/account_vat_period_end_statement/i18n/eu.po index 51f79b4c31e0..b11891acd663 100644 --- a/account_vat_period_end_statement/i18n/eu.po +++ b/account_vat_period_end_statement/i18n/eu.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/fa.po b/account_vat_period_end_statement/i18n/fa.po index bb8cca79dfd8..a96d67b9ac01 100644 --- a/account_vat_period_end_statement/i18n/fa.po +++ b/account_vat_period_end_statement/i18n/fa.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/fi.po b/account_vat_period_end_statement/i18n/fi.po index 611343b1c4f3..c1a6d75f9fad 100644 --- a/account_vat_period_end_statement/i18n/fi.po +++ b/account_vat_period_end_statement/i18n/fi.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/fr.po b/account_vat_period_end_statement/i18n/fr.po index c95699e9b52a..a3c322260f39 100644 --- a/account_vat_period_end_statement/i18n/fr.po +++ b/account_vat_period_end_statement/i18n/fr.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/fr_CA.po b/account_vat_period_end_statement/i18n/fr_CA.po index debd5d023c25..302fdabbe510 100644 --- a/account_vat_period_end_statement/i18n/fr_CA.po +++ b/account_vat_period_end_statement/i18n/fr_CA.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/fr_CH.po b/account_vat_period_end_statement/i18n/fr_CH.po index 8efeaf30a87f..70be20ff095d 100644 --- a/account_vat_period_end_statement/i18n/fr_CH.po +++ b/account_vat_period_end_statement/i18n/fr_CH.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/fr_FR.po b/account_vat_period_end_statement/i18n/fr_FR.po index 6f33a5d88ad9..07b7e2b942e1 100644 --- a/account_vat_period_end_statement/i18n/fr_FR.po +++ b/account_vat_period_end_statement/i18n/fr_FR.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/gl.po b/account_vat_period_end_statement/i18n/gl.po index 397872849f7f..6be3060f97ed 100644 --- a/account_vat_period_end_statement/i18n/gl.po +++ b/account_vat_period_end_statement/i18n/gl.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/gl_ES.po b/account_vat_period_end_statement/i18n/gl_ES.po index 2f77aba90ecf..cf7f60666bb1 100644 --- a/account_vat_period_end_statement/i18n/gl_ES.po +++ b/account_vat_period_end_statement/i18n/gl_ES.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/he.po b/account_vat_period_end_statement/i18n/he.po index 31967195752f..c44c4362e4fe 100644 --- a/account_vat_period_end_statement/i18n/he.po +++ b/account_vat_period_end_statement/i18n/he.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/hi.po b/account_vat_period_end_statement/i18n/hi.po index 0d3064556c1b..10c03e286342 100644 --- a/account_vat_period_end_statement/i18n/hi.po +++ b/account_vat_period_end_statement/i18n/hi.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/hr.po b/account_vat_period_end_statement/i18n/hr.po index 19da4aeb3c80..5d3931d13754 100644 --- a/account_vat_period_end_statement/i18n/hr.po +++ b/account_vat_period_end_statement/i18n/hr.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/hr_HR.po b/account_vat_period_end_statement/i18n/hr_HR.po index df89d0f63c93..1fdf4edbb481 100644 --- a/account_vat_period_end_statement/i18n/hr_HR.po +++ b/account_vat_period_end_statement/i18n/hr_HR.po @@ -84,6 +84,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/hu.po b/account_vat_period_end_statement/i18n/hu.po index 7f773c131b08..eed1cdd8bd14 100644 --- a/account_vat_period_end_statement/i18n/hu.po +++ b/account_vat_period_end_statement/i18n/hu.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/id.po b/account_vat_period_end_statement/i18n/id.po index 405cb43b178d..c1e9fb9ff176 100644 --- a/account_vat_period_end_statement/i18n/id.po +++ b/account_vat_period_end_statement/i18n/id.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/it.po b/account_vat_period_end_statement/i18n/it.po index 57e8240cdb5c..2cdadcb1bcce 100644 --- a/account_vat_period_end_statement/i18n/it.po +++ b/account_vat_period_end_statement/i18n/it.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Odoo Server 12.0+e\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-04-09 12:56+0000\n" -"PO-Revision-Date: 2023-04-21 14:34+0000\n" +"PO-Revision-Date: 2023-12-24 17:36+0000\n" "Last-Translator: mymage \n" "Language-Team: \n" "Language: it\n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.14.1\n" +"X-Generator: Weblate 4.17\n" #. module: account_vat_period_end_statement #: model:ir.model.fields.selection,name:account_vat_period_end_statement.selection__account_vat_period_end_statement__advance_computation_method__4 @@ -81,6 +81,11 @@ msgstr "Conto utilizzato per la liquidazione IVA" msgid "Accounts" msgstr "Conti" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "Filtro conto" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/ja.po b/account_vat_period_end_statement/i18n/ja.po index 4bdc007dfa79..2b716a25867d 100644 --- a/account_vat_period_end_statement/i18n/ja.po +++ b/account_vat_period_end_statement/i18n/ja.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/ko.po b/account_vat_period_end_statement/i18n/ko.po index 721b21a211ac..8a3cdfd7e5a3 100644 --- a/account_vat_period_end_statement/i18n/ko.po +++ b/account_vat_period_end_statement/i18n/ko.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/lo.po b/account_vat_period_end_statement/i18n/lo.po index c5da6c935f24..eade2dc57212 100644 --- a/account_vat_period_end_statement/i18n/lo.po +++ b/account_vat_period_end_statement/i18n/lo.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/lt.po b/account_vat_period_end_statement/i18n/lt.po index 8b7a09e47554..511a17220f0f 100644 --- a/account_vat_period_end_statement/i18n/lt.po +++ b/account_vat_period_end_statement/i18n/lt.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/lt_LT.po b/account_vat_period_end_statement/i18n/lt_LT.po index a2dc87c83462..42c91fc44bd6 100644 --- a/account_vat_period_end_statement/i18n/lt_LT.po +++ b/account_vat_period_end_statement/i18n/lt_LT.po @@ -84,6 +84,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/lv.po b/account_vat_period_end_statement/i18n/lv.po index 3de7eeb08984..f12a686106b6 100644 --- a/account_vat_period_end_statement/i18n/lv.po +++ b/account_vat_period_end_statement/i18n/lv.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/mk.po b/account_vat_period_end_statement/i18n/mk.po index 3ca4075bcdf6..1aee9dfd9a68 100644 --- a/account_vat_period_end_statement/i18n/mk.po +++ b/account_vat_period_end_statement/i18n/mk.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/mn.po b/account_vat_period_end_statement/i18n/mn.po index a25c55c5fbb8..cd8e92c66247 100644 --- a/account_vat_period_end_statement/i18n/mn.po +++ b/account_vat_period_end_statement/i18n/mn.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/nb.po b/account_vat_period_end_statement/i18n/nb.po index 95b075bf28d1..6c503fa43c5d 100644 --- a/account_vat_period_end_statement/i18n/nb.po +++ b/account_vat_period_end_statement/i18n/nb.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/nb_NO.po b/account_vat_period_end_statement/i18n/nb_NO.po index fbab3898685b..d3f6f382724e 100644 --- a/account_vat_period_end_statement/i18n/nb_NO.po +++ b/account_vat_period_end_statement/i18n/nb_NO.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/nl.po b/account_vat_period_end_statement/i18n/nl.po index 5d28a8d8cb7b..3f369e8677d2 100644 --- a/account_vat_period_end_statement/i18n/nl.po +++ b/account_vat_period_end_statement/i18n/nl.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/nl_BE.po b/account_vat_period_end_statement/i18n/nl_BE.po index cdc43978fc09..a479a1c72f5a 100644 --- a/account_vat_period_end_statement/i18n/nl_BE.po +++ b/account_vat_period_end_statement/i18n/nl_BE.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/pl.po b/account_vat_period_end_statement/i18n/pl.po index 5bc53285fa7f..b5391b6f1377 100644 --- a/account_vat_period_end_statement/i18n/pl.po +++ b/account_vat_period_end_statement/i18n/pl.po @@ -84,6 +84,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/pt.po b/account_vat_period_end_statement/i18n/pt.po index b9c24be50daf..4dd037092245 100644 --- a/account_vat_period_end_statement/i18n/pt.po +++ b/account_vat_period_end_statement/i18n/pt.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/pt_BR.po b/account_vat_period_end_statement/i18n/pt_BR.po index 99ae456fe4f2..2e9086f540c5 100644 --- a/account_vat_period_end_statement/i18n/pt_BR.po +++ b/account_vat_period_end_statement/i18n/pt_BR.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/pt_PT.po b/account_vat_period_end_statement/i18n/pt_PT.po index 6948b445ee14..e189e7320c58 100644 --- a/account_vat_period_end_statement/i18n/pt_PT.po +++ b/account_vat_period_end_statement/i18n/pt_PT.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/ro.po b/account_vat_period_end_statement/i18n/ro.po index b5809e6b588b..b7e0bef31a9a 100644 --- a/account_vat_period_end_statement/i18n/ro.po +++ b/account_vat_period_end_statement/i18n/ro.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/ru.po b/account_vat_period_end_statement/i18n/ru.po index d3035da73a90..b3d23490bbe7 100644 --- a/account_vat_period_end_statement/i18n/ru.po +++ b/account_vat_period_end_statement/i18n/ru.po @@ -84,6 +84,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/sk.po b/account_vat_period_end_statement/i18n/sk.po index 71f5c677967e..a5a9c716b900 100644 --- a/account_vat_period_end_statement/i18n/sk.po +++ b/account_vat_period_end_statement/i18n/sk.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/sl.po b/account_vat_period_end_statement/i18n/sl.po index d3e20d6be9e6..f9d8d8b505db 100644 --- a/account_vat_period_end_statement/i18n/sl.po +++ b/account_vat_period_end_statement/i18n/sl.po @@ -84,6 +84,11 @@ msgstr "Konto za DDV izjavo" msgid "Accounts" msgstr "Konti" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/sr.po b/account_vat_period_end_statement/i18n/sr.po index f92db973701f..f4f23b0130e4 100644 --- a/account_vat_period_end_statement/i18n/sr.po +++ b/account_vat_period_end_statement/i18n/sr.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/sr@latin.po b/account_vat_period_end_statement/i18n/sr@latin.po index d19d096c26a6..1d4834814be9 100644 --- a/account_vat_period_end_statement/i18n/sr@latin.po +++ b/account_vat_period_end_statement/i18n/sr@latin.po @@ -84,6 +84,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/sv.po b/account_vat_period_end_statement/i18n/sv.po index bcf0c17f9670..cca1f1e74cf2 100644 --- a/account_vat_period_end_statement/i18n/sv.po +++ b/account_vat_period_end_statement/i18n/sv.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/th.po b/account_vat_period_end_statement/i18n/th.po index bf40a4955739..b1b0a832b341 100644 --- a/account_vat_period_end_statement/i18n/th.po +++ b/account_vat_period_end_statement/i18n/th.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/tr.po b/account_vat_period_end_statement/i18n/tr.po index b1640ad3c835..51b90240070e 100644 --- a/account_vat_period_end_statement/i18n/tr.po +++ b/account_vat_period_end_statement/i18n/tr.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/uk.po b/account_vat_period_end_statement/i18n/uk.po index 39a5b7762a1d..6da959c6c22b 100644 --- a/account_vat_period_end_statement/i18n/uk.po +++ b/account_vat_period_end_statement/i18n/uk.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/vi.po b/account_vat_period_end_statement/i18n/vi.po index 38b98a285391..e1531c861487 100644 --- a/account_vat_period_end_statement/i18n/vi.po +++ b/account_vat_period_end_statement/i18n/vi.po @@ -82,6 +82,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/vi_VN.po b/account_vat_period_end_statement/i18n/vi_VN.po index 9190c278ee9b..d83f11ca7b74 100644 --- a/account_vat_period_end_statement/i18n/vi_VN.po +++ b/account_vat_period_end_statement/i18n/vi_VN.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/zh_CN.po b/account_vat_period_end_statement/i18n/zh_CN.po index 6cc4bfd47252..e9d3d2c6fab0 100644 --- a/account_vat_period_end_statement/i18n/zh_CN.po +++ b/account_vat_period_end_statement/i18n/zh_CN.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/i18n/zh_TW.po b/account_vat_period_end_statement/i18n/zh_TW.po index 435146b3d958..bef1f290afb3 100644 --- a/account_vat_period_end_statement/i18n/zh_TW.po +++ b/account_vat_period_end_statement/i18n/zh_TW.po @@ -83,6 +83,11 @@ msgstr "" msgid "Accounts" msgstr "" +#. module: account_vat_period_end_statement +#: model:ir.model.fields,field_description:account_vat_period_end_statement.field_account_vat_period_end_statement__account_ids +msgid "Accounts filter" +msgstr "" + #. module: account_vat_period_end_statement #: model_terms:ir.ui.view,arch_db:account_vat_period_end_statement.add_period msgid "Add" diff --git a/account_vat_period_end_statement/models/account.py b/account_vat_period_end_statement/models/account.py index 94b2ea8f4aaf..0479df57b9ad 100644 --- a/account_vat_period_end_statement/models/account.py +++ b/account_vat_period_end_statement/models/account.py @@ -1,7 +1,8 @@ # Copyright 2011-2012 Domsense s.r.l. (). # Copyright 2012-15 Agile Business Group sagl () # Copyright 2015 Associazione Odoo Italia () -# Copyright 2023 Gianmarco Conte - Dinamiche Aziendali Srl () +# Copyright 2021 Gianmarco Conte - Dinamiche Aziendali Srl () +# Copyright 2022 Simone Rubino - TAKOBI # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). import math @@ -356,7 +357,7 @@ def unlink(self): for statement in self: if statement.state == "confirmed" or statement.state == "paid": raise UserError(_("You cannot delete a confirmed or paid statement")) - res = super(AccountVatPeriodEndStatement, self).unlink() + res = super().unlink() return res def set_fiscal_year(self): @@ -368,7 +369,7 @@ def set_fiscal_year(self): def _write(self, vals): pre_not_reconciled = self.filtered(lambda statement: not statement.reconciled) pre_reconciled = self - pre_not_reconciled - res = super(AccountVatPeriodEndStatement, self)._write(vals) + res = super()._write(vals) reconciled = self.filtered(lambda statement: statement.reconciled) not_reconciled = self - reconciled (reconciled & pre_reconciled).filtered( @@ -618,16 +619,27 @@ def _add_debit_vat_data(self, lines_to_create, move, statement, statement_date): debit_vat_data["credit"] = math.fabs(debit_line.amount) lines_to_create.append((0, 0, debit_vat_data)) + def _get_previous_statements(self): + self.ensure_one() + prev_statements = self.search( + [ + ("date", "<", self.date), + ("annual", "=", False), + ], + order="date desc", + ) + prev_statements_same_accounts = prev_statements.filtered( + lambda s: s.account_ids == self.account_ids + ) + return prev_statements_same_accounts + def compute_amounts(self): decimal_precision_obj = self.env["decimal.precision"] debit_line_model = self.env["statement.debit.account.line"] credit_line_model = self.env["statement.credit.account.line"] for statement in self: statement.previous_debit_vat_amount = 0.0 - prev_statements = self.search( - [("date", "<", statement.date), ("annual", "=", False)], - order="date desc", - ) + prev_statements = statement._get_previous_statements() if prev_statements and not statement.annual: prev_statement = prev_statements[0] if ( @@ -744,28 +756,27 @@ def _get_credit_debit_lines(self, statement): ("type_tax_use", "in", ["sale", "purchase"]), ] ) - if statement.account_ids: - taxes = taxes.filtered( - lambda tax: tax.vat_statement_account_id in statement.account_ids - ) for tax in taxes: - # se ho una tassa padre con figli cee_type, condidero le figlie - if any( - tax_ch - for tax_ch in tax.children_tax_ids - if tax_ch.cee_type in ("sale", "purchase") + if ( + tax.vat_statement_account_id.id in statement.account_ids.ids + or not statement.account_ids ): - - for tax_ch in tax.children_tax_ids: - if tax_ch.cee_type == "sale": - self._set_debit_lines(tax_ch, debit_line_ids, statement) - elif tax_ch.cee_type == "purchase": - self._set_credit_lines(tax_ch, credit_line_ids, statement) - - elif tax.type_tax_use == "sale": - self._set_debit_lines(tax, debit_line_ids, statement) - elif tax.type_tax_use == "purchase": - self._set_credit_lines(tax, credit_line_ids, statement) + # se ho una tassa padre con figli cee_type, condidero le figlie + if any( + tax_ch + for tax_ch in tax.children_tax_ids + if tax_ch.cee_type in ("sale", "purchase") + ): + for tax_ch in tax.children_tax_ids: + if tax_ch.cee_type == "sale": + self._set_debit_lines(tax_ch, debit_line_ids, statement) + elif tax_ch.cee_type == "purchase": + self._set_credit_lines(tax_ch, credit_line_ids, statement) + + elif tax.type_tax_use == "sale": + self._set_debit_lines(tax, debit_line_ids, statement) + elif tax.type_tax_use == "purchase": + self._set_credit_lines(tax, credit_line_ids, statement) return credit_line_ids, debit_line_ids diff --git a/account_vat_period_end_statement/pyproject.toml b/account_vat_period_end_statement/pyproject.toml new file mode 100644 index 000000000000..4231d0cccb3d --- /dev/null +++ b/account_vat_period_end_statement/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/account_vat_period_end_statement/readme/CONFIGURE.md b/account_vat_period_end_statement/readme/CONFIGURE.md new file mode 100644 index 000000000000..5c6a44a8bc9a --- /dev/null +++ b/account_vat_period_end_statement/readme/CONFIGURE.md @@ -0,0 +1,46 @@ +**Italiano** + +> Per generare i periodi della dichiarazione IVA, aprire Fatturazione \> Configurazione +> \> Contabilità \> Intervalli date \> Generazione intervalli data (visibile solo in +> modalità debug): +> +> - prefisso nome intervallo: prefisso identificativo per i periodi da generare +> (tipicamente l'anno) +> - durata: 1 mese +> - numero di intervalli da generare: 12 +> - tipo: creare un tipo o utilizzarne uno esistente, non è richiesta una configurazione +> particolare +> - data iniziale: primo giorno del primo periodo che sarà generato (tipicamente il +> primo giorno dell'anno i.e. 01/01/2018) +> +> Per caricare l'importo corretto, un'imposta deve essere associata al conto utilizzato +> nella liquidazione: +> +> 1. aprire l'imposta da Fatturazione \> Configurazione \> Contabilità \> Imposte, +> 2. nella scheda 'Opzioni avanzate' selezionare il conto corretto (ad esempio IVA +> debito) per il campo 'Conto utilizzato per la liquidazione IVA'. +> +> Per calcolare gli interessi, è possibile aggiungere le informazioni da utilizzare +> (conto e percentuale) nei dati aziendali, nella scheda 'Liquidazione IVA'. + +**English** + +> In order to generate VAT statement's periods, open Accounting \> Configuration \> +> Accounting \> Date ranges \> Generate Date Ranges (visible only in debug mode): +> +> - range name prefix: prefix identifying the periods to be generated (usually the year) +> - duration: 1 month +> - number of ranges to generate: 12 +> - type: create a type or use an existing one, no specific configuration is required +> - date start: first day of the first period to be generated (usually the first day of +> the year e.g. 01/01/2018) +> +> In order to load the correct amount from tax, the tax has to be associated to the +> account involved in the statement: +> +> 1. open a tax in Accounting \> Configuration \> Accounting \> Taxes, +> 2. in the tab 'Advanced Options' select the correct account (for instance the account +> debit VAT) for the field 'Account used for VAT statement'. +> +> If you need to calculate interest, you can add default information in your company +> data (percentage and account), in the 'VAT statement' tab. diff --git a/account_vat_period_end_statement/readme/CONFIGURE.rst b/account_vat_period_end_statement/readme/CONFIGURE.rst deleted file mode 100644 index 32d271f464ef..000000000000 --- a/account_vat_period_end_statement/readme/CONFIGURE.rst +++ /dev/null @@ -1,40 +0,0 @@ -**Italiano** - - Per generare i periodi della dichiarazione IVA, - aprire Fatturazione > Configurazione > Contabilità > Intervalli date > Generazione intervalli data (visibile solo in modalità debug): - - * prefisso nome intervallo: prefisso identificativo per i periodi da generare (tipicamente l'anno) - * durata: 1 mese - * numero di intervalli da generare: 12 - * tipo: creare un tipo o utilizzarne uno esistente, non è richiesta una configurazione particolare - * data iniziale: primo giorno del primo periodo che sarà generato (tipicamente il primo giorno dell'anno i.e. 01/01/2018) - - Per caricare l'importo corretto, un'imposta deve essere associata al conto utilizzato nella liquidazione: - - #. aprire l'imposta da Fatturazione > Configurazione > Contabilità > Imposte, - #. nella scheda 'Opzioni avanzate' selezionare il conto corretto (ad esempio IVA debito) - per il campo 'Conto utilizzato per la liquidazione IVA'. Se si è soggetti a liquidazione OSS indicare un conto dedicato (ad esempio IVA debito OSS Francia) - - Per calcolare gli interessi, è possibile aggiungere le informazioni da utilizzare (conto e percentuale) - nei dati aziendali, nella scheda 'Liquidazione IVA'. - -**English** - - In order to generate VAT statement's periods, - open Accounting > Configuration > Accounting > Date ranges > Generate Date Ranges (visible only in debug mode): - - * range name prefix: prefix identifying the periods to be generated (usually the year) - * duration: 1 month - * number of ranges to generate: 12 - * type: create a type or use an existing one, no specific configuration is required - * date start: first day of the first period to be generated (usually the first day of the year e.g. 01/01/2018) - - In order to load the correct amount from tax, the tax has to be - associated to the account involved in the statement: - - #. open a tax in Accounting > Configuration > Accounting > Taxes, - #. in the tab 'Advanced Options' select the correct account (for instance the account debit VAT) - for the field 'Account used for VAT statement'. If you are subject to OSS settlement indicate a dedicated account (for example OSS debit VAT France) - - If you need to calculate interest, you can add default information in your - company data (percentage and account), in the 'VAT statement' tab. diff --git a/account_vat_period_end_statement/readme/CONTRIBUTORS.md b/account_vat_period_end_statement/readme/CONTRIBUTORS.md new file mode 100644 index 000000000000..b3f05975aa3e --- /dev/null +++ b/account_vat_period_end_statement/readme/CONTRIBUTORS.md @@ -0,0 +1,12 @@ +- Lorenzo Battistini \<\> +- Elena Carlesso +- Marco Marchiori \<\> +- Sergio Corato \<\> +- Andrea Gallina \<\> +- Alex Comba \<\> +- Alessandro Camilli \<\> +- Simone Rubino \<\> +- Giacomo Grasso \<\> +- Lara Baggio \<\> +- Gianmarco Conte \<\> +- Michele Rusticucci \<\> diff --git a/account_vat_period_end_statement/readme/CONTRIBUTORS.rst b/account_vat_period_end_statement/readme/CONTRIBUTORS.rst deleted file mode 100644 index 9830c8863819..000000000000 --- a/account_vat_period_end_statement/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,12 +0,0 @@ -* Lorenzo Battistini -* Elena Carlesso -* Marco Marchiori -* Sergio Corato -* Andrea Gallina -* Alex Comba -* Alessandro Camilli -* Simone Rubino -* Giacomo Grasso -* Lara Baggio -* Gianmarco Conte -* Michele Rusticucci diff --git a/account_vat_period_end_statement/readme/DESCRIPTION.md b/account_vat_period_end_statement/readme/DESCRIPTION.md new file mode 100644 index 000000000000..d00139c52e7e --- /dev/null +++ b/account_vat_period_end_statement/readme/DESCRIPTION.md @@ -0,0 +1,49 @@ +**Italiano** + +> Per fare la liquidazione IVA, aprire Fatturazione \> Contabilità \> Liquidazioni IVA, +> il menù è visibile solo quando è abilitato il gruppo 'Mostrare funzionalità contabili +> complete'. Selezionare un registro che conterrà le registrazioni contabili della +> liquidazione. Il campo 'Conto IVA erario' contiene il conto dove verrà effettuata la +> registrazione della liquidazione IVA. +> +> L'oggetto 'Liquidazione IVA' permette di specificare ogni importo e il conto +> utilizzato dalla liquidazione. Di norma, gli importi di debito e credito delle imposte +> vengono caricati automaticamente dai periodi selezionati (vedere Configurazione per +> generare correttamente i periodi). I debiti e crediti precedenti vengono caricati +> dalle liquidazioni IVA precedenti, in base allo stato del loro pagamento. +> +> Per creare la registrazione contabile, fare clic sul pulsante 'Crea movimento', dentro +> la scheda 'Conti'. Se i termini di pagamento sono impostati viene scritta anche la +> scadenza (o le scadenze). +> +> La scheda 'Erario' contiene informazioni sui pagamenti, qui si possono visualizzare i +> risultati della liquidazione ('Importo IVA erario') e l'importo residuo da pagare +> ('Importo a saldo'). La liquidazione può essere pagata come qualunque altro debito, +> con la riconciliazione delle registrazioni contabili. +> +> È inoltre possibile stampare la liquidazione IVA facendo clic su Stampa \> Stampa +> liquidazione IVA. + +**English** + +> In order to create a 'VAT Statement', open Accounting \> Adviser \> VAT Statements, +> this menu is only visible when the group 'Show Full Accounting Features' is enabled. +> Select a Journal that will contain the journal entries of the statement. The field +> 'Tax authority VAT' account contains the account where the statement balance will be +> registered. +> +> The 'VAT statement' object allows to specify every amount and relative account used by +> the statement. By default, amounts of debit and credit taxes are automatically loaded +> from taxes of the selected periods (see Configuration to correctly generate the +> periods). Previous debit or credit is loaded from previous VAT statement, according to +> its payments status. +> +> In order to generate the journal entry, click on 'Create move' button, inside the +> 'Accounts' tab. If you select a payment term, the due date(s) will be set. +> +> The 'tax authority' tab contains information about payment(s), here you can see +> statement's result ('authority VAT amount') and residual amount to pay ('Balance'). +> The statement can be paid like every other debit, by journal item reconciliation. +> +> It is also possible to print the 'VAT statement' clicking on print \> Print VAT period +> end statement. diff --git a/account_vat_period_end_statement/readme/DESCRIPTION.rst b/account_vat_period_end_statement/readme/DESCRIPTION.rst deleted file mode 100644 index 5e2630557a31..000000000000 --- a/account_vat_period_end_statement/readme/DESCRIPTION.rst +++ /dev/null @@ -1,56 +0,0 @@ -**Italiano** - - Per fare la liquidazione IVA, aprire Fatturazione > Contabilità > Liquidazioni IVA, il menù è visibile solo quando è abilitato il gruppo 'Mostrare funzionalità contabili complete'. - Selezionare un registro che conterrà le registrazioni contabili della liquidazione. - Il campo 'Conto IVA erario' contiene il conto dove verrà effettuata la registrazione della liquidazione IVA. - - L'oggetto 'Liquidazione IVA' permette di specificare ogni importo e il conto utilizzato dalla liquidazione. - Di norma, gli importi di debito e credito delle imposte vengono caricati automaticamente dai periodi selezionati - (vedere Configurazione per generare correttamente i periodi). - I debiti e crediti precedenti vengono caricati dalle liquidazioni IVA precedenti, in base allo stato del loro pagamento. - - A seguito dell’introduzione della normativa OSS, per chi fa vendite online su diversi paesi, deve necessariamente escludere dalla liquidazione iva ciò che farà parte della liquidazione OSS. - E’ stato introdotto un nuovo campo per filtrare le imposte da elaborare, quindi va indicato il conto configurato nelle imposte “Conto utilizzato per la liquidazione IVA”. - Quindi selezionare il conto IVA debito per elaborare liquidazione iva su tutte le imposte che hanno in configurazione il conto IVA debito. Per la liquidazione OSS invece selezionare conto dedicato ad esempio IVA debito OSS Francia. - E’ necessario creare un periodo di dichiarazione IVA dedicato all’OSS . - Per caricare invece tutte le imposte che hanno un conto per la liquidazione IVA, è sufficiente lasciare vuoto il filtro per conti. - - Per creare la registrazione contabile, fare clic sul pulsante 'Crea movimento', dentro la scheda 'Conti'. - Se i termini di pagamento sono impostati viene scritta anche la scadenza (o le scadenze). - - La scheda 'Erario' contiene informazioni sui pagamenti, - qui si possono visualizzare i risultati della liquidazione ('Importo IVA erario') - e l'importo residuo da pagare ('Importo a saldo'). - La liquidazione può essere pagata come qualunque altro debito, con la riconciliazione delle registrazioni contabili. - - È inoltre possibile stampare la liquidazione IVA facendo clic su Stampa > Stampa liquidazione IVA. - -**English** - - In order to create a 'VAT Statement', open Accounting > Adviser > VAT Statements, this menu is only visible when the group 'Show Full Accounting Features' is enabled. - Select a Journal that will contain the journal entries of the statement. - The field 'Tax authority VAT' account contains the account where the statement balance will be registered. - - The 'VAT statement' object allows to specify every amount and relative account - used by the statement. - By default, amounts of debit and credit taxes are automatically loaded - from taxes of the selected periods (see Configuration to correctly generate the periods). - Previous debit or credit is loaded from previous VAT statement, according - to its payments status. - - Following the introduction of the OSS legislation, for those who make online sales in different countries, it must necessarily exclude from the VAT settlement what will be part of the OSS settlement. - A new field has been introduced to filter the taxes to be processed, so the account configured in the taxes "Account used for VAT settlement" must be indicated. - Then select the VAT debit account to process VAT settlement on all taxes that have the VAT debit account in setup. - For OSS settlement, on the other hand, select a dedicated account, for example, OSS debit VAT France. It is necessary to create a VAT return period dedicated to the OSS. - To load all taxes that have a VAT settlement account instead, just leave the filter by accounts blank. - - In order to generate the journal entry, click on 'Create move' button, inside the 'Accounts' tab. - If you select a payment term, the due date(s) will be set. - - The 'tax authority' tab contains information about payment(s), - here you can see statement's result ('authority VAT amount') and residual - amount to pay ('Balance'). - The statement can be paid like every other debit, by journal item - reconciliation. - - It is also possible to print the 'VAT statement' clicking on print > Print VAT period end statement. diff --git a/account_vat_period_end_statement/static/description/index.html b/account_vat_period_end_statement/static/description/index.html index 4174e0febccb..4485c1007b35 100644 --- a/account_vat_period_end_statement/static/description/index.html +++ b/account_vat_period_end_statement/static/description/index.html @@ -1,4 +1,3 @@ - @@ -367,55 +366,57 @@

ITA - Liquidazione IVA

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:4e1782830a749b907fe436e7051c24a052fff7e828b57888d30753b1a016fcba +!! source digest: sha256:425107ea1eecce0eaab7a10d43dcd7e922879455f3c3c1f147f800fb6581b387 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

Italiano

-

Per fare la liquidazione IVA, aprire Fatturazione > Contabilità > Liquidazioni IVA, il menù è visibile solo quando è abilitato il gruppo ‘Mostrare funzionalità contabili complete’. -Selezionare un registro che conterrà le registrazioni contabili della liquidazione. -Il campo ‘Conto IVA erario’ contiene il conto dove verrà effettuata la registrazione della liquidazione IVA.

-

L’oggetto ‘Liquidazione IVA’ permette di specificare ogni importo e il conto utilizzato dalla liquidazione. -Di norma, gli importi di debito e credito delle imposte vengono caricati automaticamente dai periodi selezionati -(vedere Configurazione per generare correttamente i periodi). -I debiti e crediti precedenti vengono caricati dalle liquidazioni IVA precedenti, in base allo stato del loro pagamento.

-

A seguito dell’introduzione della normativa OSS, per chi fa vendite online su diversi paesi, deve necessariamente escludere dalla liquidazione iva ciò che farà parte della liquidazione OSS. -E’ stato introdotto un nuovo campo per filtrare le imposte da elaborare, quindi va indicato il conto configurato nelle imposte “Conto utilizzato per la liquidazione IVA”. -Quindi selezionare il conto IVA debito per elaborare liquidazione iva su tutte le imposte che hanno in configurazione il conto IVA debito. Per la liquidazione OSS invece selezionare conto dedicato ad esempio IVA debito OSS Francia. -E’ necessario creare un periodo di dichiarazione IVA dedicato all’OSS . -Per caricare invece tutte le imposte che hanno un conto per la liquidazione IVA, è sufficiente lasciare vuoto il filtro per conti.

-

Per creare la registrazione contabile, fare clic sul pulsante ‘Crea movimento’, dentro la scheda ‘Conti’. -Se i termini di pagamento sono impostati viene scritta anche la scadenza (o le scadenze).

-

La scheda ‘Erario’ contiene informazioni sui pagamenti, -qui si possono visualizzare i risultati della liquidazione (‘Importo IVA erario’) -e l’importo residuo da pagare (‘Importo a saldo’). -La liquidazione può essere pagata come qualunque altro debito, con la riconciliazione delle registrazioni contabili.

-

È inoltre possibile stampare la liquidazione IVA facendo clic su Stampa > Stampa liquidazione IVA.

+

Per fare la liquidazione IVA, aprire Fatturazione > Contabilità > +Liquidazioni IVA, il menù è visibile solo quando è abilitato il +gruppo ‘Mostrare funzionalità contabili complete’. Selezionare un +registro che conterrà le registrazioni contabili della liquidazione. +Il campo ‘Conto IVA erario’ contiene il conto dove verrà effettuata +la registrazione della liquidazione IVA.

+

L’oggetto ‘Liquidazione IVA’ permette di specificare ogni importo e +il conto utilizzato dalla liquidazione. Di norma, gli importi di +debito e credito delle imposte vengono caricati automaticamente dai +periodi selezionati (vedere Configurazione per generare correttamente +i periodi). I debiti e crediti precedenti vengono caricati dalle +liquidazioni IVA precedenti, in base allo stato del loro pagamento.

+

Per creare la registrazione contabile, fare clic sul pulsante ‘Crea +movimento’, dentro la scheda ‘Conti’. Se i termini di pagamento sono +impostati viene scritta anche la scadenza (o le scadenze).

+

La scheda ‘Erario’ contiene informazioni sui pagamenti, qui si +possono visualizzare i risultati della liquidazione (‘Importo IVA +erario’) e l’importo residuo da pagare (‘Importo a saldo’). La +liquidazione può essere pagata come qualunque altro debito, con la +riconciliazione delle registrazioni contabili.

+

È inoltre possibile stampare la liquidazione IVA facendo clic su +Stampa > Stampa liquidazione IVA.

English

-

In order to create a ‘VAT Statement’, open Accounting > Adviser > VAT Statements, this menu is only visible when the group ‘Show Full Accounting Features’ is enabled. -Select a Journal that will contain the journal entries of the statement. -The field ‘Tax authority VAT’ account contains the account where the statement balance will be registered.

-

The ‘VAT statement’ object allows to specify every amount and relative account -used by the statement. -By default, amounts of debit and credit taxes are automatically loaded -from taxes of the selected periods (see Configuration to correctly generate the periods). -Previous debit or credit is loaded from previous VAT statement, according -to its payments status.

-

Following the introduction of the OSS legislation, for those who make online sales in different countries, it must necessarily exclude from the VAT settlement what will be part of the OSS settlement. -A new field has been introduced to filter the taxes to be processed, so the account configured in the taxes “Account used for VAT settlement” must be indicated. -Then select the VAT debit account to process VAT settlement on all taxes that have the VAT debit account in setup. -For OSS settlement, on the other hand, select a dedicated account, for example, OSS debit VAT France. It is necessary to create a VAT return period dedicated to the OSS. -To load all taxes that have a VAT settlement account instead, just leave the filter by accounts blank.

-

In order to generate the journal entry, click on ‘Create move’ button, inside the ‘Accounts’ tab. -If you select a payment term, the due date(s) will be set.

-

The ‘tax authority’ tab contains information about payment(s), -here you can see statement’s result (‘authority VAT amount’) and residual -amount to pay (‘Balance’). -The statement can be paid like every other debit, by journal item -reconciliation.

-

It is also possible to print the ‘VAT statement’ clicking on print > Print VAT period end statement.

+

In order to create a ‘VAT Statement’, open Accounting > Adviser > VAT +Statements, this menu is only visible when the group ‘Show Full +Accounting Features’ is enabled. Select a Journal that will contain +the journal entries of the statement. The field ‘Tax authority VAT’ +account contains the account where the statement balance will be +registered.

+

The ‘VAT statement’ object allows to specify every amount and +relative account used by the statement. By default, amounts of debit +and credit taxes are automatically loaded from taxes of the selected +periods (see Configuration to correctly generate the periods). +Previous debit or credit is loaded from previous VAT statement, +according to its payments status.

+

In order to generate the journal entry, click on ‘Create move’ +button, inside the ‘Accounts’ tab. If you select a payment term, the +due date(s) will be set.

+

The ‘tax authority’ tab contains information about payment(s), here +you can see statement’s result (‘authority VAT amount’) and residual +amount to pay (‘Balance’). The statement can be paid like every other +debit, by journal item reconciliation.

+

It is also possible to print the ‘VAT statement’ clicking on print > +Print VAT period end statement.

Table of contents

@@ -434,44 +435,58 @@

ITA - Liquidazione IVA

Configuration

Italiano

-

Per generare i periodi della dichiarazione IVA, -aprire Fatturazione > Configurazione > Contabilità > Intervalli date > Generazione intervalli data (visibile solo in modalità debug):

+

Per generare i periodi della dichiarazione IVA, aprire Fatturazione > +Configurazione > Contabilità > Intervalli date > Generazione +intervalli data (visibile solo in modalità debug):

    -
  • prefisso nome intervallo: prefisso identificativo per i periodi da generare (tipicamente l’anno)
  • +
  • prefisso nome intervallo: prefisso identificativo per i periodi da +generare (tipicamente l’anno)
  • durata: 1 mese
  • numero di intervalli da generare: 12
  • -
  • tipo: creare un tipo o utilizzarne uno esistente, non è richiesta una configurazione particolare
  • -
  • data iniziale: primo giorno del primo periodo che sarà generato (tipicamente il primo giorno dell’anno i.e. 01/01/2018)
  • +
  • tipo: creare un tipo o utilizzarne uno esistente, non è richiesta +una configurazione particolare
  • +
  • data iniziale: primo giorno del primo periodo che sarà generato +(tipicamente il primo giorno dell’anno i.e. 01/01/2018)
-

Per caricare l’importo corretto, un’imposta deve essere associata al conto utilizzato nella liquidazione:

+

Per caricare l’importo corretto, un’imposta deve essere associata al +conto utilizzato nella liquidazione:

    -
  1. aprire l’imposta da Fatturazione > Configurazione > Contabilità > Imposte,
  2. -
  3. nella scheda ‘Opzioni avanzate’ selezionare il conto corretto (ad esempio IVA debito) -per il campo ‘Conto utilizzato per la liquidazione IVA’. Se si è soggetti a liquidazione OSS indicare un conto dedicato (ad esempio IVA debito OSS Francia)
  4. +
  5. aprire l’imposta da Fatturazione > Configurazione > Contabilità > +Imposte,
  6. +
  7. nella scheda ‘Opzioni avanzate’ selezionare il conto corretto (ad +esempio IVA debito) per il campo ‘Conto utilizzato per la +liquidazione IVA’.
-

Per calcolare gli interessi, è possibile aggiungere le informazioni da utilizzare (conto e percentuale) -nei dati aziendali, nella scheda ‘Liquidazione IVA’.

+

Per calcolare gli interessi, è possibile aggiungere le informazioni +da utilizzare (conto e percentuale) nei dati aziendali, nella scheda +‘Liquidazione IVA’.

English

-

In order to generate VAT statement’s periods, -open Accounting > Configuration > Accounting > Date ranges > Generate Date Ranges (visible only in debug mode):

+

In order to generate VAT statement’s periods, open Accounting > +Configuration > Accounting > Date ranges > Generate Date Ranges +(visible only in debug mode):

    -
  • range name prefix: prefix identifying the periods to be generated (usually the year)
  • +
  • range name prefix: prefix identifying the periods to be generated +(usually the year)
  • duration: 1 month
  • number of ranges to generate: 12
  • -
  • type: create a type or use an existing one, no specific configuration is required
  • -
  • date start: first day of the first period to be generated (usually the first day of the year e.g. 01/01/2018)
  • +
  • type: create a type or use an existing one, no specific +configuration is required
  • +
  • date start: first day of the first period to be generated (usually +the first day of the year e.g. 01/01/2018)

In order to load the correct amount from tax, the tax has to be associated to the account involved in the statement:

  1. open a tax in Accounting > Configuration > Accounting > Taxes,
  2. -
  3. in the tab ‘Advanced Options’ select the correct account (for instance the account debit VAT) -for the field ‘Account used for VAT statement’. If you are subject to OSS settlement indicate a dedicated account (for example OSS debit VAT France)
  4. +
  5. in the tab ‘Advanced Options’ select the correct account (for +instance the account debit VAT) for the field ‘Account used for +VAT statement’.
-

If you need to calculate interest, you can add default information in your -company data (percentage and account), in the ‘VAT statement’ tab.

+

If you need to calculate interest, you can add default information in +your company data (percentage and account), in the ‘VAT statement’ +tab.

diff --git a/account_vat_period_end_statement/static/src/css/account_vat_period_end_statement.css b/account_vat_period_end_statement/static/src/css/account_vat_period_end_statement.css new file mode 100644 index 000000000000..29bfaf3f7b0b --- /dev/null +++ b/account_vat_period_end_statement/static/src/css/account_vat_period_end_statement.css @@ -0,0 +1,5 @@ +@media (min-width: 576px) { + .o_form_view .o_inner_group.form_inner_group_auto_width { + grid-template-columns: auto auto; + } +} diff --git a/account_vat_period_end_statement/static/src/css/l10n_it_vat_registries.css b/account_vat_period_end_statement/static/src/css/l10n_it_vat_registries.css deleted file mode 100644 index c2b7c1094c97..000000000000 --- a/account_vat_period_end_statement/static/src/css/l10n_it_vat_registries.css +++ /dev/null @@ -1,66 +0,0 @@ -table { - border: 0px; -} -thead { - background: #f5f5f5; -} - -.left_with_line { - text-align: left; - vertical-align: text-top; - border-top: 1px solid #a1a1a1; - padding: 5px; -} -.right_with_line { - text-align: right; - vertical-align: text-top; - border-top: 1px solid #a1a1a1; - padding: 5px; -} -.left_without_line { - text-align: left; - vertical-align: text-top; - padding: 5px; -} -.right_without_line { - text-align: right; - vertical-align: text-top; - padding: 5px; -} -.left_with_line_bottom { - text-align: left; - vertical-align: text-top; - border-bottom: 1px solid #a1a1a1; - padding: 5px; -} -.right_with_line_bottom { - text-align: right; - vertical-align: text-top; - border-bottom: 1px solid #a1a1a1; - padding: 5px; -} -.left_without_line_bold { - text-align: left; - vertical-align: text-top; - padding: 5px; - font-weight: bold; -} -.right_without_line_bold { - text-align: right; - vertical-align: text-top; - padding: 5px; - font-weight: bold; -} - -.first_th_row { - border-style: solid; - border-width: 1px; - border-color: #a1a1a1; - background: #fff; -} - -@media (min-width: 576px) { - .o_form_view .o_inner_group.form_inner_group_auto_width { - grid-template-columns: auto auto; - } -} diff --git a/account_vat_period_end_statement/tests/test_vat_statement.py b/account_vat_period_end_statement/tests/test_vat_statement.py index 64317688d486..743d5b0a2adc 100644 --- a/account_vat_period_end_statement/tests/test_vat_statement.py +++ b/account_vat_period_end_statement/tests/test_vat_statement.py @@ -1,11 +1,14 @@ # Copyright 2015 Agile Business Group +# Copyright 2022 Simone Rubino - TAKOBI # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from datetime import date, datetime from dateutil.rrule import MONTHLY +from odoo import fields from odoo.tests import tagged +from odoo.tests.common import Form from odoo.addons.account.tests.common import AccountTestInvoicingCommon @@ -20,10 +23,11 @@ def setUpClass(cls, chart_template_ref=None): {"name": "Fiscal year", "company_id": False, "allow_overlap": False} ) generator = cls.env["date.range.generator"] + current_datetime = datetime(2020, month=6, day=15) generator = generator.create( { - "date_start": "%s-01-01" % datetime.now().year, - "name_prefix": "%s-" % datetime.now().year, + "date_start": "%s-01-01" % current_datetime.year, + "name_prefix": "%s-" % current_datetime.year, "type_id": cls.range_type.id, "duration_count": 1, "unit_of_time": str(MONTHLY), @@ -33,8 +37,8 @@ def setUpClass(cls, chart_template_ref=None): generator.action_apply() prev_year_generator = generator.create( { - "date_start": "%s-01-01" % (datetime.now().year - 1), - "name_prefix": "%s-" % (datetime.now().year - 1), + "date_start": "%s-01-01" % (current_datetime.year - 1), + "name_prefix": "%s-" % (current_datetime.year - 1), "type_id": cls.range_type.id, "duration_count": 1, "unit_of_time": str(MONTHLY), @@ -48,11 +52,13 @@ def setUpClass(cls, chart_template_ref=None): cls.term_line_model = cls.env["account.payment.term.line"] cls.invoice_model = cls.env["account.move"] cls.invoice_line_model = cls.env["account.move.line"] - today = datetime.now().date() + current_date = current_datetime.date() cls.current_period = cls.env["date.range"].search( - [("date_start", "<=", today), ("date_end", ">=", today)] + [("date_start", "<=", current_date), ("date_end", ">=", current_date)] + ) + cls.last_year_date = date( + current_date.year - 1, current_date.month, current_date.day ) - cls.last_year_date = date(today.year - 1, today.month, today.day) cls.last_year_period = cls.env["date.range"].search( [ ("date_start", "<=", cls.last_year_date), @@ -83,7 +89,7 @@ def setUpClass(cls, chart_template_ref=None): cls.invoice_model.search( [("invoice_date", "!=", False)], order="invoice_date desc", limit=1 ).invoice_date - or today + or current_date ) cls.last_year_recent_date = date( cls.recent_date.year - 1, cls.recent_date.month, cls.recent_date.day @@ -261,3 +267,137 @@ def test_vat_statement(self): self.assertEqual(line.debit, 100) self.assertTrue(vat_auth_found) # TODO payment + + def _create_vendor_bill(self, partner, invoice_date, price_unit, tax): + """ + Create an open Vendor Bill for `partner` having date `invoice_date`. + The Bill will also have a Line having Price `price_unit` and Tax `tax`. + """ + bill_model = self.invoice_model.with_context(default_move_type="in_invoice") + bill_form = Form(bill_model) + bill_form.partner_id = partner + bill_form.invoice_date = invoice_date + with bill_form.invoice_line_ids.new() as line: + line.tax_ids.clear() + line.tax_ids.add(tax) + line.name = "Test Invoice Line" + line.account_id = self.company_data["default_account_expense"] + line.price_unit = price_unit + bill = bill_form.save() + bill.action_post() + return bill + + def _get_statement(self, period, statement_date, accounts): + """ + Create a VAT Statement in date `statement_date` + for Period `period` and Accounts `accounts`. + """ + # Create statement + statement_form = Form(self.vat_statement_model) + statement_form.journal_id = self.general_journal + statement_form.authority_vat_account_id = self.vat_authority + statement_form.payment_term_id = self.account_payment_term + statement_form.date = statement_date + statement_form.account_ids.clear() + for account in accounts: + statement_form.account_ids.add(account) + statement = statement_form.save() + + # Add period + add_period_model = self.env["add.period.to.vat.statement"] + add_period_model = add_period_model.with_context( + active_id=statement.id, + active_model=statement._name, + ) + add_period_form = Form(add_period_model) + add_period_form.period_id = period + add_period = add_period_form.save() + add_period.add_period() + return statement + + def test_different_previous_vat_statements(self): + """ + Statements for different Accounts + only count previous Amounts from Statements with the same Accounts. + """ + # Arrange: Create two different VAT Statements + # selecting two different Accounts + partner = self.env.ref("base.res_partner_4") + tax = self.account_tax_22_credit + tax_statement_account = tax.vat_statement_account_id + last_year_bill = self._create_vendor_bill( + partner, + self.last_year_recent_date, + 10, + tax, + ) + self.assertEqual(last_year_bill.state, "posted") + last_year_period = self.last_year_period + last_year_statement = self._get_statement( + last_year_period, + self.last_year_date, + tax_statement_account, + ) + self.assertTrue(last_year_statement) + + # Create another Bill and Statement + other_tax_statement_account = tax_statement_account.copy() + other_tax = tax.copy( + default={ + "vat_statement_account_id": other_tax_statement_account.id, + }, + ) + other_last_year_bill = self._create_vendor_bill( + partner, + self.last_year_recent_date, + 20, + other_tax, + ) + self.assertEqual(other_last_year_bill.state, "posted") + last_year_period.type_id.allow_overlap = True + other_last_year_period = last_year_period.copy( + default={ + "name": "Test Other last Year Period", + "vat_statement_id": False, + }, + ) + other_last_year_statement = self._get_statement( + other_last_year_period, + self.last_year_date, + other_tax_statement_account, + ) + self.assertTrue(other_last_year_statement) + + # Act: Create this Year's Statements, + # one for each Account used in previous Statements + today = fields.Date.today() + current_period = self.current_period + statement = self._get_statement( + current_period, + today, + tax_statement_account, + ) + + current_period.type_id.allow_overlap = True + other_current_period = current_period.copy( + default={ + "name": "Test Other current Period", + "vat_statement_id": False, + }, + ) + other_statement = self._get_statement( + other_current_period, + today, + other_tax_statement_account, + ) + + # Assert: Each one of this Year's Statements counts as previous Amount + # only the corresponding last Year's Statement + self.assertEqual( + statement.previous_credit_vat_amount, + -last_year_statement.authority_vat_amount, + ) + self.assertEqual( + other_statement.previous_credit_vat_amount, + -other_last_year_statement.authority_vat_amount, + ) diff --git a/account_vat_period_end_statement/wizard/add_period.py b/account_vat_period_end_statement/wizard/add_period.py index 8059d2178c6c..9239ac0cc9ed 100644 --- a/account_vat_period_end_statement/wizard/add_period.py +++ b/account_vat_period_end_statement/wizard/add_period.py @@ -9,7 +9,6 @@ class AddPeriod(models.TransientModel): - _name = "add.period.to.vat.statement" _description = "Add period to VAT Statement" diff --git a/currency_rate_update_boi/README.rst b/currency_rate_update_boi/README.rst new file mode 100644 index 000000000000..4a84f4bcc089 --- /dev/null +++ b/currency_rate_update_boi/README.rst @@ -0,0 +1,122 @@ +==================================== +Currency Rate Update: Banca d'Italia +==================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:b0c7c9420323deb9b4abcfe51a6a837f84f3fe409d279a1e06ea3ad2677fe833 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |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/16.0/currency_rate_update_boi + :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-16-0/l10n-italy-16-0-currency_rate_update_boi + :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=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +**Italiano** + +Questo modulo aggiunge la `Banca +d'Italia `__ come fornitore dei +tassi di cambio. + +Le istruzioni per l'esportazione dei dati sono disponibili all'indirizzo +https://tassidicambio.bancaditalia.it/terzevalute-wf-ui-web/assets/files/Operating_Instructions.pdf + +I tassi di cambio sono esportati nel formato JSON. + +**English** + +This module adds `Bank of +Italy `__ currency exchange +rates provider. + +Data export instructions are available at +https://tassidicambio.bancaditalia.it/terzevalute-wf-ui-web/assets/files/Operating_Instructions.pdf + +Exchange rates are exported in JSON format. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +**Italiano** + +Suggeriamo di eseguire l'azione pianificata "Aggiornamento tassi di +cambio (OCA) giornaliero" alla fine del giorno, per essere sicuri che la +Banca d'Italia abbia aggiornato i dati. + +**English** + +We suggest to execute the "Currency Rates Update (OCA) daily" cron at +the end of the day, to be sure that Bank of Italy updated the data. + +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 +------- + +* TAKOBI + +Contributors +------------ + +- Giacomo Grasso +- Gabriele Baldessari +- `TAKOBI `__: + + - Lorenzo Battistini + +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-eLBati| image:: https://github.com/eLBati.png?size=40px + :target: https://github.com/eLBati + :alt: eLBati + +Current `maintainer `__: + +|maintainer-eLBati| + +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/currency_rate_update_boi/__init__.py b/currency_rate_update_boi/__init__.py new file mode 100644 index 000000000000..0650744f6bc6 --- /dev/null +++ b/currency_rate_update_boi/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/currency_rate_update_boi/__manifest__.py b/currency_rate_update_boi/__manifest__.py new file mode 100644 index 000000000000..1dfd2c94d676 --- /dev/null +++ b/currency_rate_update_boi/__manifest__.py @@ -0,0 +1,21 @@ +# Copyright 2021 Lorenzo Battistini @ TAKOBI +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +{ + "name": "Currency Rate Update: Banca d'Italia", + "version": "16.0.1.0.1", + "category": "Financial Management/Configuration", + "summary": "Update exchange rates using www.bancaditalia.it", + "author": "TAKOBI, " "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/l10n-italy" + "/tree/16.0/currency_rate_update_boi", + "maintainers": ["eLBati"], + "license": "AGPL-3", + "installable": True, + "application": False, + "depends": [ + "account", + "currency_rate_update", + ], + "data": [], +} diff --git a/currency_rate_update_boi/i18n/currency_rate_update_boi.pot b/currency_rate_update_boi/i18n/currency_rate_update_boi.pot new file mode 100644 index 000000000000..8b711d535616 --- /dev/null +++ b/currency_rate_update_boi/i18n/currency_rate_update_boi.pot @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * currency_rate_update_boi +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \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: currency_rate_update_boi +#: model:ir.model.fields.selection,name:currency_rate_update_boi.selection__res_currency_rate_provider__service__boi +msgid "Bank of Italy" +msgstr "" + +#. module: currency_rate_update_boi +#: model:ir.model,name:currency_rate_update_boi.model_res_currency_rate_provider +msgid "Currency Rates Provider" +msgstr "" + +#. module: currency_rate_update_boi +#: model:ir.model.fields,field_description:currency_rate_update_boi.field_res_currency_rate_provider__service +msgid "Provider" +msgstr "" diff --git a/currency_rate_update_boi/i18n/it.po b/currency_rate_update_boi/i18n/it.po new file mode 100644 index 000000000000..86042313b6d0 --- /dev/null +++ b/currency_rate_update_boi/i18n/it.po @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * currency_rate_update_boi +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-12-27 19:36+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: currency_rate_update_boi +#: model:ir.model.fields.selection,name:currency_rate_update_boi.selection__res_currency_rate_provider__service__boi +msgid "Bank of Italy" +msgstr "Banca d'Italia" + +#. module: currency_rate_update_boi +#: model:ir.model,name:currency_rate_update_boi.model_res_currency_rate_provider +msgid "Currency Rates Provider" +msgstr "Fornitore tassi di cambio" + +#. module: currency_rate_update_boi +#: model:ir.model.fields,field_description:currency_rate_update_boi.field_res_currency_rate_provider__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: currency_rate_update_boi +#: model:ir.model.fields,field_description:currency_rate_update_boi.field_res_currency_rate_provider__id +msgid "ID" +msgstr "ID" + +#. module: currency_rate_update_boi +#: model:ir.model.fields,field_description:currency_rate_update_boi.field_res_currency_rate_provider____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: currency_rate_update_boi +#: model:ir.model.fields,field_description:currency_rate_update_boi.field_res_currency_rate_provider__service +msgid "Source Service" +msgstr "Servizio Sorgente" + +#~ msgid "European Central Bank" +#~ msgstr "Banca Centrale Europea" diff --git a/currency_rate_update_boi/models/__init__.py b/currency_rate_update_boi/models/__init__.py new file mode 100644 index 000000000000..429f804cde54 --- /dev/null +++ b/currency_rate_update_boi/models/__init__.py @@ -0,0 +1 @@ +from . import res_currency_rate_provider_BOI diff --git a/currency_rate_update_boi/models/res_currency_rate_provider_BOI.py b/currency_rate_update_boi/models/res_currency_rate_provider_BOI.py new file mode 100644 index 000000000000..e5e5d182c265 --- /dev/null +++ b/currency_rate_update_boi/models/res_currency_rate_provider_BOI.py @@ -0,0 +1,291 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from datetime import timedelta + +import requests + +from odoo import fields, models +from odoo.tools.safe_eval import safe_eval + + +class ResCurrencyRateProviderBOI(models.Model): + _inherit = "res.currency.rate.provider" + + service = fields.Selection( + selection_add=[("BOI", "Bank of Italy")], ondelete={"BOI": "cascade"} + ) + + def _get_supported_currencies(self): + self.ensure_one() + if self.service != "BOI": + return super()._get_supported_currencies() # pragma: no cover + + return [ + "AFN", + "ALL", + "DZD", + "ADP", + "AOA", + "XCD", + "ANG", + "SAR", + "ARS", + "AMD", + "AWG", + "AUD", + "ATS", + "AZN", + "AZM", + "BSD", + "BHD", + "BDT", + "BBD", + "BEF", + "BZD", + "XOF", + "BMD", + "BTN", + "BYB", + "BYN", + "BYR", + "BOB", + "BAM", + "BWP", + "BRL", + "BND", + "BGL", + "BGN", + "XOF", + "BIF", + "KHR", + "XAF", + "CAD", + "CVE", + "KYD", + "CZK", + "CSK", + "XAF", + "XAF", + "CLP", + "CNY", + "CYP", + "COP", + "KMF", + "XAF", + "ZRN", + "CDF", + "KPW", + "KRW", + "XOF", + "CRC", + "HRK", + "CUP", + "DKK", + "XCD", + "DOP", + "ECS", + "EGP", + "SVC", + "AED", + "ERN", + "EEK", + "ETB", + "FKP", + "FJD", + "PHP", + "FIM", + "XDR", + "FRF", + "XAF", + "GMD", + "GEL", + "DEM", + "DDM", + "GHS", + "GHC", + "JMD", + "JPY", + "GIP", + "DJF", + "JOD", + "GRD", + "XCD", + "GTQ", + "GNF", + "GWP", + "XOF", + "XAF", + "GQE", + "GYD", + "HTG", + "HNL", + "HKD", + "INR", + "IDR", + "IRR", + "IQD", + "IEP", + "ISK", + "ILS", + "ITL", + "YUM", + "KZT", + "KES", + "KGS", + "KWD", + "LAK", + "LSL", + "LVL", + "LBP", + "LRD", + "LYD", + "LTL", + "LUF", + "MOP", + "MKD", + "MGA", + "MGF", + "MWK", + "MYR", + "MVR", + "XOF", + "MLF", + "MTL", + "MAD", + "MRO", + "MUR", + "MXN", + "MDL", + "MNT", + "MZM", + "MZN", + "MMK", + "NAD", + "NPR", + "NIO", + "XOF", + "NGN", + "NOK", + "NZD", + "NLG", + "OMR", + "PKR", + "PAB", + "PGK", + "PYG", + "PEN", + "XPF", + "PLN", + "PTE", + "QAR", + "GBP", + "ROL", + "RON", + "RUB", + "RWF", + "SBD", + "WST", + "SHP", + "STD", + "XOF", + "CSD", + "RSD", + "CSD", + "SCR", + "SLL", + "SGD", + "SYP", + "ECU", + "SKK", + "SIT", + "SOS", + "ESP", + "LKR", + "XCD", + "XCD", + "USD", + "XCD", + "ZAR", + "SSP", + "SDG", + "SDD", + "SRG", + "SRD", + "SEK", + "CHF", + "SZL", + "TJS", + "TJR", + "TWD", + "TZS", + "THB", + "XOF", + "TOP", + "TTD", + "TND", + "TRY", + "TRL", + "TMM", + "TMT", + "UAH", + "UGX", + "HUF", + "EUR", + "SUR", + "UYU", + "UZS", + "VUV", + "VEF", + "VEB", + "VND", + "YER", + "YDD", + "ZMW", + "ZMK", + "ZWD", + "ZWN", + ] + + def _obtain_rates(self, base_currency, currencies, date_from, date_to): + self.ensure_one() + if self.service != "BOI": + return super()._obtain_rates( + base_currency, currencies, date_from, date_to + ) # pragma: no cover + + invert_calculation = False + if base_currency != "EUR": + invert_calculation = True + if base_currency not in currencies: + currencies.append(base_currency) + content = {} + + while date_from <= date_to: + date_from_str = str(date_from) + + url = ( + "https://tassidicambio.bancaditalia.it/terzevalute-wf-web/" + "rest/v1.0/dailyRates?referenceDate={ref_date}" + "¤cyIsoCode={ref_cur}&lang={lang}".format( + ref_date=date_from_str, + ref_cur="EUR", + lang="EN", + ) + ) + response = requests.get( + url, headers={"Accept": "application/json"}, timeout=10 + ) + curr_dict = response.content + content[date_from_str] = {} + for row in safe_eval(curr_dict)["rates"]: + if row["isoCode"] in currencies: + content[date_from_str][row["isoCode"]] = row["avgRate"] + date_from += timedelta(days=1) + + if invert_calculation: + for k in content.keys(): + base_rate = float(content[k][base_currency]) + for rate in content[k].keys(): + content[k][rate] = str(float(content[k][rate]) / base_rate) + content[k]["EUR"] = str(1.0 / base_rate) + return content diff --git a/currency_rate_update_boi/pyproject.toml b/currency_rate_update_boi/pyproject.toml new file mode 100644 index 000000000000..4231d0cccb3d --- /dev/null +++ b/currency_rate_update_boi/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/currency_rate_update_boi/readme/CONFIGURE.md b/currency_rate_update_boi/readme/CONFIGURE.md new file mode 100644 index 000000000000..9efa195947d1 --- /dev/null +++ b/currency_rate_update_boi/readme/CONFIGURE.md @@ -0,0 +1,10 @@ +**Italiano** + +Suggeriamo di eseguire l'azione pianificata "Aggiornamento tassi di cambio (OCA) +giornaliero" alla fine del giorno, per essere sicuri che la Banca d'Italia abbia +aggiornato i dati. + +**English** + +We suggest to execute the "Currency Rates Update (OCA) daily" cron at the end of the +day, to be sure that Bank of Italy updated the data. diff --git a/currency_rate_update_boi/readme/CONTRIBUTORS.md b/currency_rate_update_boi/readme/CONTRIBUTORS.md new file mode 100644 index 000000000000..07c91940a452 --- /dev/null +++ b/currency_rate_update_boi/readme/CONTRIBUTORS.md @@ -0,0 +1,4 @@ +- Giacomo Grasso \<\> +- Gabriele Baldessari \<\> +- [TAKOBI](https://takobi.online): + - Lorenzo Battistini diff --git a/currency_rate_update_boi/readme/DESCRIPTION.md b/currency_rate_update_boi/readme/DESCRIPTION.md new file mode 100644 index 000000000000..adacb1019221 --- /dev/null +++ b/currency_rate_update_boi/readme/DESCRIPTION.md @@ -0,0 +1,19 @@ +**Italiano** + +Questo modulo aggiunge la [Banca d'Italia](https://tassidicambio.bancaditalia.it/) come +fornitore dei tassi di cambio. + +Le istruzioni per l'esportazione dei dati sono disponibili all'indirizzo + + +I tassi di cambio sono esportati nel formato JSON. + +**English** + +This module adds [Bank of Italy](https://tassidicambio.bancaditalia.it/) currency +exchange rates provider. + +Data export instructions are available at + + +Exchange rates are exported in JSON format. diff --git a/currency_rate_update_boi/static/description/icon.png b/currency_rate_update_boi/static/description/icon.png new file mode 100644 index 000000000000..9333e33755a7 Binary files /dev/null and b/currency_rate_update_boi/static/description/icon.png differ diff --git a/currency_rate_update_boi/static/description/index.html b/currency_rate_update_boi/static/description/index.html new file mode 100644 index 000000000000..172bfed1ff87 --- /dev/null +++ b/currency_rate_update_boi/static/description/index.html @@ -0,0 +1,451 @@ + + + + + +Currency Rate Update: Banca d'Italia + + + +
+

Currency Rate Update: Banca d’Italia

+ + +

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

+

Italiano

+

Questo modulo aggiunge la Banca +d’Italia come fornitore dei +tassi di cambio.

+

Le istruzioni per l’esportazione dei dati sono disponibili all’indirizzo +https://tassidicambio.bancaditalia.it/terzevalute-wf-ui-web/assets/files/Operating_Instructions.pdf

+

I tassi di cambio sono esportati nel formato JSON.

+

English

+

This module adds Bank of +Italy currency exchange +rates provider.

+

Data export instructions are available at +https://tassidicambio.bancaditalia.it/terzevalute-wf-ui-web/assets/files/Operating_Instructions.pdf

+

Exchange rates are exported in JSON format.

+

Table of contents

+ +
+

Configuration

+

Italiano

+

Suggeriamo di eseguire l’azione pianificata “Aggiornamento tassi di +cambio (OCA) giornaliero” alla fine del giorno, per essere sicuri che la +Banca d’Italia abbia aggiornato i dati.

+

English

+

We suggest to execute the “Currency Rates Update (OCA) daily” cron at +the end of the day, to be sure that Bank of Italy updated the data.

+
+
+

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

+
    +
  • TAKOBI
  • +
+
+
+

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:

+

eLBati

+

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/currency_rate_update_boi/tests/__init__.py b/currency_rate_update_boi/tests/__init__.py new file mode 100644 index 000000000000..93badc28397c --- /dev/null +++ b/currency_rate_update_boi/tests/__init__.py @@ -0,0 +1 @@ +from . import test_currency_rate_update_boi diff --git a/currency_rate_update_boi/tests/test_currency_rate_update_boi.py b/currency_rate_update_boi/tests/test_currency_rate_update_boi.py new file mode 100644 index 000000000000..85c8a412e671 --- /dev/null +++ b/currency_rate_update_boi/tests/test_currency_rate_update_boi.py @@ -0,0 +1,159 @@ +# Copyright 2023 Giuseppe Borruso (gborruso@dinamicheaziendali.it) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from datetime import date, timedelta +from unittest import mock + +from dateutil.relativedelta import relativedelta +from freezegun import freeze_time + +from odoo import api, fields +from odoo.tests import tagged + +from odoo.addons.account.tests.common import AccountTestInvoicingCommon + +_module_ns = "odoo.addons.currency_rate_update_boi" +_file_ns = _module_ns + ".models.res_currency_rate_provider_BOI" +_BOI_provider_class = _file_ns + ".ResCurrencyRateProviderBOI" + + +@tagged("post_install", "-at_install") +class TestCurrencyRateUpdate(AccountTestInvoicingCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() + + cls.Company = cls.env["res.company"] + cls.CurrencyRate = cls.env["res.currency.rate"] + cls.CurrencyRateProvider = cls.env["res.currency.rate.provider"] + + cls.today = fields.Date.today() + cls.eur_currency = cls.env.ref("base.EUR") + cls.usd_currency = cls.env.ref("base.USD") + cls.gbp_currency = cls.env.ref("base.GBP") + cls.company = cls.Company.create( + {"name": "Test company", "currency_id": cls.eur_currency.id} + ) + cls.env.user.company_ids += cls.company + cls.env.user.company_id = cls.company + cls.ecb_provider = cls.CurrencyRateProvider.create( + { + "service": "BOI", + "currency_ids": [ + (4, cls.usd_currency.id), + (4, cls.gbp_currency.id), + (4, cls.env.user.company_id.currency_id.id), + ], + } + ) + cls.CurrencyRate.search([]).unlink() + + @api.model + def _get_no_weekend_date(self, compute_date): + if compute_date.weekday() in [5, 6]: + days_to_friday = 4 - compute_date.weekday() + return compute_date + timedelta(days=days_to_friday) + else: + return compute_date + + def test_supported_currencies_BOI(self): + self.ecb_provider._get_supported_currencies() + + def test_error_BOI(self): + with mock.patch(_BOI_provider_class + "._obtain_rates", return_value=None): + self.ecb_provider._update(self.today, self.today) + + def test_update_BOI_yesterday(self): + compute_date = self._get_no_weekend_date(self.today - relativedelta(days=1)) + self.ecb_provider._update(compute_date, self.today) + + rates = self.CurrencyRate.search( + [("currency_id", "=", self.usd_currency.id)], limit=1 + ) + self.assertTrue(rates) + + self.CurrencyRate.search([("company_id", "=", self.company.id)]).unlink() + + def test_update_BOI_month(self): + compute_date = self._get_no_weekend_date(self.today - relativedelta(months=1)) + self.ecb_provider._update(compute_date, self.today) + + rates = self.CurrencyRate.search( + [("currency_id", "=", self.usd_currency.id)], limit=1 + ) + self.assertTrue(rates) + + self.CurrencyRate.search([("company_id", "=", self.company.id)]).unlink() + + def test_update_BOI_year(self): + compute_date = self._get_no_weekend_date(self.today - relativedelta(years=1)) + self.ecb_provider._update(compute_date, self.today) + + rates = self.CurrencyRate.search( + [("currency_id", "=", self.usd_currency.id)], limit=1 + ) + self.assertTrue(rates) + + self.CurrencyRate.search([("company_id", "=", self.company.id)]).unlink() + + def test_update_BOI_scheduled(self): + self.ecb_provider.interval_type = "days" + self.ecb_provider.interval_number = 14 + self.ecb_provider.next_run = self._get_no_weekend_date( + self.today - relativedelta(days=1) + ) + self.ecb_provider._scheduled_update() + + rates = self.CurrencyRate.search( + [("currency_id", "=", self.usd_currency.id)], limit=1 + ) + self.assertTrue(rates) + + self.CurrencyRate.search([("company_id", "=", self.company.id)]).unlink() + + def test_update_BOI_sequence(self): + self.ecb_provider.interval_type = "days" + self.ecb_provider.interval_number = 2 + self.ecb_provider.last_successful_run = None + self.ecb_provider.next_run = date(2019, 4, 1) + + self.ecb_provider._scheduled_update() + self.assertEqual(self.ecb_provider.last_successful_run, date(2019, 4, 1)) + self.assertEqual(self.ecb_provider.next_run, date(2019, 4, 3)) + rates = self.CurrencyRate.search( + [ + ("company_id", "=", self.company.id), + ("currency_id", "=", self.usd_currency.id), + ] + ) + self.assertEqual(len(rates), 1) + + self.ecb_provider._scheduled_update() + self.assertEqual(self.ecb_provider.last_successful_run, date(2019, 4, 3)) + self.assertEqual(self.ecb_provider.next_run, date(2019, 4, 5)) + rates = self.CurrencyRate.search( + [ + ("company_id", "=", self.company.id), + ("currency_id", "=", self.usd_currency.id), + ] + ) + self.assertEqual(len(rates), 2) + + self.CurrencyRate.search([("company_id", "=", self.company.id)]).unlink() + + @freeze_time("2022-04-19 22:00") + def test_update_BOI_with_daily(self): + self.ecb_provider.interval_type = "days" + self.ecb_provider.interval_number = 1 + self.ecb_provider.last_successful_run = date(2021, 4, 19) + + self.ecb_provider._scheduled_update() + + self.assertEqual(self.ecb_provider.last_successful_run, date(2022, 4, 19)) + + def test_foreign_base_currency(self): + self.test_update_BOI_yesterday() + self.test_update_BOI_month() + self.test_update_BOI_year() + self.test_update_BOI_scheduled() + self.test_update_BOI_sequence() diff --git a/fiscal_epos_print/README.rst b/fiscal_epos_print/README.rst index 9c817bdab192..66e7342ba751 100644 --- a/fiscal_epos_print/README.rst +++ b/fiscal_epos_print/README.rst @@ -2,10 +2,13 @@ ITA - Driver per stampanti fiscali compatibili ePOS-Print XML ============================================================= -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:ba5b8a62de8bec7b038dcedd9f21af3df1eda34c66681317bb8ecd4426015490 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -20,29 +23,30 @@ ITA - Driver per stampanti fiscali compatibili ePOS-Print XML :target: https://translation.odoo-community.org/projects/l10n-italy-16-0/l10n-italy-16-0-fiscal_epos_print :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/webui/builds.html?repo=OCA/l10n-italy&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-italy&target_branch=16.0 :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| **Italiano** -Questo modulo permette di stampare gli scontrini del punto vendita, su stampanti fiscali Epson, tramite protocollo EPos +Questo modulo permette di stampare gli scontrini del punto vendita, su +stampanti fiscali Epson, tramite protocollo EPos Stampanti supportate: -- FP81II -- FP90III +- FP81II +- FP90III **English** -This module allows to print receipt of point of sale, -on fiscal printers Epson, via EPos protocol. +This module allows to print receipt of point of sale, on fiscal printers +Epson, via EPos protocol. Supported printers: -- FP81II -- FP90III +- FP81II +- FP90III **Table of contents** @@ -54,35 +58,45 @@ Configuration **Italiano** -- stampare la lista dei reparti della vostra stampante fiscale -- mappare le imposta di vendita di odoo con i gruppi di imposte - dipartimenti della stampante fiscale, per ogni imposta di vendita in odoo, usando il campo "Reparto sulla stampante fiscale 1~99" -- in odoo, utilizzare imposte incluse nel prezzo -- connettere la vostra stampante fiscale alla rete locale e recuperare l'IP -- aprire la configurazione POS e impostare l'indirizzo IP e il seriale della stampante nella sezione "Stampante Fiscale" -- è tutto, alla validazione del pagamento nella sessione POS, il sistema stamperà lo scontrino fiscale. +- stampare la lista dei reparti della vostra stampante fiscale +- mappare le imposta di vendita di odoo con i gruppi di imposte - + dipartimenti della stampante fiscale, per ogni imposta di vendita in + odoo, usando il campo "Reparto sulla stampante fiscale 1~99" +- in odoo, utilizzare imposte incluse nel prezzo +- connettere la vostra stampante fiscale alla rete locale e recuperare + l'IP +- aprire la configurazione POS e impostare l'indirizzo IP e il seriale + della stampante nella sezione "Stampante Fiscale" +- è tutto, alla validazione del pagamento nella sessione POS, il + sistema stamperà lo scontrino fiscale. **English** -- print list departments of your fiscal printer -- map odoo sale taxes with taxes groups - departments of fiscal printer, for each sale tax on odoo, using field "Department on fiscal printer 1~99" -- in odoo, use taxes included in price -- connect your fiscal printer to local network and find IP -- open POS configuration and fill Printer IP Address field -- that's all, at validation of payment on POS session, system prints fiscal receipt. +- print list departments of your fiscal printer +- map odoo sale taxes with taxes groups - departments of fiscal + printer, for each sale tax on odoo, using field "Department on fiscal + printer 1~99" +- in odoo, use taxes included in price +- connect your fiscal printer to local network and find IP +- open POS configuration and fill Printer IP Address field +- that's all, at validation of payment on POS session, system prints + fiscal receipt. Known issues / Roadmap ====================== -* Resi: - - Aggiungere controllo "rendibilità" - - Stampare sullo scontrino un barcode identificativo, in modo da generare il reso facendone la scansione +- Resi: + + - Aggiungere controllo "rendibilità" + - Stampare sullo scontrino un barcode identificativo, in modo da + generare il reso facendone la scansione 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 smashing it by providing a detailed and welcomed +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. @@ -91,7 +105,7 @@ Credits ======= Authors -~~~~~~~ +------- * Agile Business Group * Leonardo Donelli @@ -99,20 +113,19 @@ Authors * Level Prime Srl Contributors -~~~~~~~~~~~~ - -* Leonardo Donelli +------------ -* `TAKOBI `_: +- Leonardo Donelli +- `TAKOBI `__: - * Lorenzo Battistini + - Lorenzo Battistini -* Alessio Gerace -* Roberto Fichera -* Giuseppe Borruso +- Alessio Gerace +- Roberto Fichera +- Giuseppe Borruso Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/fiscal_epos_print/i18n/it.po b/fiscal_epos_print/i18n/it.po deleted file mode 100644 index bfd563bc5f55..000000000000 --- a/fiscal_epos_print/i18n/it.po +++ /dev/null @@ -1,259 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * fiscal_epos_print -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 16.0+e\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-02-27 10:20+0000\n" -"PO-Revision-Date: 2023-02-27 10:20+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: fiscal_epos_print -#: model_terms:ir.ui.view,arch_db:fiscal_epos_print.view_pos_config_printer_form -#: model_terms:ir.ui.view,arch_db:fiscal_epos_print.view_res_config_settings_printer_form -msgid "Fiscal Printer Serial" -msgstr "Seriale stampante fiscale" - -#. module: fiscal_epos_print -#: model_terms:ir.ui.view,arch_db:fiscal_epos_print.view_pos_config_printer_form -#: model_terms:ir.ui.view,arch_db:fiscal_epos_print.view_res_config_settings_printer_form -msgid "Printer address" -msgstr "Indirizzo stampante" - -#. module: fiscal_epos_print -#: model:ir.model.fields.selection,name:fiscal_epos_print.selection__account_journal__fiscalprinter_payment_type__0 -#: model:ir.model.fields.selection,name:fiscal_epos_print.selection__pos_payment_method__fiscalprinter_payment_type__0 -msgid "Cash" -msgstr "Contanti" - -#. module: fiscal_epos_print -#: model:ir.model.fields.selection,name:fiscal_epos_print.selection__account_journal__fiscalprinter_payment_type__1 -#: model:ir.model.fields.selection,name:fiscal_epos_print.selection__pos_payment_method__fiscalprinter_payment_type__1 -msgid "Cheque" -msgstr "Assegni" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_order__refund_report -msgid "Closure reference" -msgstr "Riferimento chiusura" - -#. module: fiscal_epos_print -#: model:ir.model,name:fiscal_epos_print.model_res_config_settings -msgid "Config Settings" -msgstr "Impostazioni di configurazione" - -#. module: fiscal_epos_print -#: model:ir.model.fields.selection,name:fiscal_epos_print.selection__account_journal__fiscalprinter_payment_type__2 -#: model:ir.model.fields.selection,name:fiscal_epos_print.selection__pos_payment_method__fiscalprinter_payment_type__2 -msgid "Credit or Credit Card" -msgstr "Credito o carta di credito" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_order__fiscal_printer_debug_info -msgid "Debug info" -msgstr "Informazioni di debug" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_account_tax__fpdeptax -msgid "Department on fiscal printer 1~99" -msgstr "Reparto sulla stampante fiscale 1~99" - -#. module: fiscal_epos_print -#: model:ir.model.fields.selection,name:fiscal_epos_print.selection__account_journal__fiscalprinter_payment_type__6 -#: model:ir.model.fields.selection,name:fiscal_epos_print.selection__pos_payment_method__fiscalprinter_payment_type__6 -msgid "Discount on payment" -msgstr "Sconto sul pagamento" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_order__refund_doc_num -msgid "Document Number" -msgstr "Numero documento" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_account_journal__fiscalprinter_payment_index -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_payment_method__fiscalprinter_payment_index -msgid "Electronic Payment / Ticket Index" -msgstr "Index pagamento elettronico / ticket" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_config__fiscal_cashdrawer -#: model:ir.model.fields,field_description:fiscal_epos_print.field_res_config_settings__fiscal_cashdrawer -msgid "Fiscal Printer Open CashDrawer" -msgstr "Aprire cassetto contanti stampante fiscale" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_config__fiscal_printer_serial -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_order__fiscal_printer_serial -#: model:ir.model.fields,field_description:fiscal_epos_print.field_res_config_settings__fiscal_printer_serial -msgid "Fiscal Printer Serial" -msgstr "Seriale stampante fiscale" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_order__fiscal_z_rep_number -msgid "Fiscal closure number" -msgstr "Numero chiusura fiscale" - -#. module: fiscal_epos_print -#: model_terms:ir.ui.view,arch_db:fiscal_epos_print.view_pos_config_printer_form -#: model_terms:ir.ui.view,arch_db:fiscal_epos_print.view_res_config_settings_printer_form -msgid "Fiscal printer" -msgstr "Stampante fiscale" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_order__fiscal_receipt_amount -msgid "Fiscal receipt amount" -msgstr "Importo scontrino fiscale" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_order__fiscal_receipt_date -msgid "Fiscal receipt date" -msgstr "Data scontrino fiscale" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_order__fiscal_receipt_number -msgid "Fiscal receipt number" -msgstr "Numero scontrino fiscale" - -#. module: fiscal_epos_print -#: model:ir.model,name:fiscal_epos_print.model_account_journal -msgid "Journal" -msgstr "Registro" - -#. module: fiscal_epos_print -#: model_terms:ir.ui.view,arch_db:fiscal_epos_print.view_pos_pos_form_refund_info -msgid "Lottery" -msgstr "Lotteria" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_order__lottery_code -msgid "Lottery Code" -msgstr "Codice lotteria" - -#. module: fiscal_epos_print -#: model:ir.model.fields.selection,name:fiscal_epos_print.selection__account_journal__fiscalprinter_payment_type__5 -#: model:ir.model.fields.selection,name:fiscal_epos_print.selection__pos_payment_method__fiscalprinter_payment_type__5 -msgid "No Paid" -msgstr "Non pagato" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_account_journal__fiscalprinter_payment_type -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_payment_method__fiscalprinter_payment_type -msgid "Payment type" -msgstr "Tipo di pagamento" - -#. module: fiscal_epos_print -#: model:ir.model,name:fiscal_epos_print.model_pos_config -msgid "Point of Sale Configuration" -msgstr "Configurazione punto vendita" - -#. module: fiscal_epos_print -#: model:ir.model,name:fiscal_epos_print.model_pos_order -msgid "Point of Sale Orders" -msgstr "Ordini punto vendita" - -#. module: fiscal_epos_print -#: model:ir.model,name:fiscal_epos_print.model_pos_payment_method -msgid "Point of Sale Payment Methods" -msgstr "Metodi di pagamento punto vendita" - -#. module: fiscal_epos_print -#: model:ir.model,name:fiscal_epos_print.model_pos_payment -msgid "Point of Sale Payments" -msgstr "Pagamenti punto vendita" - -#. module: fiscal_epos_print -#: model:ir.model,name:fiscal_epos_print.model_pos_session -msgid "Point of Sale Session" -msgstr "Sessione punto vendita" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_config__printer_ip -#: model:ir.model.fields,field_description:fiscal_epos_print.field_res_config_settings__printer_ip -msgid "Printer IP Address" -msgstr "Indirizzo IP stampante" - -#. module: fiscal_epos_print -#: model_terms:ir.ui.view,arch_db:fiscal_epos_print.view_pos_pos_form_refund_info -msgid "RT data" -msgstr "Dati RT" - -#. module: fiscal_epos_print -#: model_terms:ir.ui.view,arch_db:fiscal_epos_print.view_pos_pos_form_refund_info -msgid "Receipt" -msgstr "Scontrino" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_order__refund_cash_fiscal_serial -msgid "Refund Cash Serial" -msgstr "Matricola RT" - -#. module: fiscal_epos_print -#: model_terms:ir.ui.view,arch_db:fiscal_epos_print.view_pos_pos_form_refund_info -msgid "Refund Info" -msgstr "Informazioni reso" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_order__refund_date -msgid "Refund date reference" -msgstr "Data riferimento reso" - -#. module: fiscal_epos_print -#: model:ir.model.fields,help:fiscal_epos_print.field_account_journal__fiscalprinter_payment_index -#: model:ir.model.fields,help:fiscal_epos_print.field_pos_payment_method__fiscalprinter_payment_index -msgid "Set the index of the given payment type to specify the detail." -msgstr "Impostare l'index del tipo di pagamento specificato per specificare i dettagli." - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_config__show_receipt_when_printing -#: model:ir.model.fields,field_description:fiscal_epos_print.field_res_config_settings__show_receipt_when_printing -msgid "Show receipt on screen when printing" -msgstr "Mostrare a schermo lo scontrino in fase di stampa" - -#. module: fiscal_epos_print -#: model:ir.model,name:fiscal_epos_print.model_account_tax -msgid "Tax" -msgstr "Imposta" - -#. module: fiscal_epos_print -#: model_terms:ir.ui.view,arch_db:fiscal_epos_print.view_apos_payment_method_form_fp90 -msgid "Termini pagamento stampante" -msgstr "" - -#. module: fiscal_epos_print -#: model:ir.model.fields,help:fiscal_epos_print.field_pos_config__printer_ip -#: model:ir.model.fields,help:fiscal_epos_print.field_res_config_settings__printer_ip -#: model_terms:ir.ui.view,arch_db:fiscal_epos_print.view_pos_config_printer_form -#: model_terms:ir.ui.view,arch_db:fiscal_epos_print.view_res_config_settings_printer_form -msgid "The hostname or IP address of the fiscal printer" -msgstr "L'hostname o indirizzo IP della stampante fiscale" - -#. module: fiscal_epos_print -#: model:ir.model.fields,help:fiscal_epos_print.field_account_journal__fiscalprinter_payment_type -#: model:ir.model.fields,help:fiscal_epos_print.field_pos_payment_method__fiscalprinter_payment_type -msgid "The payment type to send to the Fiscal Printer." -msgstr "Il tipo di pagamento da inviare alla stampante fiscale." - -#. module: fiscal_epos_print -#: model:ir.model.fields.selection,name:fiscal_epos_print.selection__account_journal__fiscalprinter_payment_type__3 -#: model:ir.model.fields.selection,name:fiscal_epos_print.selection__pos_payment_method__fiscalprinter_payment_type__3 -msgid "Ticket" -msgstr "Ticket" - -#. module: fiscal_epos_print -#: model:ir.model.fields.selection,name:fiscal_epos_print.selection__account_journal__fiscalprinter_payment_type__4 -#: model:ir.model.fields.selection,name:fiscal_epos_print.selection__pos_payment_method__fiscalprinter_payment_type__4 -msgid "Ticket with number" -msgstr "Ticket con numero" - -#. module: fiscal_epos_print -#: model:ir.model.fields,field_description:fiscal_epos_print.field_pos_config__use_https -#: model:ir.model.fields,field_description:fiscal_epos_print.field_res_config_settings__use_https -msgid "Use https" -msgstr "Usa HTTPS" diff --git a/fiscal_epos_print/models/pos_order.py b/fiscal_epos_print/models/pos_order.py index c0ffb0085ec4..0b7309c1d261 100644 --- a/fiscal_epos_print/models/pos_order.py +++ b/fiscal_epos_print/models/pos_order.py @@ -29,7 +29,7 @@ class PosOrder(models.Model): @api.model def _order_fields(self, ui_order): - res = super(PosOrder, self)._order_fields(ui_order) + res = super()._order_fields(ui_order) res["lottery_code"] = ui_order.get("lottery_code", "") res["refund_date"] = ui_order.get("refund_date", False) res["refund_report"] = ui_order.get("refund_report", False) @@ -53,33 +53,40 @@ def _order_fields(self, ui_order): def create_from_ui(self, orders, draft=False): if self.env.company.country_id.id == self.env.ref("base.it").id: draft = True - order_ids = super(PosOrder, self).create_from_ui(orders, draft) + order_ids = super().create_from_ui(orders, draft) process_order_ids = [] for order in orders: if order["data"].get("pricelist_id", False): - pricelist_id = self.env["product.pricelist"].browse(order["data"]["pricelist_id"]) + pricelist_id = self.env["product.pricelist"].browse( + order["data"]["pricelist_id"] + ) precision = pricelist_id.currency_id.decimal_places else: precision = self.env.company.currency_id.decimal_places if ( - ( - order["data"].get("fiscal_receipt_number", False) - or order["data"].get("to_invoice", False) - or float_is_zero(order["data"].get("amount_total", 0), precision) - ) - and self.env.company.country_id.id == self.env.ref("base.it").id - ): + order["data"].get("fiscal_receipt_number", False) + or order["data"].get("to_invoice", False) + or float_is_zero(order["data"].get("amount_total", 0), precision) + ) and self.env.company.country_id.id == self.env.ref("base.it").id: order_name = order["data"].get("name") try: - existing_draft_orders = self.search([ - ("pos_reference", "=", order_name), - ("state", "=", "draft"), - ]) + existing_draft_orders = self.search( + [ + ("pos_reference", "=", order_name), + ("state", "=", "draft"), + ] + ) for existing_draft_order in existing_draft_orders: - process_order_ids.append(self._process_order(order, False, existing_draft_order)) + process_order_ids.append( + self._process_order(order, False, existing_draft_order) + ) except Exception as e: - _logger.exception("An error occurred when processing the PoS order %s", order_name) - pos_session = self.env["pos.session"].browse(order["data"].get("pos_session_id", 0)) + _logger.exception( + "An error occurred when processing the PoS order %s", order_name + ) + pos_session = self.env["pos.session"].browse( + order["data"].get("pos_session_id", 0) + ) pos_session._handle_order_process_fail(order, e, draft) raise if process_order_ids: @@ -91,7 +98,7 @@ def create_from_ui(self, orders, draft=False): return order_ids def _export_for_ui(self, order): - result = super(PosOrder, self)._export_for_ui(order) + result = super()._export_for_ui(order) result.update( { "lottery_code": order.lottery_code, diff --git a/fiscal_epos_print/models/pos_payment.py b/fiscal_epos_print/models/pos_payment.py index d83642097e51..22320ae09b80 100644 --- a/fiscal_epos_print/models/pos_payment.py +++ b/fiscal_epos_print/models/pos_payment.py @@ -5,7 +5,7 @@ class PosPayment(models.Model): _inherit = "pos.payment" def _export_for_ui(self, payment): - res = super(PosPayment, self)._export_for_ui(payment) + res = super()._export_for_ui(payment) res[ "fiscalprinter_payment_type" ] = payment.payment_method_id.fiscalprinter_payment_type diff --git a/fiscal_epos_print/pyproject.toml b/fiscal_epos_print/pyproject.toml new file mode 100644 index 000000000000..4231d0cccb3d --- /dev/null +++ b/fiscal_epos_print/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/fiscal_epos_print/readme/CONFIGURE.rst b/fiscal_epos_print/readme/CONFIGURE.md similarity index 70% rename from fiscal_epos_print/readme/CONFIGURE.rst rename to fiscal_epos_print/readme/CONFIGURE.md index 32c1b325b962..bf6973414149 100644 --- a/fiscal_epos_print/readme/CONFIGURE.rst +++ b/fiscal_epos_print/readme/CONFIGURE.md @@ -1,16 +1,21 @@ **Italiano** - stampare la lista dei reparti della vostra stampante fiscale -- mappare le imposta di vendita di odoo con i gruppi di imposte - dipartimenti della stampante fiscale, per ogni imposta di vendita in odoo, usando il campo "Reparto sulla stampante fiscale 1~99" +- mappare le imposta di vendita di odoo con i gruppi di imposte - dipartimenti della + stampante fiscale, per ogni imposta di vendita in odoo, usando il campo "Reparto sulla + stampante fiscale 1~99" - in odoo, utilizzare imposte incluse nel prezzo - connettere la vostra stampante fiscale alla rete locale e recuperare l'IP -- aprire la configurazione POS e impostare l'indirizzo IP e il seriale della stampante nella sezione "Stampante Fiscale" -- è tutto, alla validazione del pagamento nella sessione POS, il sistema stamperà lo scontrino fiscale. +- aprire la configurazione POS e impostare l'indirizzo IP e il seriale della stampante + nella sezione "Stampante Fiscale" +- è tutto, alla validazione del pagamento nella sessione POS, il sistema stamperà lo + scontrino fiscale. **English** - print list departments of your fiscal printer -- map odoo sale taxes with taxes groups - departments of fiscal printer, for each sale tax on odoo, using field "Department on fiscal printer 1~99" +- map odoo sale taxes with taxes groups - departments of fiscal printer, for each sale + tax on odoo, using field "Department on fiscal printer 1~99" - in odoo, use taxes included in price - connect your fiscal printer to local network and find IP - open POS configuration and fill Printer IP Address field diff --git a/fiscal_epos_print/readme/CONTRIBUTORS.md b/fiscal_epos_print/readme/CONTRIBUTORS.md new file mode 100644 index 000000000000..1575d667cd9e --- /dev/null +++ b/fiscal_epos_print/readme/CONTRIBUTORS.md @@ -0,0 +1,6 @@ +- Leonardo Donelli +- [TAKOBI](https://takobi.online): + - Lorenzo Battistini +- Alessio Gerace +- Roberto Fichera +- Giuseppe Borruso \<\> diff --git a/fiscal_epos_print/readme/CONTRIBUTORS.rst b/fiscal_epos_print/readme/CONTRIBUTORS.rst deleted file mode 100644 index 09869034fa01..000000000000 --- a/fiscal_epos_print/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,9 +0,0 @@ -* Leonardo Donelli - -* `TAKOBI `_: - - * Lorenzo Battistini - -* Alessio Gerace -* Roberto Fichera -* Giuseppe Borruso diff --git a/fiscal_epos_print/readme/DESCRIPTION.rst b/fiscal_epos_print/readme/DESCRIPTION.md similarity index 53% rename from fiscal_epos_print/readme/DESCRIPTION.rst rename to fiscal_epos_print/readme/DESCRIPTION.md index 79e99ca5043e..2b2cd39cf992 100644 --- a/fiscal_epos_print/readme/DESCRIPTION.rst +++ b/fiscal_epos_print/readme/DESCRIPTION.md @@ -1,6 +1,7 @@ **Italiano** -Questo modulo permette di stampare gli scontrini del punto vendita, su stampanti fiscali Epson, tramite protocollo EPos +Questo modulo permette di stampare gli scontrini del punto vendita, su stampanti fiscali +Epson, tramite protocollo EPos Stampanti supportate: @@ -9,8 +10,8 @@ Stampanti supportate: **English** -This module allows to print receipt of point of sale, -on fiscal printers Epson, via EPos protocol. +This module allows to print receipt of point of sale, on fiscal printers Epson, via EPos +protocol. Supported printers: diff --git a/fiscal_epos_print/readme/ROADMAP.md b/fiscal_epos_print/readme/ROADMAP.md new file mode 100644 index 000000000000..9a513838544f --- /dev/null +++ b/fiscal_epos_print/readme/ROADMAP.md @@ -0,0 +1,4 @@ +- Resi: + - Aggiungere controllo "rendibilità" + - Stampare sullo scontrino un barcode identificativo, in modo da generare il reso + facendone la scansione diff --git a/fiscal_epos_print/readme/ROADMAP.rst b/fiscal_epos_print/readme/ROADMAP.rst deleted file mode 100644 index c6e3f2993281..000000000000 --- a/fiscal_epos_print/readme/ROADMAP.rst +++ /dev/null @@ -1,3 +0,0 @@ -* Resi: - - Aggiungere controllo "rendibilità" - - Stampare sullo scontrino un barcode identificativo, in modo da generare il reso facendone la scansione diff --git a/fiscal_epos_print/static/description/index.html b/fiscal_epos_print/static/description/index.html index aae746973707..38c172ce8fbf 100644 --- a/fiscal_epos_print/static/description/index.html +++ b/fiscal_epos_print/static/description/index.html @@ -1,20 +1,19 @@ - - + ITA - Driver per stampanti fiscali compatibili ePOS-Print XML + + +
+

ITA - Bolle doganali

+ + +

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

+

This module enables to manage extraUE import purchases, generating a +bill of entry according to the supplier invoice.

+

It involves three documents:

+
    +
  • Supplier Invoice
  • +
  • Forwarder Invoice
  • +
  • Bill of Entry
  • +
+

Table of contents

+ +
+

Configuration

+

English

+

Mandatory settings:

+
    +
  • An account journal required by the closing transfer account move +(e.g. “Bolle Doganali”).
  • +
  • An account journal for extraUE supplier invoices, apart from ordinary +supplier invoices. In this way, extraUE supplier invoices don’t +appear in VAT registries; in this way, VAT registries have no missing +numbers.
  • +
  • Create the “Extra UE goods purchases” and add a tax mapping: purchase +taxes (e.g. 22%) should be mapped to to no one tax. In this way, +every purchase invoice for extra UE fiscal position don’t show taxes +in lines, according to law.
  • +
  • A virtual supplier (e.g. “Customs” or “Dogana”) for the bill of +entry.
  • +
  • The forwarder as a real supplier.
  • +
+

Optional settings:

+
    +
  • An expense account where recording the bill of entry net amount (e.g. +“ACQUISTO MERCI ExtraUE”).
  • +
  • An expense account where recording the bill of entry VAT amount, paid +in advance by the forwarder and declared in the forwarder invoice +(e.g. “SPESE DOGANALI ANTICIPATE”).
  • +
  • An account tax, with the same VAT rate as the ordinary one (i.e. 22% +for Italy), applied on the bill of entry net amount (e.g. “22% debito +ExtraUE”). In this way, bill of entries are highlighted in VAT +registries due to this tax code.
  • +
  • An account for delivery expenses, recorded in the forwarder invoice +(e.g. “SPESE DI TRASPORTO”).
  • +
  • An account for customs duties, recorded in the forwarder invoice +(e.g. “DIRITTI DOGANALI”).
  • +
  • An account for stamp duties, recorded in the forwarder invoice (e.g. +“IMPOSTE DI BOLLO”).
  • +
+

Italiano

+

Impostazioni obbligatorie:

+
    +
  • Un registro utilizzato per la registrazione di giroconto (ad es. +“Bolle Doganali” o “Varie”) da impostare in configurazione +contabilità.
  • +
  • Un imposta con aliquota standard da applicare alla bolla doganale (ad +es. “22% credito ExtraUE”) da impostare in configurazione +contabilità. In questo modo questa imposta viene evidenziata nei +registri IVA.
  • +
  • Un fornitore “Dogana” per le bolle doganali, da impostare in +configurazione contabilità.
  • +
  • Un registro per le fatture dei fornitori extra UE, distinto da quello +delle fatture passive ordinarie. In questo modo, le fatture dei +fornitori extra non appariranno nei registri IVA ed i registri IVA +non avranno numeri mancanti.
  • +
  • Una posizione fiscale “Acquisti beni extra UE” e aggiungere la +mappatura: l’imposta d’acquisto (ad es. 22%) deve essere mappata a +nessuna imposta. In questo modo, ogni fattura passive per questa +posizione fiscale non avrà imposte sulle righe.
  • +
  • Il fornitore spedizioniere
  • +
+

Impostazioni opzionali:

+
    +
  • Un conto di costo dove registrare l’importo netto della bolla +doganale (ad es. “ACQUISTO MERCI ExtraUE”), da associare +eventualmente ai prodotti acquistati extra UE
  • +
  • Un conto di costo dove registrare l’importo dell’IVA della bolla +doganale, pagata in anticipo dello spedizioniere e evidenziata nella +fattura dello spedizioniere (ad es. “SPESE DOGANALI ANTICIPATE”).
  • +
  • Un conto per le spese di consegna, registrate nella fattura +spedizioniere (ad es. “SPESE DI TRASPORTO”)
  • +
  • Un conto per i diritti doganali, registrati nella fattura +spedizioniere (ad es. “DIRITTI DOGANALI”)
  • +
  • Un conto per le imposte di bollo, registrate nella fattura +spedizioniere (ad es. “IMPOSTE DI BOLLO”)
  • +
+
+
+

Usage

+

English

+

From supplier invoice it is possible to generate the bill of entry.

+

The forwarder invoice requires one (or more) line(s) marked as the +advance customs vat.

+

At the forwarder invoice confirmation, it will be linked to the closing +transfer account move, which closes and reconciles the bill of entry.

+

Italiano

+

Dalla fattura fornitore è possibile generare la bolla doganale.

+

Nella fattura spedizioniere bisogna indicare quale (o quali) riga +(righe) rappresenti(no) l’IVA anticipata alla dogana.

+

Alla conferma della fattura spedizioniere, verrà generata la scrittura +contabile di giroconto per chiudere la bolla doganale.

+
+
+

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

+
    +
  • Agile Business Group
  • +
  • CQ Creativi Quadrati
  • +
  • TAKOBI
  • +
+
+
+

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.

+

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_bill_of_entry/tests/__init__.py b/l10n_it_bill_of_entry/tests/__init__.py new file mode 100644 index 000000000000..ef742365d7a5 --- /dev/null +++ b/l10n_it_bill_of_entry/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import test_bill_of_entry diff --git a/l10n_it_bill_of_entry/tests/test_bill_of_entry.py b/l10n_it_bill_of_entry/tests/test_bill_of_entry.py new file mode 100644 index 000000000000..19513c4a1e63 --- /dev/null +++ b/l10n_it_bill_of_entry/tests/test_bill_of_entry.py @@ -0,0 +1,284 @@ +# Copyright 2017 CQ Creativi Quadrati (http://www.creativiquadrati.it) +# Copyright 2017 Diego Bruselli +# Copyright 2022 Simone Rubino - TAKOBI +# Copyright 2023 Simone Rubino - Aion Tech +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo.exceptions import UserError +from odoo.fields import first +from odoo.tests.common import Form, tagged + +from odoo.addons.account.tests.common import AccountTestInvoicingCommon + + +@tagged("post_install", "-at_install") +class TestBillOfEntry(AccountTestInvoicingCommon): + def _create_invoice(self, partner, customs_doc_type, journal, products_list): + invoice = self.init_invoice( + "in_invoice", + partner=partner, + ) + invoice_form = Form(invoice) + if customs_doc_type: + invoice_form.customs_doc_type = customs_doc_type + if journal: + invoice_form.journal_id = journal + for product, qty, price in products_list: + with invoice_form.invoice_line_ids.new() as line: + line.product_id = product + line.price_unit = price + line.quantity = qty + + invoice = invoice_form.save() + return invoice + + def setUp(self): + super().setUp() + + self.account_model = self.env["account.account"] + self.tax_model = self.env["account.tax"] + self.journal_model = self.env["account.journal"] + self.invoice_model = self.env["account.move"] + self.inv_line_model = self.env["account.move.line"] + self.move_line_model = self.env["account.move.line"] + self.fp_model = self.env["account.fiscal.position"] + self.fp_tax_model = self.env["account.fiscal.position.tax"] + + demo_data_company = self.env.ref("base.main_company") + self.env.user.company_ids |= demo_data_company + self.env.user.company_id = demo_data_company + + # Default accounts for invoice line account_id + self.account_revenue = self.account_model.search( + [("account_type", "=", "income")], limit=1 + ) + # Default purchase journal + self.journal = self.journal_model.search([("type", "=", "purchase")], limit=1) + # Extra EU purchase journal for differentiate + # extra EU purchase invoices from ordinary ones + self.extra_journal = self.env.ref( + "l10n_it_bill_of_entry.account_journal_purchase_extraEU" + ) + # Bill of entry storno journal + self.company = self.env.ref("base.main_company") + self.bill_of_entry_journal = self.journal_model.create( + { + "name": "bill_of_entry_journal", + "type": "general", + "code": "BOE", + } + ) + self.company.bill_of_entry_journal_id = self.bill_of_entry_journal.id + + # Extra EU fiscal position tax correspondence + self.tax22 = self.tax_model.create( + { + "name": "22%", + "amount": 22, + "amount_type": "percent", + "type_tax_use": "purchase", + "tax_group_id": self.env.ref("account.tax_group_taxes").id, + } + ) + self.fiscpos_extra = self.env.ref( + "l10n_it_bill_of_entry.fiscal_position_extraEU" + ) + self.fp_tax_model.create( + { + "position_id": self.fiscpos_extra.id, + "tax_src_id": self.tax22.id, + } + ) + + # Delivery Expense account + self.account_delivery_expense = self.env.ref( + "l10n_it_bill_of_entry.account_account_delivery_expense" + ) + + # Extra EU purchase journal + self.journal_extra = self.env.ref( + "l10n_it_bill_of_entry.account_journal_purchase_extraEU" + ) + + # Products + self.product1 = self.env.ref("product.product_delivery_01") + self.product1.write( + { + "supplier_taxes_id": [(6, 0, [self.tax22.id])], + } + ) + self.tax_22extraUE = self.env.ref("l10n_it_bill_of_entry.tax_22extraUE") + self.product_extra = self.env.ref( + "l10n_it_bill_of_entry.product_product_extraEU_purchase" + ) + self.product_extra.supplier_taxes_id = [(6, 0, self.tax_22extraUE.ids)] + self.adv_customs_expense = self.env.ref( + "l10n_it_bill_of_entry.product_product_adv_customs_expense" + ) + self.customs_expense = self.env.ref( + "l10n_it_bill_of_entry.product_product_customs_expense" + ) + self.product_delivery = self.env.ref( + "l10n_it_bill_of_entry.product_product_delivery" + ) + self.product_delivery.supplier_taxes_id = [(6, 0, [self.tax22.id])] + self.product_stamp = self.env.ref( + "l10n_it_bill_of_entry.product_product_stamp_duties" + ) + + # Partners + self.customs = self.env.ref("l10n_it_bill_of_entry.partner_customs") + self.supplier = self.env.ref("base.res_partner_1") + self.supplier.property_account_position_id = self.fiscpos_extra.id + self.forwarder = self.env.ref("base.res_partner_12") + + # Extra EU supplier invoice - draft state + self.supplier_invoice = self._create_invoice( + self.supplier, + "supplier_invoice", + self.journal_extra, + [ + (self.product1, 1, 2500), + ], + ) + + # Bill of Entry - draft state + self.bill_of_entry = self._create_invoice( + self.customs, + "bill_of_entry", + self.journal, + [ + (self.product_extra, 1, 2500), + ], + ) + bill_of_entry_form = Form(self.bill_of_entry) + bill_of_entry_form.supplier_invoice_ids.clear() + bill_of_entry_form.supplier_invoice_ids.add(self.supplier_invoice) + bill_of_entry_form.save() + + # Forwarder Invoice - draft state + self.forwarder_invoice = self._create_invoice( + self.forwarder, + "forwarder_invoice", + self.journal, + [ + (self.product_delivery, 1, 300), + (self.adv_customs_expense, 1, 550), + ], + ) + forwarder_invoice_form = Form(self.forwarder_invoice) + with forwarder_invoice_form.invoice_line_ids.edit(1) as line: + line.advance_customs_vat = True + line.tax_ids.clear() + forwarder_invoice_form.save() + self.adv_customs_expense_line = ( + self.forwarder_invoice.invoice_line_ids.filtered("advance_customs_vat") + ) + self.forwarder_invoice.update( + { + "forwarder_bill_of_entry_ids": [(4, self.bill_of_entry.id)], + } + ) + + demo_data_company.bill_of_entry_tax_id = ( + demo_data_company.account_purchase_tax_id.copy() + ) + demo_data_company.bill_of_entry_partner_id = self.env[ + "res.partner" + ].name_create("Customs") + + def test_generate_bill_of_entry_required_configurations(self): + company = self.env.company + missing_configurations_fields = [ + "bill_of_entry_tax_id", + "bill_of_entry_partner_id", + ] + fields_dict = company.fields_get( + allfields=missing_configurations_fields, + attributes=["string"], + ) + supplier_invoice = self.supplier_invoice + for field_name in missing_configurations_fields: + # Save and empty the configuration + configuration_value = company[field_name] + company[field_name] = False + + # Assert it is needed for generating the bill of entry + with self.assertRaises(UserError) as ue: + supplier_invoice.generate_bill_of_entry() + exc_message = ue.exception.args[0] + field_attributes = fields_dict.get(field_name) + self.assertIn(field_attributes.get("string"), exc_message) + + # Restore the configuration + company[field_name] = configuration_value + + def test_generate_bill_of_entry(self): + bill_of_entry_action = self.supplier_invoice.generate_bill_of_entry() + bill_of_entry_model = bill_of_entry_action.get("res_model") + bill_of_entry_id = bill_of_entry_action.get("res_id") + bill_of_entry = self.env[bill_of_entry_model].browse(bill_of_entry_id) + self.assertTrue(bill_of_entry) + self.assertEqual(bill_of_entry.state, "draft") + + def test_storno_create(self): + # Validate bill of entry + self.bill_of_entry.action_post() + + # Validate forwarder invoice + self.forwarder_invoice.action_post() + + # Storno Bill of Entry account.move + storno = self.forwarder_invoice.bill_of_entry_storno_id + self.assertTrue(storno) + self.assertEqual(storno.date, self.forwarder_invoice.invoice_date) + + # Advance Customs Expense account.move.line + move_line_domain = [ + ("account_id", "=", self.adv_customs_expense_line.account_id.id), + ("debit", "=", 0.0), + ("credit", "=", self.adv_customs_expense_line.price_subtotal), + ("partner_id", "=", self.adv_customs_expense_line.partner_id.id), + ("product_id", "=", self.adv_customs_expense_line.product_id.id), + ] + adv_customs_expense_moveline = self.move_line_model.search(move_line_domain) + self.assertEqual(len(adv_customs_expense_moveline), 1) + + # Customs Expense account.move.lines + boe_payable_lines = self.bill_of_entry.line_ids.filtered( + lambda line: line.account_type == "liability_payable" + ) + boe_account = first(boe_payable_lines).account_id + move_line_domain = [ + ("account_id", "=", boe_account.id), + ("debit", "=", self.bill_of_entry.amount_total), + ("credit", "=", 0.0), + ("partner_id", "=", self.bill_of_entry.partner_id.id), + ] + customs_expense_moveline = self.move_line_model.search(move_line_domain) + self.assertEqual(len(customs_expense_moveline), 1) + + # Extra EU goods purchase account.move.lines + for boe_line in self.bill_of_entry.invoice_line_ids: + move_line_domain = [ + ("account_id", "=", boe_line.account_id.id), + ("debit", "=", 0.0), + ("credit", "=", boe_line.price_subtotal), + ("partner_id", "=", boe_line.partner_id.id), + ("product_id", "=", boe_line.product_id.id), + ] + extraeu_expense_moveline = self.move_line_model.search(move_line_domain) + self.assertEqual(len(extraeu_expense_moveline), 1) + + # Storno - BoE reconciliation (supplier debit account) + storno_reconcile_ids = ( + storno.line_ids.filtered(lambda line: line.full_reconcile_id) + .mapped("full_reconcile_id") + .ids + ) + boe_reconcile_ids = ( + self.bill_of_entry.line_ids.filtered(lambda line: line.full_reconcile_id) + .mapped("full_reconcile_id") + .ids + ) + self.assertEqual(sorted(storno_reconcile_ids), sorted(boe_reconcile_ids)) diff --git a/l10n_it_bill_of_entry/views/account_invoice_view.xml b/l10n_it_bill_of_entry/views/account_invoice_view.xml new file mode 100644 index 000000000000..37bc692d68fe --- /dev/null +++ b/l10n_it_bill_of_entry/views/account_invoice_view.xml @@ -0,0 +1,256 @@ + + + + + invoice.supplier.boe.form + account.move + + +
+ + + +
+ +
-
+
+

+

-
+ diff --git a/l10n_it_delivery_note/views/stock_picking.xml b/l10n_it_delivery_note/views/stock_picking.xml index 2b52690af606..c7e3d5f460f3 100644 --- a/l10n_it_delivery_note/views/stock_picking.xml +++ b/l10n_it_delivery_note/views/stock_picking.xml @@ -358,9 +358,9 @@ aria-label="Go to delivery note" title="Go to delivery note" /> - - - + + + @@ -388,6 +388,18 @@ domain="[('delivery_note_state', '=', 'confirm')]" /> + + + + diff --git a/l10n_it_delivery_note/wizard/delivery_note_base.py b/l10n_it_delivery_note/wizard/delivery_note_base.py index 8bfb71783e17..7e8b03757eee 100644 --- a/l10n_it_delivery_note/wizard/delivery_note_base.py +++ b/l10n_it_delivery_note/wizard/delivery_note_base.py @@ -15,6 +15,9 @@ def _default_stock_pickings(self): return self.env["stock.picking"].browse(active_ids) + def _domain_type_id(self): + return [("company_id", "in", [False, self.env.company.id])] + selected_picking_ids = fields.Many2many( "stock.picking", default=_default_stock_pickings, readonly=True ) @@ -28,7 +31,11 @@ def _default_stock_pickings(self): partner_shipping_id = fields.Many2one("res.partner", string="Shipping address") date = fields.Date() - type_id = fields.Many2one("stock.delivery.note.type", string="Type") + type_id = fields.Many2one( + "stock.delivery.note.type", + string="Type", + domain=_domain_type_id, + ) error_message = fields.Html(compute="_compute_fields") diff --git a/l10n_it_delivery_note/wizard/delivery_note_create.py b/l10n_it_delivery_note/wizard/delivery_note_create.py index 5b1a3dffaab3..36078baa9f74 100644 --- a/l10n_it_delivery_note/wizard/delivery_note_create.py +++ b/l10n_it_delivery_note/wizard/delivery_note_create.py @@ -21,9 +21,9 @@ def _default_type(self): picking_ids = self.env["stock.picking"].browse(active_ids) if picking_ids: type_code = picking_ids[0].picking_type_id.code - + company_id = picking_ids[0].company_id return self.env["stock.delivery.note.type"].search( - [("code", "=", type_code)], limit=1 + [("code", "=", type_code), ("company_id", "=", company_id.id)], limit=1 ) else: @@ -69,6 +69,8 @@ def _onchange_partner(self): def _prepare_delivery_note_vals(self, sale_order_id): return { + "company_id": self.selected_picking_ids.mapped("company_id")[:1].id + or False, "partner_sender_id": self.partner_sender_id.id, "partner_id": self.partner_id.id, "partner_shipping_id": self.partner_shipping_id.id, diff --git a/l10n_it_delivery_note_base/README.rst b/l10n_it_delivery_note_base/README.rst index 77ca6c33c47f..eda2aeb5fd8e 100644 --- a/l10n_it_delivery_note_base/README.rst +++ b/l10n_it_delivery_note_base/README.rst @@ -7,7 +7,7 @@ ITA - Documento di trasporto - Base !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:f8dff9a689773fe3914118b19b0a7c468530e6bd60da2fac0997c87fa4d612e6 + !! source digest: sha256:d03710f09c501dc636d6eca2ab82b185fe2e6b382d7ffd2c8eb930e51ec19050 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -32,17 +32,15 @@ ITA - Documento di trasporto - Base This module is base layer. -Within there are principal tables, -so anybody can use it with another modules. - +Within there are principal tables, so anybody can use it with another +modules. **Italiano** Questo modulo è un livello base. -All'interno ci sono le tabelle principali, -in modo che chiunque possa usarlo con altri -moduli. +All'interno ci sono le tabelle principali, in modo che chiunque possa +usarlo con altri moduli. **Table of contents** @@ -63,27 +61,27 @@ Credits ======= Authors -~~~~~~~ +------- * Marco Calcagni * Gianmarco Conte * Link IT Europe Srl Contributors -~~~~~~~~~~~~ - -* Riccardo Bellanova -* Matteo Bilotta -* Giuseppe Borruso -* Marco Calcagni -* Marco Colombo -* Gianmarco Conte -* Letizia Freda -* Andrea Piovesana -* Nextev Srl +------------ + +- Riccardo Bellanova +- Matteo Bilotta +- Giuseppe Borruso +- Marco Calcagni +- Marco Colombo +- Gianmarco Conte +- Letizia Freda +- Andrea Piovesana +- Nextev Srl Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. diff --git a/l10n_it_delivery_note_base/i18n/it.po b/l10n_it_delivery_note_base/i18n/it.po index 74425e86ab01..35e99f26af28 100644 --- a/l10n_it_delivery_note_base/i18n/it.po +++ b/l10n_it_delivery_note_base/i18n/it.po @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-08 13:58+0000\n" -"PO-Revision-Date: 2022-04-20 17:05+0000\n" -"Last-Translator: Francesco Foresti \n" +"PO-Revision-Date: 2023-11-12 17:39+0000\n" +"Last-Translator: mymage \n" "Language-Team: \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.3.2\n" +"X-Generator: Weblate 4.17\n" #. module: l10n_it_delivery_note_base #: model:ir.model.fields,field_description:l10n_it_delivery_note_base.field_stock_delivery_note_type__active @@ -93,7 +93,7 @@ msgstr "Caricato in fattura" #. module: l10n_it_delivery_note_base #: model:ir.model,name:l10n_it_delivery_note_base.model_res_company msgid "Companies" -msgstr "" +msgstr "Aziende" #. module: l10n_it_delivery_note_base #: model:ir.model.fields,field_description:l10n_it_delivery_note_base.field_stock_delivery_note_type__company_id @@ -184,7 +184,7 @@ msgstr "In arrivo" #: code:addons/l10n_it_delivery_note_base/models/stock_delivery_note_type.py:0 #, python-format msgid "Incoming DdT sequence" -msgstr "" +msgstr "Sequenza DdT in ingresso" #. module: l10n_it_delivery_note_base #: model:ir.model.fields.selection,name:l10n_it_delivery_note_base.selection__stock_delivery_note_type__code__internal @@ -196,7 +196,7 @@ msgstr "Interno" #: code:addons/l10n_it_delivery_note_base/models/stock_delivery_note_type.py:0 #, python-format msgid "Internal DdT sequence" -msgstr "" +msgstr "Sequenza DdT interni" #. module: l10n_it_delivery_note_base #: model:ir.model.fields,field_description:l10n_it_delivery_note_base.field_stock_delivery_note_type__note @@ -314,7 +314,7 @@ msgstr "In uscita (con prezzi)" #: code:addons/l10n_it_delivery_note_base/models/stock_delivery_note_type.py:0 #, python-format msgid "Outgoing DdT sequence" -msgstr "" +msgstr "Sequenza DdT in uscita" #. module: l10n_it_delivery_note_base #: model:stock.picking.goods.appearance,name:l10n_it_delivery_note_base.goods_appearance_BAN diff --git a/l10n_it_delivery_note_base/pyproject.toml b/l10n_it_delivery_note_base/pyproject.toml new file mode 100644 index 000000000000..4231d0cccb3d --- /dev/null +++ b/l10n_it_delivery_note_base/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/l10n_it_delivery_note_base/readme/CONTRIBUTORS.md b/l10n_it_delivery_note_base/readme/CONTRIBUTORS.md new file mode 100644 index 000000000000..2d21a0215072 --- /dev/null +++ b/l10n_it_delivery_note_base/readme/CONTRIBUTORS.md @@ -0,0 +1,9 @@ +- Riccardo Bellanova \<\> +- Matteo Bilotta \<\> +- Giuseppe Borruso \<\> +- Marco Calcagni \<\> +- Marco Colombo \<\> +- Gianmarco Conte \<\> +- Letizia Freda \<\> +- Andrea Piovesana \<\> +- Nextev Srl \<\> diff --git a/l10n_it_delivery_note_base/readme/CONTRIBUTORS.rst b/l10n_it_delivery_note_base/readme/CONTRIBUTORS.rst deleted file mode 100644 index da7e3588eb66..000000000000 --- a/l10n_it_delivery_note_base/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,9 +0,0 @@ -* Riccardo Bellanova -* Matteo Bilotta -* Giuseppe Borruso -* Marco Calcagni -* Marco Colombo -* Gianmarco Conte -* Letizia Freda -* Andrea Piovesana -* Nextev Srl diff --git a/l10n_it_delivery_note_base/readme/DESCRIPTION.md b/l10n_it_delivery_note_base/readme/DESCRIPTION.md new file mode 100644 index 000000000000..8fbc2fde4e3c --- /dev/null +++ b/l10n_it_delivery_note_base/readme/DESCRIPTION.md @@ -0,0 +1,12 @@ +**English** + +This module is base layer. + +Within there are principal tables, so anybody can use it with another modules. + +**Italiano** + +Questo modulo è un livello base. + +All'interno ci sono le tabelle principali, in modo che chiunque possa usarlo con altri +moduli. diff --git a/l10n_it_delivery_note_base/readme/DESCRIPTION.rst b/l10n_it_delivery_note_base/readme/DESCRIPTION.rst deleted file mode 100644 index d7e3f0b67277..000000000000 --- a/l10n_it_delivery_note_base/readme/DESCRIPTION.rst +++ /dev/null @@ -1,15 +0,0 @@ -**English** - -This module is base layer. - -Within there are principal tables, -so anybody can use it with another modules. - - -**Italiano** - -Questo modulo è un livello base. - -All'interno ci sono le tabelle principali, -in modo che chiunque possa usarlo con altri -moduli. diff --git a/l10n_it_delivery_note_base/static/description/index.html b/l10n_it_delivery_note_base/static/description/index.html index e2bc5bd71eea..44c398bab025 100644 --- a/l10n_it_delivery_note_base/static/description/index.html +++ b/l10n_it_delivery_note_base/static/description/index.html @@ -1,4 +1,3 @@ - @@ -367,18 +366,17 @@

ITA - Documento di trasporto - Base

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:f8dff9a689773fe3914118b19b0a7c468530e6bd60da2fac0997c87fa4d612e6 +!! source digest: sha256:d03710f09c501dc636d6eca2ab82b185fe2e6b382d7ffd2c8eb930e51ec19050 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

English

This module is base layer.

-

Within there are principal tables, -so anybody can use it with another modules.

+

Within there are principal tables, so anybody can use it with another +modules.

Italiano

Questo modulo è un livello base.

-

All’interno ci sono le tabelle principali, -in modo che chiunque possa usarlo con altri -moduli.

+

All’interno ci sono le tabelle principali, in modo che chiunque possa +usarlo con altri moduli.

Table of contents

    diff --git a/l10n_it_delivery_note_batch/README.rst b/l10n_it_delivery_note_batch/README.rst index 51145b2abd20..f4d04db047c6 100644 --- a/l10n_it_delivery_note_batch/README.rst +++ b/l10n_it_delivery_note_batch/README.rst @@ -7,7 +7,7 @@ ITA - Documento di trasporto - Prelievo raggruppato !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:b89990d92faff99e5f35e2c53c4b46bb96070744f4aade5bbef863619b9200fa + !! source digest: sha256:6500f0979c9b55298edbf0666512d100ac847d87f792b2699294c1acfe3ca179 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -30,7 +30,8 @@ ITA - Documento di trasporto - Prelievo raggruppato **Italiano** -Questo modulo permette la creazione di DDT a partire da gruppi di prelievi. +Questo modulo permette la creazione di DDT a partire da gruppi di +prelievi. **English** @@ -44,11 +45,9 @@ This module creates delivery documents from picking groups. Usage ===== -**Italiano** -Da fare. +**Italiano** Da fare. -**English** -TBD +**English** TBD Bug Tracker =========== @@ -64,19 +63,19 @@ Credits ======= Authors -~~~~~~~ +------- * Marco Colombo Contributors -~~~~~~~~~~~~ +------------ -* Marco Colombo -* Andrea Piovesana -* Francesco Apruzzese +- Marco Colombo +- Andrea Piovesana +- Francesco Apruzzese Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -97,10 +96,19 @@ promote its widespread use. .. |maintainer-Borruso| image:: https://github.com/Borruso.png?size=40px :target: https://github.com/Borruso :alt: Borruso +.. |maintainer-aleuffre| image:: https://github.com/aleuffre.png?size=40px + :target: https://github.com/aleuffre + :alt: aleuffre +.. |maintainer-PicchiSeba| image:: https://github.com/PicchiSeba.png?size=40px + :target: https://github.com/PicchiSeba + :alt: PicchiSeba +.. |maintainer-renda-dev| image:: https://github.com/renda-dev.png?size=40px + :target: https://github.com/renda-dev + :alt: renda-dev Current `maintainers `__: -|maintainer-MarcoCalcagni| |maintainer-TheMule71| |maintainer-Borruso| +|maintainer-MarcoCalcagni| |maintainer-TheMule71| |maintainer-Borruso| |maintainer-aleuffre| |maintainer-PicchiSeba| |maintainer-renda-dev| This module is part of the `OCA/l10n-italy `_ project on GitHub. diff --git a/l10n_it_delivery_note_batch/__manifest__.py b/l10n_it_delivery_note_batch/__manifest__.py index 1ad3fc198433..aae26ebe1985 100644 --- a/l10n_it_delivery_note_batch/__manifest__.py +++ b/l10n_it_delivery_note_batch/__manifest__.py @@ -8,10 +8,17 @@ "summary": "Crea i DDT partendo da gruppi di prelievi", "author": "Marco Colombo, Odoo Community Association (OCA)", "website": "https://github.com/OCA/l10n-italy" "l10n_it_delivery_note_batch", - "version": "16.0.1.0.1", + "version": "16.0.1.1.0", "category": "Localization/Italy", "license": "AGPL-3", - "maintainers": ["MarcoCalcagni", "TheMule71", "Borruso"], + "maintainers": [ + "MarcoCalcagni", + "TheMule71", + "Borruso", + "aleuffre", + "PicchiSeba", + "renda-dev", + ], "depends": [ "stock", "stock_picking_batch", diff --git a/l10n_it_delivery_note_batch/i18n/it.po b/l10n_it_delivery_note_batch/i18n/it.po index ed6475007812..a1af1d099cec 100644 --- a/l10n_it_delivery_note_batch/i18n/it.po +++ b/l10n_it_delivery_note_batch/i18n/it.po @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-10-15 08:41+0000\n" -"PO-Revision-Date: 2023-06-15 11:08+0000\n" -"Last-Translator: Francesco Foresti \n" +"PO-Revision-Date: 2024-02-27 13:35+0000\n" +"Last-Translator: mymage \n" "Language-Team: \n" "Language: it\n" "MIME-Version: 1.0\n" @@ -17,6 +17,11 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.17\n" +#. module: l10n_it_delivery_note_batch +#: model:ir.model.fields,field_description:l10n_it_delivery_note_batch.field_stock_picking_batch__all_pickings_have_delivery_note +msgid "All Pickings Have Delivery Note" +msgstr "Tutti i prelievi hanno note di consegna" + #. module: l10n_it_delivery_note_batch #: model:ir.model.fields,field_description:l10n_it_delivery_note_batch.field_stock_delivery_note__stock_picking_batch_id msgid "Batch Picking" diff --git a/l10n_it_delivery_note_batch/i18n/l10n_it_delivery_note_batch.pot b/l10n_it_delivery_note_batch/i18n/l10n_it_delivery_note_batch.pot index a765038d570f..0d5035d4e72c 100644 --- a/l10n_it_delivery_note_batch/i18n/l10n_it_delivery_note_batch.pot +++ b/l10n_it_delivery_note_batch/i18n/l10n_it_delivery_note_batch.pot @@ -13,6 +13,11 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: l10n_it_delivery_note_batch +#: model:ir.model.fields,field_description:l10n_it_delivery_note_batch.field_stock_picking_batch__all_pickings_have_delivery_note +msgid "All Pickings Have Delivery Note" +msgstr "" + #. module: l10n_it_delivery_note_batch #: model:ir.model.fields,field_description:l10n_it_delivery_note_batch.field_stock_delivery_note__stock_picking_batch_id msgid "Batch Picking" diff --git a/l10n_it_delivery_note_batch/models/stock_picking_batch.py b/l10n_it_delivery_note_batch/models/stock_picking_batch.py index 7bccddbbf424..09b6acbd3f7e 100644 --- a/l10n_it_delivery_note_batch/models/stock_picking_batch.py +++ b/l10n_it_delivery_note_batch/models/stock_picking_batch.py @@ -14,11 +14,20 @@ class StockPickingBatch(models.Model): ) delivery_note_count = fields.Integer(compute="_compute_delivery_note_count") + all_pickings_have_delivery_note = fields.Boolean( + compute="_compute_all_pickings_have_delivery_note" + ) def _compute_delivery_note_count(self): for rec in self: rec.delivery_note_count = len(rec.delivery_note_ids) + def _compute_all_pickings_have_delivery_note(self): + for rec in self: + rec.all_pickings_have_delivery_note = all( + p.delivery_note_id for p in rec.picking_ids + ) + def create_delivery_notes(self, **kwargs): for rec in self: if rec.state != "done": diff --git a/l10n_it_delivery_note_batch/pyproject.toml b/l10n_it_delivery_note_batch/pyproject.toml new file mode 100644 index 000000000000..4231d0cccb3d --- /dev/null +++ b/l10n_it_delivery_note_batch/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/l10n_it_delivery_note_batch/readme/CONTRIBUTORS.md b/l10n_it_delivery_note_batch/readme/CONTRIBUTORS.md new file mode 100644 index 000000000000..09700b4548d9 --- /dev/null +++ b/l10n_it_delivery_note_batch/readme/CONTRIBUTORS.md @@ -0,0 +1,3 @@ +- Marco Colombo \<\> +- Andrea Piovesana \<\> +- Francesco Apruzzese \<\> diff --git a/l10n_it_delivery_note_batch/readme/CONTRIBUTORS.rst b/l10n_it_delivery_note_batch/readme/CONTRIBUTORS.rst deleted file mode 100644 index ec925a74d3bd..000000000000 --- a/l10n_it_delivery_note_batch/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,3 +0,0 @@ -* Marco Colombo -* Andrea Piovesana -* Francesco Apruzzese diff --git a/l10n_it_delivery_note_batch/readme/DESCRIPTION.rst b/l10n_it_delivery_note_batch/readme/DESCRIPTION.md similarity index 100% rename from l10n_it_delivery_note_batch/readme/DESCRIPTION.rst rename to l10n_it_delivery_note_batch/readme/DESCRIPTION.md diff --git a/l10n_it_delivery_note_batch/readme/USAGE.md b/l10n_it_delivery_note_batch/readme/USAGE.md new file mode 100644 index 000000000000..ced1603a5702 --- /dev/null +++ b/l10n_it_delivery_note_batch/readme/USAGE.md @@ -0,0 +1,3 @@ +**Italiano** Da fare. + +**English** TBD diff --git a/l10n_it_delivery_note_batch/readme/USAGE.rst b/l10n_it_delivery_note_batch/readme/USAGE.rst deleted file mode 100644 index 667372f82636..000000000000 --- a/l10n_it_delivery_note_batch/readme/USAGE.rst +++ /dev/null @@ -1,5 +0,0 @@ -**Italiano** -Da fare. - -**English** -TBD diff --git a/l10n_it_delivery_note_batch/static/description/index.html b/l10n_it_delivery_note_batch/static/description/index.html index a2f654bcbddf..d2a853120b23 100644 --- a/l10n_it_delivery_note_batch/static/description/index.html +++ b/l10n_it_delivery_note_batch/static/description/index.html @@ -1,4 +1,3 @@ - @@ -367,11 +366,12 @@

    ITA - Documento di trasporto - Prelievo raggruppato

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:b89990d92faff99e5f35e2c53c4b46bb96070744f4aade5bbef863619b9200fa +!! source digest: sha256:6500f0979c9b55298edbf0666512d100ac847d87f792b2699294c1acfe3ca179 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

    Italiano

    -

    Questo modulo permette la creazione di DDT a partire da gruppi di prelievi.

    +

    Questo modulo permette la creazione di DDT a partire da gruppi di +prelievi.

    English

    This module creates delivery documents from picking groups.

    Table of contents

    @@ -389,10 +389,8 @@

    ITA - Documento di trasporto - Prelievo raggruppato

Usage

-

Italiano -Da fare.

-

English -TBD

+

Italiano Da fare.

+

English TBD

Bug Tracker

@@ -426,7 +424,7 @@

Maintainers

mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainers:

-

MarcoCalcagni TheMule71 Borruso

+

MarcoCalcagni TheMule71 Borruso aleuffre PicchiSeba renda-dev

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_delivery_note_batch/views/stock_picking_batch_views.xml b/l10n_it_delivery_note_batch/views/stock_picking_batch_views.xml index 61dd1472db11..0032db2f6530 100644 --- a/l10n_it_delivery_note_batch/views/stock_picking_batch_views.xml +++ b/l10n_it_delivery_note_batch/views/stock_picking_batch_views.xml @@ -6,6 +6,9 @@ stock.picking.batch +
+ +