From 824cfa09ffb8d5b4d1b52bbd5eeba126c893f23a Mon Sep 17 00:00:00 2001 From: eLBati Date: Mon, 10 Sep 2018 12:27:49 +0200 Subject: [PATCH] l10n_it_ipa ADD is_pa bool field ADD PECDestinatario, CodiceDestinatario , FormatoTrasmissione handling ADD Lotto di fatture verso soggetto privato ADD gestione prodotti nelle fatture passive ADD l10n_it_fatturapa_in_purchase ADD einvoice.line model IMP form fatture ADD Livello di dettaglio Fatture elettroniche ADD PDF preview dell'XML ADD Link to existing supplier invoice and handle "registered" XML ADD rappresentante fiscale e stabile organizzazione in emissione gestione prodotti DatiBollo , DatiCassaPrevidenziale e ScontoMaggiorazione CodiceArticolo, ftpa_line_number MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit IMP "show preview" as link FIX invoice duplication ADD constraints and Nome Cognome Avoid to cancel invoice with XML Mostra i dati fattura elettronica solo se il cliente è soggetto IMP READMEs Gestione IVA inclusa nel prezzo --- l10n_it_account/__manifest__.py | 2 +- l10n_it_account/models/account_tax.py | 10 + l10n_it_fatturapa/README.rst | 88 +- l10n_it_fatturapa/__init__.py | 1 + l10n_it_fatturapa/__manifest__.py | 5 +- l10n_it_fatturapa/controllers/__init__.py | 3 + l10n_it_fatturapa/controllers/main.py | 26 + .../data/fatturaordinaria_v1.2.1.xsl | 3060 +++++++++++++++++ l10n_it_fatturapa/data/fatturapa_data.xml | 2 +- .../demo/account_invoice_fatturapa.xml | 28 + l10n_it_fatturapa/i18n/it.po | 390 ++- l10n_it_fatturapa/models/__init__.py | 1 + l10n_it_fatturapa/models/account.py | 108 +- l10n_it_fatturapa/models/company.py | 36 +- l10n_it_fatturapa/models/ir_attachment.py | 157 + l10n_it_fatturapa/models/partner.py | 61 +- l10n_it_fatturapa/readme/CONFIGURE.rst | 5 + l10n_it_fatturapa/readme/CONTRIBUTORS.rst | 4 + l10n_it_fatturapa/readme/DESCRIPTION.rst | 4 + l10n_it_fatturapa/readme/INSTALL.rst | 2 + .../static/description/index.html | 446 +++ l10n_it_fatturapa/views/account_view.xml | 26 +- l10n_it_fatturapa/views/company_view.xml | 12 +- l10n_it_fatturapa/views/partner_view.xml | 45 +- l10n_it_fatturapa_in/README.rst | 55 +- l10n_it_fatturapa_in/__manifest__.py | 5 +- l10n_it_fatturapa_in/i18n/it.po | 511 ++- l10n_it_fatturapa_in/models/__init__.py | 2 + l10n_it_fatturapa_in/models/account.py | 97 +- l10n_it_fatturapa_in/models/attachment.py | 46 + l10n_it_fatturapa_in/models/company.py | 69 + l10n_it_fatturapa_in/models/partner.py | 29 + l10n_it_fatturapa_in/readme/CONFIGURE.rst | 17 +- l10n_it_fatturapa_in/readme/DESCRIPTION.rst | 11 +- l10n_it_fatturapa_in/readme/INSTALL.rst | 2 +- l10n_it_fatturapa_in/readme/USAGE.rst | 9 +- .../security/ir.model.access.csv | 2 + .../static/description/index.html | 461 +++ .../tests/data/IT01234567890_FPR03.xml | 154 + .../tests/data/IT05979361218_001.xml | 9 + .../tests/data/IT05979361218_003.xml | 4 + .../tests/test_import_fatturapa_xml.py | 140 +- l10n_it_fatturapa_in/views/account_view.xml | 217 +- l10n_it_fatturapa_in/views/company_view.xml | 25 + l10n_it_fatturapa_in/views/partner_view.xml | 22 +- l10n_it_fatturapa_in/wizard/__init__.py | 1 + .../wizard/link_to_existing_invoice.py | 20 + .../wizard/link_to_existing_invoice.xml | 34 + .../wizard/wizard_import_fatturapa.py | 415 ++- .../wizard/wizard_import_fatturapa_view.xml | 12 +- l10n_it_fatturapa_in_purchase/README.rst | 78 + l10n_it_fatturapa_in_purchase/__init__.py | 3 + l10n_it_fatturapa_in_purchase/__manifest__.py | 23 + l10n_it_fatturapa_in_purchase/i18n/it.po | 37 + .../models/__init__.py | 3 + .../models/purchase_order.py | 28 + .../readme/CONTRIBUTORS.rst | 1 + .../readme/DESCRIPTION.rst | 5 + .../readme/USAGE.rst | 1 + .../views/invoice_view.xml | 21 + l10n_it_fatturapa_out/README.rst | 87 +- l10n_it_fatturapa_out/__manifest__.py | 2 +- l10n_it_fatturapa_out/i18n/it.po | 230 +- l10n_it_fatturapa_out/models/account.py | 15 +- l10n_it_fatturapa_out/models/attachment.py | 3 +- l10n_it_fatturapa_out/readme/CONFIGURE.rst | 1 + l10n_it_fatturapa_out/readme/CONTRIBUTORS.rst | 5 + l10n_it_fatturapa_out/readme/DESCRIPTION.rst | 4 + l10n_it_fatturapa_out/readme/USAGE.rst | 2 + .../static/description/index.html | 443 +++ l10n_it_fatturapa_out/tests/__init__.py | 1 + .../tests/data/CHE114993395IVA_00007.xml | 114 + ...1001_00005.xml => IT03297040366_00005.xml} | 0 .../tests/data/IT06363391001_00006.xml | 114 + .../tests/data/IT06363391001_00008.xml | 106 + l10n_it_fatturapa_out/tests/data/test1.pdf | Bin 0 -> 7945 bytes l10n_it_fatturapa_out/tests/data/test2.pdf | Bin 0 -> 7945 bytes .../tests/fatturapa_common.py | 136 + .../tests/test_fatturapa_xml_validation.py | 252 +- l10n_it_fatturapa_out/views/account_view.xml | 119 +- .../views/attachment_view.xml | 20 +- .../wizard/wizard_export_fatturapa.py | 251 +- .../wizard/wizard_export_fatturapa_view.xml | 10 +- l10n_it_ipa/__manifest__.py | 2 +- l10n_it_ipa/model/partner.py | 1 + l10n_it_ipa/view/partner_view.xml | 22 +- 86 files changed, 7916 insertions(+), 1115 deletions(-) create mode 100644 l10n_it_fatturapa/controllers/__init__.py create mode 100644 l10n_it_fatturapa/controllers/main.py create mode 100644 l10n_it_fatturapa/data/fatturaordinaria_v1.2.1.xsl create mode 100644 l10n_it_fatturapa/models/ir_attachment.py create mode 100644 l10n_it_fatturapa/readme/CONFIGURE.rst create mode 100644 l10n_it_fatturapa/readme/CONTRIBUTORS.rst create mode 100644 l10n_it_fatturapa/readme/DESCRIPTION.rst create mode 100644 l10n_it_fatturapa/readme/INSTALL.rst create mode 100644 l10n_it_fatturapa/static/description/index.html create mode 100644 l10n_it_fatturapa_in/models/company.py create mode 100644 l10n_it_fatturapa_in/models/partner.py create mode 100644 l10n_it_fatturapa_in/static/description/index.html create mode 100644 l10n_it_fatturapa_in/tests/data/IT01234567890_FPR03.xml create mode 100644 l10n_it_fatturapa_in/views/company_view.xml create mode 100644 l10n_it_fatturapa_in/wizard/link_to_existing_invoice.py create mode 100644 l10n_it_fatturapa_in/wizard/link_to_existing_invoice.xml create mode 100644 l10n_it_fatturapa_in_purchase/README.rst create mode 100644 l10n_it_fatturapa_in_purchase/__init__.py create mode 100644 l10n_it_fatturapa_in_purchase/__manifest__.py create mode 100644 l10n_it_fatturapa_in_purchase/i18n/it.po create mode 100644 l10n_it_fatturapa_in_purchase/models/__init__.py create mode 100644 l10n_it_fatturapa_in_purchase/models/purchase_order.py create mode 100644 l10n_it_fatturapa_in_purchase/readme/CONTRIBUTORS.rst create mode 100644 l10n_it_fatturapa_in_purchase/readme/DESCRIPTION.rst create mode 100644 l10n_it_fatturapa_in_purchase/readme/USAGE.rst create mode 100644 l10n_it_fatturapa_in_purchase/views/invoice_view.xml create mode 100644 l10n_it_fatturapa_out/readme/CONFIGURE.rst create mode 100644 l10n_it_fatturapa_out/readme/CONTRIBUTORS.rst create mode 100644 l10n_it_fatturapa_out/readme/DESCRIPTION.rst create mode 100644 l10n_it_fatturapa_out/readme/USAGE.rst create mode 100644 l10n_it_fatturapa_out/static/description/index.html create mode 100644 l10n_it_fatturapa_out/tests/data/CHE114993395IVA_00007.xml rename l10n_it_fatturapa_out/tests/data/{IT06363391001_00005.xml => IT03297040366_00005.xml} (100%) create mode 100644 l10n_it_fatturapa_out/tests/data/IT06363391001_00006.xml create mode 100644 l10n_it_fatturapa_out/tests/data/IT06363391001_00008.xml create mode 100644 l10n_it_fatturapa_out/tests/data/test1.pdf create mode 100644 l10n_it_fatturapa_out/tests/data/test2.pdf create mode 100644 l10n_it_fatturapa_out/tests/fatturapa_common.py diff --git a/l10n_it_account/__manifest__.py b/l10n_it_account/__manifest__.py index a00bb86f496c..27870519b3d9 100644 --- a/l10n_it_account/__manifest__.py +++ b/l10n_it_account/__manifest__.py @@ -6,7 +6,7 @@ { 'name': 'Italian Localization - Account', - 'version': '10.0.1.2.2', + 'version': '10.0.1.2.3', 'category': 'Hidden', 'author': "Agile Business Group, Abstract, " "Odoo Community Association (OCA)", diff --git a/l10n_it_account/models/account_tax.py b/l10n_it_account/models/account_tax.py index ddf5550185af..595acfaf01b1 100644 --- a/l10n_it_account/models/account_tax.py +++ b/l10n_it_account/models/account_tax.py @@ -19,6 +19,16 @@ class AccountTax(models.Model): 'account.tax', 'account_tax_filiation_rel', 'child_tax', 'parent_tax', string='Parent Taxes') + def _get_tax_amount(self): + self.ensure_one() + res = 0.0 + if self.amount_type == 'group': + for child in self.children_tax_ids: + res += child.amount + else: + res = self.amount + return res + def _get_tax_name(self): self.ensure_one() name = self.name diff --git a/l10n_it_fatturapa/README.rst b/l10n_it_fatturapa/README.rst index 60045b7a34c5..2f434d2d6413 100644 --- a/l10n_it_fatturapa/README.rst +++ b/l10n_it_fatturapa/README.rst @@ -1,15 +1,39 @@ -.. image:: https://img.shields.io/badge/licence-LGPL--3-blue.svg - :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html - :alt: License: LGPL-3 - +================================ Italian Localization - FatturaPA ================================ -Base module to handle FatturaPA data. +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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-LGPL--3-blue.png + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--italy-lightgray.png?logo=github + :target: https://github.com/OCA/l10n-italy/tree/10.0/l10n_it_fatturapa + :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-10-0/l10n-italy-10-0-l10n_it_fatturapa + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/122/10.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Base module to handle Electronic Invoices. http://fatturapa.gov.it -See l10n_it_fatturapa_out and l10n_it_fatturapa_in. +See also l10n_it_fatturapa_out and l10n_it_fatturapa_in README files. +**Table of contents** + +.. contents:: + :local: Installation ============ @@ -17,37 +41,57 @@ Installation This module requires PyXB 1.2.5 http://pyxb.sourceforge.net/ - Configuration ============= - * Edit the FatturaPA fields of the partners (in partner form) who will receive (send) the - electronic invoices. IPA code is mandatory, EORI code is not. + * In partner form, select 'Subjected to electronic invoice' in Electronic Invoice tab for customers and suppliers subjected to electronic invoicing + * Public administrations must have IPA code + * Others must have Codice Destinatario * Configure taxes about 'Non taxable nature', 'Law reference' and 'VAT payability' - * Configure FatturaPA data in Accounting Configuration. Note that a sequence 'fatturaPA' is already loaded by the module and selectable. + * Configure Electronic Invoice data in Accounting Configuration, where needed. + +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 +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. Credits ======= -Contributors ------------- +Authors +~~~~~~~ + +* Davide Corio +* Agile Business Group +* Innoviu +* Odoo Italia Network -* Davide Corio -* Lorenzo Battistini -* Roberto Onnis -* Alessio Gerace +Contributors +~~~~~~~~~~~~ -Maintainer ----------- +* Davide Corio +* Lorenzo Battistini +* Roberto Onnis +* Alessio Gerace -.. image:: http://odoo-community.org/logo.png - :alt: Odoo Community Association - :target: http://odoo-community.org +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. -To contribute to this module, please visit http://odoo-community.org. +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_fatturapa/__init__.py b/l10n_it_fatturapa/__init__.py index 19f5d41fdec5..b3ef77fef1e1 100644 --- a/l10n_it_fatturapa/__init__.py +++ b/l10n_it_fatturapa/__init__.py @@ -5,3 +5,4 @@ from . import models from . import bindings +from . import controllers diff --git a/l10n_it_fatturapa/__manifest__.py b/l10n_it_fatturapa/__manifest__.py index d594cd172b86..96fbded3cac1 100644 --- a/l10n_it_fatturapa/__manifest__.py +++ b/l10n_it_fatturapa/__manifest__.py @@ -4,7 +4,7 @@ # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). { - 'name': 'Italian Localization - FatturaPA', + 'name': 'Italian Localization - Fattura Elettronica - Base', 'version': '10.0.2.0.0', 'category': 'Localization/Italy', 'summary': 'Electronic invoices', @@ -13,7 +13,7 @@ 'website': 'https://odoo-community.org', 'license': 'LGPL-3', "depends": [ - 'account', + 'l10n_it_account', 'l10n_it_fiscalcode', 'document', 'l10n_it_ipa', @@ -24,6 +24,7 @@ 'l10n_it_fiscal_payment_term', 'l10n_it_split_payment', 'l10n_it_fiscal_document_type', + 'partner_firstname', ], "data": [ 'data/fatturapa_data.xml', diff --git a/l10n_it_fatturapa/controllers/__init__.py b/l10n_it_fatturapa/controllers/__init__.py new file mode 100644 index 000000000000..65a8c12013d2 --- /dev/null +++ b/l10n_it_fatturapa/controllers/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import main diff --git a/l10n_it_fatturapa/controllers/main.py b/l10n_it_fatturapa/controllers/main.py new file mode 100644 index 000000000000..2b7a795dcd25 --- /dev/null +++ b/l10n_it_fatturapa/controllers/main.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- + +from odoo.http import Controller, route, request + + +class FatturaElettronicaController(Controller): + + #------------------------------------------------------ + # Report controllers + #------------------------------------------------------ + @route([ + '/fatturapa/preview/', + ], type='http', auth='user', website=True) + def pdf_preview(self, attachment_id, **data): + attach = request.env['ir.attachment'].browse(int(attachment_id)) + html = attach.get_fattura_elettronica_preview() + pdf = request.env['report']._run_wkhtmltopdf( + [], [], [[False, html]], None, None) + pdfhttpheaders = [ + ('Content-Type', 'application/pdf'), ('Content-Length', len(pdf)), + # ( + # 'Content-Disposition', 'attachment; ' + # 'filename="fatturaelettronica%s.pdf"' % attachment_id + # ), + ] + return request.make_response(pdf, headers=pdfhttpheaders) diff --git a/l10n_it_fatturapa/data/fatturaordinaria_v1.2.1.xsl b/l10n_it_fatturapa/data/fatturaordinaria_v1.2.1.xsl new file mode 100644 index 000000000000..b77dbd35f4c2 --- /dev/null +++ b/l10n_it_fatturapa/data/fatturaordinaria_v1.2.1.xsl @@ -0,0 +1,3060 @@ + + + + + + + + + + + + + + + + + Gennaio + + + Febbraio + + + Marzo + + + Aprile + + + Maggio + + + Giugno + + + Luglio + + + Agosto + + + Settembre + + + Ottobre + + + Novembre + + + Dicembre + + + Mese non riconosciuto + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +

FATTURA ELETTRONICA

+ + +
+
+ Versione +
+ + + +
+

Dati relativi alla trasmissione

+
    + + + +
  • + Identificativo del trasmittente: + + + + +
  • +
    + +
  • + Progressivo di invio: + + + +
  • +
    + +
  • + Formato Trasmissione: + + + +
  • +
    + +
  • + Codice identificativo destinatario: + + + +
  • +
    + +
  • + Telefono del trasmittente: + + + +
  • +
    + +
  • + E-mail del trasmittente: + + + +
  • +
    + +
  • + Destinatario PEC: + + + +
  • +
    +
    +
+
+
+ + + + +
+

Dati del cedente / prestatore

+ + +

Dati anagrafici

+ +
    + + +
  • + Identificativo fiscale ai fini IVA: + + + + +
  • +
    + +
  • + Codice fiscale: + + + +
  • +
    + +
  • + Denominazione: + + + +
  • +
    + +
  • + Nome: + + + +
  • +
    + +
  • + Cognome: + + + +
  • +
    + +
  • + Titolo: + + + +
  • +
    + +
  • + Codice EORI: + + + +
  • +
    + +
  • + Albo professionale di appartenenza: + + + +
  • +
    + +
  • + Provincia di competenza dell'Albo: + + + +
  • +
    + +
  • + Numero iscrizione all'Albo: + + + +
  • +
    + +
  • + Data iscrizione all'Albo: + + + + + + +
  • +
    + +
  • + Regime fiscale: + + + + + + + + + + (ordinario) + + + (contribuenti minimi) + + + (nuove iniziative produttive) - Non più valido in quanto abrogato dalla legge di stabilità 2015 + + + (agricoltura e attività connesse e pesca) + + + (vendita sali e tabacchi) + + + (commercio fiammiferi) + + + (editoria) + + + (gestione servizi telefonia pubblica) + + + (rivendita documenti di trasporto pubblico e di sosta) + + + (intrattenimenti, giochi e altre attività di cui alla tariffa allegata al DPR 640/72) + + + (agenzie viaggi e turismo) + + + (agriturismo) + + + (vendite a domicilio) + + + (rivendita beni usati, oggetti d’arte, + d’antiquariato o da collezione) + + + (agenzie di vendite all’asta di oggetti d’arte, + antiquariato o da collezione) + + + (IVA per cassa P.A.) + + + (IVA per cassa - art. 32-bis, D.L. 83/2012) + + + (Regime forfettario) + + + (altro) + + + + + (!!! codice non previsto !!!) + + +
  • +
    +
    +
+
+ + +

Dati della sede

+
    + + +
  • + Indirizzo: + + + +
  • +
    + +
  • + Numero civico: + + + +
  • +
    + +
  • + CAP: + + + +
  • +
    + +
  • + Comune: + + + +
  • +
    + +
  • + Provincia: + + + +
  • +
    + +
  • + Nazione: + + + +
  • +
    +
    +
+
+ + +

Dati della stabile organizzazione

+
    + + +
  • + Indirizzo: + + + +
  • +
    + +
  • + Numero civico: + + + +
  • +
    + +
  • + CAP: + + + +
  • +
    + +
  • + Comune: + + + +
  • +
    + +
  • + Provincia: + + + +
  • +
    + +
  • + Nazione: + + + +
  • +
    +
    +
+
+ + +

Dati di iscrizione nel registro delle imprese

+ +
    + + +
  • + Provincia Ufficio Registro Imprese: + + + +
  • +
    + +
  • + Numero di iscrizione: + + + +
  • +
    + +
  • + Capitale sociale: + + + +
  • +
    + +
  • + Numero soci: + + + + + + + + + + (socio unico) + + + (più soci) + + + + + (!!! codice non previsto !!!) + + +
  • +
    + +
  • + Stato di liquidazione: + + + + + + + + + + (in liquidazione) + + + (non in liquidazione) + + + + + (!!! codice non previsto !!!) + + +
  • +
    +
    +
+
+ + + +

Recapiti

+
    + +
  • + Telefono: + + + +
  • +
    + +
  • + Fax: + + + +
  • +
    + +
  • + E-mail: + + + +
  • +
    +
+
+
+ + +

Riferimento amministrativo

+
    +
  • + Riferimento: + + + +
  • +
+
+
+
+ + + + +
+

Dati del rappresentante fiscale del cedente / prestatore

+ + +

Dati anagrafici

+ +
    + + +
  • + Identificativo fiscale ai fini IVA: + + + + +
  • +
    + +
  • + Codice fiscale: + + + +
  • +
    + +
  • + Denominazione: + + + +
  • +
    + +
  • + Nome: + + + +
  • +
    + +
  • + Cognome: + + + +
  • +
    + +
  • + Titolo onorifico: + + + +
  • +
    + +
  • + Codice EORI: + + + +
  • +
    +
    +
+
+ +
+
+ + + + +
+

Dati del cessionario / committente

+ + +

Dati anagrafici

+ +
    + + +
  • + Identificativo fiscale ai fini IVA: + + + + +
  • +
    + +
  • + Codice Fiscale: + + + +
  • +
    + +
  • + Denominazione: + + + +
  • +
    + +
  • + Nome: + + + +
  • +
    + +
  • + Cognome: + + + +
  • +
    + +
  • + Titolo onorifico: + + + +
  • +
    + +
  • + Codice EORI: + + + +
  • +
    +
    +
+
+ + + +

Dati della sede

+ +
    + + +
  • + Indirizzo: + + + +
  • +
    + +
  • + Numero civico: + + + +
  • +
    + +
  • + CAP: + + + +
  • +
    + +
  • + Comune: + + + +
  • +
    + +
  • + Provincia: + + + +
  • +
    + +
  • + Nazione: + + + +
  • +
    +
    +
+
+ + + +

Stabile organizzazione del cessionario / committente

+ +
    + + +
  • + Indirizzo: + + + +
  • +
    + +
  • + Numero civico: + + + +
  • +
    + +
  • + CAP: + + + +
  • +
    + +
  • + Comune: + + + +
  • +
    + +
  • + Provincia: + + + +
  • +
    + +
  • + Nazione: + + + +
  • +
    +
    +
+
+ + +
+

Dati del rappresentante fiscale del cessionario / committente

+ +
    + + +
  • + Identificativo fiscale ai fini IVA: + + + + +
  • +
    + +
  • + Denominazione: + + + +
  • +
    + +
  • + Nome: + + + +
  • +
    + +
  • + Cognome: + + + +
  • +
    +
    +
+
+
+ + +
+
+ + + + +
+ + +

Dati del terzo intermediario soggetto emittente

+ + +

Dati anagrafici

+ +
    + +
  • + Identificativo fiscale ai fini IVA: + + + + +
  • +
    + +
  • + Codice Fiscale: + + + +
  • +
    + +
  • + Denominazione: + + + +
  • +
    + +
  • + Nome: + + + +
  • +
    + +
  • + Cognome: + + + +
  • +
    + +
  • + Titolo onorifico: + + + +
  • +
    + +
  • + Codice EORI: + + + +
  • +
    +
+
+
+
+
+ + + + +
+

Soggetto emittente la fattura

+
    +
  • + Soggetto emittente: + + + + + + + + + (cessionario/committente) + + + (terzo) + + + + + (!!! codice non previsto !!!) + + +
  • +
+
+
+ + +
+
+ + + + + + + + + + +

+ Numero documento nel lotto: + +

+
+ +
+
+ Versione +
+ + + +
+ + + + +
+

Dati generali del documento

+ +
    + +
  • + Tipologia documento: + + + + + + + + + + (fattura) + + + (acconto/anticipo su fattura) + + + (acconto/anticipo su parcella) + + + (nota di credito) + + + (nota di debito) + + + (parcella) + + + + + (!!! codice non previsto !!!) + + +
  • +
    + +
  • + Valuta importi: + + + +
  • +
    + +
  • + Data documento: + + + + + + +
  • +
    + +
  • + Numero documento: + + + +
  • +
    + +
  • + Importo totale documento: + + + +
  • +
    + +
  • + Arrotondamento su Importo totale documento: + + + +
  • +
    + + +
  • + Causale: + + + +
  • + +
    + +
  • + Art. 73 DPR 633/72: + + + +
  • +
    +
+ + + +
+ +

Ritenuta

+
    + +
  • + Tipologia ritenuta: + + + + + + + + + (ritenuta persone fisiche) + + + (ritenuta persone giuridiche) + + + + + (!!! codice non previsto !!!) + + +
  • +
    + +
  • + Importo ritenuta: + + + +
  • +
    + +
  • + Aliquota ritenuta (%): + + + +
  • +
    + +
  • + Causale di pagamento: + + + + + + + + (decodifica come da modello 770S) + +
  • +
    +
+
+
+
+ + + + +
+ +

Bollo

+
    + +
  • + Bollo virtuale: + + + +
  • +
    + +
  • + Importo bollo: + + + +
  • +
    +
+
+
+
+ + + + +
+

Cassa previdenziale

+ +
    + +
  • + Tipologia cassa previdenziale: + + + + + + + + + (Cassa Nazionale Previdenza e Assistenza Avvocati + e Procuratori legali) + + + (Cassa Previdenza Dottori Commercialisti) + + + (Cassa Previdenza e Assistenza Geometri) + + + (Cassa Nazionale Previdenza e Assistenza + Ingegneri e Architetti liberi profess.) + + + (Cassa Nazionale del Notariato) + + + (Cassa Nazionale Previdenza e Assistenza + Ragionieri e Periti commerciali) + + + (Ente Nazionale Assistenza Agenti e Rappresentanti + di Commercio-ENASARCO) + + + (Ente Nazionale Previdenza e Assistenza Consulenti + del Lavoro-ENPACL) + + + (Ente Nazionale Previdenza e Assistenza + Medici-ENPAM) + + + (Ente Nazionale Previdenza e Assistenza + Farmacisti-ENPAF) + + + (Ente Nazionale Previdenza e Assistenza + Veterinari-ENPAV) + + + (Ente Nazionale Previdenza e Assistenza Impiegati + dell'Agricoltura-ENPAIA) + + + (Fondo Previdenza Impiegati Imprese di Spedizione + e Agenzie Marittime) + + + (Istituto Nazionale Previdenza Giornalisti + Italiani-INPGI) + + + (Opera Nazionale Assistenza Orfani Sanitari + Italiani-ONAOSI) + + + (Cassa Autonoma Assistenza Integrativa + Giornalisti Italiani-CASAGIT) + + + (Ente Previdenza Periti Industriali e Periti + Industriali Laureati-EPPI) + + + (Ente Previdenza e Assistenza + Pluricategoriale-EPAP) + + + (Ente Nazionale Previdenza e Assistenza + Biologi-ENPAB) + + + (Ente Nazionale Previdenza e Assistenza + Professione Infermieristica-ENPAPI) + + + (Ente Nazionale Previdenza e Assistenza + Psicologi-ENPAP) + + + (INPS) + + + + + (!!! codice non previsto !!!) + + +
  • +
    + +
  • + Aliquota contributo cassa (%): + + + +
  • +
    + +
  • + Importo contributo cassa: + + + +
  • +
    + +
  • + Imponibile previdenziale: + + + +
  • +
    + +
  • + Aliquota IVA applicata: + + + +
  • +
    + +
  • + Contributo cassa soggetto a ritenuta: + + + +
  • +
    + +
  • + Tipologia di non imponibilità del contributo: + + + + + + + + + (escluse ex art. 15) + + + (non soggette) + + + (non imponibili) + + + (esenti) + + + (regime del margine / IVA non esposta in fattura) + + + (inversione contabile) + + + (IVA assolta in altro Stato UE) + + + + + (!!! codice non previsto !!!) + + +
  • +
    + +
  • + Riferimento amministrativo / contabile: + + + +
  • +
    +
+
+
+
+ + + + +

Sconto/maggiorazione

+
+ +
    + +
  • + Tipologia: + + + + + + + + + + (sconto) + + + + (maggiorazione) + + + + (!!! codice non previsto !!!) + + +
  • +
    + +
  • + Percentuale: + + + +
  • +
    + +
  • + Importo: + + + +
  • +
    +
+
+
+
+ + +
+
+ + + + +
+

Dati dell'ordine di acquisto

+ + +
    + +
  • + Numero linea di fattura a cui si riferisce: + + + + , + + + + +
  • +
    + +
  • + Identificativo ordine di acquisto: + + + +
  • +
    + +
  • + Data ordine di acquisto: + + + + + + +
  • +
    + +
  • + Numero linea ordine di acquisto: + + + +
  • +
    + +
  • + Codice commessa/convenzione: + + + +
  • +
    + +
  • + Codice Unitario Progetto (CUP): + + + +
  • +
    + +
  • + Codice Identificativo Gara (CIG): + + + +
  • +
    +
+
+
+
+ + + + +
+

Dati del contratto

+ +
    + +
  • + Numero linea di fattura a cui si riferisce: + + + + , + + + + +
  • +
    + +
  • + Identificativo contratto: + + + +
  • +
    + +
  • + Data contratto: + + + + + + +
  • +
    + +
  • + Numero linea contratto: + + + +
  • +
    + +
  • + Codice commessa/convenzione: + + + +
  • +
    + +
  • + Codice Unitario Progetto (CUP): + + + +
  • +
    + +
  • + Codice Identificativo Gara (CIG): + + + +
  • +
    +
+
+
+
+ + + + +
+

Dati della convenzione

+ +
    + +
  • + Numero linea di fattura a cui si riferisce: + + + + , + + + + + +
  • +
    + +
  • + Identificativo convenzione: + + + +
  • +
    + +
  • + Data convenzione: + + + + + + +
  • +
    + +
  • + Numero linea convenzione: + + + +
  • +
    + +
  • + Codice commessa/convenzione: + + + +
  • +
    + +
  • + Codice Unitario Progetto (CUP): + + + +
  • +
    + +
  • + Codice Identificativo Gara (CIG): + + + +
  • +
    +
+
+
+
+ + + + +
+

Dati della ricezione

+ +
    + +
  • + Numero linea di fattura a cui si riferisce: + + + + , + + + + + +
  • +
    + +
  • + Identificativo ricezione: + + + +
  • +
    + +
  • + Data ricezione: + + + + + + +
  • +
    + +
  • + Numero linea ricezione: + + + +
  • +
    + +
  • + Codice commessa/convenzione: + + + +
  • +
    + +
  • + Codice Unitario Progetto (CUP): + + + +
  • +
    + +
  • + Codice Identificativo Gara (CIG): + + + +
  • +
    +
+
+
+
+ + + + +
+

Dati della fattura collegata

+ +
    + +
  • + Numero linea di fattura a cui si riferisce: + + + + , + + + + + +
  • +
    + +
  • + Identificativo fattura collegata: + + + +
  • +
    + +
  • + Data fattura collegata: + + + + + + +
  • +
    + +
  • + Numero linea fattura collegata: + + + +
  • +
    + +
  • + Codice commessa/convenzione: + + + +
  • +
    + +
  • + Codice Unitario Progetto (CUP): + + + +
  • +
    + +
  • + Codice Identificativo Gara (CIG): + + + +
  • +
    +
+
+
+
+ + + + +
+

Stato avanzamento lavori

+
    + +
  • + Numero fase avanzamento: + + + + , + + + + +
  • +
    +
+
+
+ + + + +
+

Dati del documento di trasporto

+ +
    + +
  • + Numero DDT: + + + +
  • +
    + +
  • + Data DDT: + + + + + + +
  • +
    + +
  • + Numero linea di fattura a cui si riferisce: + + + + , + + + + +
  • +
    +
+
+
+
+ + + + +
+

Dati relativi al trasporto

+ + +

Dati del vettore

+ +
    + + +
  • + Identificativo fiscale ai fini IVA: + + + + +
  • +
    + +
  • + Codice Fiscale: + + + +
  • +
    + +
  • + Denominazione: + + + +
  • +
    + +
  • + Nome: + + + +
  • +
    + +
  • + Cognome: + + + +
  • +
    + +
  • + Titolo onorifico: + + + +
  • +
    + +
  • + Codice EORI: + + + +
  • +
    + +
  • + Numero licenza di guida: + + + +
  • +
    +
    +
+
+ + +

Altri dati

+ +
    + + +
  • + Mezzo di trasporto: + + + +
  • +
    + +
  • + Causale trasporto: + + + +
  • +
    + +
  • + Numero colli trasportati: + + + +
  • +
    + +
  • + Descrizione beni trasportati: + + + +
  • +
    + +
  • + Unità di misura del peso merce: + + + +
  • +
    + +
  • + Peso lordo: + + + +
  • +
    + +
  • + Peso netto: + + + +
  • +
    + +
  • + Data e ora ritiro merce: + + + + + + +
  • +
    + +
  • + Data inizio trasporto: + + + + + + +
  • +
    + +
  • + Tipologia di resa: + + + + + (codifica secondo standard ICC) +
  • +
    + +
  • + Indirizzo di resa: + + + +
  • +
    + +
  • + Numero civico indirizzo di resa: + + + +
  • +
    + +
  • + CAP indirizzo di resa: + + + +
  • +
    + +
  • + Comune di resa: + + + +
  • +
    + +
  • + Provincia di resa: + + + +
  • +
    + +
  • + Nazione di resa: + + + +
  • +
    +
    +
+
+ +
+
+ + + + +
+

Dati relativi alla fattura principale

+
    + +
  • + Numero fattura principale: + + + +
  • +
    + +
  • + Data fattura principale: + + + + + + +
  • +
    +
+
+
+ + +
+
+ + + + +
+ + + +
+

Dati relativi alle linee di dettaglio della fornitura

+ + +
+ Nr. linea: + + + +
+ +
    + +
  • + Tipo cessione/prestazione: + + + + + + + + + (sconto) + + + (premio) + + + (abbuono) + + + (spesa accessoria) + + + (!!! codice non previsto !!!) + + +
  • +
    + +
  • +
    Codifica articolo
    + +
      + +
    • + Tipo: + + + +
    • +
      + +
    • + Valore: + + + +
    • +
      +
    +
    +
  • +
    + +
  • + Descrizione bene/servizio: + + + +
  • +
    + +
  • + Quantità: + + + +
  • +
    + +
  • + Unità di misura: + + + +
  • +
    + +
  • + Data inizio periodo di riferimento: + + + + + + +
  • +
    + +
  • + Data fine periodo di riferimento: + + + + + + +
  • +
    + +
  • + Valore unitario: + + + +
  • +
    + +
  • +
    Sconto/Maggiorazione
    + + +
      + +
    • + Tipo: + + + + + + + + + + (sconto) + + + + (maggiorazione) + + + + (!!! codice non previsto !!!) + + +
    • +
      + +
    • + Percentuale (%): + + + +
    • +
      + +
    • + Importo: + + + +
    • +
      +
    +
    +
  • +
    + +
  • + Valore totale: + + + +
  • +
    + +
  • + IVA (%): + + + +
  • +
    + +
  • + Soggetta a ritenuta: + + + +
  • +
    + +
  • + Natura operazione: + + + + + + + + + (esclusa ex art.15) + + + (non soggetta) + + + (non imponibile) + + + (esente) + + + (regime del margine / IVA non esposta in fattura) + + + (inversione contabile) + + + (IVA assolta in altro Stato UE) + + + (!!! codice non previsto !!!) + + +
  • +
    + +
  • + Riferimento amministrativo/contabile: + + + +
  • +
    + +
  • +
    Altri dati gestionali
    +
      + + +
    • + Tipo dato: + + + +
    • +
      + +
    • + Valore testo: + + + +
    • +
      + +
    • + Valore numerico: + + + +
    • +
      + +
    • + Valore data: + + + + + + +
    • +
      +
      +
    +
  • +
    +
+
+
+
+ + + + +
+

Dati di riepilogo per aliquota IVA e natura

+ +
    + +
  • + Aliquota IVA (%): + + + +
  • +
    + +
  • + Natura operazioni: + + + + + + + + + (escluse ex art.15) + + + (non soggette) + + + (non imponibili) + + + (esenti) + + + (regime del margine / IVA non esposta in fattura) + + + (inversione contabile) + + + (IVA assolta in altro Stato UE) + + + (!!! codice non previsto !!!) + + +
  • +
    + +
  • + Spese accessorie: + + + +
  • +
    + +
  • + Arrotondamento: + + + +
  • +
    + +
  • + Totale imponibile/importo: + + + +
  • +
    + +
  • + Totale imposta: + + + +
  • +
    + +
  • + Esigibilità IVA: + + + + + + + + + (esigibilità immediata) + + + (esigibilità differita) + + + (scissione dei pagamenti) + + + (!!! codice non previsto !!!) + + +
  • +
    + +
  • + Riferimento normativo: + + + +
  • +
    +
+
+
+
+ + +
+
+ + + + +
+

Dati Veicoli ex art. 38 dl 331/1993

+
    + + +
  • + Data prima immatricolazione / iscrizione PR: + + + + + + +
  • +
    + +
  • + Totale percorso: + + + +
  • +
    +
    +
+
+
+ + + + +
+

Dati relativi al pagamento

+
    + + +
  • + Condizioni di pagamento: + + + + + + + + + (pagamento a rate) + + + (pagamento completo) + + + (anticipo) + + + + + (!!! codice non previsto !!!) + + +
  • +
    + + +
    Dettaglio pagamento
    + + +
      + +
    • + Beneficiario del pagamento: + + + +
    • +
      + +
    • + Modalità: + + + + + + + + + (contanti) + + + (assegno) + + + (assegno circolare) + + + (contanti presso Tesoreria) + + + (bonifico) + + + (vaglia cambiario) + + + (bollettino bancario) + + + (carta di pagamento) + + + (RID) + + + (RID utenze) + + + (RID veloce) + + + (RIBA) + + + (MAV) + + + (quietanza erario) + + + (giroconto su conti di contabilità speciale) + + + (domiciliazione bancaria) + + + (domiciliazione postale) + + + (bollettino di c/c postale) + + + (SEPA Direct Debit) + + + (SEPA Direct Debit CORE) + + + (SEPA Direct Debit B2B) + + + (Trattenuta su somme già riscosse) + + + + + (!!! codice non previsto !!!) + + +
    • +
      + +
    • + Decorrenza termini di pagamento: + + + + + + +
    • +
      + +
    • + Termini di pagamento (in giorni): + + + +
    • +
      + +
    • + Data scadenza pagamento: + + + + + + +
    • +
      + +
    • + Importo: + + + +
    • +
      + +
    • + Codice Ufficio Postale: + + + +
    • +
      + +
    • + Cognome del quietanzante: + + + +
    • +
      + +
    • + Nome del quietanzante: + + + +
    • +
      + +
    • + CF del quietanzante: + + + +
    • +
      + +
    • + Titolo del quietanzante: + + + +
    • +
      + +
    • + Istituto finanziario: + + + +
    • +
      + +
    • + Codice IBAN: + + + +
    • +
      + +
    • + Codice ABI: + + + +
    • +
      + +
    • + Codice CAB: + + + +
    • +
      + +
    • + Codice BIC: + + + +
    • +
      + +
    • + Sconto per pagamento anticipato: + + + +
    • +
      + +
    • + Data limite per il pagamento anticipato: + + + + + + +
    • +
      + +
    • + Penale per ritardato pagamento: + + + +
    • +
      + +
    • + Data di decorrenza della penale: + + + + + + +
    • +
      + +
    • + Codice pagamento: + + + +
    • +
      +
    +
    +
    +
    +
+ +
+
+ + + + +
+

Dati relativi agli allegati

+ + +
    + +
  • + Nome dell'allegato: + + + +
  • +
    + +
  • + Algoritmo di compressione: + + + +
  • +
    + +
  • + Formato: + + + +
  • +
    + +
  • + Descrizione: + + + +
  • +
    +
+
+
+
+ + + +
+
+ + +
+
+
+ + +
+
\ No newline at end of file diff --git a/l10n_it_fatturapa/data/fatturapa_data.xml b/l10n_it_fatturapa/data/fatturapa_data.xml index 551a797bbdc4..dc72cffec77f 100644 --- a/l10n_it_fatturapa/data/fatturapa_data.xml +++ b/l10n_it_fatturapa/data/fatturapa_data.xml @@ -108,7 +108,7 @@ - FatturaPA + Electronic Invoices account.invoice.fatturapa 5 diff --git a/l10n_it_fatturapa/demo/account_invoice_fatturapa.xml b/l10n_it_fatturapa/demo/account_invoice_fatturapa.xml index 3b06e38ce081..86ab6fe6e06d 100644 --- a/l10n_it_fatturapa/demo/account_invoice_fatturapa.xml +++ b/l10n_it_fatturapa/demo/account_invoice_fatturapa.xml @@ -100,6 +100,7 @@ 1 0 1 + 1 Torino 10100 @@ -129,6 +130,33 @@ IT03297040366 + + Cliente B2B + 1 + 0 + 1 + 0 + Genova + 16100 + + + Via Roma, 1 + info@mycompany.it + 07973780013 + IT07973780013 + 0000000 + test@pec.it + + + + StabileOrganizzazione + 1 + Via Roma, 1 + Milano + 20100 + + + Split payment diff --git a/l10n_it_fatturapa/i18n/it.po b/l10n_it_fatturapa/i18n/it.po index 2a5088e04041..2784d4894b1b 100644 --- a/l10n_it_fatturapa/i18n/it.po +++ b/l10n_it_fatturapa/i18n/it.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-09-05 14:12+0000\n" -"PO-Revision-Date: 2018-09-05 14:12+0000\n" +"POT-Creation-Date: 2018-10-08 09:34+0000\n" +"PO-Revision-Date: 2018-10-08 09:34+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -20,6 +20,12 @@ msgstr "" msgid "ABI" msgstr "ABI" +#. module: l10n_it_fatturapa +#: code:addons/l10n_it_fatturapa/models/ir_attachment.py:67 +#, python-format +msgid "ASN.1 structure is not parsable in DER" +msgstr "ASN.1 structure is not parsable in DER" + #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_faturapa_activity_progress_fatturapa_activity_progress msgid "Activity Progress" @@ -27,13 +33,13 @@ msgstr "Progresso Attività" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_line_admin_ref -msgid "Administration ref." -msgstr "Rif. amministrazione" +msgid "Admin. ref." +msgstr "Rif. amm." #. module: l10n_it_fatturapa #: selection:fatturapa.related_document_type,type:0 msgid "Agreement" -msgstr "Agreement" +msgstr "Convenzione" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_discount_rise_price_amount @@ -55,6 +61,12 @@ msgstr "Importo imposte" msgid "Amount untaxed" msgstr "Importo imponibile" +#. module: l10n_it_fatturapa +#: code:addons/l10n_it_fatturapa/models/ir_attachment.py:42 +#, python-format +msgid "An error with command \"openssl asn1parse\" occurred: %s" +msgstr "An error with command \"openssl asn1parse\" occurred: %s" + #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_efatt_rounding msgid "Arrotondamento" @@ -92,11 +104,22 @@ msgstr "BIC" msgid "Bank name" msgstr "Nome Banca" +#. module: l10n_it_fatturapa +#: model:ir.model.fields,help:l10n_it_fatturapa.field_account_config_settings_fatturapa_stabile_organizzazione +#: model:ir.model.fields,help:l10n_it_fatturapa.field_res_company_fatturapa_stabile_organizzazione +msgid "Blocco da valorizzare nei casi di cedente / prestatore non residente, con stabile organizzazione in Italia" +msgstr "Blocco da valorizzare nei casi di cedente / prestatore non residente, con stabile organizzazione in Italia" + #. module: l10n_it_fatturapa #: model:ir.model.fields,help:l10n_it_fatturapa.field_account_invoice_efatt_stabile_organizzazione_indirizzo msgid "Blocco da valorizzare nei casi di cedente / prestatore non residente, con stabile organizzazione in Italia. Indirizzo della stabile organizzazione in Italia (nome della via, piazza etc.)" msgstr "Blocco da valorizzare nei casi di cedente / prestatore non residente, con stabile organizzazione in Italia. Indirizzo della stabile organizzazione in Italia (nome della via, piazza etc.)" +#. module: l10n_it_fatturapa +#: model:ir.model.fields,help:l10n_it_fatturapa.field_account_config_settings_fatturapa_tax_representative +msgid "Blocco da valorizzare nei casi in cui il cedente / prestatore si avvalga di un rappresentante fiscale in Italia" +msgstr "Blocco da valorizzare nei casi in cui il cedente / prestatore si avvalga di un rappresentante fiscale in Italia" + #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_detail_payment_bank_cab msgid "CAB" @@ -107,6 +130,11 @@ msgstr "CAB" msgid "CAP Organizzazione" msgstr "CAP Organizzazione" +#. module: l10n_it_fatturapa +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_detail_recepit_cf +msgid "CF Quietanzante" +msgstr "CF Quietanzante" + #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_related_document_type_cig msgid "CIG Code" @@ -120,7 +148,7 @@ msgstr "Codice CUP" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_carrier_id msgid "Carrier" -msgstr "Corriere" +msgstr "Trasportatore" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_attachments_checksum @@ -146,11 +174,22 @@ msgstr "Codice" msgid "Codice Avviamento Postale" msgstr "Codice Avviamento Postale" +#. module: l10n_it_fatturapa +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_partner_codice_destinatario +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_users_codice_destinatario +msgid "Codice Destinatario" +msgstr "Codice Destinatario" + #. module: l10n_it_fatturapa #: model:ir.model.fields,help:l10n_it_fatturapa.field_account_invoice_efatt_stabile_organizzazione_nazione msgid "Codice della nazione espresso secondo lo standard ISO 3166-1 alpha-2 code" msgstr "Codice della nazione espresso secondo lo standard ISO 3166-1 alpha-2 code" +#. module: l10n_it_fatturapa +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_detail_recepit_surname +msgid "Cognome Quietanzante" +msgstr "Cognome Quietanzante" + #. module: l10n_it_fatturapa #: model:ir.model,name:l10n_it_fatturapa.model_res_company msgid "Companies" @@ -236,6 +275,7 @@ msgid "Date" msgstr "Data" #. module: l10n_it_fatturapa +#: model:ir.model.fields,help:l10n_it_fatturapa.field_account_config_settings_fatturapa_sender_partner #: model:ir.model.fields,help:l10n_it_fatturapa.field_res_company_fatturapa_sender_partner msgid "Dati relativi al soggetto terzo che emette fattura per conto del cedente / prestatore" msgstr "Dati relativi al soggetto terzo che emette fattura per conto del cedente / prestatore" @@ -248,7 +288,7 @@ msgstr "Esigibilità differita" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_delivery_address msgid "Delivery Address" -msgstr "Indirizzo di consegna" +msgstr "Indirizzo di Consegna" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_delivery_datetime @@ -331,14 +371,36 @@ msgstr "Fase dell'avanzamento attività" #: model:ir.ui.menu,name:l10n_it_fatturapa.menu_fattura_pa_payables #: model:ir.ui.menu,name:l10n_it_fatturapa.menu_fattura_pa_receivables #: model:ir.ui.view,arch_db:l10n_it_fatturapa.view_account_config_settings -msgid "Fattura PA" -msgstr "Fattura PA" - -#. module: l10n_it_fatturapa #: model:ir.ui.view,arch_db:l10n_it_fatturapa.view_invoice_line_form_fatturapa #: model:ir.ui.view,arch_db:l10n_it_fatturapa.view_partner_form_fatturapa -msgid "FatturaPA" -msgstr "FatturaPA" +msgid "Fattura Elettronica" +msgstr "Fattura Elettronica" + +#. module: l10n_it_fatturapa +#: model:ir.model,name:l10n_it_fatturapa.model_fatturapa_fiscal_position +msgid "Fattura Elettronica Fiscal Position" +msgstr "Posizione fiscale fattura elettronica" + +#. module: l10n_it_fatturapa +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_fatturapa_payments +msgid "Fattura Elettronica Payment Data" +msgstr "Dati pagamento fattura elettronica" + +#. module: l10n_it_fatturapa +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_data_payment_terms +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_detail_fatturapa_pm_id +msgid "Fattura Elettronica Payment Method" +msgstr "Metodo pagamento fattura elettronica" + +#. module: l10n_it_fatturapa +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_fatturapa_summary_ids +msgid "Fattura Elettronica Summary Data" +msgstr "Dati riepilogo fattura elettronica" + +#. module: l10n_it_fatturapa +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_fatturapa_doc_attachments +msgid "Fattura Elettronica attachments" +msgstr "Allegati fattura elettronica" #. module: l10n_it_fatturapa #: model:ir.model,name:l10n_it_fatturapa.model_discount_rise_price @@ -350,57 +412,35 @@ msgstr "Dati sconto maggiorazione" msgid "FatturaPA Document Type" msgstr "Tipo documento" -#. module: l10n_it_fatturapa -#: model:ir.model,name:l10n_it_fatturapa.model_fatturapa_fiscal_position -msgid "FatturaPA Fiscal Position" -msgstr "FatturaPA Fiscal Position" - #. module: l10n_it_fatturapa #: model:ir.model,name:l10n_it_fatturapa.model_fatturapa_format msgid "FatturaPA Format" -msgstr "FatturaPA Format" +msgstr "Formato fattura elettronica" #. module: l10n_it_fatturapa #: model:ir.model,name:l10n_it_fatturapa.model_fatturapa_payment_data msgid "FatturaPA Payment Data" -msgstr "FatturaPA Payment Data" - -#. module: l10n_it_fatturapa -#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_fatturapa_payments -msgid "FatturaPA Payment Datas" -msgstr "FatturaPA Payment Datas" - -#. module: l10n_it_fatturapa -#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_data_payment_terms -#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_detail_fatturapa_pm_id -msgid "FatturaPA Payment Method" -msgstr "FatturaPA Payment Method" +msgstr "Dati pagamento fattura elettronica" #. module: l10n_it_fatturapa #: model:ir.model,name:l10n_it_fatturapa.model_fatturapa_related_ddt msgid "FatturaPA Related DdT" -msgstr "FatturaPA Related DdT" +msgstr "DDT collegati alla fattura elettronica" #. module: l10n_it_fatturapa #: model:ir.model,name:l10n_it_fatturapa.model_fatturapa_related_document_type msgid "FatturaPA Related Document Type" -msgstr "FatturaPA Related Document Type" - -#. module: l10n_it_fatturapa -#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_fatturapa_summary_ids -msgid "FatturaPA Summary Datas" -msgstr "FatturaPA Summary Datas" +msgstr "Tipo di documento collegato alla fattura elettronica" #. module: l10n_it_fatturapa #: model:ir.model,name:l10n_it_fatturapa.model_welfare_fund_data_line msgid "FatturaPA Welfare Fund Data" -msgstr "FatturaPA Welfare Fund Data" +msgstr "Dati cassa previdenziali fattura elettronica" #. module: l10n_it_fatturapa #: model:ir.model,name:l10n_it_fatturapa.model_fatturapa_attachments -#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_fatturapa_doc_attachments msgid "FatturaPA attachments" -msgstr "FatturaPA attachments" +msgstr "Allegati fattura elettronica" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_attachments_datas @@ -421,13 +461,13 @@ msgstr "Dimensione File" #: model:ir.model,name:l10n_it_fatturapa.model_fatturapa_payment_method #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_payment_term_fatturapa_pm_id msgid "Fiscal Payment Method" -msgstr "Metodo pagamento fiscale" +msgstr "Metodo di pagamento" #. module: l10n_it_fatturapa #: model:ir.model,name:l10n_it_fatturapa.model_fatturapa_payment_term #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_payment_term_fatturapa_pt_id msgid "Fiscal Payment Term" -msgstr "Condizioni di pagamento fiscali" +msgstr "Termini di pagamento" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_config_settings_fatturapa_fiscal_position_id @@ -438,8 +478,8 @@ msgstr "Posizione Fiscale" #. module: l10n_it_fatturapa #: model:ir.model.fields,help:l10n_it_fatturapa.field_account_config_settings_fatturapa_fiscal_position_id #: model:ir.model.fields,help:l10n_it_fatturapa.field_res_company_fatturapa_fiscal_position_id -msgid "Fiscal position used by FatturaPA" -msgstr "Posizione fiscale Fattura elettronica" +msgid "Fiscal position used by Fattura Elettronica" +msgstr "Posizione fiscale usata dalla fattura elettronica" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_attachments_format @@ -475,11 +515,40 @@ msgstr "IBAN" msgid "ID" msgstr "ID" +#. module: l10n_it_fatturapa +#: model:ir.ui.view,arch_db:l10n_it_fatturapa.view_partner_form_fatturapa +msgid "IPA123" +msgstr "IPA123" + #. module: l10n_it_fatturapa #: selection:faturapa.summary.data,non_taxable_nature:0 msgid "IVA assolta in altro stato UE" msgstr "IVA assolta in altro stato UE" +#. module: l10n_it_fatturapa +#: model:ir.model.fields,help:l10n_it_fatturapa.field_res_partner_codice_destinatario +#: model:ir.model.fields,help:l10n_it_fatturapa.field_res_users_codice_destinatario +msgid "Il codice, di 7 caratteri, assegnato dal Sdi ai soggetti che hanno accreditato un canale; qualora il destinatario non abbia accreditato un canale presso Sdi e riceva via PEC le fatture, l'elemento deve essere valorizzato con tutti zeri ('0000000'). " +msgstr "Il codice, di 7 caratteri, assegnato dal Sdi ai soggetti che hanno accreditato un canale; qualora il destinatario non abbia accreditato un canale presso Sdi e riceva via PEC le fatture, l'elemento deve essere valorizzato con tutti zeri ('0000000'). " + +#. module: l10n_it_fatturapa +#: code:addons/l10n_it_fatturapa/models/partner.py:66 +#, python-format +msgid "Il partner %s deve avere il Codice Destinatario lungo 7 caratteri" +msgstr "Il partner %s deve avere il Codice Destinatario lungo 7 caratteri" + +#. module: l10n_it_fatturapa +#: code:addons/l10n_it_fatturapa/models/partner.py:75 +#, python-format +msgid "Il partner %s, con Codice Destinatario '0000000', deve avere o P.IVA o codice fiscale" +msgstr "Il partner %s, con Codice Destinatario '0000000', deve avere o P.IVA o codice fiscale" + +#. module: l10n_it_fatturapa +#: code:addons/l10n_it_fatturapa/models/partner.py:58 +#, python-format +msgid "Il partner %s, essendo una pubblica amministrazione deve avere il codice IPA lungo 6 caratteri" +msgstr "Il partner %s, essendo una pubblica amministrazione deve avere il codice IPA lungo 6 caratteri" + #. module: l10n_it_fatturapa #: selection:faturapa.summary.data,payability:0 msgid "Immediate payability" @@ -493,7 +562,7 @@ msgstr "Spese Accessorie" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_ftpa_incoterms msgid "Incoterms" -msgstr "Incoterms" +msgstr "Condizioni di consegna" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_attachments_index_content @@ -502,14 +571,20 @@ msgstr "Contenuto Indicizzato" #. module: l10n_it_fatturapa #: model:ir.model.fields,help:l10n_it_fatturapa.field_account_invoice_art73 -msgid "Indica se il documento è stato emesso secondo modalità e termini stabiliti con decreto ministeriale ai sensi dell'articolo 73 del DPR 633/72 (ciò consente al cedente/prestatore l'emissione nello stesso anno di più documenti aventi stesso numero)" -msgstr "Indica se il documento è stato emesso secondo modalità e termini stabiliti con decreto ministeriale ai sensi dell'articolo 73 del DPR 633/72 (ciò consente al cedente/prestatore l'emissione nello stesso anno di più documenti aventi stesso numero)" +msgid "Indica se il documento e' stato emesso secondo modalita' e termini stabiliti con decreto ministeriale ai sensi dell'articolo 73 del DPR 633/72 (cio' consente al cedente/prestatore l'emissione nello stesso anno di piu' documenti aventi stesso numero)" +msgstr "Indica se il documento e' stato emesso secondo modalita' e termini stabiliti con decreto ministeriale ai sensi dell'articolo 73 del DPR 633/72 (cio' consente al cedente/prestatore l'emissione nello stesso anno di piu' documenti aventi stesso numero)" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_efatt_stabile_organizzazione_indirizzo msgid "Indirizzo Organizzazione" msgstr "Indirizzo Organizzazione" +#. module: l10n_it_fatturapa +#: model:ir.model.fields,help:l10n_it_fatturapa.field_res_partner_pec_destinatario +#: model:ir.model.fields,help:l10n_it_fatturapa.field_res_users_pec_destinatario +msgid "Indirizzo PEC al quale inviare la fattura elettronica. Da valorizzare SOLO nei casi in cui l'elemento informativo vale '0000000'" +msgstr "Indirizzo PEC al quale inviare la fattura elettronica. Da valorizzare SOLO nei casi in cui l'elemento informativo vale '0000000'" + #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_intermediary msgid "Intermediary" @@ -609,11 +684,16 @@ msgstr "Rappresentante fiscale" msgid "License Code" msgstr "Codice Licenza" +#. module: l10n_it_fatturapa +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_line_ftpa_line_number +msgid "Line number" +msgstr "Numero riga" + #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_related_ddt_lineRef #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_related_document_type_lineRef msgid "LineRef" -msgstr "LineRef" +msgstr "Riferimento riga" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_company_fatturapa_rea_liquidation @@ -650,21 +730,26 @@ msgstr "Nazione Organizzazione" msgid "Net Weight" msgstr "Peso Netto" +#. module: l10n_it_fatturapa +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_detail_recepit_name +msgid "Nome Quietanzante" +msgstr "Nome Quietanzante" + #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_faturapa_summary_data_non_taxable_nature #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_welfare_fund_data_line_kind_id msgid "Non taxable nature" -msgstr "Non taxable nature" +msgstr "Natura esenzione" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_related_document_type_numitem msgid "NumItem" -msgstr "NumItem" +msgstr "Numero elemento" #. module: l10n_it_fatturapa #: model:ir.model.fields,help:l10n_it_fatturapa.field_account_invoice_efatt_stabile_organizzazione_civico -msgid "Numero civico riferito all'indirizzo (non indicare se già presente nell'elemento informativo indirizzo)" -msgstr "Numero civico riferito all'indirizzo (non indicare se già presente nell'elemento informativo indirizzo)" +msgid "Numero civico riferito all'indirizzo (non indicare se gia' presente nell'elemento informativo indirizzo)" +msgstr "Numero civico riferito all'indirizzo (non indicare se gia' presente nell'elemento informativo indirizzo)" #. module: l10n_it_fatturapa #: selection:fatturapa.related_document_type,type:0 @@ -674,18 +759,30 @@ msgstr "Ordine" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_related_document_type_code msgid "Order Agreement Code" -msgstr "Order Agreement Code" +msgstr "Codice commessa" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_partner_pa_partner_code #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_users_pa_partner_code msgid "PA Code for partner" -msgstr "PA Code for partner" +msgstr "Riferimento Amministrazione" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_welfare_fund_data_line_pa_line_code msgid "PA Code for this record" -msgstr "PA Code for this record" +msgstr "Riferimento Amministrazione" + +#. module: l10n_it_fatturapa +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_partner_pec_destinatario +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_users_pec_destinatario +msgid "PEC destinatario" +msgstr "PEC destinatario" + +#. module: l10n_it_fatturapa +#: code:addons/l10n_it_fatturapa/models/ir_attachment.py:61 +#, python-format +msgid "Parsing PEM to DER file %s" +msgstr "Parsing PEM to DER file %s" #. module: l10n_it_fatturapa #: model:ir.model,name:l10n_it_fatturapa.model_res_partner @@ -745,28 +842,34 @@ msgstr "Percentuale" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_pickup_datetime msgid "Pick up" -msgstr "Pick up" +msgstr "Consegna" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_detail_post_office_code msgid "Post Office Code" -msgstr "Post Office Code" +msgstr "Codice ufficio postale" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_detail_prepayment_discount msgid "Prepayment Discount" -msgstr "Prepayment Discount" +msgstr "Sconto Pagamento Anticipato" + +#. module: l10n_it_fatturapa +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_attachments_ftpa_preview_link +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_ir_attachment_ftpa_preview_link +msgid "Preview link" +msgstr "Preview link" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_partner_register #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_users_register msgid "Professional Register" -msgstr "Professional Register" +msgstr "Albo Professionale" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_protocol_number msgid "Protocol Number" -msgstr "Protocol Number" +msgstr "Numero protocollo" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_efatt_stabile_organizzazione_provincia @@ -777,23 +880,23 @@ msgstr "Provincia Organizzazione" #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_config_settings_fatturapa_pub_administration_ref #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_company_fatturapa_pub_administration_ref msgid "Public Administration Reference Code" -msgstr "Public Administration Reference Code" +msgstr "Codice riferimento pubblica amministrazione" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_company_fatturapa_rea_office msgid "REA office" -msgstr "REA office" +msgstr "Ufficio" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_config_settings_fatturapa_rea_capital #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_company_fatturapa_rea_capital msgid "Rea Capital" -msgstr "Rea Capital" +msgstr "Capitale Sociale" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_config_settings_fatturapa_rea_partner msgid "Rea Copartner" -msgstr "Rea Copartner" +msgstr "Socio Unico" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_config_settings_fatturapa_rea_liquidation @@ -816,18 +919,10 @@ msgstr "Ufficio REA" msgid "Reason" msgstr "Motivo" -#. module: l10n_it_fatturapa -#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_detail_recepit_cf -#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_detail_recepit_name -#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_detail_recepit_surname -#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_detail_recepit_title -msgid "Recepit payment partner contact" -msgstr "Recepit payment partner contact" - #. module: l10n_it_fatturapa #: selection:fatturapa.related_document_type,type:0 msgid "Reception" -msgstr "Reception" +msgstr "Ricezione" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_detail_recipient @@ -838,31 +933,31 @@ msgstr "Destinatario" #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_partner_register_code #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_users_register_code msgid "Register Code" -msgstr "Register Code" +msgstr "Numero Iscrizione Albo" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_partner_register_fiscalpos #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_users_register_fiscalpos msgid "Register Fiscal Position" -msgstr "Register Fiscal Position" +msgstr "Regime Fiscale" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_partner_register_province #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_users_register_province msgid "Register Province" -msgstr "Register Province" +msgstr "Provincia Albo" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_partner_register_regdate #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_users_register_regdate msgid "Register Registration Date" -msgstr "Register Registration Date" +msgstr "Data Iscrizione Albo" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_ftpa_related_ddts #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_line_ftpa_related_ddts msgid "Related DdT" -msgstr "Related DdT" +msgstr "DDT correlati" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_related_documents @@ -873,7 +968,7 @@ msgstr "Documenti Correlati" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_line_related_documents msgid "Related Documents Type" -msgstr "Related Documents Type" +msgstr "Tipo documenti correlati" #. module: l10n_it_fatturapa #: selection:fatturapa.related_document_type,type:0 @@ -887,28 +982,28 @@ msgstr "Related Documents Type" #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_faturapa_summary_data_invoice_id #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_welfare_fund_data_line_invoice_id msgid "Related Invoice" -msgstr "Related Invoice" +msgstr "Fattura correlata" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_related_ddt_invoice_line_id #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_related_document_type_invoice_line_id msgid "Related Invoice Line" -msgstr "Related Invoice Line" +msgstr "Riga fattura correlata" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_related_invoice_code msgid "Related invoice code" -msgstr "Related invoice code" +msgstr "Numero Fattura Principale" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_related_invoice_date msgid "Related invoice date" -msgstr "Related invoice date" +msgstr "Data Fattura Principale" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_detail_payment_data_id msgid "Related payments Data" -msgstr "Related payments Data" +msgstr "Dati pagamenti correlati" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_attachments_res_field @@ -933,17 +1028,17 @@ msgstr "Nome Risorsa" #. module: l10n_it_fatturapa #: selection:discount.rise.price,name:0 msgid "Rise Price" -msgstr "Rise Price" +msgstr "Maggiorazione" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_faturapa_summary_data_rounding msgid "Rounding" -msgstr "Rounding" +msgstr "Arrotondamento" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_sender msgid "Sender" -msgstr "Sender" +msgstr "Trasmittente" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_config_settings_fatturapa_sequence_id @@ -953,18 +1048,36 @@ msgstr "Sequenza" #. module: l10n_it_fatturapa #: model:ir.model.fields,help:l10n_it_fatturapa.field_account_invoice_efatt_stabile_organizzazione_provincia -msgid "Sigla della provincia di appartenenza del comune indicato nell'elemento informativo 1.2.3.4 . Da valorizzare se l'elemento informativo 1.2.3.6 è uguale a IT" -msgstr "Sigla della provincia di appartenenza del comune indicato nell'elemento informativo 1.2.3.4 . Da valorizzare se l'elemento informativo 1.2.3.6 è uguale a IT" +msgid "Sigla della provincia di appartenenza del comune indicato nell'elemento informativo 1.2.3.4 . Da valorizzare se l'elemento informativo 1.2.3.6 e' uguale a IT" +msgstr "Sigla della provincia di appartenenza del comune indicato nell'elemento informativo 1.2.3.4 . Da valorizzare se l'elemento informativo 1.2.3.6 e' uguale a IT" + +#. module: l10n_it_fatturapa +#: code:addons/l10n_it_fatturapa/models/ir_attachment.py:87 +#, python-format +msgid "Signed Xml file %s" +msgstr "Signed Xml file %s" + +#. module: l10n_it_fatturapa +#: code:addons/l10n_it_fatturapa/models/ir_attachment.py:93 +#, python-format +msgid "Signed Xml file not decryptable" +msgstr "Signed Xml file not decryptable" #. module: l10n_it_fatturapa #: selection:faturapa.summary.data,payability:0 msgid "Split payment" -msgstr "Split payment" +msgstr "Scissione pagamenti" + +#. module: l10n_it_fatturapa +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_config_settings_fatturapa_stabile_organizzazione +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_company_fatturapa_stabile_organizzazione +msgid "Stabile Organizzazione" +msgstr "Stabile Organizzazione" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_stamp_amount msgid "Stamp Amount" -msgstr "Stamp Amount" +msgstr "Importo bollo" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_attachments_store_fname @@ -974,17 +1087,24 @@ msgstr "Nome del File Registrato" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_welfare_fund_data_line_subjected_withholding msgid "Subjected to Withholding" -msgstr "Subjected to Withholding" +msgstr "Soggetto a ritenuta" + +#. module: l10n_it_fatturapa +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_electronic_invoice_subjected +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_partner_electronic_invoice_subjected +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_users_electronic_invoice_subjected +msgid "Subjected to electronic invoice" +msgstr "Soggetto a fatturazione elettronica" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_tax_representative_id msgid "Tax Rapresentative" -msgstr "Tax Rapresentative" +msgstr "Rappresentante fiscale" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_faturapa_summary_data_tax_rate msgid "Tax Rate" -msgstr "Tax Rate" +msgstr "Aliquota" #. module: l10n_it_fatturapa #: model:ir.model.fields,help:l10n_it_fatturapa.field_fatturapa_attachments_res_model @@ -994,29 +1114,34 @@ msgstr "L'oggetto del database a cui verrà allegato questo allegato." #. module: l10n_it_fatturapa #: model:ir.model.fields,help:l10n_it_fatturapa.field_fatturapa_attachments_res_id msgid "The record id this is attached to." -msgstr "The record id this is attached to." +msgstr "L'ID del record a cui questo è allegato." #. module: l10n_it_fatturapa #: model:ir.model.fields,help:l10n_it_fatturapa.field_account_config_settings_fatturapa_sequence_id #: model:ir.model.fields,help:l10n_it_fatturapa.field_res_company_fatturapa_sequence_id msgid "The univocal progressive of the file is represented by an alphanumeric sequence of maximum length 5, its values are included in 'A'-'Z' and '0'-'9'" -msgstr "The univocal progressive of the file is represented by an alphanumeric sequence of maximum length 5, its values are included in 'A'-'Z' and '0'-'9'" +msgstr "Il progressivo univoco del file è rappresentato da una sequenza alfanumerica di lunghezza massima 5, i cui valori sono inclusi in 'A'-'Z' e '0'-'9'" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_config_settings_fatturapa_sender_partner #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_res_company_fatturapa_sender_partner msgid "Third Party/Sender" -msgstr "Third Party/Sender" +msgstr "Trasmittente" + +#. module: l10n_it_fatturapa +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_fatturapa_payment_detail_recepit_title +msgid "Titolo Quietanzante" +msgstr "Titolo Quietanzante" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_transport_date msgid "Transport Date" -msgstr "Transport Date" +msgstr "Data trasporto" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_total_travel msgid "Travel in hours or Km" -msgstr "Travel in hours or Km" +msgstr "Viaggio in ore o km" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_discount_rise_price_name @@ -1029,75 +1154,65 @@ msgstr "Tipo" msgid "Url" msgstr "Url" -#. module: l10n_it_fatturapa -#: model:ir.model.fields,help:l10n_it_fatturapa.field_account_config_settings_fatturapa_tax_representative -msgid "Used when a foreign company needs to send invoices to anItalian PA and has a tax representative in Italy" -msgstr "Used when a foreign company needs to send invoices to anItalian PA and has a tax representative in Italy" - -#. module: l10n_it_fatturapa -#: model:ir.model.fields,help:l10n_it_fatturapa.field_account_config_settings_fatturapa_sender_partner -msgid "Used when company sends invoices to a third party and they send invoices to SDI" -msgstr "Used when company sends invoices to a third party and they send invoices to SDI" - #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_faturapa_summary_data_payability msgid "VAT payability" -msgstr "VAT payability" +msgstr "Esigibilità IVA" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_transport_vehicle msgid "Vehicle" -msgstr "Vehicle" +msgstr "Veicolo" #. module: l10n_it_fatturapa -#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_vaicle_registration -msgid "Veicole Registration" -msgstr "Veicole Registration" +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_vehicle_registration +msgid "Vehicle Registration" +msgstr "Immatricolazione" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_virtual_stamp msgid "Virtual Stamp" -msgstr "Virtual Stamp" +msgstr "Bollo virtuale" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_unit_weight msgid "Weight unit" -msgstr "Weight unit" - -#. module: l10n_it_fatturapa -#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_welfare_fund_data_line_welfare_Iva_tax -msgid "Welfare tax" -msgstr "Welfare tax" +msgstr "Unita Misura Peso" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_welfare_fund_data_line_welfare_amount_tax msgid "Welfare Amount tax" -msgstr "Welfare Amount tax" +msgstr "Importo Contributo Cassa" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_welfare_fund_ids msgid "Welfare Fund" -msgstr "Welfare Fund" +msgstr "Cassa previdenziale" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_welfare_fund_data_line_name msgid "Welfare Fund Type" -msgstr "Welfare Fund Type" +msgstr "Tipo cassa previdenziale" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_welfare_fund_data_line_welfare_rate_tax msgid "Welfare Rate tax" -msgstr "Welfare Rate tax" +msgstr "Aliquota cassa" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_welfare_fund_data_line_welfare_taxable msgid "Welfare Taxable" -msgstr "Welfare Taxable" +msgstr "Imponibile Cassa" + +#. module: l10n_it_fatturapa +#: model:ir.model.fields,field_description:l10n_it_fatturapa.field_welfare_fund_data_line_welfare_Iva_tax +msgid "Welfare tax" +msgstr "Aliquota IVA" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_ftpa_withholding_type msgid "Withholding type" -msgstr "Withholding type" +msgstr "Tipo ritenuta" #. module: l10n_it_fatturapa #: model:ir.model.fields,help:l10n_it_fatturapa.field_fatturapa_attachments_type @@ -1112,12 +1227,12 @@ msgstr "account.config.settings" #. module: l10n_it_fatturapa #: selection:account.invoice,sender:0 msgid "assignee / partner" -msgstr "assignee / partner" +msgstr "cessionario / committente" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_welfare_fund_type_description msgid "description" -msgstr "description" +msgstr "descrizione" #. module: l10n_it_fatturapa #: selection:faturapa.summary.data,non_taxable_nature:0 @@ -1147,17 +1262,22 @@ msgstr "faturapa.summary.data" #. module: l10n_it_fatturapa #: model:ir.model.fields,help:l10n_it_fatturapa.field_account_config_settings_fatturapa_art73 msgid "indicates whether the document has been issued in accordance with the terms and conditions established by ministerial decree in accordance with Article 73 of Presidential Decree633/72 (this allows the company to issue the same year more documents with the same number)" -msgstr "indicates whether the document has been issued in accordance with the terms and conditions established by ministerial decree in accordance with Article 73 of Presidential Decree633/72 (this allows the company to issue the same year more documents with the same number)" +msgstr "Indica se il documento è stato emesso secondo modalità e termini stabiliti con decreto ministeriale ai sensi dell'articolo 73 del DPR 633/72 (ciò consente al cedente/prestatore l'emissione nello stesso anno di più documenti aventi stesso numero)" #. module: l10n_it_fatturapa #: selection:faturapa.summary.data,non_taxable_nature:0 msgid "inversione contabile (reverse charge)" msgstr "inversione contabile (reverse charge)" +#. module: l10n_it_fatturapa +#: model:ir.model,name:l10n_it_fatturapa.model_ir_attachment +msgid "ir.attachment" +msgstr "ir.attachment" + #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_welfare_fund_type_name msgid "name" -msgstr "name" +msgstr "nome" #. module: l10n_it_fatturapa #: selection:faturapa.summary.data,non_taxable_nature:0 @@ -1172,7 +1292,7 @@ msgstr "non soggette" #. module: l10n_it_fatturapa #: model:ir.model.fields,field_description:l10n_it_fatturapa.field_account_invoice_number_items msgid "number of items" -msgstr "number of items" +msgstr "numero di elementi" #. module: l10n_it_fatturapa #: selection:faturapa.summary.data,non_taxable_nature:0 @@ -1182,10 +1302,10 @@ msgstr "regime del margine" #. module: l10n_it_fatturapa #: selection:account.invoice,sender:0 msgid "third person" -msgstr "third person" +msgstr "Terzo" #. module: l10n_it_fatturapa #: model:ir.model,name:l10n_it_fatturapa.model_welfare_fund_type msgid "welfare fund type" -msgstr "welfare fund type" +msgstr "Tipo cassa previdenziale" diff --git a/l10n_it_fatturapa/models/__init__.py b/l10n_it_fatturapa/models/__init__.py index e64ee2251575..2294959ddac4 100644 --- a/l10n_it_fatturapa/models/__init__.py +++ b/l10n_it_fatturapa/models/__init__.py @@ -5,3 +5,4 @@ from . import account from . import company from . import partner +from . import ir_attachment diff --git a/l10n_it_fatturapa/models/account.py b/l10n_it_fatturapa/models/account.py index 5d6aac07d508..3cfccd791124 100644 --- a/l10n_it_fatturapa/models/account.py +++ b/l10n_it_fatturapa/models/account.py @@ -39,7 +39,7 @@ class FatturapaPaymentData(models.Model): # 2.4.1 payment_terms = fields.Many2one( - 'fatturapa.payment_term', string="FatturaPA Payment Method") + 'fatturapa.payment_term', string="Fattura Elettronica Payment Method") # 2.4.2 payment_methods = fields.One2many( 'fatturapa.payment.detail', 'payment_data_id', @@ -54,16 +54,16 @@ class FatturapaPaymentDetail(models.Model): _name = "fatturapa.payment.detail" recipient = fields.Char('Recipient', size=200) fatturapa_pm_id = fields.Many2one( - 'fatturapa.payment_method', string="FatturaPA Payment Method") + 'fatturapa.payment_method', string="Fattura Elettronica Payment Method") payment_term_start = fields.Date('Payment Term Start') payment_days = fields.Integer('Payment Term Days') payment_due_date = fields.Date('Payment due Date') payment_amount = fields.Float('Payment Amount') post_office_code = fields.Char('Post Office Code', size=20) - recepit_name = fields.Char("Recepit payment partner contact") - recepit_surname = fields.Char("Recepit payment partner contact") - recepit_cf = fields.Char("Recepit payment partner contact") - recepit_title = fields.Char("Recepit payment partner contact") + recepit_name = fields.Char("Nome Quietanzante") + recepit_surname = fields.Char("Cognome Quietanzante") + recepit_cf = fields.Char("CF Quietanzante") + recepit_title = fields.Char("Titolo Quietanzante") payment_bank_name = fields.Char("Bank name") payment_bank_iban = fields.Char("IBAN") payment_bank_abi = fields.Char("ABI") @@ -86,7 +86,7 @@ class FatturapaPaymentDetail(models.Model): class FatturapaFiscalPosition(models.Model): # _position = ['2.1.1.7.7', '2.2.1.14'] _name = "fatturapa.fiscal_position" - _description = 'FatturaPA Fiscal Position' + _description = 'Fattura Elettronica Fiscal Position' name = fields.Char('Description', size=128) code = fields.Char('Code', size=4) @@ -112,7 +112,7 @@ class WelfareFundDataLine(models.Model): welfare_rate_tax = fields.Float('Welfare Rate tax') welfare_amount_tax = fields.Float('Welfare Amount tax') welfare_taxable = fields.Float('Welfare Taxable') - welfare_Iva_tax = fields.Float('Welfare tax') + welfare_Iva_tax = fields.Float('Welfare tax') subjected_withholding = fields.Char( 'Subjected to Withholding', size=2) pa_line_code = fields.Char('PA Code for this record', size=20) @@ -234,17 +234,18 @@ class AccountInvoiceLine(models.Model): related_documents = fields.One2many( 'fatturapa.related_document_type', 'invoice_line_id', - 'Related Documents Type' + 'Related Documents Type', copy=False ) ftpa_related_ddts = fields.One2many( 'fatturapa.related_ddt', 'invoice_line_id', - 'Related DdT' + 'Related DdT', copy=False ) - admin_ref = fields.Char('Administration ref.', size=20) + admin_ref = fields.Char('Admin. ref.', size=20, copy=False) discount_rise_price_ids = fields.One2many( 'discount.rise.price', 'invoice_line_id', - 'Discount and Rise Price Details' + 'Discount and Rise Price Details', copy=False ) + ftpa_line_number = fields.Integer("Line number", readonly=True, copy=False) class FaturapaSummaryData(models.Model): @@ -279,7 +280,7 @@ class FaturapaSummaryData(models.Model): class AccountInvoice(models.Model): # _position = ['2.1', '2.2', '2.3', '2.4', '2.5'] _inherit = "account.invoice" - protocol_number = fields.Char('Protocol Number', size=64) + protocol_number = fields.Char('Protocol Number', size=64, copy=False) # 1.2 -- partner_id # 1.3 tax_representative_id = fields.Many2one( @@ -300,64 +301,64 @@ class AccountInvoice(models.Model): # 2.1.1.5.2 2.1.1.5.3 2.1.1.5.4 mapped to l10n_it_withholding_tax fields # 2.1.1.6 - virtual_stamp = fields.Boolean('Virtual Stamp', default=False) - stamp_amount = fields.Float('Stamp Amount') + virtual_stamp = fields.Boolean('Virtual Stamp', default=False, copy=False) + stamp_amount = fields.Float('Stamp Amount', copy=False) # 2.1.1.7 welfare_fund_ids = fields.One2many( 'welfare.fund.data.line', 'invoice_id', - 'Welfare Fund' + 'Welfare Fund', copy=False ) # 2.1.2 - 2.1.6 related_documents = fields.One2many( 'fatturapa.related_document_type', 'invoice_id', - 'Related Documents' + 'Related Documents', copy=False ) # 2.1.7 activity_progress_ids = fields.One2many( 'faturapa.activity.progress', 'invoice_id', - 'Fase of Activity Progress' + 'Fase of Activity Progress', copy=False ) # 2.1.8 ftpa_related_ddts = fields.One2many( 'fatturapa.related_ddt', 'invoice_id', - 'Related DdT' + 'Related DdT', copy=False ) # 2.1.9 carrier_id = fields.Many2one( - 'res.partner', string="Carrier") - transport_vehicle = fields.Char('Vehicle', size=80) - transport_reason = fields.Char('Reason', size=80) - number_items = fields.Integer('number of items') - description = fields.Char('Description', size=100) - unit_weight = fields.Char('Weight unit', size=10) - gross_weight = fields.Float('Gross Weight') - net_weight = fields.Float('Net Weight') - pickup_datetime = fields.Datetime('Pick up') - transport_date = fields.Date('Transport Date') - delivery_address = fields.Text('Delivery Address') - delivery_datetime = fields.Datetime('Delivery Date Time') - ftpa_incoterms = fields.Char(string="Incoterms") + 'res.partner', string="Carrier", copy=False) + transport_vehicle = fields.Char('Vehicle', size=80, copy=False) + transport_reason = fields.Char('Reason', size=80, copy=False) + number_items = fields.Integer('number of items', copy=False) + description = fields.Char('Description', size=100, copy=False) + unit_weight = fields.Char('Weight unit', size=10, copy=False) + gross_weight = fields.Float('Gross Weight', copy=False) + net_weight = fields.Float('Net Weight', copy=False) + pickup_datetime = fields.Datetime('Pick up', copy=False) + transport_date = fields.Date('Transport Date', copy=False) + delivery_address = fields.Text('Delivery Address', copy=False) + delivery_datetime = fields.Datetime('Delivery Date Time', copy=False) + ftpa_incoterms = fields.Char(string="Incoterms", copy=False) # 2.1.10 - related_invoice_code = fields.Char('Related invoice code') - related_invoice_date = fields.Date('Related invoice date') + related_invoice_code = fields.Char('Related invoice code', copy=False) + related_invoice_date = fields.Date('Related invoice date', copy=False) # 2.2.1 invoice lines # 2.2.2 fatturapa_summary_ids = fields.One2many( 'faturapa.summary.data', 'invoice_id', - 'FatturaPA Summary Datas' + 'Fattura Elettronica Summary Data', copy=False ) # 2.3 - vaicle_registration = fields.Date('Veicole Registration') - total_travel = fields.Char('Travel in hours or Km', size=15) + vehicle_registration = fields.Date('Vehicle Registration', copy=False) + total_travel = fields.Char('Travel in hours or Km', size=15, copy=False) # 2.4 fatturapa_payments = fields.One2many( 'fatturapa.payment.data', 'invoice_id', - 'FatturaPA Payment Datas' + 'Fattura Elettronica Payment Data', copy=False ) # 2.5 fatturapa_doc_attachments = fields.One2many( 'fatturapa.attachments', 'invoice_id', - 'FatturaPA attachments' + 'Fattura Elettronica attachments', copy=False ) # 1.2.3 efatt_stabile_organizzazione_indirizzo = fields.Char( @@ -366,41 +367,44 @@ class AccountInvoice(models.Model): "residente, con stabile organizzazione in Italia. Indirizzo " "della stabile organizzazione in Italia (nome della via, piazza " "etc.)", - readonly=True) + readonly=True, copy=False) efatt_stabile_organizzazione_civico = fields.Char( string="Civico Organizzazione", - help="Numero civico riferito all'indirizzo (non indicare se già " + help="Numero civico riferito all'indirizzo (non indicare se gia' " "presente nell'elemento informativo indirizzo)", - readonly=True) + readonly=True, copy=False) efatt_stabile_organizzazione_cap = fields.Char( string="CAP Organizzazione", help="Codice Avviamento Postale", - readonly=True) + readonly=True, copy=False) efatt_stabile_organizzazione_comune = fields.Char( string="Comune Organizzazione", help="Comune relativo alla stabile organizzazione in Italia", - readonly=True) + readonly=True, copy=False) efatt_stabile_organizzazione_provincia = fields.Char( string="Provincia Organizzazione", help="Sigla della provincia di appartenenza del comune indicato " "nell'elemento informativo 1.2.3.4 . Da valorizzare se " - "l'elemento informativo 1.2.3.6 è uguale a IT", - readonly=True) + "l'elemento informativo 1.2.3.6 e' uguale a IT", + readonly=True, copy=False) efatt_stabile_organizzazione_nazione = fields.Char( string="Nazione Organizzazione", help="Codice della nazione espresso secondo lo standard " "ISO 3166-1 alpha-2 code", - readonly=True) + readonly=True, copy=False) # 2.1.1.10 efatt_rounding = fields.Float( "Arrotondamento", readonly=True, help="Eventuale arrotondamento sul totale documento (ammette anche il " - "segno negativo)" + "segno negativo)", copy=False ) art73 = fields.Boolean( 'Art73', readonly=True, - help="Indica se il documento è stato emesso secondo modalità e " + help="Indica se il documento e' stato emesso secondo modalita' e " "termini stabiliti con decreto ministeriale ai sensi " - "dell'articolo 73 del DPR 633/72 (ciò consente al " - "cedente/prestatore l'emissione nello stesso anno di più " - "documenti aventi stesso numero)") + "dell'articolo 73 del DPR 633/72 (cio' consente al " + "cedente/prestatore l'emissione nello stesso anno di piu' " + "documenti aventi stesso numero)", copy=False) + electronic_invoice_subjected = fields.Boolean( + 'Subjected to electronic invoice', + related='partner_id.electronic_invoice_subjected', readonly=True) diff --git a/l10n_it_fatturapa/models/company.py b/l10n_it_fatturapa/models/company.py index 3bdf9ba92037..c8d6349481b6 100644 --- a/l10n_it_fatturapa/models/company.py +++ b/l10n_it_fatturapa/models/company.py @@ -10,7 +10,7 @@ class ResCompany(models.Model): fatturapa_fiscal_position_id = fields.Many2one( 'fatturapa.fiscal_position', 'Fiscal Position', - help="Fiscal position used by FatturaPA", + help="Fiscal position used by Fattura Elettronica", ) fatturapa_sequence_id = fields.Many2one( 'ir.sequence', 'Sequence', @@ -43,14 +43,20 @@ class ResCompany(models.Model): help="Dati relativi al soggetto terzo che emette fattura per conto " "del cedente / prestatore" ) + fatturapa_stabile_organizzazione = fields.Many2one( + 'res.partner', 'Stabile Organizzazione', + help='Blocco da valorizzare nei casi di cedente / prestatore non ' + 'residente, con stabile organizzazione in Italia' + ) class AccountConfigSettings(models.TransientModel): _inherit = 'account.config.settings' + fatturapa_fiscal_position_id = fields.Many2one( related='company_id.fatturapa_fiscal_position_id', string="Fiscal Position", - help='Fiscal position used by FatturaPA' + help='Fiscal position used by Fattura Elettronica' ) fatturapa_sequence_id = fields.Many2one( related='company_id.fatturapa_sequence_id', @@ -96,14 +102,20 @@ class AccountConfigSettings(models.TransientModel): fatturapa_tax_representative = fields.Many2one( related='company_id.fatturapa_tax_representative', string="Legal Tax Representative", - help="Used when a foreign company needs to send invoices to an" - "Italian PA and has a tax representative in Italy" + help="Blocco da valorizzare nei casi in cui il cedente / prestatore " + "si avvalga di un rappresentante fiscale in Italia" ) fatturapa_sender_partner = fields.Many2one( related='company_id.fatturapa_sender_partner', string="Third Party/Sender", - help="Used when company sends invoices to a third party and they " - "send invoices to SDI" + help="Dati relativi al soggetto terzo che emette fattura per conto " + "del cedente / prestatore" + ) + fatturapa_stabile_organizzazione = fields.Many2one( + related='company_id.fatturapa_stabile_organizzazione', + string="Stabile Organizzazione", + help="Blocco da valorizzare nei casi di cedente / prestatore non " + "residente, con stabile organizzazione in Italia" ) @api.onchange('company_id') @@ -111,13 +123,18 @@ def onchange_company_id(self): res = super(AccountConfigSettings, self).onchange_company_id() if self.company_id: company = self.company_id + default_sequence = self.env['ir.sequence'].search([ + ('code', '=', 'account.invoice.fatturapa') + ]) + default_sequence = ( + default_sequence[0].id if default_sequence else False) self.fatturapa_fiscal_position_id = ( company.fatturapa_fiscal_position_id and company.fatturapa_fiscal_position_id.id or False ) self.fatturapa_sequence_id = ( company.fatturapa_sequence_id and - company.fatturapa_sequence_id.id or False + company.fatturapa_sequence_id.id or default_sequence ) self.fatturapa_art73 = ( company.fatturapa_art73 or False @@ -149,6 +166,10 @@ def onchange_company_id(self): company.fatturapa_sender_partner and company.fatturapa_sender_partner.id or False ) + self.fatturapa_stabile_organizzazione = ( + company.fatturapa_stabile_organizzazione and + company.fatturapa_stabile_organizzazione.id or False + ) else: self.fatturapa_fiscal_position_id = False self.fatturapa_sequence_id = False @@ -161,4 +182,5 @@ def onchange_company_id(self): self.fatturapa_rea_liquidation = False self.fatturapa_tax_representative = False self.fatturapa_sender_partner = False + self.fatturapa_stabile_organizzazione = False return res diff --git a/l10n_it_fatturapa/models/ir_attachment.py b/l10n_it_fatturapa/models/ir_attachment.py new file mode 100644 index 000000000000..665360a4ccfb --- /dev/null +++ b/l10n_it_fatturapa/models/ir_attachment.py @@ -0,0 +1,157 @@ +# -*- coding: utf-8 -*- + +import lxml.etree as ET +import os +import shlex +import subprocess +import logging +from io import BytesIO +from odoo import models, api, fields +from odoo.modules import get_module_resource +from odoo.exceptions import UserError +from odoo.tools.translate import _ + +_logger = logging.getLogger(__name__) + + +class Attachment(models.Model): + _inherit = 'ir.attachment' + + ftpa_preview_link = fields.Char( + "Preview link", readonly=True, compute="_compute_ftpa_preview_link" + ) + + @api.multi + def _compute_ftpa_preview_link(self): + for att in self: + att.ftpa_preview_link = '/fatturapa/preview/%s' % self.id + + def check_file_is_pem(self, p7m_file): + file_is_pem = True + strcmd = ( + 'openssl asn1parse -inform PEM -in %s' + ) % (p7m_file) + cmd = shlex.split(strcmd) + try: + proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) + proc.communicate() + if proc.wait() != 0: + file_is_pem = False + except Exception as e: + raise UserError( + _( + 'An error with command "openssl asn1parse" occurred: %s' + ) % e.args + ) + return file_is_pem + + def parse_pem_2_der(self, pem_file, tmp_der_file): + strcmd = ( + 'openssl asn1parse -in %s -out %s' + ) % (pem_file, tmp_der_file) + cmd = shlex.split(strcmd) + try: + proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) + stdoutdata, stderrdata = proc.communicate() + if proc.wait() != 0: + _logger.warning(stdoutdata) + raise Exception(stderrdata) + except Exception as e: + raise UserError( + _( + 'Parsing PEM to DER file %s' + ) % e.args + ) + if not os.path.isfile(tmp_der_file): + raise UserError( + _( + 'ASN.1 structure is not parsable in DER' + ) + ) + return tmp_der_file + + def decrypt_to_xml(self, signed_file, xml_file): + strcmd = ( + 'openssl smime -decrypt -verify -inform' + ' DER -in %s -noverify -out %s' + ) % (signed_file, xml_file) + cmd = shlex.split(strcmd) + try: + proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) + stdoutdata, stderrdata = proc.communicate() + if proc.wait() != 0: + _logger.warning(stdoutdata) + raise Exception(stderrdata) + except Exception as e: + raise UserError( + _( + 'Signed Xml file %s' + ) % e.args + ) + if not os.path.isfile(xml_file): + raise UserError( + _( + 'Signed Xml file not decryptable' + ) + ) + return xml_file + + def remove_xades_sign(self, xml): + root = ET.XML(xml) + for elem in root.iter('*'): + if elem.tag.find('Signature') > -1: + elem.getparent().remove(elem) + break + return ET.tostring(root) + + def strip_xml_content(self, xml): + root = ET.XML(xml) + for elem in root.iter('*'): + if elem.text is not None: + elem.text = elem.text.strip() + return ET.tostring(root) + + def get_xml_string(self): + fatturapa_attachment = self + # decrypt p7m file + if fatturapa_attachment.datas_fname.lower().endswith('.p7m'): + temp_file_name = ( + '/tmp/%s' % fatturapa_attachment.datas_fname.lower()) + temp_der_file_name = ( + '/tmp/%s_tmp' % fatturapa_attachment.datas_fname.lower()) + with open(temp_file_name, 'w') as p7m_file: + p7m_file.write(fatturapa_attachment.datas.decode('base64')) + xml_file_name = os.path.splitext(temp_file_name)[0] + + # check if temp_file_name is a PEM file + file_is_pem = self.check_file_is_pem(temp_file_name) + + # if temp_file_name is a PEM file + # parse it in a DER file + if file_is_pem: + temp_file_name = self.parse_pem_2_der( + temp_file_name, temp_der_file_name) + + # decrypt signed DER file in XML readable + xml_file_name = self.decrypt_to_xml( + temp_file_name, xml_file_name) + + with open(xml_file_name, 'r') as fatt_file: + file_content = fatt_file.read() + xml_string = file_content + elif fatturapa_attachment.datas_fname.lower().endswith('.xml'): + xml_string = fatturapa_attachment.datas.decode('base64') + xml_string = self.remove_xades_sign(xml_string) + xml_string = self.strip_xml_content(xml_string) + return xml_string + + def get_fattura_elettronica_preview(self): + xsl_path = get_module_resource( + 'l10n_it_fatturapa', 'data', 'fatturaordinaria_v1.2.1.xsl') + xslt = ET.parse(xsl_path) + xml_string = self.get_xml_string() + xml_file = BytesIO(xml_string) + dom = ET.parse(xml_file) + transform = ET.XSLT(xslt) + newdom = transform(dom) + return ET.tostring(newdom, pretty_print=True) diff --git a/l10n_it_fatturapa/models/partner.py b/l10n_it_fatturapa/models/partner.py index 7a66696e0f58..3d3921b8d410 100644 --- a/l10n_it_fatturapa/models/partner.py +++ b/l10n_it_fatturapa/models/partner.py @@ -2,7 +2,8 @@ # Copyright 2014 Davide Corio # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -from odoo import fields, models +from odoo import fields, models, api, _ +from odoo.exceptions import ValidationError class ResPartner(models.Model): @@ -25,3 +26,61 @@ class ResPartner(models.Model): register_fiscalpos = fields.Many2one( 'fatturapa.fiscal_position', string="Register Fiscal Position") + # 1.1.4 + codice_destinatario = fields.Char( + "Codice Destinatario", + help="Il codice, di 7 caratteri, assegnato dal Sdi ai soggetti che " + "hanno accreditato un canale; qualora il destinatario non abbia " + "accreditato un canale presso Sdi e riceva via PEC le fatture, " + "l'elemento deve essere valorizzato con tutti zeri ('0000000'). ") + # 1.1.6 + pec_destinatario = fields.Char( + "PEC destinatario", + help="Indirizzo PEC al quale inviare la fattura elettronica. " + "Da valorizzare " + "SOLO nei casi in cui l'elemento informativo " + " vale '0000000'" + ) + electronic_invoice_subjected = fields.Boolean( + "Subjected to electronic invoice") + + @api.multi + @api.constrains( + 'is_pa', 'ipa_code', 'codice_destinatario', 'company_type', + 'electronic_invoice_subjected', 'vat', 'fiscalcode', 'lastname', + 'firstname' + ) + def _check_ftpa_partner_data(self): + for partner in self: + if partner.electronic_invoice_subjected: + if partner.is_pa and ( + not partner.ipa_code or len(partner.ipa_code) != 6 + ): + raise ValidationError(_( + "Il partner %s, essendo una pubblica amministrazione " + "deve avere il codice IPA lungo 6 caratteri" + ) % partner.name) + if not partner.is_pa and ( + not partner.codice_destinatario or + len(partner.codice_destinatario) != 7 + ): + raise ValidationError(_( + "Il partner %s " + "deve avere il Codice Destinatario lungo 7 caratteri" + ) % partner.name) + if partner.company_type == 'person' and ( + not partner.lastname or not partner.firstname + ): + raise ValidationError(_( + "Il partner %s, essendo persona " + "deve avere Nome e Cognome" + ) % partner.name) + if ( + not partner.is_pa and + partner.codice_destinatario == '0000000' + ): + if not partner.vat and not partner.fiscalcode: + raise ValidationError(_( + "Il partner %s, con Codice Destinatario '0000000'," + " deve avere o P.IVA o codice fiscale" + ) % partner.name) \ No newline at end of file diff --git a/l10n_it_fatturapa/readme/CONFIGURE.rst b/l10n_it_fatturapa/readme/CONFIGURE.rst new file mode 100644 index 000000000000..7f3d3b3c0839 --- /dev/null +++ b/l10n_it_fatturapa/readme/CONFIGURE.rst @@ -0,0 +1,5 @@ + * In partner form, select 'Subjected to electronic invoice' in Electronic Invoice tab for customers and suppliers subjected to electronic invoicing + * Public administrations must have IPA code + * Others must have Codice Destinatario + * Configure taxes about 'Non taxable nature', 'Law reference' and 'VAT payability' + * Configure Electronic Invoice data in Accounting Configuration, where needed. diff --git a/l10n_it_fatturapa/readme/CONTRIBUTORS.rst b/l10n_it_fatturapa/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000000..5169736f4169 --- /dev/null +++ b/l10n_it_fatturapa/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* Davide Corio +* Lorenzo Battistini +* Roberto Onnis +* Alessio Gerace diff --git a/l10n_it_fatturapa/readme/DESCRIPTION.rst b/l10n_it_fatturapa/readme/DESCRIPTION.rst new file mode 100644 index 000000000000..47576d754c74 --- /dev/null +++ b/l10n_it_fatturapa/readme/DESCRIPTION.rst @@ -0,0 +1,4 @@ +Base module to handle Electronic Invoices. +http://fatturapa.gov.it + +See also l10n_it_fatturapa_out and l10n_it_fatturapa_in README files. diff --git a/l10n_it_fatturapa/readme/INSTALL.rst b/l10n_it_fatturapa/readme/INSTALL.rst new file mode 100644 index 000000000000..46aea8c58086 --- /dev/null +++ b/l10n_it_fatturapa/readme/INSTALL.rst @@ -0,0 +1,2 @@ +This module requires PyXB 1.2.5 +http://pyxb.sourceforge.net/ diff --git a/l10n_it_fatturapa/static/description/index.html b/l10n_it_fatturapa/static/description/index.html new file mode 100644 index 000000000000..199da70a24c0 --- /dev/null +++ b/l10n_it_fatturapa/static/description/index.html @@ -0,0 +1,446 @@ + + + + + + +Italian Localization - FatturaPA + + + +
+

Italian Localization - FatturaPA

+ + +

Beta License: LGPL-3 OCA/l10n-italy Translate me on Weblate Try me on Runbot

+

Base module to handle Electronic Invoices. +http://fatturapa.gov.it

+

See also l10n_it_fatturapa_out and l10n_it_fatturapa_in README files.

+

Table of contents

+ +
+

Installation

+

This module requires PyXB 1.2.5 +http://pyxb.sourceforge.net/

+
+
+

Configuration

+
+
    +
  • In partner form, select ‘Subjected to electronic invoice’ in Electronic Invoice tab for customers and suppliers subjected to electronic invoicing
  • +
  • Public administrations must have IPA code
  • +
  • Others must have Codice Destinatario
  • +
  • Configure taxes about ‘Non taxable nature’, ‘Law reference’ and ‘VAT payability’
  • +
  • Configure Electronic Invoice data in Accounting Configuration, where needed.
  • +
+
+
+
+

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 +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Davide Corio
  • +
  • Agile Business Group
  • +
  • Innoviu
  • +
  • Odoo Italia Network
  • +
+
+
+

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_fatturapa/views/account_view.xml b/l10n_it_fatturapa/views/account_view.xml index 013e9b7aac45..063dad60d2f5 100644 --- a/l10n_it_fatturapa/views/account_view.xml +++ b/l10n_it_fatturapa/views/account_view.xml @@ -1,28 +1,8 @@ - - - - customer_invoice_lines_not_editable - account.invoice - - - - - - - - - supplier_invoice_lines_not_editable - account.invoice - - - - - - - + + account.invoice.line.fatturapa @@ -30,7 +10,7 @@ - +
diff --git a/l10n_it_fatturapa/views/company_view.xml b/l10n_it_fatturapa/views/company_view.xml index 34ed07029853..a626bd9512dd 100644 --- a/l10n_it_fatturapa/views/company_view.xml +++ b/l10n_it_fatturapa/views/company_view.xml @@ -1,5 +1,5 @@ - + @@ -8,10 +8,10 @@ - +