Also see the README file of l10n_it_fatturapa module.
+
For every supplier, it is possible to set the ‘details level of electronic invoices’:
+
+
+
Minimum level: Supplier invoice is created without lines; user will have to create them, according to what specified in electronic invoice
+
Maximum level: every line contained in electronic invoice will create a line in supplier invoice.
+
+
+
Moreover, it is possible, in supplier form, to set the ‘default product for electronic invoices’: this product will be used, during generation of supplier invoices, when no other possible product is found. Tax and account of invoice line will be set according to what configured in the product.
+
Every product code used by suppliers can be set, in product form, in
+
Inventory –> Suppliers
+
If supplier specifies a known code in XML, the system will use it to retrieve the correct product to be used in invoice line, setting the related tax and account.
Go to Accounting –> Purchases –> Electronic Invoice
+
Upload XML file
+
View invoice content clicking on ‘show preview’
+
Run ‘import electronic invoice’ wizard to create a draft invoice or run ‘link to existing supplier invoice’ to link the XML file to an already (automatically) created invoice
+
+
+
In the incoming electronic invoice files list, by default you will see files to be registered, that is files not yet linked to one or more supplier invoices
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.
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.
+
+
+
+
diff --git a/l10n_it_fatturapa_in/views/partner_view.xml b/l10n_it_fatturapa_in/views/partner_view.xml
index 171671e26fb4..81e10e2a3218 100644
--- a/l10n_it_fatturapa_in/views/partner_view.xml
+++ b/l10n_it_fatturapa_in/views/partner_view.xml
@@ -6,18 +6,20 @@
res.partner
-
-
-
-
-
-
+
+
+
+
-
-
-
+
+
+
+
+
+
+
-
+
diff --git a/l10n_it_fatturapa_in/wizard/__init__.py b/l10n_it_fatturapa_in/wizard/__init__.py
index a45fc832329f..313c912d6f15 100644
--- a/l10n_it_fatturapa_in/wizard/__init__.py
+++ b/l10n_it_fatturapa_in/wizard/__init__.py
@@ -1,22 +1,4 @@
# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Copyright (C) 2015 AgileBG SAGL
-# Copyright (C) 2015 innoviu Srl
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published
-# by the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
from . import wizard_import_fatturapa
+from . import link_to_existing_invoice
diff --git a/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.py b/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.py
new file mode 100644
index 000000000000..879f7943e3fe
--- /dev/null
+++ b/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+
+from odoo import models, api, fields
+from odoo.tools.translate import _
+from odoo.exceptions import UserError
+
+
+class WizardLinkToInvoice(models.TransientModel):
+ _name = "wizard.link.to.invoice"
+ _description = "Link to Supplier Invoice"
+ invoice_id = fields.Many2one(
+ 'account.invoice', string="Invoice", required=True)
+
+ @api.multi
+ def link(self):
+ self.ensure_one()
+ active_ids = self.env.context.get('active_ids')
+ if len(active_ids) != 1:
+ raise UserError(_("You can select only 1 XML file to link"))
+ self.invoice_id.fatturapa_attachment_in_id = active_ids[0]
diff --git a/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.xml b/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.xml
new file mode 100644
index 000000000000..18509d0aea3e
--- /dev/null
+++ b/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.xml
@@ -0,0 +1,34 @@
+
+
+
+
+ wizard_link_supplier_invoice
+ wizard.link.to.invoice
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
index c252b594faf9..2045ba3528b7 100644
--- a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
+++ b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
@@ -1,99 +1,104 @@
# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Copyright (C) 2015 AgileBG SAGL
-# Copyright (C) 2015 innoviu Srl
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published
-# by the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
+
import base64
-import os
-import shlex
-import subprocess
-from openerp.osv import orm
-from openerp.tools.translate import _
import logging
+from odoo import models, api, fields
+from odoo.tools import float_is_zero
+from odoo.tools.translate import _
+from odoo.exceptions import UserError
-
-from openerp.addons.l10n_it_fatturapa.bindings import fatturapa_v_1_1
-from openerp.addons.base_iban import base_iban
-from lxml import etree
+from odoo.addons.l10n_it_fatturapa.bindings import fatturapa_v_1_2
+from odoo.addons.base_iban.models.res_partner_bank import pretty_iban
_logger = logging.getLogger(__name__)
-class WizardImportFatturapa(orm.TransientModel):
+class WizardImportFatturapa(models.TransientModel):
_name = "wizard.import.fatturapa"
_description = "Import FatturaPA"
- def saveAttachment(self, cr, uid, context=None):
- if not context:
- context = {}
+ e_invoice_detail_level = fields.Selection([
+ ('0', 'Minimo'),
+ # ('1', 'Aliquote'),
+ ('2', 'Massimo'),
+ ], string="Livello di dettaglio Fatture elettroniche",
+ help="Livello minimo: La fattura passiva viene creata senza righe; "
+ "sara' l'utente a doverle creare in base a quanto indicato dal "
+ "fornitore nella fattura elettronica\n"
+ # "Livello Aliquote: viene creata una riga fattura per ogni "
+ # "aliquota presente nella fattura elettronica\n"
+ "Livello Massimo: tutte le righe presenti nella fattura "
+ "elettronica vengono create come righe della fattura passiva",
+ required=True
+ )
- return False
+ @api.model
+ def default_get(self, fields):
+ res = super(WizardImportFatturapa, self).default_get(fields)
+ res['e_invoice_detail_level'] = '2'
+ fatturapa_attachment_ids = self.env.context.get('active_ids', False)
+ fatturapa_attachment_obj = self.env['fatturapa.attachment.in']
+ partners = self.env['res.partner']
+ for fatturapa_attachment_id in fatturapa_attachment_ids:
+ fatturapa_attachment = fatturapa_attachment_obj.browse(
+ fatturapa_attachment_id)
+ if fatturapa_attachment.in_invoice_ids:
+ raise UserError(
+ _("File %s is linked to invoices yet")
+ % fatturapa_attachment.name)
+ partners |= fatturapa_attachment.xml_supplier_id
+ if len(partners) == 1:
+ res['e_invoice_detail_level'] = (
+ partners[0].e_invoice_detail_level)
+ return res
- def CountryByCode(self, cr, uid, CountryCode, context=None):
- country_model = self.pool['res.country']
- return country_model.search(
- cr, uid, [('code', '=', CountryCode)], context=context)
+ def CountryByCode(self, CountryCode):
+ country_model = self.env['res.country']
+ return country_model.search([('code', '=', CountryCode)])
- def ProvinceByCode(self, cr, uid, provinceCode, context=None):
- province_model = self.pool['res.province']
- return province_model.search(
- cr, uid, [('code', '=', provinceCode)], context=context)
+ def ProvinceByCode(self, provinceCode):
+ province_model = self.env['res.country.state']
+ return province_model.search([
+ ('code', '=', provinceCode),
+ ('country_id.code', '=', 'IT')
+ ])
- def check_partner_base_data(
- self, cr, uid, partner_id, DatiAnagrafici, context=None
- ):
- if context is None:
- context = {}
- partner = self.pool['res.partner'].browse(
- cr, uid, partner_id, context=context)
+ def log_inconsistency(self, message):
+ inconsistencies = self.env.context.get('inconsistencies', '')
+ if inconsistencies:
+ inconsistencies += '\n'
+ inconsistencies += message
+ # we can't set
+ # self = self.with_context(inconsistencies=inconsistencies)
+ # because self is a locale variable.
+ # We use __dict__ to modify attributes of self
+ self.__dict__.update(
+ self.with_context(inconsistencies=inconsistencies).__dict__
+ )
+
+ def check_partner_base_data(self, partner_id, DatiAnagrafici):
+ partner = self.env['res.partner'].browse(partner_id)
if (
DatiAnagrafici.Anagrafica.Denominazione and
partner.name != DatiAnagrafici.Anagrafica.Denominazione
):
- if context.get('inconsistencies'):
- context['inconsistencies'] += '\n'
- context['inconsistencies'] += (
- _(
- "DatiAnagrafici.Anagrafica.Denominazione contains \"%s\"."
- " Your System contains \"%s\""
- )
- % (DatiAnagrafici.Anagrafica.Denominazione, partner.name)
- )
+ self.log_inconsistency(_(
+ "DatiAnagrafici.Anagrafica.Denominazione contains \"%s\"."
+ " Your System contains \"%s\""
+ ) % (DatiAnagrafici.Anagrafica.Denominazione, partner.name))
if (
DatiAnagrafici.Anagrafica.Nome and
partner.firstname != DatiAnagrafici.Anagrafica.Nome
):
- if context.get('inconsistencies'):
- context['inconsistencies'] += '\n'
- context['inconsistencies'] += (
- _(
- "DatiAnagrafici.Anagrafica.Nome contains \"%s\"."
- " Your System contains \"%s\""
- )
- % (DatiAnagrafici.Anagrafica.Nome, partner.firstname)
- )
+ self.log_inconsistency(_(
+ "DatiAnagrafici.Anagrafica.Nome contains \"%s\"."
+ " Your System contains \"%s\""
+ ) % (DatiAnagrafici.Anagrafica.Nome, partner.firstname))
if (
DatiAnagrafici.Anagrafica.Cognome and
partner.lastname != DatiAnagrafici.Anagrafica.Cognome
):
- if context.get('inconsistencies'):
- context['inconsistencies'] += '\n'
- context['inconsistencies'] += (
+ self.log_inconsistency(
_(
"DatiAnagrafici.Anagrafica.Cognome contains \"%s\"."
" Your System contains \"%s\""
@@ -101,10 +106,10 @@ def check_partner_base_data(
% (DatiAnagrafici.Anagrafica.Cognome, partner.lastname)
)
- def getPartnerBase(self, cr, uid, DatiAnagrafici, context=None):
+ def getPartnerBase(self, DatiAnagrafici):
if not DatiAnagrafici:
return False
- partner_model = self.pool['res.partner']
+ partner_model = self.env['res.partner']
cf = DatiAnagrafici.CodiceFiscale or False
vat = False
if DatiAnagrafici.IdFiscaleIVA:
@@ -112,63 +117,37 @@ def getPartnerBase(self, cr, uid, DatiAnagrafici, context=None):
DatiAnagrafici.IdFiscaleIVA.IdPaese,
DatiAnagrafici.IdFiscaleIVA.IdCodice
)
- partner_ids = partner_model.search(
- cr, uid,
- ['|',
- ('vat', '=', vat or 0),
- ('fiscalcode', '=', cf or 0),
- ],
- context=context)
+ partners = partner_model.search([
+ '|',
+ ('vat', '=', vat or 0),
+ ('fiscalcode', '=', cf or 0),
+ ])
commercial_partner = False
- if len(partner_ids) > 1:
- for partner in partner_model.browse(
- cr, uid, partner_ids, context=context
- ):
+ if len(partners) > 1:
+ for partner in partners:
if (
commercial_partner and
partner.commercial_partner_id.id != commercial_partner
):
- raise orm.except_orm(
- _('Error !'),
+ raise UserError(
_("Two distinct partners with "
"Vat %s and Fiscalcode %s already present in db" %
(vat, cf))
)
- commercial_partner = partner.commercial_partner_id.id
- if not partner_ids:
- if DatiAnagrafici.Anagrafica.Denominazione:
- partner_ids = partner_model.search(
- cr, uid,
- [('name', '=', DatiAnagrafici.Anagrafica.Denominazione)],
- context=context)
- elif (
- DatiAnagrafici.Anagrafica.Nome and
- DatiAnagrafici.Anagrafica.Cognome
- ):
- partner_ids = partner_model.search(
- cr, uid,
- [
- ('firstname', '=', DatiAnagrafici.Anagrafica.Nome),
- ('lastname', '=', DatiAnagrafici.Anagrafica.Cognome),
- ],
- context=context)
- if partner_ids:
- commercial_partner = partner_ids[0]
- self.check_partner_base_data(
- cr, uid, commercial_partner, DatiAnagrafici, context=context)
- return commercial_partner
+ if partners:
+ commercial_partner_id = partners[0].id
+ self.check_partner_base_data(commercial_partner_id, DatiAnagrafici)
+ return commercial_partner_id
else:
# partner to be created
country_id = False
if DatiAnagrafici.IdFiscaleIVA:
CountryCode = DatiAnagrafici.IdFiscaleIVA.IdPaese
- country_ids = self.CountryByCode(
- cr, uid, CountryCode, context=context)
- if country_ids:
- country_id = country_ids[0]
+ countries = self.CountryByCode(CountryCode)
+ if countries:
+ country_id = countries[0].id
else:
- raise orm.except_orm(
- _('Error !'),
+ raise UserError(
_("Country Code %s not found in system") % CountryCode
)
vals = {
@@ -188,14 +167,12 @@ def getPartnerBase(self, cr, uid, DatiAnagrafici, context=None):
if DatiAnagrafici.Anagrafica.Denominazione:
vals['name'] = DatiAnagrafici.Anagrafica.Denominazione
- return partner_model.create(cr, uid, vals, context=context)
+ return partner_model.create(vals).id
- def getCedPrest(self, cr, uid, cedPrest, context=None):
- partner_model = self.pool['res.partner']
- partner_id = self.getPartnerBase(
- cr, uid, cedPrest.DatiAnagrafici, context=context)
- fiscalPosModel = self.pool['fatturapa.fiscal_position']
- vals = {}
+ def getCedPrest(self, cedPrest):
+ partner_model = self.env['res.partner']
+ partner_id = self.getPartnerBase(cedPrest.DatiAnagrafici)
+ fiscalPosModel = self.env['fatturapa.fiscal_position']
if partner_id:
vals = {
'street': cedPrest.Sede.Indirizzo,
@@ -205,15 +182,24 @@ def getCedPrest(self, cr, uid, cedPrest, context=None):
}
if cedPrest.DatiAnagrafici.ProvinciaAlbo:
ProvinciaAlbo = cedPrest.DatiAnagrafici.ProvinciaAlbo
- prov_ids = self.ProvinceByCode(
- cr, uid, ProvinciaAlbo, context=context)
- if not prov_ids:
- raise orm.except_orm(
- _('Error !'),
- _('ProvinciaAlbo ( %s ) not present in system') %
- ProvinciaAlbo
- )
- vals['register_province'] = prov_ids[0]
+ prov = self.ProvinceByCode(ProvinciaAlbo)
+ if not prov:
+ self.log_inconsistency(
+ _('ProvinciaAlbo ( %s ) not present in system')
+ % ProvinciaAlbo
+ )
+ else:
+ vals['register_province'] = prov[0].id
+ if cedPrest.Sede.Provincia:
+ Provincia = cedPrest.Sede.Provincia
+ prov_sede = self.ProvinceByCode(Provincia)
+ if not prov_sede:
+ self.log_inconsistency(
+ _('Provincia ( %s ) not present in system')
+ % Provincia
+ )
+ else:
+ vals['state_id'] = prov_sede[0].id
vals['register_code'] = (
cedPrest.DatiAnagrafici.NumeroIscrizioneAlbo)
@@ -222,34 +208,31 @@ def getCedPrest(self, cr, uid, cedPrest, context=None):
if cedPrest.DatiAnagrafici.RegimeFiscale:
rfPos = cedPrest.DatiAnagrafici.RegimeFiscale
- FiscalPosIds = fiscalPosModel.search(
- cr, uid,
- [('code', '=', rfPos)],
- context=context
+ FiscalPos = fiscalPosModel.search(
+ [('code', '=', rfPos)]
)
- if not FiscalPosIds:
- raise orm.except_orm(
- _('Error!'),
+ if not FiscalPos:
+ raise UserError(
_('RegimeFiscale %s is not present in your system')
% rfPos
)
else:
- vals['register_fiscalpos'] = FiscalPosIds[0]
+ vals['register_fiscalpos'] = FiscalPos[0].id
if cedPrest.IscrizioneREA:
REA = cedPrest.IscrizioneREA
vals['rea_code'] = REA.NumeroREA
- office_id = False
- office_ids = self.ProvinceByCode(
- cr, uid, REA.Ufficio, context=context)
- if not office_ids:
- raise orm.except_orm(
- _('Error !'),
- _('REA Office Code ( %s ) not present in system') %
- REA.Ufficio
- )
- office_id = office_ids[0]
- vals['rea_office'] = office_id
+ offices = self.ProvinceByCode(REA.Ufficio)
+ if not offices:
+ self.log_inconsistency(
+ _(
+ 'REA Office (Province) Code ( %s ) not present in '
+ 'system'
+ ) % REA.Ufficio
+ )
+ else:
+ office_id = offices[0].id
+ vals['rea_office'] = office_id
vals['rea_capital'] = REA.CapitaleSociale or 0.0
vals['rea_member_type'] = REA.SocioUnico or False
vals['rea_liquidation_state'] = REA.StatoLiquidazione or False
@@ -258,73 +241,61 @@ def getCedPrest(self, cr, uid, cedPrest, context=None):
vals['phone'] = cedPrest.Contatti.Telefono
vals['email'] = cedPrest.Contatti.Email
vals['fax'] = cedPrest.Contatti.Fax
- partner_model.write(cr, uid, partner_id, vals, context=context)
+ partner_model.browse(partner_id).write(vals)
return partner_id
- def getCarrirerPartner(self, cr, uid, Carrier, context=None):
- partner_model = self.pool['res.partner']
- partner_id = self.getPartnerBase(
- cr, uid, Carrier.DatiAnagraficiVettore, context=context)
- vals = {}
+ def getCarrirerPartner(self, Carrier):
+ partner_model = self.env['res.partner']
+ partner_id = self.getPartnerBase(Carrier.DatiAnagraficiVettore)
if partner_id:
vals = {
'license_number':
Carrier.DatiAnagraficiVettore.NumeroLicenzaGuida or '',
}
- partner_model.write(cr, uid, partner_id, vals, context=context)
+ partner_model.browse(partner_id).write(vals)
return partner_id
- def _prepareInvoiceLine(
- self, cr, uid, credit_account_id, line, context=None
- ):
- account_tax_model = self.pool['account.tax']
+ def _prepare_generic_line_data(self, line):
+ retLine = {}
+ account_tax_model = self.env['account.tax']
# check if a default tax exists and generate def_purchase_tax object
- ir_values = self.pool.get('ir.values')
- company_id = self.pool.get('res.company')._company_default_get(
- cr, uid, 'account.invoice.line', context=context
- )
+ ir_values = self.env['ir.values']
+ company_id = self.env['res.company']._company_default_get(
+ 'account.invoice.line').id
supplier_taxes_ids = ir_values.get_default(
- cr, uid, 'product.product', 'supplier_taxes_id',
- company_id=company_id
- )
+ 'product.product', 'supplier_taxes_id', company_id=company_id)
def_purchase_tax = False
if supplier_taxes_ids:
- def_purchase_tax = account_tax_model.browse(
- cr, uid, supplier_taxes_ids, context=context)[0]
+ def_purchase_tax = account_tax_model.browse(supplier_taxes_ids)[0]
if float(line.AliquotaIVA) == 0.0 and line.Natura:
- account_tax_ids = account_tax_model.search(
- cr, uid,
+ account_taxes = account_tax_model.search(
[
- ('type_tax_use', 'in', ('purchase', 'all')),
- ('non_taxable_nature', '=', line.Natura),
+ ('type_tax_use', '=', 'purchase'),
+ ('kind_id.code', '=', line.Natura),
('amount', '=', 0.0),
- ], context=context)
- if not account_tax_ids:
- raise orm.except_orm(
- _('Error!'),
+ ])
+ if not account_taxes:
+ raise UserError(
_('No tax with percentage '
- '%s and nature %s found')
+ '%s and nature %s found. Please configure this tax')
% (line.AliquotaIVA, line.Natura))
- if len(account_tax_ids) > 1:
- raise orm.except_orm(
- _('Error!'),
+ if len(account_taxes) > 1:
+ raise UserError(
_('Too many taxes with percentage '
'%s and nature %s found')
% (line.AliquotaIVA, line.Natura))
else:
- account_tax_ids = account_tax_model.search(
- cr, uid,
+ account_taxes = account_tax_model.search(
[
- ('type_tax_use', 'in', ('purchase', 'all')),
- ('amount', '=', float(line.AliquotaIVA) / 100),
+ ('type_tax_use', '=', 'purchase'),
+ ('amount', '=', float(line.AliquotaIVA)),
('price_include', '=', False),
# partially deductible VAT must be set by user
- ('child_ids', '=', False),
- ], context=context)
- if not account_tax_ids:
- if context.get('inconsistencies'):
- context['inconsistencies'] += '\n'
- context['inconsistencies'] += (
+ ('children_tax_ids', '=', False),
+ ]
+ )
+ if not account_taxes:
+ self.log_inconsistency(
_(
'XML contains tax with percentage "%s" '
'but it does not exist in your system'
@@ -332,7 +303,7 @@ def _prepareInvoiceLine(
)
# check if there are multiple taxes with
# same percentage
- if len(account_tax_ids) > 1:
+ if len(account_taxes) > 1:
# just logging because this is an usual case: see split payment
_logger.warning(_(
"Line '%s': Too many taxes with percentage equals "
@@ -343,44 +314,93 @@ def _prepareInvoiceLine(
# set taxes list equal to supplier_taxes_id, loaded before
if (
def_purchase_tax and
- def_purchase_tax.amount == (float(line.AliquotaIVA) / 100)
+ def_purchase_tax.amount == (float(line.AliquotaIVA))
):
- account_tax_ids = supplier_taxes_ids
- retLine = {
+ account_taxes = def_purchase_tax
+ if account_taxes:
+ retLine['invoice_line_tax_ids'] = [(6, 0, [account_taxes[0].id])]
+ return retLine
+
+ def get_line_product(self, line, partner):
+ product = None
+ supplier_info = self.env['product.supplierinfo']
+ if len(line.CodiceArticolo) == 1:
+ supplier_code = line.CodiceArticolo[0].CodiceValore
+ supplier_infos = supplier_info.search([
+ ('product_code', '=', supplier_code),
+ ('name', '=', partner.id)
+ ])
+ if supplier_infos:
+ products = supplier_infos.mapped('product_id')
+ if len(products) == 1:
+ product = products[0]
+ else:
+ templates = supplier_infos.mapped('product_tmpl_id')
+ if len(templates) == 1:
+ product = templates.product_variant_ids[0]
+ if not product and partner.e_invoice_default_product_id:
+ product = partner.e_invoice_default_product_id
+ return product
+
+ def adjust_accounting_data(self, product, line_vals):
+ if product.product_tmpl_id.property_account_expense_id:
+ line_vals['account_id'] = (
+ product.product_tmpl_id.property_account_expense_id.id)
+ elif (
+ product.product_tmpl_id.categ_id.property_account_expense_categ_id
+ ):
+ line_vals['account_id'] = (
+ product.product_tmpl_id.categ_id.
+ property_account_expense_categ_id.id
+ )
+ account = self.env['account.account'].browse(line_vals['account_id'])
+ new_tax = None
+ if len(product.product_tmpl_id.supplier_taxes_id) == 1:
+ new_tax = product.product_tmpl_id.supplier_taxes_id[0]
+ elif len(account.tax_ids) == 1:
+ new_tax = account.tax_ids[0]
+ if new_tax:
+ line_tax_id = (
+ line_vals.get('invoice_line_tax_ids') and
+ line_vals['invoice_line_tax_ids'][0][2][0]
+ )
+ line_tax = self.env['account.tax'].browse(line_tax_id)
+ if new_tax.id != line_tax_id:
+ if new_tax._get_tax_amount() != line_tax._get_tax_amount():
+ self.log_inconsistency(_(
+ "XML contains tax %s. Product %s has tax %s. Using "
+ "the XML one"
+ ) % (line_tax.name, product.name, new_tax.name))
+ else:
+ # If product has the same amount of the one in XML,
+ # I use it. Typical case: 22% det 50%
+ line_vals['invoice_line_tax_ids'] = [
+ (6, 0, [new_tax.id])]
+
+ def _prepareInvoiceLine(self, credit_account_id, line, wt_found=False):
+ retLine = self._prepare_generic_line_data(line)
+ retLine.update({
'name': line.Descrizione,
'sequence': int(line.NumeroLinea),
'account_id': credit_account_id,
- }
- if account_tax_ids:
- retLine['invoice_line_tax_id'] = [(6, 0, [account_tax_ids[0]])]
+ })
if line.PrezzoUnitario:
retLine['price_unit'] = float(line.PrezzoUnitario)
if line.Quantita:
retLine['quantity'] = float(line.Quantita)
- if line.TipoCessionePrestazione:
- retLine['service_type'] = line.TipoCessionePrestazione
- if line.TipoCessionePrestazione:
- retLine['service_type'] = line.TipoCessionePrestazione
- if line.UnitaMisura:
- retLine['ftpa_uom'] = line.UnitaMisura
- if line.DataInizioPeriodo:
- retLine['service_start'] = line.DataInizioPeriodo
- if line.DataFinePeriodo:
- retLine['service_end'] = line.DataFinePeriodo
if (
line.PrezzoTotale and line.PrezzoUnitario and line.Quantita and
line.ScontoMaggiorazione
):
- retLine['discount'] = self._computeDiscount(
- cr, uid, line, context=context)
+ retLine['discount'] = self._computeDiscount(line)
if line.RiferimentoAmministrazione:
retLine['admin_ref'] = line.RiferimentoAmministrazione
+ if wt_found and line.Ritenuta:
+ retLine['invoice_line_tax_wt_ids'] = [(6, 0, [wt_found.id])]
return retLine
- def _prepareRelDocsLine(
- self, cr, uid, invoice_id, line, type, context=None
- ):
+ def _prepareRelDocsLine(self, invoice_id, line, type):
res = []
lineref = line.RiferimentoNumeroLinea or False
IdDoc = line.IdDocumento or 'Error'
@@ -393,15 +413,14 @@ def _prepareRelDocsLine(
if lineref:
for numline in lineref:
invoice_lineid = False
- invoice_line_model = self.pool['account.invoice.line']
- invoice_line_ids = invoice_line_model.search(
- cr, uid,
+ invoice_line_model = self.env['account.invoice.line']
+ invoice_lines = invoice_line_model.search(
[
('invoice_id', '=', invoice_id),
('sequence', '=', int(numline)),
- ], context=context)
- if invoice_line_ids:
- invoice_lineid = invoice_line_ids[0]
+ ])
+ if invoice_lines:
+ invoice_lineid = invoice_lines[0].id
val = {
'type': type,
'name': IdDoc,
@@ -430,10 +449,7 @@ def _prepareRelDocsLine(
res.append(val)
return res
- def _prepareWelfareLine(
- self, cr, uid, invoice_id, line, context=None
- ):
- res = []
+ def _prepareWelfareLine(self, invoice_id, line):
TipoCassa = line.TipoCassa or False
AlCassa = line.AlCassa and (float(line.AlCassa)/100) or None
ImportoContributoCassa = (
@@ -445,17 +461,26 @@ def _prepareWelfareLine(
line.AliquotaIVA and (float(line.AliquotaIVA)/100) or None)
Ritenuta = line.Ritenuta or ''
Natura = line.Natura or False
+ kind_id = False
+ if Natura:
+ kind = self.env['account.tax.kind'].search([
+ ('code', '=', Natura)
+ ])
+ if not kind:
+ self.log_inconsistency(
+ _("Tax kind %s not found") % Natura
+ )
+ else:
+ kind_id = kind[0].id
+
RiferimentoAmministrazione = line.RiferimentoAmministrazione or ''
- WelfareTypeModel = self.pool['welfare.fund.type']
+ WelfareTypeModel = self.env['welfare.fund.type']
if not TipoCassa:
- raise orm.except_orm(
- _('Error!'),
+ raise UserError(
_('TipoCassa is not defined ')
)
- WelfareTypeId = WelfareTypeModel.search(
- cr, uid,
- [('name', '=', TipoCassa)],
- context=context
+ WelfareType = WelfareTypeModel.search(
+ [('name', '=', TipoCassa)]
)
res = {
@@ -464,38 +489,32 @@ def _prepareWelfareLine(
'welfare_taxable': ImponibileCassa,
'welfare_Iva_tax': AliquotaIVA,
'subjected_withholding': Ritenuta,
- 'fund_nature': Natura or False,
+ 'kind_id': kind_id,
'pa_line_code': RiferimentoAmministrazione,
'invoice_id': invoice_id,
}
- if not WelfareTypeId:
- raise orm.except_orm(
- _('Error'),
+ if not WelfareType:
+ raise UserError(
_('TipoCassa %s is not present in your system') % TipoCassa)
else:
- res['name'] = WelfareTypeId[0]
+ res['name'] = WelfareType[0].id
return res
- def _prepareDiscRisePriceLine(
- self, cr, uid, id, line, context=None
- ):
- res = []
+ def _prepareDiscRisePriceLine(self, id, line):
Tipo = line.Tipo or False
Percentuale = line.Percentuale and float(line.Percentuale) or 0.0
Importo = line.Importo and float(line.Importo) or 0.0
res = {
'percentage': Percentuale,
'amount': Importo,
- context.get('drtype'): id,
+ self.env.context.get('drtype'): id,
}
res['name'] = Tipo
return res
- def _computeDiscount(
- self, cr, uid, DettaglioLinea, context=None
- ):
+ def _computeDiscount(self, DettaglioLinea):
line_total = float(DettaglioLinea.PrezzoTotale)
line_unit = line_total / float(DettaglioLinea.Quantita)
discount = (
@@ -503,14 +522,13 @@ def _computeDiscount(
) * 100.0
return discount
- def _addGlobalDiscount(
- self, cr, uid, invoice_id, DatiGeneraliDocumento, context=None
- ):
+ def _addGlobalDiscount(self, invoice_id, DatiGeneraliDocumento):
discount = 0.0
- if DatiGeneraliDocumento.ScontoMaggiorazione:
- invoice = self.pool['account.invoice'].browse(
- cr, uid, invoice_id, context=context)
- invoice.button_compute(context=context, set_total=True)
+ if (
+ DatiGeneraliDocumento.ScontoMaggiorazione and
+ self.e_invoice_detail_level == '2'
+ ):
+ invoice = self.env['account.invoice'].browse(invoice_id)
for DiscRise in DatiGeneraliDocumento.ScontoMaggiorazione:
if DiscRise.Percentuale:
amount = (
@@ -525,8 +543,7 @@ def _addGlobalDiscount(
discount -= float(DiscRise.Importo)
elif DiscRise.Tipo == 'MG':
discount += float(DiscRise.Importo)
- journal = self.get_purchase_journal(
- cr, uid, invoice.company_id, context=context)
+ journal = self.get_purchase_journal(invoice.company_id)
credit_account_id = journal.default_credit_account_id.id
line_vals = {
'invoice_id': invoice_id,
@@ -536,29 +553,59 @@ def _addGlobalDiscount(
'price_unit': discount,
'quantity': 1,
}
- self.pool['account.invoice.line'].create(
- cr, uid, line_vals, context=context)
+ if self.env.user.company_id.sconto_maggiorazione_product_id:
+ sconto_maggiorazione_product = (
+ self.env.user.company_id.sconto_maggiorazione_product_id)
+ line_vals['product_id'] = sconto_maggiorazione_product.id
+ line_vals['name'] = sconto_maggiorazione_product.name
+ self.adjust_accounting_data(
+ sconto_maggiorazione_product, line_vals
+ )
+ self.env['account.invoice.line'].create(line_vals)
return True
- def _createPayamentsLine(
- self, cr, uid, payment_id, line, partner_id,
- context=None
- ):
- PaymentModel = self.pool['fatturapa.payment.detail']
- PaymentMethodModel = self.pool['fatturapa.payment_method']
+ def add_dati_bollo(self, invoice, DatiGeneraliDocumento):
+ # 2.1.1.6
+ Stamps = DatiGeneraliDocumento.DatiBollo
+ if Stamps:
+ invoice.virtual_stamp = Stamps.BolloVirtuale
+ invoice.stamp_amount = float(Stamps.ImportoBollo)
+ if self.e_invoice_detail_level == '2':
+ journal = self.get_purchase_journal(invoice.company_id)
+ credit_account_id = journal.default_credit_account_id.id
+ line_vals = {
+ 'invoice_id': invoice.id,
+ 'name': _(
+ "Bollo assolto ai sensi del decreto MEF 17 giugno "
+ "2014 (art. 6)"
+ ),
+ 'account_id': credit_account_id,
+ 'price_unit': invoice.stamp_amount,
+ 'quantity': 1,
+ }
+ if self.env.user.company_id.dati_bollo_product_id:
+ dati_bollo_product = (
+ self.env.user.company_id.dati_bollo_product_id)
+ line_vals['product_id'] = dati_bollo_product.id
+ line_vals['name'] = dati_bollo_product.name
+ self.adjust_accounting_data(
+ dati_bollo_product, line_vals
+ )
+ self.env['account.invoice.line'].create(line_vals)
+
+ def _createPayamentsLine(self, payment_id, line, partner_id):
+ PaymentModel = self.env['fatturapa.payment.detail']
+ PaymentMethodModel = self.env['fatturapa.payment_method']
details = line.DettaglioPagamento or False
if details:
for dline in details:
- BankModel = self.pool['res.bank']
- PartnerBankModel = self.pool['res.partner.bank']
- method_id = PaymentMethodModel.search(
- cr, uid,
- [('code', '=', dline.ModalitaPagamento)],
- context=context
+ BankModel = self.env['res.bank']
+ PartnerBankModel = self.env['res.partner.bank']
+ method = PaymentMethodModel.search(
+ [('code', '=', dline.ModalitaPagamento)]
)
- if not method_id:
- raise orm.except_orm(
- _('Error!'),
+ if not method:
+ raise UserError(
_(
'ModalitaPagamento %s not defined in your system'
% dline.ModalitaPagamento
@@ -566,7 +613,7 @@ def _createPayamentsLine(
)
val = {
'recipient': dline.Beneficiario,
- 'fatturapa_pm_id': method_id[0],
+ 'fatturapa_pm_id': method[0].id,
'payment_term_start':
dline.DataRiferimentoTerminiPagamento or False,
'payment_days':
@@ -611,45 +658,36 @@ def _createPayamentsLine(
bankid = False
payment_bank_id = False
if dline.BIC:
- bankids = BankModel.search(
- cr, uid,
- [('bic', '=', dline.BIC.strip())], context=context
+ banks = BankModel.search(
+ [('bic', '=', dline.BIC.strip())]
)
- if not bankids:
+ if not banks:
if not dline.IstitutoFinanziario:
- if context.get('inconsistencies'):
- context['inconsistencies'] += '\n'
- context['inconsistencies'] += (
+ self.log_inconsistency(
_("Name of Bank with BIC \"%s\" is not set."
" Can't create bank") % dline.BIC
)
else:
bankid = BankModel.create(
- cr, uid,
{
'name': dline.IstitutoFinanziario,
'bic': dline.BIC,
- },
- context=context
- )
+ }
+ ).id
else:
- bankid = bankids[0]
+ bankid = banks[0].id
if dline.IBAN:
SearchDom = [
- ('state', '=', 'iban'),
(
'acc_number', '=',
- base_iban._pretty_iban(dline.IBAN.strip())
+ pretty_iban(dline.IBAN.strip())
),
('partner_id', '=', partner_id),
]
payment_bank_id = False
- payment_bank_ids = PartnerBankModel.search(
- cr, uid, SearchDom, context=context)
- if not payment_bank_ids and not bankid:
- if context.get('inconsistencies'):
- context['inconsistencies'] += '\n'
- context['inconsistencies'] += (
+ payment_banks = PartnerBankModel.search(SearchDom)
+ if not payment_banks and not bankid:
+ self.log_inconsistency(
_(
'BIC is required and not exist in Xml\n'
'Curr bank data is: \n'
@@ -661,93 +699,139 @@ def _createPayamentsLine(
dline.IstitutoFinanziario or ''
)
)
-
- elif not payment_bank_ids and bankid:
+ elif not payment_banks and bankid:
payment_bank_id = PartnerBankModel.create(
- cr, uid,
{
- 'state': 'iban',
'acc_number': dline.IBAN.strip(),
'partner_id': partner_id,
- 'bank': bankid,
+ 'bank_id': bankid,
'bank_name': dline.IstitutoFinanziario,
'bank_bic': dline.BIC
- },
- context=context
- )
- if payment_bank_ids:
- payment_bank_id = payment_bank_ids[0]
+ }
+ ).id
+ if payment_banks:
+ payment_bank_id = payment_banks[0].id
if payment_bank_id:
val['payment_bank'] = payment_bank_id
- PaymentModel.create(cr, uid, val, context=context)
+ PaymentModel.create(val)
return True
- def get_purchase_journal(self, cr, uid, company, context=None):
- journal_model = self.pool['account.journal']
- journal_ids = journal_model.search(
- cr, uid,
+ # TODO sul partner?
+ def set_StabileOrganizzazione(self, CedentePrestatore, invoice):
+ if CedentePrestatore.StabileOrganizzazione:
+ invoice.efatt_stabile_organizzazione_indirizzo = (
+ CedentePrestatore.StabileOrganizzazione.Indirizzo)
+ invoice.efatt_stabile_organizzazione_civico = (
+ CedentePrestatore.StabileOrganizzazione.NumeroCivico)
+ invoice.efatt_stabile_organizzazione_cap = (
+ CedentePrestatore.StabileOrganizzazione.CAP)
+ invoice.efatt_stabile_organizzazione_comune = (
+ CedentePrestatore.StabileOrganizzazione.Comune)
+ invoice.efatt_stabile_organizzazione_provincia = (
+ CedentePrestatore.StabileOrganizzazione.Provincia)
+ invoice.efatt_stabile_organizzazione_nazione = (
+ CedentePrestatore.StabileOrganizzazione.Nazione)
+
+ def get_purchase_journal(self, company):
+ journal_model = self.env['account.journal']
+ journals = journal_model.search(
[
('type', '=', 'purchase'),
('company_id', '=', company.id)
],
- limit=1, context=context)
- if not journal_ids:
- raise orm.except_orm(
- _('Error!'),
+ limit=1)
+ if not journals:
+ raise UserError(
_(
'Define a purchase journal '
'for this company: "%s" (id:%d).'
) % (company.name, company.id)
)
- purchase_journal = journal_model.browse(
- cr, uid, journal_ids[0], context=context)
- return purchase_journal
+ return journals[0]
+
+ def create_e_invoice_line(self, line):
+ vals = {
+ 'line_number': int(line.NumeroLinea or 0),
+ 'service_type': line.TipoCessionePrestazione,
+ 'name': line.Descrizione,
+ 'qty': float(line.Quantita or 0),
+ 'uom': line.UnitaMisura,
+ 'period_start_date': line.DataInizioPeriodo,
+ 'period_end_date': line.DataFinePeriodo,
+ 'unit_price': float(line.PrezzoUnitario or 0),
+ 'total_price': float(line.PrezzoTotale or 0),
+ 'tax_amount': float(line.AliquotaIVA or 0),
+ 'wt_amount': line.Ritenuta,
+ 'tax_kind': line.Natura,
+ 'admin_ref': line.RiferimentoAmministrazione,
+ }
+ einvoiceline = self.env['einvoice.line'].create(vals)
+ if line.CodiceArticolo:
+ for caline in line.CodiceArticolo:
+ self.env['fatturapa.article.code'].create(
+ {
+ 'name': caline.CodiceTipo or '',
+ 'code_val': caline.CodiceValore or '',
+ 'e_invoice_line_id': einvoiceline.id
+ }
+ )
+ if line.ScontoMaggiorazione:
+ for DiscRisePriceLine in line.ScontoMaggiorazione:
+ DiscRisePriceVals = self.with_context(
+ drtype='e_invoice_line_id'
+ )._prepareDiscRisePriceLine(
+ einvoiceline.id, DiscRisePriceLine
+ )
+ self.env['discount.rise.price'].create(DiscRisePriceVals)
+ if line.AltriDatiGestionali:
+ for dato in line.AltriDatiGestionali:
+ self.env['einvoice.line.other.data'].create(
+ {
+ 'name': dato.TipoDato,
+ 'text_ref': dato.RiferimentoTesto,
+ 'num_ref': float(dato.RiferimentoNumero or 0),
+ 'date_ref': dato.RiferimentoData,
+ 'e_invoice_line_id': einvoiceline.id
+ }
+ )
+ return einvoiceline
def invoiceCreate(
- self, cr, uid, fatt, fatturapa_attachment, FatturaBody,
- partner_id, context=None
+ self, fatt, fatturapa_attachment, FatturaBody, partner_id
):
- if context is None:
- context = {}
- partner_model = self.pool['res.partner']
- invoice_model = self.pool['account.invoice']
- currency_model = self.pool['res.currency']
- invoice_line_model = self.pool['account.invoice.line']
- ftpa_doctype_poll = self.pool['fatturapa.document_type']
- rel_docs_model = self.pool['fatturapa.related_document_type']
- WelfareFundLineModel = self.pool['welfare.fund.data.line']
- DiscRisePriceModel = self.pool['discount.rise.price']
- SalModel = self.pool['faturapa.activity.progress']
- DdTModel = self.pool['fatturapa.related_ddt']
- PaymentDataModel = self.pool['fatturapa.payment.data']
- PaymentTermsModel = self.pool['fatturapa.payment_term']
- SummaryDatasModel = self.pool['faturapa.summary.data']
+ partner_model = self.env['res.partner']
+ invoice_model = self.env['account.invoice']
+ currency_model = self.env['res.currency']
+ invoice_line_model = self.env['account.invoice.line']
+ ftpa_doctype_model = self.env['fiscal.document.type']
+ rel_docs_model = self.env['fatturapa.related_document_type']
+ WelfareFundLineModel = self.env['welfare.fund.data.line']
+ SalModel = self.env['faturapa.activity.progress']
+ DdTModel = self.env['fatturapa.related_ddt']
+ PaymentDataModel = self.env['fatturapa.payment.data']
+ PaymentTermsModel = self.env['fatturapa.payment_term']
+ SummaryDatasModel = self.env['faturapa.summary.data']
- company = self.pool['res.users'].browse(
- cr, uid, uid, context=context).company_id
- partner = partner_model.browse(cr, uid, partner_id, context=context)
- pay_acc_id = partner.property_account_payable.id
+ company = self.env.user.company_id
+ partner = partner_model.browse(partner_id)
+ pay_acc_id = partner.property_account_payable_id.id
# currency 2.1.1.2
- currency_id = currency_model.search(
- cr, uid,
+ currency = currency_model.search(
[
(
'name', '=',
FatturaBody.DatiGenerali.DatiGeneraliDocumento.Divisa
)
- ],
- context=context)
- if not currency_id:
- raise orm.except_orm(
- _('Error!'),
+ ])
+ if not currency:
+ raise UserError(
_(
'No currency found with code %s'
% FatturaBody.DatiGenerali.DatiGeneraliDocumento.Divisa
)
)
- purchase_journal = self.get_purchase_journal(
- cr, uid, company, context=context)
+ purchase_journal = self.get_purchase_journal(company)
credit_account_id = purchase_journal.default_credit_account_id.id
invoice_lines = []
comment = ''
@@ -756,179 +840,197 @@ def invoiceCreate(
invtype = 'in_invoice'
docType = FatturaBody.DatiGenerali.DatiGeneraliDocumento.TipoDocumento
if docType:
- docType_ids = ftpa_doctype_poll.search(
- cr, uid,
+ docType_record = ftpa_doctype_model.search(
[
('code', '=', docType)
- ],
- context=context
+ ]
)
- if docType_ids:
- docType_id = docType_ids[0]
+ if docType_record:
+ docType_id = docType_record[0].id
else:
- raise orm.except_orm(
- _("Error"),
+ raise UserError(
_("tipoDocumento %s not handled")
% docType)
- if docType == 'TD04' or docType == 'TD05':
+ if docType == 'TD04':
invtype = 'in_refund'
# 2.1.1.11
causLst = FatturaBody.DatiGenerali.DatiGeneraliDocumento.Causale
if causLst:
for item in causLst:
comment += item + '\n'
- # 2.2.1
- CodeArts = self.pool['fatturapa.article.code']
- for line in FatturaBody.DatiBeniServizi.DettaglioLinee:
- invoice_line_data = self._prepareInvoiceLine(
- cr, uid, credit_account_id, line, context=context)
- invoice_line_id = invoice_line_model.create(
- cr, uid, invoice_line_data, context=context)
-
- if line.CodiceArticolo:
- for caline in line.CodiceArticolo:
- CodeArts.create(
- cr, uid,
- {
- 'name': caline.CodiceTipo or '',
- 'code_val': caline.CodiceValore or '',
- 'invoice_line_id': invoice_line_id
- },
- context=context
- )
- if line.ScontoMaggiorazione:
- context['drtype'] = 'invoice_line_id'
- for DiscRisePriceLine in line.ScontoMaggiorazione:
- DiscRisePriceVals = self._prepareDiscRisePriceLine(
- cr, uid, invoice_line_id, DiscRisePriceLine,
- context=context
- )
- DiscRisePriceModel.create(
- cr, uid, DiscRisePriceVals, context=context)
- invoice_lines.append(invoice_line_id)
invoice_data = {
- 'doc_type': docType_id,
+ 'fiscal_document_type_id': docType_id,
'date_invoice':
FatturaBody.DatiGenerali.DatiGeneraliDocumento.Data,
- 'supplier_invoice_number':
+ 'reference':
FatturaBody.DatiGenerali.DatiGeneraliDocumento.Numero,
'sender': fatt.FatturaElettronicaHeader.SoggettoEmittente or False,
'account_id': pay_acc_id,
'type': invtype,
'partner_id': partner_id,
- 'currency_id': currency_id[0],
+ 'currency_id': currency[0].id,
'journal_id': purchase_journal.id,
- 'invoice_line': [(6, 0, invoice_lines)],
# 'origin': xmlData.datiOrdineAcquisto,
- 'fiscal_position': False,
- 'payment_term': False,
+ 'fiscal_position_id': False,
+ 'payment_term_id': False,
'company_id': company.id,
'fatturapa_attachment_in_id': fatturapa_attachment.id,
'comment': comment
}
+
+ # 2.1.1.10
+ if FatturaBody.DatiGenerali.DatiGeneraliDocumento.Arrotondamento:
+ invoice_data['efatt_rounding'] = float(
+ FatturaBody.DatiGenerali.DatiGeneraliDocumento.Arrotondamento
+ )
+ # 2.1.1.12
+ if FatturaBody.DatiGenerali.DatiGeneraliDocumento.Art73:
+ invoice_data['art73'] = True
+
# 2.1.1.5
Withholding = FatturaBody.DatiGenerali.\
DatiGeneraliDocumento.DatiRitenuta
+ wt_found = None
if Withholding:
- invoice_data['withholding_amount'] = Withholding.ImportoRitenuta
+ wts = self.env['withholding.tax'].search([
+ ('causale_pagamento_id.code', '=',
+ Withholding.CausalePagamento)
+ ])
+ if not wts:
+ raise UserError(_(
+ "Supplier invoice contains withholding tax with "
+ "CausalePagamento %s, "
+ "but such a tax is not found in your system. Please "
+ "set it"
+ ) % Withholding.CausalePagamento)
+ wt_found = False
+ for wt in wts:
+ if wt.tax == float(Withholding.AliquotaRitenuta):
+ wt_found = wt
+ break
+ if not wt_found:
+ raise UserError(_(
+ "No withholding tax found with Causale %s and rate %s"
+ ) % (
+ Withholding.CausalePagamento, Withholding.AliquotaRitenuta
+ ))
invoice_data['ftpa_withholding_type'] = Withholding.TipoRitenuta
- invoice_data['ftpa_withholding_rate'] = float(
- Withholding.AliquotaRitenuta)/100
- invoice_data['ftpa_withholding_payment_reason'] = Withholding.\
- CausalePagamento
- # 2.1.1.6
- Stamps = FatturaBody.DatiGenerali.\
- DatiGeneraliDocumento.DatiBollo
- if Stamps:
- invoice_data['virtual_stamp'] = Stamps.BolloVirtuale
- invoice_data['stamp_amount'] = float(Stamps.ImportoBollo)
- invoice_id = invoice_model.create(
- cr, uid, invoice_data, context=context)
+ # 2.2.1
+ e_invoice_line_ids = []
+ for line in FatturaBody.DatiBeniServizi.DettaglioLinee:
+ if self.e_invoice_detail_level == '2':
+ invoice_line_data = self._prepareInvoiceLine(
+ credit_account_id, line, wt_found)
+ product = self.get_line_product(line, partner)
+ if product:
+ invoice_line_data['product_id'] = product.id
+ self.adjust_accounting_data(product, invoice_line_data)
+ invoice_line_id = invoice_line_model.create(
+ invoice_line_data).id
+ invoice_lines.append(invoice_line_id)
+ einvoiceline = self.create_e_invoice_line(line)
+ e_invoice_line_ids.append(einvoiceline.id)
+ invoice_data['invoice_line_ids'] = [(6, 0, invoice_lines)]
+ invoice_data['e_invoice_line_ids'] = [(6, 0, e_invoice_line_ids)]
+ invoice = invoice_model.create(invoice_data)
+ invoice._onchange_invoice_line_wt_ids()
+ invoice.write(invoice._convert_to_write(invoice._cache))
+ invoice_id = invoice.id
+
+ self.add_dati_bollo(
+ invoice, FatturaBody.DatiGenerali.DatiGeneraliDocumento)
- invoice = invoice_model.browse(cr, uid, invoice_id, context=context)
# 2.1.1.7
Walfares = FatturaBody.DatiGenerali.\
DatiGeneraliDocumento.DatiCassaPrevidenziale
- if Walfares:
+ if Walfares and self.e_invoice_detail_level == '2':
for walfareLine in Walfares:
WalferLineVals = self._prepareWelfareLine(
- cr, uid, invoice_id, walfareLine, context=context)
- WelfareFundLineModel.create(
- cr, uid, WalferLineVals, context=context)
- # 2.1.1.8
- DiscountRises = FatturaBody.DatiGenerali.\
- DatiGeneraliDocumento.ScontoMaggiorazione
- if DiscountRises:
- context['drtype'] = 'invoice_id'
- for DiscRisePriceLine in DiscountRises:
- DiscRisePriceVals = self._prepareDiscRisePriceLine(
- cr, uid, invoice_id, DiscRisePriceLine, context=context)
- DiscRisePriceModel.create(
- cr, uid, DiscRisePriceVals, context=context)
+ invoice_id, walfareLine)
+ WelfareFundLineModel.create(WalferLineVals)
+ line_vals = self._prepare_generic_line_data(walfareLine)
+ line_vals.update({
+ 'name': _(
+ "Cassa Previdenziale: %s") % walfareLine.TipoCassa,
+ 'price_unit': float(walfareLine.ImportoContributoCassa),
+ 'invoice_id': invoice.id,
+ 'account_id': credit_account_id,
+ })
+ if walfareLine.Ritenuta:
+ if not wt_found:
+ raise UserError(_(
+ "CassaPrevidenziale %s has Ritenuta but no "
+ "withholding tax was found in the system"
+ % walfareLine.TipoCassa))
+ line_vals['invoice_line_tax_wt_ids'] = [
+ (6, 0, [wt_found.id])]
+ if self.env.user.company_id.cassa_previdenziale_product_id:
+ cassa_previdenziale_product = (
+ self.env.user.company_id.
+ cassa_previdenziale_product_id
+ )
+ line_vals['product_id'] = cassa_previdenziale_product.id
+ line_vals['name'] = cassa_previdenziale_product.name
+ self.adjust_accounting_data(
+ cassa_previdenziale_product, line_vals
+ )
+ self.env['account.invoice.line'].create(line_vals)
# 2.1.2
relOrders = FatturaBody.DatiGenerali.DatiOrdineAcquisto
if relOrders:
for order in relOrders:
doc_datas = self._prepareRelDocsLine(
- cr, uid, invoice_id, order, 'order', context=context)
+ invoice_id, order, 'order')
if doc_datas:
for doc_data in doc_datas:
- rel_docs_model.create(
- cr, uid, doc_data, context=context)
+ rel_docs_model.create(doc_data)
# 2.1.3
relContracts = FatturaBody.DatiGenerali.DatiContratto
if relContracts:
for contract in relContracts:
doc_datas = self._prepareRelDocsLine(
- cr, uid, invoice_id, contract, 'contract', context=context)
+ invoice_id, contract, 'contract')
if doc_datas:
for doc_data in doc_datas:
- rel_docs_model.create(
- cr, uid, doc_data, context=context)
+ rel_docs_model.create(doc_data)
# 2.1.4
relAgreements = FatturaBody.DatiGenerali.DatiConvenzione
if relAgreements:
for agreement in relAgreements:
doc_datas = self._prepareRelDocsLine(
- cr, uid, invoice_id, agreement,
- 'agreement', context=context)
+ invoice_id, agreement, 'agreement')
if doc_datas:
for doc_data in doc_datas:
- rel_docs_model.create(
- cr, uid, doc_data, context=context)
+ rel_docs_model.create(doc_data)
# 2.1.5
relReceptions = FatturaBody.DatiGenerali.DatiRicezione
if relReceptions:
for reception in relReceptions:
doc_datas = self._prepareRelDocsLine(
- cr, uid, invoice_id, reception,
- 'reception', context=context)
+ invoice_id, reception, 'reception')
if doc_datas:
for doc_data in doc_datas:
- rel_docs_model.create(
- cr, uid, doc_data, context=context)
+ rel_docs_model.create(doc_data)
# 2.1.6
RelInvoices = FatturaBody.DatiGenerali.DatiFattureCollegate
if RelInvoices:
for invoice in RelInvoices:
doc_datas = self._prepareRelDocsLine(
- cr, uid, invoice_id, invoice, 'invoice', context=context)
+ invoice_id, invoice, 'invoice')
if doc_datas:
for doc_data in doc_datas:
- rel_docs_model.create(
- cr, uid, doc_data, context=context)
+ rel_docs_model.create(doc_data)
# 2.1.7
SalDatas = FatturaBody.DatiGenerali.DatiSAL
if SalDatas:
for SalDataLine in SalDatas:
SalModel.create(
- cr, uid,
{
'fatturapa_activity_progress': (
SalDataLine.RiferimentoFase or 0),
'invoice_id': invoice_id
- }, context=context
+ }
)
# 2.1.8
DdtDatas = FatturaBody.DatiGenerali.DatiDDT
@@ -936,38 +1038,34 @@ def invoiceCreate(
for DdtDataLine in DdtDatas:
if not DdtDataLine.RiferimentoNumeroLinea:
DdTModel.create(
- cr, uid,
{
'name': DdtDataLine.NumeroDDT or '',
'date': DdtDataLine.DataDDT or False,
'invoice_id': invoice_id
- }, context=context
+ }
)
else:
for numline in DdtDataLine.RiferimentoNumeroLinea:
- invoice_line_ids = invoice_line_model.search(
- cr, uid,
+ invoice_lines = invoice_line_model.search(
[
('invoice_id', '=', invoice_id),
('sequence', '=', int(numline)),
- ], context=context)
+ ])
invoice_lineid = False
- if invoice_line_ids:
- invoice_lineid = invoice_line_ids[0]
+ if invoice_lines:
+ invoice_lineid = invoice_lines[0].id
DdTModel.create(
- cr, uid,
{
'name': DdtDataLine.NumeroDDT or '',
'date': DdtDataLine.DataDDT or False,
'invoice_id': invoice_id,
'invoice_line_id': invoice_lineid
- }, context=context
+ }
)
# 2.1.9
Delivery = FatturaBody.DatiGenerali.DatiTrasporto
if Delivery:
- delivery_id = self.getCarrirerPartner(
- cr, uid, Delivery, context=context)
+ delivery_id = self.getCarrirerPartner(Delivery)
delivery_dict = {
'carrier_id': delivery_id,
'transport_vehicle': Delivery.MezzoTrasporto or '',
@@ -981,6 +1079,7 @@ def invoiceCreate(
'transport_date': Delivery.DataInizioTrasporto or False,
'delivery_datetime': Delivery.DataOraConsegna or False,
'delivery_address': '',
+ 'ftpa_incoterms': Delivery.TipoResa,
}
if Delivery.IndirizzoResa:
@@ -994,16 +1093,7 @@ def invoiceCreate(
Delivery.IndirizzoResa.Nazione or ''
)
)
- if Delivery.TipoResa:
- StockModel = self.pool['stock.incoterms']
- stock_incoterm_id = StockModel.search(
- cr, uid, [('code', '=', Delivery.TipoResa)],
- context=context
- )
- if stock_incoterm_id:
- delivery_dict['incoterm'] = stock_incoterm_id[0]
- invoice_model.write(
- cr, uid, invoice_id, delivery_dict, context=context)
+ invoice.write(delivery_dict)
# 2.2.2
Summary_datas = FatturaBody.DatiBeniServizi.DatiRiepilogo
if Summary_datas:
@@ -1011,7 +1101,7 @@ def invoiceCreate(
summary_line = {
'tax_rate': summary.AliquotaIVA or 0.0,
'non_taxable_nature': summary.Natura or False,
- 'incidental charges': summary.SpeseAccessorie or 0.0,
+ 'incidental_charges': summary.SpeseAccessorie or 0.0,
'rounding': summary.Arrotondamento or 0.0,
'amount_untaxed': summary.ImponibileImporto or 0.0,
'amount_tax': summary.Imposta or 0.0,
@@ -1019,8 +1109,7 @@ def invoiceCreate(
'law_reference': summary.RiferimentoNormativo or '',
'invoice_id': invoice_id,
}
- SummaryDatasModel.create(
- cr, uid, summary_line, context=context)
+ SummaryDatasModel.create(summary_line)
# 2.1.10
ParentInvoice = FatturaBody.DatiGenerali.FatturaPrincipale
@@ -1031,8 +1120,7 @@ def invoiceCreate(
'related_invoice_date':
ParentInvoice.DataFatturaPrincipale or False
}
- invoice_model.write(
- cr, uid, invoice_id, parentinv_vals, context=context)
+ invoice.write(parentinv_vals)
# 2.3
Vehicle = FatturaBody.DatiVeicoli
if Vehicle:
@@ -1040,52 +1128,40 @@ def invoiceCreate(
'vehicle_registration': Vehicle.Data or False,
'total_travel': Vehicle.TotalePercorso or '',
}
- invoice_model.write(
- cr, uid, invoice_id, veicle_vals, context=context)
+ invoice.write(veicle_vals)
# 2.4
PaymentsData = FatturaBody.DatiPagamento
if PaymentsData:
for PaymentLine in PaymentsData:
cond = PaymentLine.CondizioniPagamento or False
if not cond:
- raise orm.except_orm(
- _('Error!'),
+ raise UserError(
_('Payment method Code not found in document')
)
- term_id = False
- term_ids = PaymentTermsModel.search(
- cr, uid, [('code', '=', cond)], context=context)
- if not term_ids:
- raise orm.except_orm(
- _('Error!'),
+ terms = PaymentTermsModel.search([('code', '=', cond)])
+ if not terms:
+ raise UserError(
_('Payment method Code %s is incorrect') % cond
)
else:
- term_id = term_ids[0]
+ term_id = terms[0].id
PayDataId = PaymentDataModel.create(
- cr, uid,
{
'payment_terms': term_id,
'invoice_id': invoice_id
- },
- context=context
- )
- self._createPayamentsLine(
- cr, uid, PayDataId, PaymentLine, partner_id,
- context=context
- )
+ }
+ ).id
+ self._createPayamentsLine(PayDataId, PaymentLine, partner_id)
# 2.5
AttachmentsData = FatturaBody.Allegati
if AttachmentsData:
- AttachModel = self.pool['fatturapa.attachments']
+ AttachModel = self.env['fatturapa.attachments']
for attach in AttachmentsData:
if not attach.NomeAttachment:
- raise orm.except_orm(
- _('Error!'),
- _('Attachment Name is Required')
- )
+ name = _("Attachment without name")
+ else:
+ name = attach.NomeAttachment
content = attach.Attachment
- name = attach.NomeAttachment
_attach_dict = {
'name': name,
'datas': base64.b64encode(str(content)),
@@ -1095,50 +1171,22 @@ def invoiceCreate(
'format': attach.FormatoAttachment or '',
'invoice_id': invoice_id,
}
- AttachModel.create(
- cr, uid, _attach_dict, context=context)
+ AttachModel.create(_attach_dict)
self._addGlobalDiscount(
- cr, uid, invoice_id,
- FatturaBody.DatiGenerali.DatiGeneraliDocumento, context=context)
+ invoice_id, FatturaBody.DatiGenerali.DatiGeneraliDocumento)
# compute the invoice
- invoice_model.button_compute(
- cr, uid, [invoice_id], context=context,
- set_total=True)
+ invoice.compute_taxes()
return invoice_id
- def check_CessionarioCommittente(
- self, cr, uid, company, FatturaElettronicaHeader, context=None
- ):
- if (
- company.partner_id.ipa_code !=
- FatturaElettronicaHeader.DatiTrasmissione.CodiceDestinatario
- ):
- raise orm.except_orm(
- _('Error'),
- _('XML IPA code (%s) different from company IPA code (%s)')
- % (
- FatturaElettronicaHeader.DatiTrasmissione.
- CodiceDestinatario, company.partner_id.ipa_code))
-
- def compute_xml_amount_untaxed(self, cr, uid, DatiRiepilogo, context=None):
+ def compute_xml_amount_untaxed(self, DatiRiepilogo):
amount_untaxed = 0.0
for Riepilogo in DatiRiepilogo:
amount_untaxed += float(Riepilogo.ImponibileImporto)
return amount_untaxed
- def check_invoice_amount(
- self, cr, uid, invoice, FatturaElettronicaBody, context=None
- ):
- if context is None:
- context = {}
-
- invoice.write(
- {
- 'check_total': FatturaElettronicaBody.DatiGenerali.
- DatiGeneraliDocumento.ImportoTotaleDocumento
- }, context=context)
+ def check_invoice_amount(self, invoice, FatturaElettronicaBody):
if (
FatturaElettronicaBody.DatiGenerali.DatiGeneraliDocumento.
ScontoMaggiorazione and
@@ -1151,10 +1199,10 @@ def check_invoice_amount(
ImportoTotaleDocumento = float(
FatturaElettronicaBody.DatiGenerali.DatiGeneraliDocumento.
ImportoTotaleDocumento)
- if invoice.amount_total != ImportoTotaleDocumento:
- if context.get('inconsistencies'):
- context['inconsistencies'] += '\n'
- context['inconsistencies'] += (
+ if not float_is_zero(
+ invoice.amount_total-ImportoTotaleDocumento, precision_digits=2
+ ):
+ self.log_inconsistency(
_('Invoice total %s is different from '
'ImportoTotaleDocumento %s')
% (invoice.amount_total, ImportoTotaleDocumento)
@@ -1162,212 +1210,98 @@ def check_invoice_amount(
else:
# else, we can only check DatiRiepilogo if
# DatiGeneraliDocumento.ScontoMaggiorazione is not present,
- # because otherwise DatiRiepilogo and openerp invoice total would
+ # because otherwise DatiRiepilogo and odoo invoice total would
# differ
amount_untaxed = self.compute_xml_amount_untaxed(
- cr, uid,
- FatturaElettronicaBody.DatiBeniServizi.DatiRiepilogo,
- context=context)
- if invoice.amount_untaxed != amount_untaxed:
- if context.get('inconsistencies'):
- context['inconsistencies'] += '\n'
- context['inconsistencies'] += (
+ FatturaElettronicaBody.DatiBeniServizi.DatiRiepilogo)
+ if not float_is_zero(
+ invoice.amount_untaxed-amount_untaxed, precision_digits=2
+ ):
+ self.log_inconsistency(
_('Computed amount untaxed %s is different from'
' DatiRiepilogo %s')
% (invoice.amount_untaxed, amount_untaxed)
)
- def strip_xml_content(self, xml):
- root = etree.XML(xml)
- for elem in root.iter('*'):
- if elem.text is not None:
- elem.text = elem.text.strip()
- return etree.tostring(root)
-
- def remove_xades_sign(self, xml):
- root = etree.XML(xml)
- for elem in root.iter('*'):
- if elem.tag.find('Signature') > -1:
- elem.getparent().remove(elem)
- break
- return etree.tostring(root)
+ def get_invoice_obj(self, fatturapa_attachment):
+ xml_string = fatturapa_attachment.get_xml_string()
+ return fatturapa_v_1_2.CreateFromDocument(xml_string)
- 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)
- stdoutdata, stderrdata = proc.communicate()
- if proc.wait() != 0:
- file_is_pem = False
- except Exception as e:
- raise orm.except_orm(
- _('Errore'),
- _(
- 'Check PEM file %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 orm.except_orm(
- _('Errore'),
- _(
- 'Parsing PEM to DER file %s'
- ) % e.args
- )
- if not os.path.isfile(tmp_der_file):
- raise orm.except_orm(
- _('Errore'),
- _(
- '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 orm.except_orm(
- _('Errore'),
- _(
- 'Signed Xml file %s'
- ) % e.args
- )
- if not os.path.isfile(xml_file):
- raise orm.except_orm(
- _('Errore'),
- _(
- 'Signed Xml file not decryptable'
- )
- )
- return xml_file
-
- def importFatturaPA(self, cr, uid, ids, context=None):
- if not context:
- context = {}
- context['inconsistencies'] = ''
- fatturapa_attachment_obj = self.pool['fatturapa.attachment.in']
- fatturapa_attachment_ids = context.get('active_ids', False)
- invoice_model = self.pool['account.invoice']
+ @api.multi
+ def importFatturaPA(self):
+ fatturapa_attachment_obj = self.env['fatturapa.attachment.in']
+ fatturapa_attachment_ids = self.env.context.get('active_ids', False)
+ invoice_model = self.env['account.invoice']
new_invoices = []
for fatturapa_attachment_id in fatturapa_attachment_ids:
- ctx = context.copy()
+ self.__dict__.update(
+ self.with_context(inconsistencies='').__dict__
+ )
fatturapa_attachment = fatturapa_attachment_obj.browse(
- cr, uid, fatturapa_attachment_id, context=ctx)
+ fatturapa_attachment_id)
if fatturapa_attachment.in_invoice_ids:
- raise orm.except_orm(
- _("Error"), _("File is linked to invoices yet"))
- # 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)
- fatt = fatturapa_v_1_1.CreateFromDocument(xml_string)
+ raise UserError(
+ _("File is linked to invoices yet"))
+ fatt = self.get_invoice_obj(fatturapa_attachment)
cedentePrestatore = fatt.FatturaElettronicaHeader.CedentePrestatore
# 1.2
- partner_id = self.getCedPrest(
- cr, uid, cedentePrestatore, context=ctx)
+ partner_id = self.getCedPrest(cedentePrestatore)
# 1.3
TaxRappresentative = fatt.FatturaElettronicaHeader.\
RappresentanteFiscale
# 1.5
Intermediary = fatt.FatturaElettronicaHeader.\
TerzoIntermediarioOSoggettoEmittente
+
+ generic_inconsistencies = ''
+ if self.env.context.get('inconsistencies'):
+ generic_inconsistencies = (
+ self.env.context['inconsistencies'] + '\n\n')
+
# 2
for fattura in fatt.FatturaElettronicaBody:
+
+ # reset inconsistencies
+ self.__dict__.update(
+ self.with_context(inconsistencies='').__dict__
+ )
+
invoice_id = self.invoiceCreate(
- cr, uid, fatt, fatturapa_attachment, fattura,
- partner_id, context=ctx)
+ fatt, fatturapa_attachment, fattura, partner_id)
+ invoice = invoice_model.browse(invoice_id)
+ self.set_StabileOrganizzazione(cedentePrestatore, invoice)
if TaxRappresentative:
tax_partner_id = self.getPartnerBase(
- cr, uid, TaxRappresentative.DatiAnagrafici,
- context=ctx)
- invoice_model.write(
- cr, uid, invoice_id,
+ TaxRappresentative.DatiAnagrafici)
+ invoice.write(
{
'tax_representative_id': tax_partner_id
- }, context=ctx
+ }
)
if Intermediary:
Intermediary_id = self.getPartnerBase(
- cr, uid, Intermediary.DatiAnagrafici, context=ctx)
- invoice_model.write(
- cr, uid, invoice_id,
+ Intermediary.DatiAnagrafici)
+ invoice.write(
{
'intermediary': Intermediary_id
- }, context=ctx
+ }
)
new_invoices.append(invoice_id)
- invoice = invoice_model.browse(cr, uid, invoice_id, ctx)
- self.check_CessionarioCommittente(
- cr, uid, invoice.company_id, fatt.FatturaElettronicaHeader,
- context=ctx)
- self.check_invoice_amount(
- cr, uid, invoice,
- fattura,
- context=ctx)
+ self.check_invoice_amount(invoice, fattura)
- if ctx.get('inconsistencies'):
- invoice.write(
- {'inconsistencies': ctx['inconsistencies']},
- context=ctx)
+ if self.env.context.get('inconsistencies'):
+ invoice_inconsistencies = (
+ self.env.context['inconsistencies'])
+ else:
+ invoice_inconsistencies = ''
+ invoice.inconsistencies = (
+ generic_inconsistencies + invoice_inconsistencies)
return {
'view_type': 'form',
- 'name': "PA Supplier Invoices",
+ 'name': "Supplier Electronic Invoices",
'view_mode': 'tree,form',
'res_model': 'account.invoice',
'type': 'ir.actions.act_window',
'domain': [('id', 'in', new_invoices)],
- 'context': context
}
diff --git a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa_view.xml b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa_view.xml
index ad207b533b44..37b90b8c86da 100644
--- a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa_view.xml
+++ b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa_view.xml
@@ -1,27 +1,24 @@
-
+
- Import FatturaPA
+ Import Fattura Elettronicawizard.import.fatturapa
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
+
From 63a425581681fdf1299b7b71df3f2ffc7b05c22f Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Thu, 11 Oct 2018 09:41:52 +0000
Subject: [PATCH 003/236] [UPD] Update l10n_it_fatturapa_in.pot
---
l10n_it_fatturapa_in/i18n/it.po | 191 ++--
.../i18n/l10n_it_fatturapa_in.pot | 898 ++++++++++++++++++
2 files changed, 1033 insertions(+), 56 deletions(-)
create mode 100644 l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
diff --git a/l10n_it_fatturapa_in/i18n/it.po b/l10n_it_fatturapa_in/i18n/it.po
index 75d11c5c4a37..12c0439947bf 100644
--- a/l10n_it_fatturapa_in/i18n/it.po
+++ b/l10n_it_fatturapa_in/i18n/it.po
@@ -1,6 +1,6 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * l10n_it_fatturapa_in
+# * l10n_it_fatturapa_in
#
msgid ""
msgstr ""
@@ -10,6 +10,7 @@ msgstr ""
"PO-Revision-Date: 2018-09-27 08:07+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
@@ -42,11 +43,12 @@ msgstr "Nome Allegato"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_local_url
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_website_url
msgid "Attachment URL"
msgstr "URL Allegato"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1162
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1161
#, python-format
msgid "Attachment without name"
msgstr "Allegato senza nome"
@@ -59,16 +61,16 @@ msgstr "Allegati"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:691
#, python-format
-msgid "BIC is required and not exist in Xml\n"
+msgid ""
+"BIC is required and not exist in Xml\n"
"Curr bank data is: \n"
"IBAN: %s\n"
"Bank Name: %s\n"
-""
-msgstr "BIC è richiesto e non esiste nell'XML\n"
+msgstr ""
+"BIC è richiesto e non esiste nell'XML\n"
"I dati della banca corrente sono: \n"
"IBAN: %s\n"
"Nome banca: %s\n"
-""
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:578
@@ -83,16 +85,20 @@ msgid "Cancel"
msgstr "Annulla"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:955
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:954
#, python-format
msgid "Cassa Previdenziale: %s"
msgstr "Cassa Previdenziale: %s"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:963
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:962
#, python-format
-msgid "CassaPrevidenziale %s has Ritenuta but no withholding tax was found in the system"
-msgstr "CassaPrevidenziale %s ha la ritenuta me nessuna ritenuta è stata trovata nel sistema"
+msgid ""
+"CassaPrevidenziale %s has Ritenuta but no withholding tax was found in the "
+"system"
+msgstr ""
+"CassaPrevidenziale %s ha la ritenuta me nessuna ritenuta è stata trovata nel "
+"sistema"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_checksum
@@ -130,7 +136,7 @@ msgid "Company"
msgstr "Azienda"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1222
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1221
#, python-format
msgid "Computed amount untaxed %s is different from DatiRiepilogo %s"
msgstr "L'imponibile calcolato %s è diverso da quello di DatiRiepilogo %s"
@@ -189,20 +195,31 @@ msgstr "Dati generali"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:102
#, python-format
-msgid "DatiAnagrafici.Anagrafica.Cognome contains \"%s\". Your System contains \"%s\""
-msgstr "DatiAnagrafici.Anagrafica.Cognome contiene \"%s\". Il tuo database contiene \"%s\""
+msgid ""
+"DatiAnagrafici.Anagrafica.Cognome contains \"%s\". Your System contains \"%s"
+"\""
+msgstr ""
+"DatiAnagrafici.Anagrafica.Cognome contiene \"%s\". Il tuo database contiene "
+"\"%s\""
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:85
#, python-format
-msgid "DatiAnagrafici.Anagrafica.Denominazione contains \"%s\". Your System contains \"%s\""
-msgstr "DatiAnagrafici.Anagrafica.Denominazione contiene \"%s\". Il tuo database contiene \"%s\""
+msgid ""
+"DatiAnagrafici.Anagrafica.Denominazione contains \"%s\". Your System "
+"contains \"%s\""
+msgstr ""
+"DatiAnagrafici.Anagrafica.Denominazione contiene \"%s\". Il tuo database "
+"contiene \"%s\""
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:93
#, python-format
-msgid "DatiAnagrafici.Anagrafica.Nome contains \"%s\". Your System contains \"%s\""
-msgstr "DatiAnagrafici.Anagrafica.Nome contiene \"%s\". Il tuo database contiene \"%s\""
+msgid ""
+"DatiAnagrafici.Anagrafica.Nome contains \"%s\". Your System contains \"%s\""
+msgstr ""
+"DatiAnagrafici.Anagrafica.Nome contiene \"%s\". Il tuo database contiene \"%s"
+"\""
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_partner_e_invoice_default_product_id
@@ -259,6 +276,7 @@ msgstr "Nome Visualizzato"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice_fatturapa_attachment_in_id
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice_line_fatturapa_attachment_in_id
msgid "E-Invoice Import File"
msgstr "File fattura elettronica"
@@ -314,7 +332,7 @@ msgid "File Size"
msgstr "Dimensione File"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1245
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1244
#, python-format
msgid "File is linked to invoices yet"
msgstr "Il file è già collegato a delle fatture"
@@ -391,7 +409,7 @@ msgid "Invoice Line"
msgstr "Riga Fattura"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1207
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1206
#, python-format
msgid "Invoice total %s is different from ImportoTotaleDocumento %s"
msgstr "Il totale fattura %s è diverso da ImportoTotaleDocumento %s"
@@ -449,9 +467,11 @@ msgstr "Ultima modifica il"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:308
#, python-format
-msgid "Line '%s': Too many taxes with percentage equals to \"%s\"\n"
+msgid ""
+"Line '%s': Too many taxes with percentage equals to \"%s\"\n"
"fix it if required"
-msgstr "Riga '%s': Troppe imposte con aliquota uguale a\"%s\"\n"
+msgstr ""
+"Riga '%s': Troppe imposte con aliquota uguale a\"%s\"\n"
"correggere se necessario"
#. module: l10n_it_fatturapa_in
@@ -471,20 +491,34 @@ msgid "Link to existing supplier invoice"
msgstr "Collega a fattura fornitore esistente"
#. module: l10n_it_fatturapa_in
-#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_partner_e_invoice_detail_level
-#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_users_e_invoice_detail_level
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_import_fatturapa_e_invoice_detail_level
msgid "Livello di dettaglio Fatture elettroniche"
msgstr "Livello di dettaglio Fatture elettroniche"
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_partner_e_invoice_detail_level
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_users_e_invoice_detail_level
+#, fuzzy
+msgid "Livello di dettaglio Fatture elettroniche passive"
+msgstr "Livello di dettaglio Fatture elettroniche"
+
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_partner_e_invoice_detail_level
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_users_e_invoice_detail_level
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_wizard_import_fatturapa_e_invoice_detail_level
-msgid "Livello minimo: La fattura passiva viene creata senza righe; sarà l'utente a doverle creare in base a quanto indicato dal fornitore nella fattura elettronica\n"
-"Livello Massimo: tutte le righe presenti nella fattura elettronica vengono create come righe della fattura passiva"
-msgstr "Livello minimo: La fattura passiva viene creata senza righe; sarà l'utente a doverle creare in base a quanto indicato dal fornitore nella fattura elettronica\n"
-"Livello Massimo: tutte le righe presenti nella fattura elettronica vengono create come righe della fattura passiva"
+#, fuzzy
+msgid ""
+"Livello minimo: La fattura passiva viene creata senza righe; sara' l'utente "
+"a doverle creare in base a quanto indicato dal fornitore nella fattura "
+"elettronica\n"
+"Livello Massimo: tutte le righe presenti nella fattura elettronica vengono "
+"create come righe della fattura passiva"
+msgstr ""
+"Livello minimo: La fattura passiva viene creata senza righe; sarà l'utente a "
+"doverle creare in base a quanto indicato dal fornitore nella fattura "
+"elettronica\n"
+"Livello Massimo: tutte le righe presenti nella fattura elettronica vengono "
+"create come righe della fattura passiva"
#. module: l10n_it_fatturapa_in
#: selection:res.partner,e_invoice_detail_level:0
@@ -513,7 +547,9 @@ msgstr "Modalita Pagamento %s non definito nel sistema"
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:667
#, python-format
msgid "Name of Bank with BIC \"%s\" is not set. Can't create bank"
-msgstr "Il nome della banca con BIC \"%s\" non è impostato. Impossibile creare la banca"
+msgstr ""
+"Il nome della banca con BIC \"%s\" non è impostato. Impossibile creare la "
+"banca"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_tax_kind
@@ -529,8 +565,11 @@ msgstr "Nessuna valuta trovata con codice %s"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:279
#, python-format
-msgid "No tax with percentage %s and nature %s found. Please configure this tax"
-msgstr "Nessuna imposta con aliquota %s e natura %s trovata. Configurare questa imposta"
+msgid ""
+"No tax with percentage %s and nature %s found. Please configure this tax"
+msgstr ""
+"Nessuna imposta con aliquota %s e natura %s trovata. Configurare questa "
+"imposta"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:913
@@ -549,13 +588,13 @@ msgid "Partner"
msgstr "Partner"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1145
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1144
#, python-format
msgid "Payment method Code %s is incorrect"
msgstr "Codice metodo di oagamento %s non corretto"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1140
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1139
#, python-format
msgid "Payment method Code not found in document"
msgstr "Codice metodo di pagamento non trovato nel documento"
@@ -570,6 +609,11 @@ msgstr "Pagamenti"
msgid "Payments Details"
msgstr "Payments Details"
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_ftpa_preview_link
+msgid "Preview link"
+msgstr ""
+
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_total_price
msgid "Prezzo Totale"
@@ -583,20 +627,32 @@ msgstr "Prezzo unitario"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_account_config_settings_dati_bollo_product_id
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_company_dati_bollo_product_id
-msgid "Prodotto da utilizzare nelle fatture passive quando nell'XML viene valorizzato l'elemento DatiBollo"
-msgstr "Prodotto da utilizzare nelle fatture passive quando nell'XML viene valorizzato l'elemento DatiBollo"
+msgid ""
+"Prodotto da utilizzare nelle fatture passive quando nell'XML viene "
+"valorizzato l'elemento DatiBollo"
+msgstr ""
+"Prodotto da utilizzare nelle fatture passive quando nell'XML viene "
+"valorizzato l'elemento DatiBollo"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_account_config_settings_cassa_previdenziale_product_id
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_company_cassa_previdenziale_product_id
-msgid "Prodotto da utilizzare nelle fatture passive quando nell'XML viene valorizzato l'elemento DatiCassaPrevidenziale"
-msgstr "Prodotto da utilizzare nelle fatture passive quando nell'XML viene valorizzato l'elemento DatiCassaPrevidenziale"
+msgid ""
+"Prodotto da utilizzare nelle fatture passive quando nell'XML viene "
+"valorizzato l'elemento DatiCassaPrevidenziale"
+msgstr ""
+"Prodotto da utilizzare nelle fatture passive quando nell'XML viene "
+"valorizzato l'elemento DatiCassaPrevidenziale"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_account_config_settings_sconto_maggiorazione_product_id
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_company_sconto_maggiorazione_product_id
-msgid "Prodotto da utilizzare nelle fatture passive quando nell'XML viene valorizzato l'elemento ScontoMaggiorazione"
-msgstr "Prodotto da utilizzare nelle fatture passive quando nell'XML viene valorizzato l'elemento ScontoMaggiorazione"
+msgid ""
+"Prodotto da utilizzare nelle fatture passive quando nell'XML viene "
+"valorizzato l'elemento ScontoMaggiorazione"
+msgstr ""
+"Prodotto da utilizzare nelle fatture passive quando nell'XML viene "
+"valorizzato l'elemento ScontoMaggiorazione"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_config_settings_dati_bollo_product_id
@@ -724,13 +780,14 @@ msgstr "Sconto Maggiorazione"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_fatturapa_attachment_in_invoices_total
-msgid "Se indicato dal fornitore, Importo totale del documento al netto dell'eventuale sconto e comprensivo di imposta a debito del cessionario / committente"
-msgstr "Se indicato dal fornitore, Importo totale del documento al netto dell'eventuale sconto e comprensivo di imposta a debito del cessionario / committente"
-
-#. module: l10n_it_fatturapa_in
-#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_fatturapa_in_attachment_form
-msgid "Show preview"
-msgstr "Mostra anteprima"
+msgid ""
+"Se indicato dal fornitore, Importo totale del documento al netto "
+"dell'eventuale sconto e comprensivo di imposta a debito del cessionario / "
+"committente"
+msgstr ""
+"Se indicato dal fornitore, Importo totale del documento al netto "
+"dell'eventuale sconto e comprensivo di imposta a debito del cessionario / "
+"committente"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
@@ -755,8 +812,12 @@ msgstr "Fornitore"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:901
#, python-format
-msgid "Supplier invoice contains withholding tax with CausalePagamento %s, but such a tax is not found in your system. Please set it"
-msgstr "La fattura contiene la ritenuta con Causale Pagamento %s, ma tale ritenuta non è presente nel sistema. Prego impostarla"
+msgid ""
+"Supplier invoice contains withholding tax with CausalePagamento %s, but such "
+"a tax is not found in your system. Please set it"
+msgstr ""
+"La fattura contiene la ritenuta con Causale Pagamento %s, ma tale ritenuta "
+"non è presente nel sistema. Prego impostarla"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:471
@@ -810,8 +871,11 @@ msgstr "Troppe imposte con aliquota %s e natura %s trovate"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:135
#, python-format
-msgid "Two distinct partners with Vat %s and Fiscalcode %s already present in db"
-msgstr "2 differenti partner con P.IVA %s e codice fiscale %s sono già presenti nel database"
+msgid ""
+"Two distinct partners with Vat %s and Fiscalcode %s already present in db"
+msgstr ""
+"2 differenti partner con P.IVA %s e codice fiscale %s sono già presenti nel "
+"database"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_type
@@ -831,8 +895,13 @@ msgstr "Url"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_partner_e_invoice_default_product_id
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_users_e_invoice_default_product_id
-msgid "Used by electronic invoice XML import. If filled, generated invoice lines will use this product, when no other possible product is found."
-msgstr "Usato nell'importazione XML delle fatture elettroniche. Se valorizzato, le fatture generate nell'importazione utilizzeranno questo prodotto, quando nessun'altro possibile prodotto verrà trovato"
+msgid ""
+"Used by electronic invoice XML import. If filled, generated invoice lines "
+"will use this product, when no other possible product is found."
+msgstr ""
+"Usato nell'importazione XML delle fatture elettroniche. Se valorizzato, le "
+"fatture generate nell'importazione utilizzeranno questo prodotto, quando "
+"nessun'altro possibile prodotto verrà trovato"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
@@ -848,13 +917,17 @@ msgstr "Dettagli cassa previdenziale"
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:370
#, python-format
msgid "XML contains tax %s. Product %s has tax %s. Using the XML one"
-msgstr "L'XML contiene l'imposta %s. Il prodotto %s ha l'imposta %s. Utilizzo quella dell'XML"
+msgstr ""
+"L'XML contiene l'imposta %s. Il prodotto %s ha l'imposta %s. Utilizzo quella "
+"dell'XML"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:299
#, python-format
-msgid "XML contains tax with percentage \"%s\" but it does not exist in your system"
-msgstr "L'XML contiene l'imposta con alquota \"%s\" ma questa non esiste nel database"
+msgid ""
+"XML contains tax with percentage \"%s\" but it does not exist in your system"
+msgstr ""
+"L'XML contiene l'imposta con alquota \"%s\" ma questa non esiste nel database"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_fatturapa_in_attachment_tree
@@ -863,8 +936,12 @@ msgstr "Allegato XML"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_fatturapa_attachment_in_type
-msgid "You can either upload a file from your computer or copy/paste an internet link to your file."
-msgstr "Puoi inviare un file dal computer o copiare/incollare un indirizzo Internet che è collegato al tuo file."
+msgid ""
+"You can either upload a file from your computer or copy/paste an internet "
+"link to your file."
+msgstr ""
+"Puoi inviare un file dal computer o copiare/incollare un indirizzo Internet "
+"che è collegato al tuo file."
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.py:19
@@ -898,3 +975,5 @@ msgstr "il"
msgid "tipoDocumento %s not handled"
msgstr "tipoDocumento %s non gestito"
+#~ msgid "Show preview"
+#~ msgstr "Mostra anteprima"
diff --git a/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot b/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
new file mode 100644
index 000000000000..4c50cb0b2455
--- /dev/null
+++ b/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
@@ -0,0 +1,898 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * l10n_it_fatturapa_in
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 10.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_tax_amount
+msgid "Aliquota IVA"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Altri Dati Gestionali"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_ids
+msgid "Altri dati gestionali"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_ir_attachment_id
+msgid "Attachment"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_name
+msgid "Attachment Name"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_local_url
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_website_url
+msgid "Attachment URL"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1161
+#, python-format
+msgid "Attachment without name"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Attachments"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:691
+#, python-format
+msgid "BIC is required and not exist in Xml\n"
+"Curr bank data is: \n"
+"IBAN: %s\n"
+"Bank Name: %s\n"
+""
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:578
+#, python-format
+msgid "Bollo assolto ai sensi del decreto MEF 17 giugno 2014 (art. 6)"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.wizard_import_fatturapa_form_view
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.wizard_link_supplier_invoice
+msgid "Cancel"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:954
+#, python-format
+msgid "Cassa Previdenziale: %s"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:962
+#, python-format
+msgid "CassaPrevidenziale %s has Ritenuta but no withholding tax was found in the system"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_checksum
+msgid "Checksum/SHA1"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_article_code_name
+msgid "Cod Type"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_cod_article_ids
+msgid "Cod. Articles"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_article_code_code_val
+msgid "Code Value"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Codice Articoli"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model,name:l10n_it_fatturapa_in.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_company_id
+msgid "Company"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1221
+#, python-format
+msgid "Computed amount untaxed %s is different from DatiRiepilogo %s"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:151
+#, python-format
+msgid "Country Code %s not found in system"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_create_uid
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_create_uid
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_article_code_create_uid
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_create_uid
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_import_fatturapa_create_uid
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_link_to_invoice_create_uid
+msgid "Created by"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_create_date
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_create_date
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_article_code_create_date
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_create_date
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_import_fatturapa_create_date
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_link_to_invoice_create_date
+msgid "Created on"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_fatturapa_in_attachment_form
+msgid "Creation"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_period_end_date
+msgid "Data Fine Periodo"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_period_start_date
+msgid "Data Inizio Periodo"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_db_datas
+msgid "Database Data"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Dati generali"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:102
+#, python-format
+msgid "DatiAnagrafici.Anagrafica.Cognome contains \"%s\". Your System contains \"%s\""
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:85
+#, python-format
+msgid "DatiAnagrafici.Anagrafica.Denominazione contains \"%s\". Your System contains \"%s\""
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:93
+#, python-format
+msgid "DatiAnagrafici.Anagrafica.Nome contains \"%s\". Your System contains \"%s\""
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_partner_e_invoice_default_product_id
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_users_e_invoice_default_product_id
+msgid "Default product electronic invoice"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:746
+#, python-format
+msgid "Define a purchase journal for this company: \"%s\" (id:%d)."
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Delivery"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_description
+msgid "Description"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_name
+msgid "Descrizione"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Dettaglio Linea"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice_e_invoice_line_ids
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Dettaglio Linee"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_discount_rise_price_ids
+msgid "Discount and Rise Price Details"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_display_name
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_display_name
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_article_code_display_name
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_display_name
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_import_fatturapa_display_name
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_link_to_invoice_display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice_fatturapa_attachment_in_id
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice_line_fatturapa_attachment_in_id
+msgid "E-Invoice Import File"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "E-invoice Inconsistencies"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "E-invoice details"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Fattura PA V1.2 Schema"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model,name:l10n_it_fatturapa_in.model_fatturapa_article_code
+msgid "FatturaPA Article Code"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model,name:l10n_it_fatturapa_in.model_discount_rise_price
+msgid "FatturaPA Discount Rise Price Data"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model,name:l10n_it_fatturapa_in.model_fatturapa_attachment_in
+msgid "FatturaPA import File"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:47
+#, python-format
+msgid "File %s is linked to invoices yet"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_datas
+msgid "File Content"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_datas_fname
+msgid "File Name"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_file_size
+msgid "File Size"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1244
+#, python-format
+msgid "File is linked to invoices yet"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:550
+#, python-format
+msgid "Global invoice discount from DatiGeneraliDocumento"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_fatturapa_in_attachment_form
+msgid "History"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_id
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_id
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_article_code_id
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_id
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_import_fatturapa_id
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_link_to_invoice_id
+msgid "ID"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.wizard_import_fatturapa_form_view
+msgid "Import"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.actions.act_window,name:l10n_it_fatturapa_in.action_wizard_import_fatturapa
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_fatturapa_in_attachment_form
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.wizard_import_fatturapa_form_view
+msgid "Import Fattura Elettronica"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model,name:l10n_it_fatturapa_in.model_wizard_import_fatturapa
+msgid "Import FatturaPA"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice_inconsistencies
+msgid "Import Inconsistencies"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_in_invoice_ids
+msgid "In Invoices"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.actions.act_window,name:l10n_it_fatturapa_in.action_fattura_pa_in
+#: model:ir.ui.menu,name:l10n_it_fatturapa_in.menu_fattura_pa_in_tree
+msgid "Incoming Fattura Elettronica files"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_index_content
+msgid "Indexed Content"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model,name:l10n_it_fatturapa_in.model_account_invoice
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_invoice_id
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_link_to_invoice_invoice_id
+msgid "Invoice"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model,name:l10n_it_fatturapa_in.model_account_invoice_line
+msgid "Invoice Line"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1206
+#, python-format
+msgid "Invoice total %s is different from ImportoTotaleDocumento %s"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_fatturapa_in_attachment_form
+msgid "Invoices"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_invoices_number
+msgid "Invoices number"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_invoices_total
+msgid "Invoices total"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_public
+msgid "Is public document"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line___last_update
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data___last_update
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_article_code___last_update
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in___last_update
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_import_fatturapa___last_update
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_link_to_invoice___last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_write_uid
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_write_uid
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_article_code_write_uid
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_write_uid
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_import_fatturapa_write_uid
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_link_to_invoice_write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_write_date
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_write_date
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_article_code_write_date
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_write_date
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_import_fatturapa_write_date
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_link_to_invoice_write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:308
+#, python-format
+msgid "Line '%s': Too many taxes with percentage equals to \"%s\"\n"
+"fix it if required"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.wizard_link_supplier_invoice
+msgid "Link"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model,name:l10n_it_fatturapa_in.model_wizard_link_to_invoice
+msgid "Link to Supplier Invoice"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.actions.act_window,name:l10n_it_fatturapa_in.action_wizard_link_supplier_invoice
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.wizard_link_supplier_invoice
+msgid "Link to existing supplier invoice"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_import_fatturapa_e_invoice_detail_level
+msgid "Livello di dettaglio Fatture elettroniche"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_partner_e_invoice_detail_level
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_users_e_invoice_detail_level
+msgid "Livello di dettaglio Fatture elettroniche passive"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_partner_e_invoice_detail_level
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_users_e_invoice_detail_level
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_wizard_import_fatturapa_e_invoice_detail_level
+msgid "Livello minimo: La fattura passiva viene creata senza righe; sara' l'utente a doverle creare in base a quanto indicato dal fornitore nella fattura elettronica\n"
+"Livello Massimo: tutte le righe presenti nella fattura elettronica vengono create come righe della fattura passiva"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: selection:res.partner,e_invoice_detail_level:0
+#: selection:wizard.import.fatturapa,e_invoice_detail_level:0
+msgid "Massimo"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_mimetype
+msgid "Mime Type"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: selection:res.partner,e_invoice_detail_level:0
+#: selection:wizard.import.fatturapa,e_invoice_detail_level:0
+msgid "Minimo"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:609
+#, python-format
+msgid "ModalitaPagamento %s not defined in your system"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:667
+#, python-format
+msgid "Name of Bank with BIC \"%s\" is not set. Can't create bank"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_tax_kind
+msgid "Natura"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:829
+#, python-format
+msgid "No currency found with code %s"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:279
+#, python-format
+msgid "No tax with percentage %s and nature %s found. Please configure this tax"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:913
+#, python-format
+msgid "No withholding tax found with Causale %s and rate %s"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_line_number
+msgid "Numero Linea"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model,name:l10n_it_fatturapa_in.model_res_partner
+msgid "Partner"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1144
+#, python-format
+msgid "Payment method Code %s is incorrect"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1139
+#, python-format
+msgid "Payment method Code not found in document"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Payments"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Payments Details"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_ftpa_preview_link
+msgid "Preview link"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_total_price
+msgid "Prezzo Totale"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_unit_price
+msgid "Prezzo unitario"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_account_config_settings_dati_bollo_product_id
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_company_dati_bollo_product_id
+msgid "Prodotto da utilizzare nelle fatture passive quando nell'XML viene valorizzato l'elemento DatiBollo"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_account_config_settings_cassa_previdenziale_product_id
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_company_cassa_previdenziale_product_id
+msgid "Prodotto da utilizzare nelle fatture passive quando nell'XML viene valorizzato l'elemento DatiCassaPrevidenziale"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_account_config_settings_sconto_maggiorazione_product_id
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_company_sconto_maggiorazione_product_id
+msgid "Prodotto da utilizzare nelle fatture passive quando nell'XML viene valorizzato l'elemento ScontoMaggiorazione"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_config_settings_dati_bollo_product_id
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_company_dati_bollo_product_id
+msgid "Product for Dati Bollo"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_config_settings_cassa_previdenziale_product_id
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_company_cassa_previdenziale_product_id
+msgid "Product for Dati Cassa Previdenziale"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_config_settings_sconto_maggiorazione_product_id
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_company_sconto_maggiorazione_product_id
+msgid "Product for Sconto Maggiorazione"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:198
+#, python-format
+msgid "Provincia ( %s ) not present in system"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:188
+#, python-format
+msgid "ProvinciaAlbo ( %s ) not present in system"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_qty
+msgid "Quantita'"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:228
+#, python-format
+msgid "REA Office (Province) Code ( %s ) not present in system"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:216
+#, python-format
+msgid "RegimeFiscale %s is not present in your system"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_registered
+msgid "Registered"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Related Documents"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_discount_rise_price_e_invoice_line_id
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_e_invoice_line_id
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_article_code_e_invoice_line_id
+msgid "Related E-Invoice line"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_fatturapa_in_attachment_form
+msgid "Remove"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_res_field
+msgid "Resource Field"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_res_id
+msgid "Resource ID"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_res_model
+msgid "Resource Model"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_res_name
+msgid "Resource Name"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_date_ref
+msgid "Riferimento Data"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_num_ref
+msgid "Riferimento Numero"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_text_ref
+msgid "Riferimento Testo"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_admin_ref
+msgid "Riferimento mministrazione"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_wt_amount
+msgid "Ritenuta"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "SAL data"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Sconto Maggiorazione"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_fatturapa_attachment_in_invoices_total
+msgid "Se indicato dal fornitore, Importo totale del documento al netto dell'eventuale sconto e comprensivo di imposta a debito del cessionario / committente"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Stabile Organizzazione"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_store_fname
+msgid "Stored Filename"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Summary Data"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_xml_supplier_id
+msgid "Supplier"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:901
+#, python-format
+msgid "Supplier invoice contains withholding tax with CausalePagamento %s, but such a tax is not found in your system. Please set it"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:471
+#, python-format
+msgid "Tax kind %s not found"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_fatturapa_attachment_in_res_model
+msgid "The database object this attachment will be attached to."
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_fatturapa_attachment_in_res_id
+msgid "The record id this is attached to."
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_service_type
+msgid "Tipo Cessione Prestazione"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_name
+msgid "Tipo Dato"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:498
+#, python-format
+msgid "TipoCassa %s is not present in your system"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:480
+#, python-format
+msgid "TipoCassa is not defined "
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_fatturapa_in_attachment_search
+msgid "To Register"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:284
+#, python-format
+msgid "Too many taxes with percentage %s and nature %s found"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:135
+#, python-format
+msgid "Two distinct partners with Vat %s and Fiscalcode %s already present in db"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_type
+msgid "Type"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_uom
+msgid "Unita' di misura"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_url
+msgid "Url"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_partner_e_invoice_default_product_id
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_users_e_invoice_default_product_id
+msgid "Used by electronic invoice XML import. If filled, generated invoice lines will use this product, when no other possible product is found."
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Welfare Fund"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Welfare Fund Details"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:370
+#, python-format
+msgid "XML contains tax %s. Product %s has tax %s. Using the XML one"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:299
+#, python-format
+msgid "XML contains tax with percentage \"%s\" but it does not exist in your system"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_fatturapa_in_attachment_tree
+msgid "Xml Attachment"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_fatturapa_attachment_in_type
+msgid "You can either upload a file from your computer or copy/paste an internet link to your file."
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.py:19
+#, python-format
+msgid "You can select only 1 XML file to link"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model,name:l10n_it_fatturapa_in.model_account_config_settings
+msgid "account.config.settings"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model,name:l10n_it_fatturapa_in.model_einvoice_line
+msgid "einvoice.line"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model,name:l10n_it_fatturapa_in.model_einvoice_line_other_data
+msgid "einvoice.line.other.data"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_fatturapa_in_attachment_form
+msgid "on"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:852
+#, python-format
+msgid "tipoDocumento %s not handled"
+msgstr ""
+
From da32fe500b6541f50fe837de7ae15ff62fd2ff51 Mon Sep 17 00:00:00 2001
From: Sergio Zanchetta
Date: Mon, 15 Oct 2018 14:31:29 +0000
Subject: [PATCH 004/236] Translated using Weblate (Italian)
Currently translated at 75.6% (118 of 156 strings)
Translation: l10n-italy-10.0/l10n-italy-10.0-l10n_it_fatturapa_in
Translate-URL: https://translation.odoo-community.org/projects/l10n-italy-10-0/l10n-italy-10-0-l10n_it_fatturapa_in/it/
---
l10n_it_fatturapa_in/i18n/it.po | 227 ++++++++++++++++++--------------
1 file changed, 128 insertions(+), 99 deletions(-)
diff --git a/l10n_it_fatturapa_in/i18n/it.po b/l10n_it_fatturapa_in/i18n/it.po
index 12c0439947bf..03a060d63d21 100644
--- a/l10n_it_fatturapa_in/i18n/it.po
+++ b/l10n_it_fatturapa_in/i18n/it.po
@@ -7,27 +7,31 @@ msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-27 08:07+0000\n"
-"PO-Revision-Date: 2018-09-27 08:07+0000\n"
-"Last-Translator: <>\n"
+"PO-Revision-Date: 2018-10-18 15:58+0000\n"
+"Last-Translator: Sergio Zanchetta \n"
"Language-Team: \n"
-"Language: \n"
+"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Plural-Forms: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 3.2.1\n"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_tax_amount
+#, fuzzy
msgid "Aliquota IVA"
msgstr "Aliquota IVA"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+#, fuzzy
msgid "Altri Dati Gestionali"
-msgstr "Altri Dati Gestionali"
+msgstr "Altri dati gestionali"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_ids
+#, fuzzy
msgid "Altri dati gestionali"
msgstr "Altri dati gestionali"
@@ -39,13 +43,13 @@ msgstr "Allegato"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_name
msgid "Attachment Name"
-msgstr "Nome Allegato"
+msgstr "Nome allegato"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_local_url
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_website_url
msgid "Attachment URL"
-msgstr "URL Allegato"
+msgstr "URL allegato"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1161
@@ -68,13 +72,13 @@ msgid ""
"Bank Name: %s\n"
msgstr ""
"BIC è richiesto e non esiste nell'XML\n"
-"I dati della banca corrente sono: \n"
+"I dati attuali della banca sono: \n"
"IBAN: %s\n"
"Nome banca: %s\n"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:578
-#, python-format
+#, fuzzy, python-format
msgid "Bollo assolto ai sensi del decreto MEF 17 giugno 2014 (art. 6)"
msgstr "Bollo assolto ai sensi del decreto MEF 17 giugno 2014 (art. 6)"
@@ -86,9 +90,9 @@ msgstr "Annulla"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:954
-#, python-format
+#, fuzzy, python-format
msgid "Cassa Previdenziale: %s"
-msgstr "Cassa Previdenziale: %s"
+msgstr "Cassa previdenziale: %s"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:962
@@ -97,8 +101,7 @@ msgid ""
"CassaPrevidenziale %s has Ritenuta but no withholding tax was found in the "
"system"
msgstr ""
-"CassaPrevidenziale %s ha la ritenuta me nessuna ritenuta è stata trovata nel "
-"sistema"
+"La cassa previdenziale %s ha la ritenuta ma non sono presenti nel sistema"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_checksum
@@ -122,8 +125,9 @@ msgstr "Valore codice"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+#, fuzzy
msgid "Codice Articoli"
-msgstr "Codice Articoli"
+msgstr "Codice articoli"
#. module: l10n_it_fatturapa_in
#: model:ir.model,name:l10n_it_fatturapa_in.model_res_company
@@ -175,20 +179,22 @@ msgstr "Creazione"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_period_end_date
msgid "Data Fine Periodo"
-msgstr "Data Fine Periodo"
+msgstr "Data fine periodo"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_period_start_date
+#, fuzzy
msgid "Data Inizio Periodo"
-msgstr "Data Inizio Periodo"
+msgstr "Data inizio periodo"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_db_datas
msgid "Database Data"
-msgstr "Dati Database"
+msgstr "Dati database"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+#, fuzzy
msgid "Dati generali"
msgstr "Dati generali"
@@ -199,8 +205,7 @@ msgid ""
"DatiAnagrafici.Anagrafica.Cognome contains \"%s\". Your System contains \"%s"
"\""
msgstr ""
-"DatiAnagrafici.Anagrafica.Cognome contiene \"%s\". Il tuo database contiene "
-"\"%s\""
+"DatiAnagrafici.Anagrafica.Cognome contiene \"%s\", il sistema contiene \"%s\""
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:85
@@ -209,8 +214,8 @@ msgid ""
"DatiAnagrafici.Anagrafica.Denominazione contains \"%s\". Your System "
"contains \"%s\""
msgstr ""
-"DatiAnagrafici.Anagrafica.Denominazione contiene \"%s\". Il tuo database "
-"contiene \"%s\""
+"DatiAnagrafici.Anagrafica.Denominazione contiene \"%s\", il sistema contiene "
+"\"%s\""
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:93
@@ -218,20 +223,20 @@ msgstr ""
msgid ""
"DatiAnagrafici.Anagrafica.Nome contains \"%s\". Your System contains \"%s\""
msgstr ""
-"DatiAnagrafici.Anagrafica.Nome contiene \"%s\". Il tuo database contiene \"%s"
-"\""
+"DatiAnagrafici.Anagrafica.Nome contiene \"%s\", il sistema contiene \"%s\""
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_partner_e_invoice_default_product_id
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_users_e_invoice_default_product_id
+#, fuzzy
msgid "Default product electronic invoice"
-msgstr "Default product electronic invoice"
+msgstr "Fattura elettronica del prodotto predefinito"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:746
#, python-format
msgid "Define a purchase journal for this company: \"%s\" (id:%d)."
-msgstr "Definire un sezionale di acquisto per questa azienda: \"%s\" (id:%d)."
+msgstr "Definire un registro di acquisto per questa azienda: \"%s\" (id:%d)."
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
@@ -250,14 +255,16 @@ msgstr "Descrizione"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+#, fuzzy
msgid "Dettaglio Linea"
-msgstr "Dettaglio Linea"
+msgstr "Dettaglio Riga"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice_e_invoice_line_ids
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+#, fuzzy
msgid "Dettaglio Linee"
-msgstr "Dettaglio Linee"
+msgstr "Dettaglio righe"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_discount_rise_price_ids
@@ -272,43 +279,44 @@ msgstr "Dettagli sconto e maggiorazione"
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_import_fatturapa_display_name
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_link_to_invoice_display_name
msgid "Display Name"
-msgstr "Nome Visualizzato"
+msgstr "Nome visualizzato"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice_fatturapa_attachment_in_id
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice_line_fatturapa_attachment_in_id
msgid "E-Invoice Import File"
-msgstr "File fattura elettronica"
+msgstr "File importazione e-fattura"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
msgid "E-invoice Inconsistencies"
-msgstr "Inconsistenze fattura elettronica"
+msgstr "Incongruenze e-fattura"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
msgid "E-invoice details"
-msgstr "Dettagli fattura elettronica"
+msgstr "Dettagli e-fattura"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+#, fuzzy
msgid "Fattura PA V1.2 Schema"
msgstr "XML Schema V1.2"
#. module: l10n_it_fatturapa_in
#: model:ir.model,name:l10n_it_fatturapa_in.model_fatturapa_article_code
msgid "FatturaPA Article Code"
-msgstr "Codice articolo fattura elettronica"
+msgstr "Codice articolo fatturaPA"
#. module: l10n_it_fatturapa_in
#: model:ir.model,name:l10n_it_fatturapa_in.model_discount_rise_price
msgid "FatturaPA Discount Rise Price Data"
-msgstr "Dati sconto maggiorazione"
+msgstr "Dati sconto e maggiorazione fatturaPA"
#. module: l10n_it_fatturapa_in
#: model:ir.model,name:l10n_it_fatturapa_in.model_fatturapa_attachment_in
msgid "FatturaPA import File"
-msgstr "Fattura Elettronica Importazione File"
+msgstr "File importazione fatturaPA"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:47
@@ -319,17 +327,17 @@ msgstr "Il file %s è già collegato a delle fatture"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_datas
msgid "File Content"
-msgstr "Contenuto del File"
+msgstr "Contenuto file"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_datas_fname
msgid "File Name"
-msgstr "Nome File"
+msgstr "Nome file"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_file_size
msgid "File Size"
-msgstr "Dimensione File"
+msgstr "Dimensione file"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1244
@@ -341,12 +349,12 @@ msgstr "Il file è già collegato a delle fatture"
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:550
#, python-format
msgid "Global invoice discount from DatiGeneraliDocumento"
-msgstr "Sconto globale da DatiGeneraliDocumento"
+msgstr "Sconto globale fattura da DatiGeneraliDocumento"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_fatturapa_in_attachment_form
msgid "History"
-msgstr "Storico"
+msgstr "Cronologia"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_id
@@ -367,18 +375,20 @@ msgstr "Importa"
#: model:ir.actions.act_window,name:l10n_it_fatturapa_in.action_wizard_import_fatturapa
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_fatturapa_in_attachment_form
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.wizard_import_fatturapa_form_view
+#, fuzzy
msgid "Import Fattura Elettronica"
msgstr "Import Fattura Elettronica"
#. module: l10n_it_fatturapa_in
#: model:ir.model,name:l10n_it_fatturapa_in.model_wizard_import_fatturapa
+#, fuzzy
msgid "Import FatturaPA"
-msgstr "Importa Fattura Elettronica"
+msgstr "Importa fatturaPA"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice_inconsistencies
msgid "Import Inconsistencies"
-msgstr "Inconsistenze"
+msgstr "Incongruenze nell'importazione"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_in_invoice_ids
@@ -389,7 +399,7 @@ msgstr "Fatture passive"
#: model:ir.actions.act_window,name:l10n_it_fatturapa_in.action_fattura_pa_in
#: model:ir.ui.menu,name:l10n_it_fatturapa_in.menu_fattura_pa_in_tree
msgid "Incoming Fattura Elettronica files"
-msgstr "File in ingresso Fattura Elettronica"
+msgstr "File fattura elettronica in ingresso"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_index_content
@@ -406,7 +416,7 @@ msgstr "Fattura"
#. module: l10n_it_fatturapa_in
#: model:ir.model,name:l10n_it_fatturapa_in.model_account_invoice_line
msgid "Invoice Line"
-msgstr "Riga Fattura"
+msgstr "Riga fattura"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1206
@@ -452,7 +462,7 @@ msgstr "Ultima modifica il"
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_import_fatturapa_write_uid
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_link_to_invoice_write_uid
msgid "Last Updated by"
-msgstr "Ultima modifica di"
+msgstr "Ultimo aggiornamento di"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_write_date
@@ -462,7 +472,7 @@ msgstr "Ultima modifica di"
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_import_fatturapa_write_date
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_link_to_invoice_write_date
msgid "Last Updated on"
-msgstr "Ultima modifica il"
+msgstr "Ultimo aggiornamento il"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:308
@@ -471,8 +481,8 @@ msgid ""
"Line '%s': Too many taxes with percentage equals to \"%s\"\n"
"fix it if required"
msgstr ""
-"Riga '%s': Troppe imposte con aliquota uguale a\"%s\"\n"
-"correggere se necessario"
+"Riga '%s': troppe imposte con aliquota pari a\"%s\"\n"
+"Correggere se necessario"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.wizard_link_supplier_invoice
@@ -492,6 +502,7 @@ msgstr "Collega a fattura fornitore esistente"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_wizard_import_fatturapa_e_invoice_detail_level
+#, fuzzy
msgid "Livello di dettaglio Fatture elettroniche"
msgstr "Livello di dettaglio Fatture elettroniche"
@@ -529,11 +540,12 @@ msgstr "Massimo"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_mimetype
msgid "Mime Type"
-msgstr "Tipo Mime"
+msgstr "Tipo MIME"
#. module: l10n_it_fatturapa_in
#: selection:res.partner,e_invoice_detail_level:0
#: selection:wizard.import.fatturapa,e_invoice_detail_level:0
+#, fuzzy
msgid "Minimo"
msgstr "Minimo"
@@ -541,18 +553,17 @@ msgstr "Minimo"
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:609
#, python-format
msgid "ModalitaPagamento %s not defined in your system"
-msgstr "Modalita Pagamento %s non definito nel sistema"
+msgstr "ModalitaPagamento %s non definito nel sistema"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:667
#, python-format
msgid "Name of Bank with BIC \"%s\" is not set. Can't create bank"
-msgstr ""
-"Il nome della banca con BIC \"%s\" non è impostato. Impossibile creare la "
-"banca"
+msgstr "Nome banca con BIC \"%s\" non impostato, impossibile creare la banca."
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_tax_kind
+#, fuzzy
msgid "Natura"
msgstr "Natura"
@@ -560,7 +571,7 @@ msgstr "Natura"
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:829
#, python-format
msgid "No currency found with code %s"
-msgstr "Nessuna valuta trovata con codice %s"
+msgstr "Valuta con codice %s non trovata"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:279
@@ -568,19 +579,18 @@ msgstr "Nessuna valuta trovata con codice %s"
msgid ""
"No tax with percentage %s and nature %s found. Please configure this tax"
msgstr ""
-"Nessuna imposta con aliquota %s e natura %s trovata. Configurare questa "
-"imposta"
+"Imposta con aliquota %s e natura %s non trovata, configurare questa imposta."
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:913
#, python-format
msgid "No withholding tax found with Causale %s and rate %s"
-msgstr "Nessuna ritenuta trovata con Causale %s e importo %s"
+msgstr "Ritenuta fiscale con causale %s e importo %s non trovata"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_line_number
msgid "Numero Linea"
-msgstr "Numero Linea"
+msgstr "Numero riga"
#. module: l10n_it_fatturapa_in
#: model:ir.model,name:l10n_it_fatturapa_in.model_res_partner
@@ -591,7 +601,7 @@ msgstr "Partner"
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1144
#, python-format
msgid "Payment method Code %s is incorrect"
-msgstr "Codice metodo di oagamento %s non corretto"
+msgstr "Codice metodo di pagamento %s non corretto"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1139
@@ -607,26 +617,29 @@ msgstr "Pagamenti"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
msgid "Payments Details"
-msgstr "Payments Details"
+msgstr "Dettagli pagamenti"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_ftpa_preview_link
msgid "Preview link"
-msgstr ""
+msgstr "Collegamento di anteprima"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_total_price
+#, fuzzy
msgid "Prezzo Totale"
-msgstr "Prezzo Totale"
+msgstr "Prezzo totale"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_unit_price
+#, fuzzy
msgid "Prezzo unitario"
msgstr "Prezzo unitario"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_account_config_settings_dati_bollo_product_id
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_company_dati_bollo_product_id
+#, fuzzy
msgid ""
"Prodotto da utilizzare nelle fatture passive quando nell'XML viene "
"valorizzato l'elemento DatiBollo"
@@ -637,6 +650,7 @@ msgstr ""
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_account_config_settings_cassa_previdenziale_product_id
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_company_cassa_previdenziale_product_id
+#, fuzzy
msgid ""
"Prodotto da utilizzare nelle fatture passive quando nell'XML viene "
"valorizzato l'elemento DatiCassaPrevidenziale"
@@ -647,6 +661,7 @@ msgstr ""
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_account_config_settings_sconto_maggiorazione_product_id
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_company_sconto_maggiorazione_product_id
+#, fuzzy
msgid ""
"Prodotto da utilizzare nelle fatture passive quando nell'XML viene "
"valorizzato l'elemento ScontoMaggiorazione"
@@ -657,35 +672,39 @@ msgstr ""
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_config_settings_dati_bollo_product_id
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_company_dati_bollo_product_id
+#, fuzzy
msgid "Product for Dati Bollo"
-msgstr "Prodotto per Dati Bollo"
+msgstr "Prodotto per dati bollo"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_config_settings_cassa_previdenziale_product_id
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_company_cassa_previdenziale_product_id
+#, fuzzy
msgid "Product for Dati Cassa Previdenziale"
-msgstr "Prodotto per Dati Cassa Previdenziale"
+msgstr "Prodotto per dati cassa previdenziale"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_config_settings_sconto_maggiorazione_product_id
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_company_sconto_maggiorazione_product_id
+#, fuzzy
msgid "Product for Sconto Maggiorazione"
-msgstr "Prodotto per Sconto Maggiorazione"
+msgstr "Prodotto per sconto maggiorazione"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:198
#, python-format
msgid "Provincia ( %s ) not present in system"
-msgstr "Provincia ( %s ) non presente nel database"
+msgstr "Provincia ( %s ) non presente nel sistema"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:188
#, python-format
msgid "ProvinciaAlbo ( %s ) not present in system"
-msgstr "ProvinciaAlbo ( %s ) non presente nel database"
+msgstr "ProvinciaAlbo ( %s ) non presente nel sistema"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_qty
+#, fuzzy
msgid "Quantita'"
msgstr "Quantita'"
@@ -693,13 +712,13 @@ msgstr "Quantita'"
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:228
#, python-format
msgid "REA Office (Province) Code ( %s ) not present in system"
-msgstr "Codice ufficio REA (Provincia) ( %s ) non presente nel database"
+msgstr "Codice ufficio REA (provincia) ( %s ) non presente nel sistema"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:216
#, python-format
msgid "RegimeFiscale %s is not present in your system"
-msgstr "RegimeFiscale %s non presente nel database"
+msgstr "RegimeFiscale %s non presente nel sistema"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_registered
@@ -709,14 +728,14 @@ msgstr "Registrata"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
msgid "Related Documents"
-msgstr "Documenti Correlati"
+msgstr "Documenti correlati"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_discount_rise_price_e_invoice_line_id
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_e_invoice_line_id
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_article_code_e_invoice_line_id
msgid "Related E-Invoice line"
-msgstr "Riga fattura elettronica correlata"
+msgstr "Riga e-fattura correlata"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_fatturapa_in_attachment_form
@@ -726,45 +745,50 @@ msgstr "Rimuovi"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_res_field
msgid "Resource Field"
-msgstr "Campo Risorsa"
+msgstr "Campo risorsa"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_res_id
msgid "Resource ID"
-msgstr "ID Risorsa"
+msgstr "ID risorsa"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_res_model
msgid "Resource Model"
-msgstr "Modello della Risorsa"
+msgstr "Modello risorsa"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_res_name
msgid "Resource Name"
-msgstr "Nome Risorsa"
+msgstr "Nome risorsa"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_date_ref
+#, fuzzy
msgid "Riferimento Data"
-msgstr "Riferimento Data"
+msgstr "Riferimento data"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_num_ref
+#, fuzzy
msgid "Riferimento Numero"
-msgstr "Riferimento Numero"
+msgstr "Riferimento numero"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_text_ref
+#, fuzzy
msgid "Riferimento Testo"
-msgstr "Riferimento Testo"
+msgstr "Riferimento testo"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_admin_ref
+#, fuzzy
msgid "Riferimento mministrazione"
-msgstr "Riferimento mministrazione"
+msgstr "Riferimento amministrazione"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_wt_amount
+#, fuzzy
msgid "Ritenuta"
msgstr "Ritenuta"
@@ -775,11 +799,13 @@ msgstr "Dati SAL"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+#, fuzzy
msgid "Sconto Maggiorazione"
-msgstr "Sconto Maggiorazione"
+msgstr "Sconto maggiorazione"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_fatturapa_attachment_in_invoices_total
+#, fuzzy
msgid ""
"Se indicato dal fornitore, Importo totale del documento al netto "
"dell'eventuale sconto e comprensivo di imposta a debito del cessionario / "
@@ -791,13 +817,14 @@ msgstr ""
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+#, fuzzy
msgid "Stabile Organizzazione"
-msgstr "Stabile Organizzazione"
+msgstr "Stabile organizzazione"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_store_fname
msgid "Stored Filename"
-msgstr "Nome del File Registrato"
+msgstr "Nome file memorizzato"
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
@@ -816,8 +843,8 @@ msgid ""
"Supplier invoice contains withholding tax with CausalePagamento %s, but such "
"a tax is not found in your system. Please set it"
msgstr ""
-"La fattura contiene la ritenuta con Causale Pagamento %s, ma tale ritenuta "
-"non è presente nel sistema. Prego impostarla"
+"La fattura contiene una ritenuta fiscale con causale pagamento %s. Tale "
+"ritenuta non è presente nel sistema, è necessario impostarla."
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:471
@@ -828,28 +855,28 @@ msgstr "Tipo imposta %s non trovato"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_fatturapa_attachment_in_res_model
msgid "The database object this attachment will be attached to."
-msgstr "L'oggetto del database a cui verrà allegato questo allegato."
+msgstr "L'oggetto del database a cui verrà assegnato questo allegato."
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_fatturapa_attachment_in_res_id
msgid "The record id this is attached to."
-msgstr "L'ID del record a cui questo è allegato."
+msgstr "L'ID del record a cui questo è collegato."
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_service_type
msgid "Tipo Cessione Prestazione"
-msgstr "Tipo Cessione Prestazione"
+msgstr "Tipo cessione prestazione"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_name
msgid "Tipo Dato"
-msgstr "Tipo Dato"
+msgstr "Tipo dato"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:498
#, python-format
msgid "TipoCassa %s is not present in your system"
-msgstr "TipoCassa %s non presente nel database"
+msgstr "TipoCassa %s non presente nel sistema"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:480
@@ -866,7 +893,7 @@ msgstr "Da registrare"
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:284
#, python-format
msgid "Too many taxes with percentage %s and nature %s found"
-msgstr "Troppe imposte con aliquota %s e natura %s trovate"
+msgstr "Trovate troppe imposte con aliquota %s e natura %s"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:135
@@ -874,8 +901,8 @@ msgstr "Troppe imposte con aliquota %s e natura %s trovate"
msgid ""
"Two distinct partners with Vat %s and Fiscalcode %s already present in db"
msgstr ""
-"2 differenti partner con P.IVA %s e codice fiscale %s sono già presenti nel "
-"database"
+"Nel database sono già presenti due diversi partner con P. IVA %s e codice "
+"fiscale %s"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_type
@@ -884,13 +911,14 @@ msgstr "Tipo"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_uom
+#, fuzzy
msgid "Unita' di misura"
msgstr "Unita' di misura"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_url
msgid "Url"
-msgstr "Url"
+msgstr "URL"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_partner_e_invoice_default_product_id
@@ -900,8 +928,8 @@ msgid ""
"will use this product, when no other possible product is found."
msgstr ""
"Usato nell'importazione XML delle fatture elettroniche. Se valorizzato, le "
-"fatture generate nell'importazione utilizzeranno questo prodotto, quando "
-"nessun'altro possibile prodotto verrà trovato"
+"righe fattura generate useranno questo prodotto se non ce ne sono altri "
+"disponibili."
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
@@ -918,8 +946,8 @@ msgstr "Dettagli cassa previdenziale"
#, python-format
msgid "XML contains tax %s. Product %s has tax %s. Using the XML one"
msgstr ""
-"L'XML contiene l'imposta %s. Il prodotto %s ha l'imposta %s. Utilizzo quella "
-"dell'XML"
+"Il file XML contiene l'imposta %s, il prodotto %s l'imposta %s. Verrà usata "
+"quella dell'XML."
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:299
@@ -927,7 +955,8 @@ msgstr ""
msgid ""
"XML contains tax with percentage \"%s\" but it does not exist in your system"
msgstr ""
-"L'XML contiene l'imposta con alquota \"%s\" ma questa non esiste nel database"
+"Il file XML contiene l'imposta con aliquota \"%s\" ma questa non esiste nel "
+"sistema."
#. module: l10n_it_fatturapa_in
#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_fatturapa_in_attachment_tree
@@ -940,8 +969,8 @@ msgid ""
"You can either upload a file from your computer or copy/paste an internet "
"link to your file."
msgstr ""
-"Puoi inviare un file dal computer o copiare/incollare un indirizzo Internet "
-"che è collegato al tuo file."
+"È possibile caricare un file dal computer oppure fare copia/incolla di un "
+"collegamento Internet nel file."
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.py:19
From b15f0dc26312a490aaf29531d8678a25e273427c Mon Sep 17 00:00:00 2001
From: Lorenzo Battistini
Date: Mon, 22 Oct 2018 15:31:49 +0200
Subject: [PATCH 005/236] IMP l10n_it_fatturapa useless field (#613)
supplier fields only visible for suppliers
Check mandatory customer fields before exporting XML
Prevent to use sequence already used by journals
---
l10n_it_fatturapa_in/__manifest__.py | 2 +-
l10n_it_fatturapa_in/views/partner_view.xml | 7 +++----
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/l10n_it_fatturapa_in/__manifest__.py b/l10n_it_fatturapa_in/__manifest__.py
index e00688104d9a..fe4a807102aa 100644
--- a/l10n_it_fatturapa_in/__manifest__.py
+++ b/l10n_it_fatturapa_in/__manifest__.py
@@ -5,7 +5,7 @@
{
'name': 'Italian Localization - Fattura Elettronica reception',
- 'version': '10.0.1.0.0',
+ 'version': '10.0.1.1.0',
'category': 'Localization/Italy',
'summary': 'Electronic invoices reception',
'author': 'Agile Business Group, Innoviu, '
diff --git a/l10n_it_fatturapa_in/views/partner_view.xml b/l10n_it_fatturapa_in/views/partner_view.xml
index 81e10e2a3218..1c2d36818b5d 100644
--- a/l10n_it_fatturapa_in/views/partner_view.xml
+++ b/l10n_it_fatturapa_in/views/partner_view.xml
@@ -7,12 +7,11 @@
-
+
+
-
-
-
From 78f4f51ab1571841752a25fafcb75f3642601004 Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Tue, 23 Oct 2018 09:43:53 +0000
Subject: [PATCH 006/236] [UPD] Update l10n_it_fatturapa_in.pot
---
l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot b/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
index 4c50cb0b2455..7b6496502e96 100644
--- a/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
+++ b/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
@@ -750,6 +750,11 @@ msgstr ""
msgid "Supplier"
msgstr ""
+#. module: l10n_it_fatturapa_in
+#: model:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_partner_form_fatturapa_in
+msgid "Supplier data"
+msgstr ""
+
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:901
#, python-format
From 699057cbbd9ca938f3ce0747d529de7757e4913c Mon Sep 17 00:00:00 2001
From: Sergio Zanchetta
Date: Mon, 5 Nov 2018 11:21:29 +0000
Subject: [PATCH 007/236] Translated using Weblate (Italian)
Currently translated at 73.7% (115 of 156 strings)
Translation: l10n-italy-10.0/l10n-italy-10.0-l10n_it_fatturapa_in
Translate-URL: https://translation.odoo-community.org/projects/l10n-italy-10-0/l10n-italy-10-0-l10n_it_fatturapa_in/it/
---
l10n_it_fatturapa_in/i18n/it.po | 29 ++++++++++++++++-------------
1 file changed, 16 insertions(+), 13 deletions(-)
diff --git a/l10n_it_fatturapa_in/i18n/it.po b/l10n_it_fatturapa_in/i18n/it.po
index 03a060d63d21..a20dcd8d4dab 100644
--- a/l10n_it_fatturapa_in/i18n/it.po
+++ b/l10n_it_fatturapa_in/i18n/it.po
@@ -7,15 +7,15 @@ msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-27 08:07+0000\n"
-"PO-Revision-Date: 2018-10-18 15:58+0000\n"
-"Last-Translator: Sergio Zanchetta \n"
+"PO-Revision-Date: 2018-11-15 13:38+0000\n"
+"Last-Translator: Lorenzo Battistini \n"
"Language-Team: \n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.2.1\n"
+"X-Generator: Weblate 3.2.2\n"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_tax_amount
@@ -381,9 +381,8 @@ msgstr "Import Fattura Elettronica"
#. module: l10n_it_fatturapa_in
#: model:ir.model,name:l10n_it_fatturapa_in.model_wizard_import_fatturapa
-#, fuzzy
msgid "Import FatturaPA"
-msgstr "Importa fatturaPA"
+msgstr "Importa e-fattura"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice_inconsistencies
@@ -481,7 +480,7 @@ msgid ""
"Line '%s': Too many taxes with percentage equals to \"%s\"\n"
"fix it if required"
msgstr ""
-"Riga '%s': troppe imposte con aliquota pari a\"%s\"\n"
+"Riga \"%s\": troppe imposte con aliquota pari a\"%s\".\n"
"Correggere se necessario"
#. module: l10n_it_fatturapa_in
@@ -511,7 +510,7 @@ msgstr "Livello di dettaglio Fatture elettroniche"
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_users_e_invoice_detail_level
#, fuzzy
msgid "Livello di dettaglio Fatture elettroniche passive"
-msgstr "Livello di dettaglio Fatture elettroniche"
+msgstr "Livello di dettaglio Fatture elettroniche passive"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_partner_e_invoice_detail_level
@@ -534,6 +533,7 @@ msgstr ""
#. module: l10n_it_fatturapa_in
#: selection:res.partner,e_invoice_detail_level:0
#: selection:wizard.import.fatturapa,e_invoice_detail_level:0
+#, fuzzy
msgid "Massimo"
msgstr "Massimo"
@@ -589,6 +589,7 @@ msgstr "Ritenuta fiscale con causale %s e importo %s non trovata"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_line_number
+#, fuzzy
msgid "Numero Linea"
msgstr "Numero riga"
@@ -706,7 +707,7 @@ msgstr "ProvinciaAlbo ( %s ) non presente nel sistema"
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_qty
#, fuzzy
msgid "Quantita'"
-msgstr "Quantita'"
+msgstr "Quantità"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:228
@@ -864,11 +865,13 @@ msgstr "L'ID del record a cui questo è collegato."
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_service_type
+#, fuzzy
msgid "Tipo Cessione Prestazione"
msgstr "Tipo cessione prestazione"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_other_data_name
+#, fuzzy
msgid "Tipo Dato"
msgstr "Tipo dato"
@@ -893,7 +896,7 @@ msgstr "Da registrare"
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:284
#, python-format
msgid "Too many taxes with percentage %s and nature %s found"
-msgstr "Trovate troppe imposte con aliquota %s e natura %s"
+msgstr "Rilevate troppe imposte con aliquota %s e natura %s"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:135
@@ -901,8 +904,8 @@ msgstr "Trovate troppe imposte con aliquota %s e natura %s"
msgid ""
"Two distinct partners with Vat %s and Fiscalcode %s already present in db"
msgstr ""
-"Nel database sono già presenti due diversi partner con P. IVA %s e codice "
-"fiscale %s"
+"Nel database sono già presenti due diversi partner con partita IVA %s e "
+"codice fiscale %s"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_type
@@ -913,7 +916,7 @@ msgstr "Tipo"
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line_uom
#, fuzzy
msgid "Unita' di misura"
-msgstr "Unita' di misura"
+msgstr "Unità di misura"
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in_url
@@ -976,7 +979,7 @@ msgstr ""
#: code:addons/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.py:19
#, python-format
msgid "You can select only 1 XML file to link"
-msgstr "E' possibile selezionare solo un file XML da collegare"
+msgstr "È possibile selezionare solo un file XML da collegare"
#. module: l10n_it_fatturapa_in
#: model:ir.model,name:l10n_it_fatturapa_in.model_account_config_settings
From a09a8f423974ca52f90f0c9d24fc7e4ab06dd2b5 Mon Sep 17 00:00:00 2001
From: eLBati
Date: Tue, 13 Nov 2018 15:12:09 +0100
Subject: [PATCH 008/236] IMP README exceptions sending email Avoid to delete
sent files Check duplicated files Send several files Reset to ready button
Sending and delivery date Handling ACCETTAZIONE and CONSEGNA IMP 'link to
existing invoice' wizard FIX invoice views within attachment view IMP
attachments views IMP l10n_it_fatturapa_out export: allow multiple export ,
group by partner ALLOW to use newline char in invoice line description check
sequence without date ranges Extract correcttle messages from NS
---
l10n_it_fatturapa_in/__manifest__.py | 2 +-
l10n_it_fatturapa_in/models/account.py | 4 ++++
l10n_it_fatturapa_in/views/account_view.xml | 10 +---------
.../wizard/link_to_existing_invoice.xml | 1 +
4 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/l10n_it_fatturapa_in/__manifest__.py b/l10n_it_fatturapa_in/__manifest__.py
index fe4a807102aa..aefa4aea40cc 100644
--- a/l10n_it_fatturapa_in/__manifest__.py
+++ b/l10n_it_fatturapa_in/__manifest__.py
@@ -5,7 +5,7 @@
{
'name': 'Italian Localization - Fattura Elettronica reception',
- 'version': '10.0.1.1.0',
+ 'version': '10.0.1.2.0',
'category': 'Localization/Italy',
'summary': 'Electronic invoices reception',
'author': 'Agile Business Group, Innoviu, '
diff --git a/l10n_it_fatturapa_in/models/account.py b/l10n_it_fatturapa_in/models/account.py
index 33d5ff5c2ccd..d7ebcf17edd4 100644
--- a/l10n_it_fatturapa_in/models/account.py
+++ b/l10n_it_fatturapa_in/models/account.py
@@ -23,6 +23,10 @@ def name_get(self):
invoice = self.browse(tup[0])
if invoice.type in ('in_invoice', 'in_refund'):
name = "%s, %s" % (tup[1], invoice.partner_id.name)
+ if invoice.amount_total_signed:
+ name += ', %s %s' % (
+ invoice.amount_total_signed, invoice.currency_id.symbol
+ )
if invoice.origin:
name += ', %s' % invoice.origin
res.append((invoice.id, name))
diff --git a/l10n_it_fatturapa_in/views/account_view.xml b/l10n_it_fatturapa_in/views/account_view.xml
index 9e230db3620a..c5798f3e632e 100644
--- a/l10n_it_fatturapa_in/views/account_view.xml
+++ b/l10n_it_fatturapa_in/views/account_view.xml
@@ -24,7 +24,7 @@
+ context="{'form_view_ref': 'account.invoice_supplier_form', 'tree_view_ref': 'account.invoice_supplier_tree'}">
@@ -103,14 +103,6 @@
account.invoice
-
-
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.
+
This module is part of the OCA/l10n-italy project on GitHub.
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.
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.
+
This module is part of the OCA/l10n-italy project on GitHub.
+ Default products used in electronic supplier invoices
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
index 102d0c2b4c1c..3dc54faa2daf 100644
--- a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
+++ b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
@@ -239,7 +239,6 @@ def getCedPrest(self, cedPrest):
if cedPrest.Contatti:
vals['phone'] = cedPrest.Contatti.Telefono
vals['email'] = cedPrest.Contatti.Email
- vals['fax'] = cedPrest.Contatti.Fax
partner_model.browse(partner_id).write(vals)
return partner_id
@@ -258,10 +257,10 @@ def _prepare_generic_line_data(self, line):
retLine = {}
account_tax_model = self.env['account.tax']
# check if a default tax exists and generate def_purchase_tax object
- ir_values = self.env['ir.values']
+ ir_values = self.env['ir.default']
company_id = self.env['res.company']._company_default_get(
'account.invoice.line').id
- supplier_taxes_ids = ir_values.get_default(
+ supplier_taxes_ids = ir_values.get(
'product.product', 'supplier_taxes_id', company_id=company_id)
def_purchase_tax = False
if supplier_taxes_ids:
@@ -861,7 +860,7 @@ def invoiceCreate(
invoice_data = {
'fiscal_document_type_id': docType_id,
'date_invoice':
- FatturaBody.DatiGenerali.DatiGeneraliDocumento.Data,
+ FatturaBody.DatiGenerali.DatiGeneraliDocumento.Data.date(),
'reference':
FatturaBody.DatiGenerali.DatiGeneraliDocumento.Numero,
'sender': fatt.FatturaElettronicaHeader.SoggettoEmittente or False,
@@ -1163,7 +1162,7 @@ def invoiceCreate(
content = attach.Attachment
_attach_dict = {
'name': name,
- 'datas': base64.b64encode(str(content)),
+ 'datas': base64.b64encode(content),
'datas_fname': name,
'description': attach.DescrizioneAttachment or '',
'compression': attach.AlgoritmoCompressione or '',
From cb646faa77cca449d37b6986573a9d8d915aefc7 Mon Sep 17 00:00:00 2001
From: Sergio Zanchetta
Date: Tue, 27 Nov 2018 18:55:26 +0100
Subject: [PATCH 013/236] [FIX] translation source strings l10n_it_fatturapa_in
[IMP] revamp README and manifest
[FIX] wrong tabs indentation
---
l10n_it_fatturapa_in/README.rst | 85 +++++++--
l10n_it_fatturapa_in/__manifest__.py | 7 +-
l10n_it_fatturapa_in/models/account.py | 52 +++---
l10n_it_fatturapa_in/models/attachment.py | 5 +-
l10n_it_fatturapa_in/models/company.py | 32 ++--
l10n_it_fatturapa_in/models/partner.py | 18 +-
l10n_it_fatturapa_in/readme/CONFIGURE.rst | 33 +++-
l10n_it_fatturapa_in/readme/CONTRIBUTORS.rst | 1 +
l10n_it_fatturapa_in/readme/DESCRIPTION.rst | 16 +-
l10n_it_fatturapa_in/readme/INSTALL.rst | 10 +-
l10n_it_fatturapa_in/readme/USAGE.rst | 19 +-
.../static/description/index.html | 68 ++++++--
.../tests/data/IT01234567890_FPR03.xml | 22 +--
.../tests/data/IT03638121008_X11111.xml | 162 +++++++++---------
.../tests/data/IT05979361218_005.xml | 98 +++++------
.../tests/data/IT05979361218_006.XML | 98 +++++------
.../tests/data/IT05979361218_009.xml | 2 +-
.../tests/test_import_fatturapa_xml.py | 16 +-
l10n_it_fatturapa_in/views/account_view.xml | 26 +--
.../wizard/link_to_existing_invoice.py | 4 +-
.../wizard/link_to_existing_invoice.xml | 4 +-
.../wizard/wizard_import_fatturapa.py | 71 ++++----
.../wizard/wizard_import_fatturapa_view.xml | 8 +-
23 files changed, 498 insertions(+), 359 deletions(-)
diff --git a/l10n_it_fatturapa_in/README.rst b/l10n_it_fatturapa_in/README.rst
index ee5d6aa72d65..4fb3df4f8dfa 100644
--- a/l10n_it_fatturapa_in/README.rst
+++ b/l10n_it_fatturapa_in/README.rst
@@ -1,6 +1,6 @@
-====================================================
-Italian Localization - Fattura Elettronica reception
-====================================================
+======================================================
+Italian Localization - Fattura Elettronica - Reception
+======================================================
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
@@ -25,14 +25,26 @@ Italian Localization - Fattura Elettronica reception
|badge1| |badge2| |badge3| |badge4| |badge5|
-This module allows to import XML files of electronic invoices, version 1.2
+**Italiano**
+
+Questo modulo consente di importare i file XML delle fatture elettroniche, versione 1.2
http://www.fatturapa.gov.it/export/fatturazione/it/normativa/f-2.htm
-received through the exchange system (SDI)
+ricevute attraverso il Sistema di Interscambio (SDI)
http://www.fatturapa.gov.it/export/fatturazione/it/sdi.htm
+**English**
+
+This module allows to import XML files of electronic bills, version 1.2
+
+http://www.fatturapa.gov.it/export/fatturazione/en/normativa/f-2.htm
+
+received through the Exchange System (ES)
+
+http://www.fatturapa.gov.it/export/fatturazione/en/sdi.htm
+
**Table of contents**
.. contents::
@@ -41,37 +53,75 @@ http://www.fatturapa.gov.it/export/fatturazione/it/sdi.htm
Installation
============
-odoo server must run on linux and be able to run
+**Italiano**
+
+Il server Odoo deve essere avviato da un sistema Linux con installato
+
+``openssl``
+
+**English**
+
+Odoo server must run on linux and be able to run
``openssl``
Configuration
=============
-Also see the README file of l10n_it_fatturapa module.
+**Italiano**
+
+Consultare anche il file README del modulo l10n_it_fatturapa.
-For every supplier, it is possible to set the 'details level of electronic invoices':
+Per ciascun fornitore è possibile impostare il "Livello dettaglio e-fatture":
- - Minimum level: Supplier invoice is created without lines; user will have to create them, according to what specified in electronic invoice
- - Maximum level: every line contained in electronic invoice will create a line in supplier invoice.
+ - Livello minimo: la fattura fornitore viene creata senza righe, che dovranno essere create dall'utente in base a quanto indicato nella fattura elettronica
+ - Livello massimo: le righe della fattura fornitore verranno generate a partire da tutte quelle presenti nella fattura elettronica
-Moreover, it is possible, in supplier form, to set the 'default product for electronic invoices': this product will be used, during generation of supplier invoices, when no other possible product is found. Tax and account of invoice line will be set according to what configured in the product.
+Nella scheda fornitore è inoltre possibile impostare il "Prodotto predefinito per e-fattura": verrà usato, durante la generazione delle fatture fornitore, quando non sono disponibili altri prodotti adeguati. Il conto e l'imposta della riga fattura verranno impostati in base a quelli configurati nel prodotto.
+
+Tutti i codici prodotto usati dai fornitori possono essere impostati nella relativa scheda, in
+
+Magazzino → Prodotti
+
+Se il fornitore specifica un codice noto nell'XML, questo verrà usato dal sistema per recuperare il prodotto corretto da usare nella riga fattura, impostando il conto e l'imposta collegati.
+
+**English**
+
+See also the README file of l10n_it_fatturapa module.
+
+For every supplier, it is possible to set the 'E-bills Detail Level':
+
+ - Minimum level: Bill is created with no lines; User will have to create them, according to what specified in the electronic bill
+ - Maximum level: every line contained in electronic bill will create a line in bill
+
+Moreover, in supplier form you can set the 'E-bill Default Product': this product will be used, during generation of bills, when no other possible product is found. Tax and account of bill line will be set according to what configured in the product.
Every product code used by suppliers can be set, in product form, in
-Inventory --> Suppliers
+Inventory → Products
-If supplier specifies a known code in XML, the system will use it to retrieve the correct product to be used in invoice line, setting the related tax and account.
+If supplier specifies a known code in XML, the system will use it to retrieve the correct product to be used in bill line, setting the related tax and account.
Usage
=====
- * Go to Accounting --> Purchases --> Electronic Invoice
+**Italiano**
+
+ * Andare su Contabilità → Acquisti → Fattura elettronica
+ * Caricare un file XML
+ * Visualizzare il contenuto della fattura facendo clic su "Mostra anteprima"
+ * Eseguire la procedura guidata "Importa e-fattura" per creare una fattura in bozza oppure "Collega a fattura esistente" per collegare il file XML a una fattura già (automaticamente) creata
+
+Nell'elenco file delle fatture elettroniche in ingresso saranno presenti, in modo predefinito, quelli da registrare. Sono i file che devono ancora essere collegati a una o più fatture fornitore.
+
+**English**
+
+ * Go to Accounting → Purchases → Electronic Bill
* Upload XML file
- * View invoice content clicking on 'show preview'
- * Run 'import electronic invoice' wizard to create a draft invoice or run 'link to existing supplier invoice' to link the XML file to an already (automatically) created invoice
+ * View bill content clicking on 'Show preview'
+ * Run 'Import e-bill' wizard to create a draft bill or run 'Link to existing bill' to link the XML file to an already (automatically) created bill
-In the incoming electronic invoice files list, by default you will see files to be registered, that is files not yet linked to one or more supplier invoices
+In the incoming electronic bill files list you will see, by default, files to be registered. These are files not yet linked to one or more bills.
Bug Tracker
===========
@@ -98,6 +148,7 @@ Contributors
* Lorenzo Battistini
* Roberto Onnis
* Alessio Gerace
+* Sergio Zanchetta
Maintainers
~~~~~~~~~~~
diff --git a/l10n_it_fatturapa_in/__manifest__.py b/l10n_it_fatturapa_in/__manifest__.py
index 4e2d0ea59064..aec15889b281 100644
--- a/l10n_it_fatturapa_in/__manifest__.py
+++ b/l10n_it_fatturapa_in/__manifest__.py
@@ -1,16 +1,19 @@
# Copyright 2015 AgileBG SAGL
# Copyright 2015 innoviu Srl
# Copyright 2018 Lorenzo Battistini
+# Copyright 2018 Sergio Zanchetta (Associazione PNLUG - Gruppo Odoo)
+# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
{
- 'name': 'Italian Localization - Fattura Elettronica reception',
+ 'name': 'Italian Localization - Fattura Elettronica - Reception',
'version': '12.0.1.0.0',
"development_status": "Beta",
'category': 'Localization/Italy',
'summary': 'Electronic invoices reception',
'author': 'Agile Business Group, Innoviu, '
'Odoo Community Association (OCA)',
- 'website': 'http://github.com/OCA/l10n-italy/',
+ 'website': 'https://github.com/OCA/l10n-italy/tree/12.0/'
+ 'l10n_it_fatturapa_in',
'license': 'LGPL-3',
"depends": [
'l10n_it_fatturapa',
diff --git a/l10n_it_fatturapa_in/models/account.py b/l10n_it_fatturapa_in/models/account.py
index 3d80c7352a89..78220e4df9d4 100644
--- a/l10n_it_fatturapa_in/models/account.py
+++ b/l10n_it_fatturapa_in/models/account.py
@@ -7,11 +7,11 @@ class AccountInvoice(models.Model):
_inherit = "account.invoice"
fatturapa_attachment_in_id = fields.Many2one(
- 'fatturapa.attachment.in', 'E-Invoice Import File',
+ 'fatturapa.attachment.in', 'E-bill Import File',
ondelete='restrict', copy=False)
inconsistencies = fields.Text('Import Inconsistencies', copy=False)
e_invoice_line_ids = fields.One2many(
- "einvoice.line", "invoice_id", string="Dettaglio Linee",
+ "einvoice.line", "invoice_id", string="Lines detail",
readonly=True, copy=False)
@api.multi
@@ -48,7 +48,7 @@ class fatturapa_article_code(models.Model):
name = fields.Char('Cod Type')
code_val = fields.Char('Code Value')
e_invoice_line_id = fields.Many2one(
- 'einvoice.line', 'Related E-Invoice line', readonly=True
+ 'einvoice.line', 'Related E-bill line', readonly=True
)
@@ -60,14 +60,14 @@ class AccountInvoiceLine(models.Model):
_inherit = "account.invoice.line"
fatturapa_attachment_in_id = fields.Many2one(
- 'fatturapa.attachment.in', 'E-Invoice Import File',
+ 'fatturapa.attachment.in', 'E-bill Import File',
readonly=True, related='invoice_id.fatturapa_attachment_in_id')
class DiscountRisePrice(models.Model):
_inherit = "discount.rise.price"
e_invoice_line_id = fields.Many2one(
- 'einvoice.line', 'Related E-Invoice line', readonly=True
+ 'einvoice.line', 'Related E-bill line', readonly=True
)
@@ -75,37 +75,37 @@ class EInvoiceLine(models.Model):
_name = 'einvoice.line'
_description = 'E-invoice line'
invoice_id = fields.Many2one(
- "account.invoice", "Invoice", readonly=True)
- line_number = fields.Integer('Numero Linea', readonly=True)
- service_type = fields.Char('Tipo Cessione Prestazione', readonly=True)
+ "account.invoice", "Bill", readonly=True)
+ line_number = fields.Integer('Line Number', readonly=True)
+ service_type = fields.Char('Sale Provision Type', readonly=True)
cod_article_ids = fields.One2many(
'fatturapa.article.code', 'e_invoice_line_id',
'Cod. Articles', readonly=True
)
- name = fields.Char("Descrizione", readonly=True)
+ name = fields.Char("Description", readonly=True)
qty = fields.Float(
- "Quantita'", readonly=True,
+ "Quantity", readonly=True,
digits=dp.get_precision('Product Unit of Measure')
)
- uom = fields.Char("Unita' di misura", readonly=True)
- period_start_date = fields.Date("Data Inizio Periodo", readonly=True)
- period_end_date = fields.Date("Data Fine Periodo", readonly=True)
+ uom = fields.Char("Unit of measure", readonly=True)
+ period_start_date = fields.Date("Period Start Date", readonly=True)
+ period_end_date = fields.Date("Period End Date", readonly=True)
unit_price = fields.Float(
- "Prezzo unitario", readonly=True,
+ "Unit Price", readonly=True,
digits=dp.get_precision('Product Price')
)
discount_rise_price_ids = fields.One2many(
'discount.rise.price', 'e_invoice_line_id',
- 'Discount and Rise Price Details', readonly=True
+ 'Discount and Supplement Price Details', readonly=True
)
- total_price = fields.Float("Prezzo Totale", readonly=True)
- tax_amount = fields.Float("Aliquota IVA", readonly=True)
- wt_amount = fields.Char("Ritenuta", readonly=True)
- tax_kind = fields.Char("Natura", readonly=True)
- admin_ref = fields.Char("Riferimento mministrazione", readonly=True)
+ total_price = fields.Float("Total Price", readonly=True)
+ tax_amount = fields.Float("VAT Rate", readonly=True)
+ wt_amount = fields.Char("Tax Withholding", readonly=True)
+ tax_kind = fields.Char("Nature", readonly=True)
+ admin_ref = fields.Char("Administration Reference", readonly=True)
other_data_ids = fields.One2many(
"einvoice.line.other.data", "e_invoice_line_id",
- string="Altri dati gestionali", readonly=True)
+ string="Other Administrative Data", readonly=True)
class EInvoiceLineOtherData(models.Model):
@@ -113,9 +113,9 @@ class EInvoiceLineOtherData(models.Model):
_description = 'E-invoice line other data'
e_invoice_line_id = fields.Many2one(
- 'einvoice.line', 'Related E-Invoice line', readonly=True
+ 'einvoice.line', 'Related E-bill line', readonly=True
)
- name = fields.Char("Tipo Dato", readonly=True)
- text_ref = fields.Char("Riferimento Testo", readonly=True)
- num_ref = fields.Float("Riferimento Numero", readonly=True)
- date_ref = fields.Char("Riferimento Data", readonly=True)
+ name = fields.Char("Data Type", readonly=True)
+ text_ref = fields.Char("Text Reference", readonly=True)
+ num_ref = fields.Float("Number Reference", readonly=True)
+ date_ref = fields.Char("Date Reference", readonly=True)
diff --git a/l10n_it_fatturapa_in/models/attachment.py b/l10n_it_fatturapa_in/models/attachment.py
index 7fa353b1e54f..7ec80e16e351 100644
--- a/l10n_it_fatturapa_in/models/attachment.py
+++ b/l10n_it_fatturapa_in/models/attachment.py
@@ -21,9 +21,8 @@ class FatturaPAAttachmentIn(models.Model):
"Invoices number", compute="_compute_xml_data", store=True)
invoices_total = fields.Float(
"Invoices total", compute="_compute_xml_data", store=True,
- help="Se indicato dal fornitore, Importo totale del documento al "
- "netto dell'eventuale sconto e comprensivo di imposta a debito "
- "del cessionario / committente"
+ help="If specified by supplier, total amount of the document net of "
+ "any discount and including tax charged to the buyer/ordered"
)
registered = fields.Boolean(
"Registered", compute="_compute_registered", store=True)
diff --git a/l10n_it_fatturapa_in/models/company.py b/l10n_it_fatturapa_in/models/company.py
index 065ddf77aaa9..94daab625195 100644
--- a/l10n_it_fatturapa_in/models/company.py
+++ b/l10n_it_fatturapa_in/models/company.py
@@ -6,19 +6,17 @@ class ResCompany(models.Model):
_inherit = 'res.company'
dati_bollo_product_id = fields.Many2one(
- 'product.product', 'Product for Dati Bollo',
- help='Prodotto da utilizzare nelle fatture passive quando nell\'XML '
- 'viene valorizzato l\'elemento DatiBollo'
+ 'product.product', 'Stamp Data Product',
+ help="Product used to model DatiBollo XML element on bills."
)
cassa_previdenziale_product_id = fields.Many2one(
- 'product.product', 'Product for Dati Cassa Previdenziale',
- help='Prodotto da utilizzare nelle fatture passive quando nell\'XML '
- 'viene valorizzato l\'elemento DatiCassaPrevidenziale'
+ 'product.product', 'Welfare Fund Data Product',
+ help="Product used to model DatiCassaPrevidenziale XML element "
+ "on bills."
)
sconto_maggiorazione_product_id = fields.Many2one(
- 'product.product', 'Product for Sconto Maggiorazione',
- help='Prodotto da utilizzare nelle fatture passive quando nell\'XML '
- 'viene valorizzato l\'elemento ScontoMaggiorazione'
+ 'product.product', 'Discount Supplement Product',
+ help="Product used to model ScontoMaggiorazione XML element on bills."
)
@@ -27,23 +25,21 @@ class AccountConfigSettings(models.TransientModel):
dati_bollo_product_id = fields.Many2one(
related='company_id.dati_bollo_product_id',
- string="Product for Dati Bollo",
- help='Prodotto da utilizzare nelle fatture passive quando nell\'XML '
- 'viene valorizzato l\'elemento DatiBollo',
+ string="Stamp Data Product",
+ help='Product used to model DatiBollo XML element on bills',
readonly=False
)
cassa_previdenziale_product_id = fields.Many2one(
related='company_id.cassa_previdenziale_product_id',
- string="Product for Dati Cassa Previdenziale",
- help='Prodotto da utilizzare nelle fatture passive quando nell\'XML '
- 'viene valorizzato l\'elemento DatiCassaPrevidenziale',
+ string="Welfare Fund Data Product",
+ help='Product used to model DatiCassaPrevidenziale XML element '
+ 'on bills',
readonly=False
)
sconto_maggiorazione_product_id = fields.Many2one(
related='company_id.sconto_maggiorazione_product_id',
- string="Product for Sconto Maggiorazione",
- help='Prodotto da utilizzare nelle fatture passive quando nell\'XML '
- 'viene valorizzato l\'elemento ScontoMaggiorazione',
+ string="Discount Supplement Product",
+ help='Product used to model ScontoMaggiorazione XML element on bills',
readonly=False
)
diff --git a/l10n_it_fatturapa_in/models/partner.py b/l10n_it_fatturapa_in/models/partner.py
index f1e765e4da80..460d278b9e3a 100644
--- a/l10n_it_fatturapa_in/models/partner.py
+++ b/l10n_it_fatturapa_in/models/partner.py
@@ -7,22 +7,22 @@ class Partner(models.Model):
e_invoice_default_product_id = fields.Many2one(
comodel_name='product.product',
- string='Default product electronic invoice',
+ string='E-bill Default Product',
help="Used by electronic invoice XML import. "
"If filled, generated invoice lines will use this product, when "
"no other possible product is found."
)
e_invoice_detail_level = fields.Selection([
- ('0', 'Minimo'),
+ ('0', 'Minimum'),
# ('1', 'Aliquote'),
- ('2', 'Massimo'),
- ], string="Livello di dettaglio Fatture elettroniche passive",
- help="Livello minimo: La fattura passiva viene creata senza righe; "
- "sara' l'utente a doverle creare in base a quanto indicato dal "
- "fornitore nella fattura elettronica\n"
+ ('2', 'Maximum'),
+ ], string="E-bills Detail Level",
+ help="Minumum level: Bill is created with no lines; "
+ "User will have to create them, according to what specified in "
+ "the electronic bill.\n"
# "Livello Aliquote: viene creata una riga fattura per ogni "
# "aliquota presente nella fattura elettronica\n"
- "Livello Massimo: tutte le righe presenti nella fattura "
- "elettronica vengono create come righe della fattura passiva",
+ "Maximum level: every line contained in the electronic bill "
+ "will create a line in the bill.",
default='2', required=True
)
diff --git a/l10n_it_fatturapa_in/readme/CONFIGURE.rst b/l10n_it_fatturapa_in/readme/CONFIGURE.rst
index 6024e6c477ae..d2984b935836 100644
--- a/l10n_it_fatturapa_in/readme/CONFIGURE.rst
+++ b/l10n_it_fatturapa_in/readme/CONFIGURE.rst
@@ -1,14 +1,33 @@
-Also see the README file of l10n_it_fatturapa module.
+**Italiano**
-For every supplier, it is possible to set the 'details level of electronic invoices':
+Consultare anche il file README del modulo l10n_it_fatturapa.
- - Minimum level: Supplier invoice is created without lines; user will have to create them, according to what specified in electronic invoice
- - Maximum level: every line contained in electronic invoice will create a line in supplier invoice.
+Per ciascun fornitore è possibile impostare il "Livello dettaglio e-fatture":
-Moreover, it is possible, in supplier form, to set the 'default product for electronic invoices': this product will be used, during generation of supplier invoices, when no other possible product is found. Tax and account of invoice line will be set according to what configured in the product.
+ - Livello minimo: la fattura fornitore viene creata senza righe, che dovranno essere create dall'utente in base a quanto indicato nella fattura elettronica
+ - Livello massimo: le righe della fattura fornitore verranno generate a partire da tutte quelle presenti nella fattura elettronica
+
+Nella scheda fornitore è inoltre possibile impostare il "Prodotto predefinito per e-fattura": verrà usato, durante la generazione delle fatture fornitore, quando non sono disponibili altri prodotti adeguati. Il conto e l'imposta della riga fattura verranno impostati in base a quelli configurati nel prodotto.
+
+Tutti i codici prodotto usati dai fornitori possono essere impostati nella relativa scheda, in
+
+Magazzino → Prodotti
+
+Se il fornitore specifica un codice noto nell'XML, questo verrà usato dal sistema per recuperare il prodotto corretto da usare nella riga fattura, impostando il conto e l'imposta collegati.
+
+**English**
+
+See also the README file of l10n_it_fatturapa module.
+
+For every supplier, it is possible to set the 'E-bills Detail Level':
+
+ - Minimum level: Bill is created with no lines; User will have to create them, according to what specified in the electronic bill
+ - Maximum level: every line contained in electronic bill will create a line in bill
+
+Moreover, in supplier form you can set the 'E-bill Default Product': this product will be used, during generation of bills, when no other possible product is found. Tax and account of bill line will be set according to what configured in the product.
Every product code used by suppliers can be set, in product form, in
-Inventory --> Suppliers
+Inventory → Products
-If supplier specifies a known code in XML, the system will use it to retrieve the correct product to be used in invoice line, setting the related tax and account.
+If supplier specifies a known code in XML, the system will use it to retrieve the correct product to be used in bill line, setting the related tax and account.
diff --git a/l10n_it_fatturapa_in/readme/CONTRIBUTORS.rst b/l10n_it_fatturapa_in/readme/CONTRIBUTORS.rst
index b3af0988acfe..9b00be3d2b34 100644
--- a/l10n_it_fatturapa_in/readme/CONTRIBUTORS.rst
+++ b/l10n_it_fatturapa_in/readme/CONTRIBUTORS.rst
@@ -1,3 +1,4 @@
* Lorenzo Battistini
* Roberto Onnis
* Alessio Gerace
+* Sergio Zanchetta
diff --git a/l10n_it_fatturapa_in/readme/DESCRIPTION.rst b/l10n_it_fatturapa_in/readme/DESCRIPTION.rst
index f88850e18642..b92d1008aec3 100644
--- a/l10n_it_fatturapa_in/readme/DESCRIPTION.rst
+++ b/l10n_it_fatturapa_in/readme/DESCRIPTION.rst
@@ -1,7 +1,19 @@
-This module allows to import XML files of electronic invoices, version 1.2
+**Italiano**
+
+Questo modulo consente di importare i file XML delle fatture elettroniche, versione 1.2
http://www.fatturapa.gov.it/export/fatturazione/it/normativa/f-2.htm
-received through the exchange system (SDI)
+ricevute attraverso il Sistema di Interscambio (SDI)
http://www.fatturapa.gov.it/export/fatturazione/it/sdi.htm
+
+**English**
+
+This module allows to import XML files of electronic bills, version 1.2
+
+http://www.fatturapa.gov.it/export/fatturazione/en/normativa/f-2.htm
+
+received through the Exchange System (ES)
+
+http://www.fatturapa.gov.it/export/fatturazione/en/sdi.htm
diff --git a/l10n_it_fatturapa_in/readme/INSTALL.rst b/l10n_it_fatturapa_in/readme/INSTALL.rst
index 7da985ac1c84..43f548a1974c 100644
--- a/l10n_it_fatturapa_in/readme/INSTALL.rst
+++ b/l10n_it_fatturapa_in/readme/INSTALL.rst
@@ -1,3 +1,11 @@
-odoo server must run on linux and be able to run
+**Italiano**
+
+Il server Odoo deve essere avviato da un sistema Linux con installato
+
+``openssl``
+
+**English**
+
+Odoo server must run on linux and be able to run
``openssl``
diff --git a/l10n_it_fatturapa_in/readme/USAGE.rst b/l10n_it_fatturapa_in/readme/USAGE.rst
index 3340773af555..1320e0fb71c2 100644
--- a/l10n_it_fatturapa_in/readme/USAGE.rst
+++ b/l10n_it_fatturapa_in/readme/USAGE.rst
@@ -1,6 +1,17 @@
- * Go to Accounting --> Purchases --> Electronic Invoice
+**Italiano**
+
+ * Andare su Contabilità → Acquisti → Fattura elettronica
+ * Caricare un file XML
+ * Visualizzare il contenuto della fattura facendo clic su "Mostra anteprima"
+ * Eseguire la procedura guidata "Importa e-fattura" per creare una fattura in bozza oppure "Collega a fattura esistente" per collegare il file XML a una fattura già (automaticamente) creata
+
+Nell'elenco file delle fatture elettroniche in ingresso saranno presenti, in modo predefinito, quelli da registrare. Sono i file che devono ancora essere collegati a una o più fatture fornitore.
+
+**English**
+
+ * Go to Accounting → Purchases → Electronic Bill
* Upload XML file
- * View invoice content clicking on 'show preview'
- * Run 'import electronic invoice' wizard to create a draft invoice or run 'link to existing supplier invoice' to link the XML file to an already (automatically) created invoice
+ * View bill content clicking on 'Show preview'
+ * Run 'Import e-bill' wizard to create a draft bill or run 'Link to existing bill' to link the XML file to an already (automatically) created bill
-In the incoming electronic invoice files list, by default you will see files to be registered, that is files not yet linked to one or more supplier invoices
+In the incoming electronic bill files list you will see, by default, files to be registered. These are files not yet linked to one or more bills.
diff --git a/l10n_it_fatturapa_in/static/description/index.html b/l10n_it_fatturapa_in/static/description/index.html
index 364f67320ce0..5877d84cf911 100644
--- a/l10n_it_fatturapa_in/static/description/index.html
+++ b/l10n_it_fatturapa_in/static/description/index.html
@@ -4,7 +4,7 @@
-Italian Localization - Fattura Elettronica reception
+Italian Localization - Fattura Elettronica - Reception
-
-
Italian Localization - Fattura Elettronica - Reception
+
+
Italian Localization - Fattura Elettronica - Ricezione
account.invoice.line.fatturapa.inaccount.invoice.line
-
+
From 2f7068a238822c925e57168aed6eb099d8e0885a Mon Sep 17 00:00:00 2001
From: Roberto Fichera
Date: Thu, 7 Mar 2019 11:39:34 +0100
Subject: [PATCH 053/236] [12.0][l10n_it_fatturapa_in] Relax check on tax
natura to permit to import the e-invoice anyway and later change it where
necessary (#1062)
---
l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
index 4e6dfc59acc8..d126ebffd5b0 100644
--- a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
+++ b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
@@ -278,17 +278,12 @@ def _prepare_generic_line_data(self, line):
('type_tax_use', '=', 'purchase'),
('kind_id.code', '=', line.Natura),
('amount', '=', 0.0),
- ])
+ ], order='sequence', limit=1)
if not account_taxes:
self.log_inconsistency(
_('No tax with percentage '
'%s and nature %s found. Please configure this tax.')
% (line.AliquotaIVA, line.Natura))
- if len(account_taxes) > 1:
- self.log_inconsistency(
- _('Too many taxes with percentage '
- '%s and nature %s found.')
- % (line.AliquotaIVA, line.Natura))
else:
account_taxes = account_tax_model.search(
[
@@ -297,8 +292,7 @@ def _prepare_generic_line_data(self, line):
('price_include', '=', False),
# partially deductible VAT must be set by user
('children_tax_ids', '=', False),
- ]
- )
+ ], order='sequence')
if not account_taxes:
self.log_inconsistency(
_(
From 59f1a223525c97e98c08c6060085f0ea56ef987d Mon Sep 17 00:00:00 2001
From: Sergio Zanchetta
Date: Thu, 7 Mar 2019 15:59:12 +0000
Subject: [PATCH 054/236] Translated using Weblate (Italian)
Currently translated at 100.0% (181 of 181 strings)
Translation: l10n-italy-12.0/l10n-italy-12.0-l10n_it_fatturapa_in
Translate-URL: https://translation.odoo-community.org/projects/l10n-italy-12-0/l10n-italy-12-0-l10n_it_fatturapa_in/it/
---
l10n_it_fatturapa_in/i18n/it.po | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/l10n_it_fatturapa_in/i18n/it.po b/l10n_it_fatturapa_in/i18n/it.po
index a8a78a898ea4..8ed30413c455 100644
--- a/l10n_it_fatturapa_in/i18n/it.po
+++ b/l10n_it_fatturapa_in/i18n/it.po
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-27 08:07+0000\n"
-"PO-Revision-Date: 2019-02-12 17:18+0000\n"
+"PO-Revision-Date: 2019-03-07 16:53+0000\n"
"Last-Translator: Sergio Zanchetta \n"
"Language-Team: \n"
"Language: it\n"
@@ -629,7 +629,7 @@ msgstr "Il campo nome contiene \"%s\", il sistema contiene \"%s\""
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:644
#, python-format
msgid "Name of Bank with BIC '%s' is not set. Can't create bank"
-msgstr "Impossibile creare la banca con BIC \"%s\", il nome non è impostato."
+msgstr "Impossibile creare la banca con BIC \"%s\", il nome non è impostato."
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line__tax_kind
From b1c9a2d68ffe0c0a2f882c7beca04505833d8d3a Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Sun, 10 Mar 2019 11:30:34 +0000
Subject: [PATCH 055/236] [UPD] Update l10n_it_fatturapa_in.pot
---
.../i18n/l10n_it_fatturapa_in.pot | 46 ++++++++-----------
1 file changed, 20 insertions(+), 26 deletions(-)
diff --git a/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot b/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
index c5828df66b21..60487fdc81fd 100644
--- a/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
+++ b/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
@@ -72,7 +72,7 @@ msgid "Attachments"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:668
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:662
#, python-format
msgid "BIC is required and not exist in Xml\n"
"Curr bank data is: \n"
@@ -88,7 +88,7 @@ msgid "Bill"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1141
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1135
#, python-format
msgid "Bill total %s is different from document total amount %s"
msgstr ""
@@ -146,7 +146,7 @@ msgid "Company Name field contains '%s'. Your System contains '%s'"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1156
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1150
#, python-format
msgid "Computed amount untaxed %s is different from summary data %s"
msgstr ""
@@ -213,7 +213,7 @@ msgid "Default products used in electronic supplier invoices"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:723
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:717
#, python-format
msgid "Define a purchase journal for this company: '%s' (id: %d)."
msgstr ""
@@ -256,7 +256,7 @@ msgid "Display Name"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:829
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:823
#, python-format
msgid "Document type %s not handled."
msgstr ""
@@ -337,7 +337,7 @@ msgid "File Size"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1179
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1173
#, python-format
msgid "File is linked to bills yet."
msgstr ""
@@ -368,7 +368,7 @@ msgid "General Data"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:556
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:550
#, python-format
msgid "Global bill discount from document general data"
msgstr ""
@@ -505,7 +505,7 @@ msgid "Last Updated on"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:313
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:307
#, python-format
msgid "Line '%s': Too many taxes with percentage equals to '%s'.\n"
"Fix it if required"
@@ -595,7 +595,7 @@ msgid "Name field contains '%s'. Your System contains '%s'"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:644
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:638
#, python-format
msgid "Name of Bank with BIC '%s' is not set. Can't create bank"
msgstr ""
@@ -606,7 +606,7 @@ msgid "Nature"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:806
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:800
#, python-format
msgid "No currency found with code %s."
msgstr ""
@@ -618,7 +618,7 @@ msgid "No tax with percentage %s and nature %s found. Please configure this tax.
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:890
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:884
#, python-format
msgid "No withholding tax found with document payment reason %s and rate %s."
msgstr ""
@@ -660,19 +660,19 @@ msgid "Other Administrative Data"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:586
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:580
#, python-format
msgid "Payment method %s is not defined in your system."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1094
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1088
#, python-format
msgid "Payment method code %s is incorrect."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1089
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1083
#, python-format
msgid "Payment method code not found in document."
msgstr ""
@@ -835,7 +835,7 @@ msgid "Tax Withholding"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:477
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:471
#, python-format
msgid "Tax kind %s not found"
msgstr ""
@@ -851,7 +851,7 @@ msgid "Text Reference"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:878
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:872
#, python-format
msgid "The bill contains withholding tax with payment reason %s, but such a tax is not found in your system. Please set it."
msgstr ""
@@ -881,12 +881,6 @@ msgstr ""
msgid "To Register"
msgstr ""
-#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:289
-#, python-format
-msgid "Too many taxes with percentage %s and nature %s found."
-msgstr ""
-
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line__total_price
msgid "Total Price"
@@ -965,7 +959,7 @@ msgid "Welfare Fund"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:504
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:498
#, python-format
msgid "Welfare Fund %s not present in your system."
msgstr ""
@@ -976,19 +970,19 @@ msgid "Welfare Fund Details"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:486
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:480
#, python-format
msgid "Welfare Fund is not defined."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:375
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:369
#, python-format
msgid "XML contains tax %s. Product %s has tax %s. Using the XML one"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:304
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:298
#, python-format
msgid "XML contains tax with percentage '%s' but it does not exist in your system"
msgstr ""
From f24572cbbdfa80680ec7b774975ca563c5b96f18 Mon Sep 17 00:00:00 2001
From: OCA Transbot
Date: Sat, 16 Mar 2019 11:18:43 +0000
Subject: [PATCH 056/236] Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
Translation: l10n-italy-12.0/l10n-italy-12.0-l10n_it_fatturapa_in
Translate-URL: https://translation.odoo-community.org/projects/l10n-italy-12-0/l10n-italy-12-0-l10n_it_fatturapa_in/
---
l10n_it_fatturapa_in/i18n/it.po | 49 ++++++++++++++++-----------------
1 file changed, 23 insertions(+), 26 deletions(-)
diff --git a/l10n_it_fatturapa_in/i18n/it.po b/l10n_it_fatturapa_in/i18n/it.po
index 8ed30413c455..668267040526 100644
--- a/l10n_it_fatturapa_in/i18n/it.po
+++ b/l10n_it_fatturapa_in/i18n/it.po
@@ -84,7 +84,7 @@ msgid "Attachments"
msgstr "Allegati"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:668
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:662
#, python-format
msgid ""
"BIC is required and not exist in Xml\n"
@@ -104,7 +104,7 @@ msgid "Bill"
msgstr "Fattura"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1140
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1135
#, python-format
msgid "Bill total %s is different from document total amount %s"
msgstr "Il totale fattura %s è diverso dall'importo totale del documento %s"
@@ -162,7 +162,7 @@ msgid "Company Name field contains '%s'. Your System contains '%s'"
msgstr "Il campo nome azienda contiene \"%s\", il sistema contiene \"%s\""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1155
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1150
#, python-format
msgid "Computed amount untaxed %s is different from summary data %s"
msgstr "L'imponibile calcolato %s è diverso da quello dei dati di riepilogo %s"
@@ -229,7 +229,7 @@ msgid "Default products used in electronic supplier invoices"
msgstr "Prodotti predefiniti usati nelle fatture elettroniche fornitore"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:723
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:717
#, python-format
msgid "Define a purchase journal for this company: '%s' (id: %d)."
msgstr "Definire un registro di acquisto per questa azienda: \"%s\" (ID: %d)."
@@ -272,7 +272,7 @@ msgid "Display Name"
msgstr "Nome visualizzato"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:829
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:823
#, python-format
msgid "Document type %s not handled."
msgstr "Tipo documento %s non gestito."
@@ -353,7 +353,7 @@ msgid "File Size"
msgstr "Dimensione file"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1178
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1173
#, python-format
msgid "File is linked to bills yet."
msgstr "Il file è già collegato a delle fatture."
@@ -384,7 +384,7 @@ msgid "General Data"
msgstr "Dati generali"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:556
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:550
#, python-format
msgid "Global bill discount from document general data"
msgstr "Sconto globale fattura dai dati generali del documento"
@@ -526,7 +526,7 @@ msgid "Last Updated on"
msgstr "Ultimo aggiornamento il"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:313
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:307
#, python-format
msgid ""
"Line '%s': Too many taxes with percentage equals to '%s'.\n"
@@ -626,7 +626,7 @@ msgid "Name field contains '%s'. Your System contains '%s'"
msgstr "Il campo nome contiene \"%s\", il sistema contiene \"%s\""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:644
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:638
#, python-format
msgid "Name of Bank with BIC '%s' is not set. Can't create bank"
msgstr "Impossibile creare la banca con BIC \"%s\", il nome non è impostato."
@@ -637,7 +637,7 @@ msgid "Nature"
msgstr "Natura"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:806
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:800
#, python-format
msgid "No currency found with code %s."
msgstr "Valuta con codice %s non trovata."
@@ -651,7 +651,7 @@ msgstr ""
"Imposta con aliquota %s e natura %s non trovata, configurare questa imposta."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:890
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:884
#, python-format
msgid "No withholding tax found with document payment reason %s and rate %s."
msgstr "Ritenuta d'acconto con causale documento %s e aliquota %s non trovata."
@@ -693,19 +693,19 @@ msgid "Other Administrative Data"
msgstr "Altri dati gestionali"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:586
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:580
#, python-format
msgid "Payment method %s is not defined in your system."
msgstr "Modalità di pagamento %s non definita nel sistema."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1093
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1088
#, python-format
msgid "Payment method code %s is incorrect."
msgstr "Codice modalità di pagamento %s non corretto."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1088
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1083
#, python-format
msgid "Payment method code not found in document."
msgstr "Codice modalità di pagamento non trovato nel documento."
@@ -872,7 +872,7 @@ msgid "Tax Withholding"
msgstr "Ritenuta d'acconto"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:477
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:471
#, python-format
msgid "Tax kind %s not found"
msgstr "Tipo imposta %s non trovato"
@@ -891,7 +891,7 @@ msgid "Text Reference"
msgstr "Riferimento testo"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:878
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:872
#, python-format
msgid ""
"The bill contains withholding tax with payment reason %s, but such a tax is "
@@ -925,12 +925,6 @@ msgstr "Anteprima"
msgid "To Register"
msgstr "Da registrare"
-#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:289
-#, python-format
-msgid "Too many taxes with percentage %s and nature %s found."
-msgstr "Rilevate troppe imposte con aliquota %s e natura %s."
-
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line__total_price
msgid "Total Price"
@@ -1018,7 +1012,7 @@ msgid "Welfare Fund"
msgstr "Cassa previdenziale"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:504
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:498
#, python-format
msgid "Welfare Fund %s not present in your system."
msgstr "Cassa previdenziale %s non presente nel sistema."
@@ -1029,13 +1023,13 @@ msgid "Welfare Fund Details"
msgstr "Dettagli cassa previdenziale"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:486
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:480
#, python-format
msgid "Welfare Fund is not defined."
msgstr "Cassa previdenziale non definita."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:375
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:369
#, python-format
msgid "XML contains tax %s. Product %s has tax %s. Using the XML one"
msgstr ""
@@ -1043,7 +1037,7 @@ msgstr ""
"quella dell'XML."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:304
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:298
#, python-format
msgid ""
"XML contains tax with percentage '%s' but it does not exist in your system"
@@ -1076,6 +1070,9 @@ msgstr "È possibile selezionare solo un file XML da collegare."
msgid "on"
msgstr "il"
+#~ msgid "Too many taxes with percentage %s and nature %s found."
+#~ msgstr "Rilevate troppe imposte con aliquota %s e natura %s."
+
#~ msgid "Product used to model DatiBollo XML element on bills"
#~ msgstr ""
#~ "Prodotto usato come modello per l'elemento XML DatiBollo delle fatture."
From 583c456a164ca2c031984ab894495ae757abeb68 Mon Sep 17 00:00:00 2001
From: Roberto Fichera
Date: Wed, 20 Mar 2019 17:45:04 +0100
Subject: [PATCH 057/236] [12.0][FIX][l10n_it_fatturapa_in] Set the supplier
flag only where necessary when importing purchase invoice (#1122)
---
l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
index d126ebffd5b0..c18483dcc3a8 100644
--- a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
+++ b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
@@ -104,7 +104,7 @@ def check_partner_base_data(self, partner_id, DatiAnagrafici):
% (DatiAnagrafici.Anagrafica.Cognome, partner.lastname)
)
- def getPartnerBase(self, DatiAnagrafici):
+ def getPartnerBase(self, DatiAnagrafici, supplier=True):
if not DatiAnagrafici:
return False
partner_model = self.env['res.partner']
@@ -159,7 +159,7 @@ def getPartnerBase(self, DatiAnagrafici):
'vat': vat,
'fiscalcode': cf,
'customer': False,
- 'supplier': True,
+ 'supplier': supplier,
'is_company': (
DatiAnagrafici.Anagrafica.Denominazione and True or False),
'eori_code': DatiAnagrafici.Anagrafica.CodEORI or '',
@@ -1201,7 +1201,7 @@ def importFatturaPA(self):
self.set_StabileOrganizzazione(cedentePrestatore, invoice)
if TaxRappresentative:
tax_partner_id = self.getPartnerBase(
- TaxRappresentative.DatiAnagrafici)
+ TaxRappresentative.DatiAnagrafici, supplier=False)
invoice.write(
{
'tax_representative_id': tax_partner_id
@@ -1209,7 +1209,7 @@ def importFatturaPA(self):
)
if Intermediary:
Intermediary_id = self.getPartnerBase(
- Intermediary.DatiAnagrafici)
+ Intermediary.DatiAnagrafici, supplier=False)
invoice.write(
{
'intermediary': Intermediary_id
From 320f1b05ccacbf30e862aceebbb6b357e037a073 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Wed, 3 Apr 2019 02:55:21 +0000
Subject: [PATCH 058/236] [ADD] icon.png
---
l10n_it_fatturapa_in/static/description/icon.png | Bin 0 -> 9455 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 l10n_it_fatturapa_in/static/description/icon.png
diff --git a/l10n_it_fatturapa_in/static/description/icon.png b/l10n_it_fatturapa_in/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~!
zVpnB`o+K7|Al`Q_U;eD$B
zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA
z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__
zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_
zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I
z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U
z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)(
z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH
zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW
z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx
zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h
zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9
zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz#
z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA
zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K=
z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS
zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C
zuVl&0duN<;uOsB3%T9Fp8t{ED108)`y_~Hnd9AUX7h-H?jVuU|}My+C=TjH(jKz
zqMVr0re3S$H@t{zI95qa)+Crz*5Zj}Ao%4Z><+W(nOZd?gDnfNBC3>M8WE61$So|P
zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO
z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1
zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_
zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8
zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ>
zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN
z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h
zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d
zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB
zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz
z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I
zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X
zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD
z#z-)AXwSRY?OPefw^iI+
z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd
z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs
z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I
z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$
z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV
z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s
zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6
zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u
zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q
zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH
zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c
zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT
zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+
z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ
zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy
zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC)
zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a
zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x!
zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X
zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8
z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A
z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H
zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n=
z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK
z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z
zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h
z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD
z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW
zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@
zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz
z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y<
zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X
zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6
zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6%
z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(|
z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ
z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H
zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6
z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d}
z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A
zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB
z
z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp
zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zls4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6#
z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f#
zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC
zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv!
zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG
z-wfS
zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9
z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE#
z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz
zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t
z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN
zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q
ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k
zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG
z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff
z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1
zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO
zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$
zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV(
z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb
zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4
z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{
zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx}
z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov
zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22
zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq
zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t<
z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k
z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp
z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{}
zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
From 9729c1fa9e90fb0e9f21045ea7b44609116850a7 Mon Sep 17 00:00:00 2001
From: Roberto Fichera
Date: Sat, 9 Feb 2019 10:02:36 +0100
Subject: [PATCH 059/236] [12.0][IMP][l10n_it_fatturapa_in] Format Italian VAT
ID to always have 11 chars
---
l10n_it_fatturapa_in/__manifest__.py | 2 +-
.../tests/data/IT05979361218_011.xml | 131 ++++++++++++++++++
.../tests/test_import_fatturapa_xml.py | 6 +
.../wizard/wizard_import_fatturapa.py | 16 ++-
4 files changed, 150 insertions(+), 5 deletions(-)
create mode 100644 l10n_it_fatturapa_in/tests/data/IT05979361218_011.xml
diff --git a/l10n_it_fatturapa_in/__manifest__.py b/l10n_it_fatturapa_in/__manifest__.py
index bf7c2e811fbc..c63963e5275a 100644
--- a/l10n_it_fatturapa_in/__manifest__.py
+++ b/l10n_it_fatturapa_in/__manifest__.py
@@ -6,7 +6,7 @@
{
'name': 'Italian Localization - Fattura elettronica - Ricezione',
- 'version': '12.0.1.1.5',
+ 'version': '12.0.1.1.6',
"development_status": "Beta",
'category': 'Localization/Italy',
'summary': 'Ricezione fatture elettroniche',
diff --git a/l10n_it_fatturapa_in/tests/data/IT05979361218_011.xml b/l10n_it_fatturapa_in/tests/data/IT05979361218_011.xml
new file mode 100644
index 000000000000..6742466da6e1
--- /dev/null
+++ b/l10n_it_fatturapa_in/tests/data/IT05979361218_011.xml
@@ -0,0 +1,131 @@
+
+
+
+
+
+ IT
+ 05979361218
+
+ 001
+ FPA12
+ UFPQ1O
+
+
+
+
+ IT
+ 05979361218
+
+
+ SOCIETA' ALPHA BETA SRL
+
+ Albo di test
+ TO
+ TO1258B
+ 2010-01-16
+ RF02
+
+
+ VIALE ROMA 543B
+ 07100
+ SASSARI
+ SS
+ IT
+
+
+
+
+ 80213330584
+
+ AMMINISTRAZIONE BETA
+
+
+
+ VIA TORINO 38-B
+ 00145
+ ROMA
+ RM
+ IT
+
+
+
+
+
+ IT
+ 3339130126
+
+
+ Rappresentante fiscale
+ 1234567890123
+
+
+
+
+
+
+
+ TD01
+ EUR
+ 2015-02-16
+ FT/2015/0006
+
+ TC22
+ 0.00
+ 3.00
+ 3.00
+ 0.00
+ N4
+
+ Rif ordine MAPA: --- Nr. Identificativo Ordine 1234567
+
+
+ 0.00
+ 0.00
+
+
+
+
+ 1
+ Prodotto di test al giorno
+ 15.00
+ Giorno(i)
+ 3.60
+ 54.00
+ 0.00
+ N4
+
+ Vostro RIF
+ Riferimento
+ 3.00
+
+
+ Vostro RIF
+ Riferimento2
+
+
+
+ 0.00
+ N4
+ 57.00
+ 0.00
+ Operazioni senza addebito imposta regime contribuenti minimi art.27 c.1-2 DL.98/11
+
+
+
+ TP01
+
+ MP05
+ 2015-03-18
+ 27.00
+
+
+ MP05
+ 2015-04-17
+ 27.00
+
+
+
+
diff --git a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
index b973c23046b3..f8a3b14cba56 100644
--- a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
+++ b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
@@ -145,6 +145,12 @@ def test_01_xml_import(self):
self.assertEqual(invoice.fiscal_document_type_id.code, 'TD01')
self.assertTrue(invoice.art73)
+ def test_02_xml_import(self):
+ res = self.run_wizard('test02', 'IT05979361218_011.xml')
+ invoice_id = res.get('domain')[0][2][0]
+ invoice = self.invoice_model.browse(invoice_id)
+ self.assertEqual(invoice.intermediary.vat, 'IT03339130126')
+
# def test_02_xml_import(self):
# res = self.run_wizard('test2', 'IT03638121008_X11111.xml')
# invoice_id = res.get('domain')[0][2][0]
diff --git a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
index c18483dcc3a8..863f9b4602ff 100644
--- a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
+++ b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
@@ -111,10 +111,18 @@ def getPartnerBase(self, DatiAnagrafici, supplier=True):
cf = DatiAnagrafici.CodiceFiscale or False
vat = False
if DatiAnagrafici.IdFiscaleIVA:
- vat = "%s%s" % (
- DatiAnagrafici.IdFiscaleIVA.IdPaese,
- DatiAnagrafici.IdFiscaleIVA.IdCodice
- )
+ # Format Italian VAT ID to always have 11 char
+ # to avoid validation error when creating the given partner
+ if DatiAnagrafici.IdFiscaleIVA.IdPaese.upper() == 'IT':
+ vat = "%s%s" % (
+ DatiAnagrafici.IdFiscaleIVA.IdPaese,
+ DatiAnagrafici.IdFiscaleIVA.IdCodice.rjust(11, '0')
+ )
+ else:
+ vat = "%s%s" % (
+ DatiAnagrafici.IdFiscaleIVA.IdPaese,
+ DatiAnagrafici.IdFiscaleIVA.IdCodice
+ )
partners = partner_model
if vat:
partners = partner_model.search([
From 302ed41533a17448690d06193ac12c3e2ece9cde Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Fri, 5 Apr 2019 16:51:34 +0000
Subject: [PATCH 060/236] [UPD] Update l10n_it_fatturapa_in.pot
---
.../i18n/l10n_it_fatturapa_in.pot | 54 +++++++++----------
1 file changed, 27 insertions(+), 27 deletions(-)
diff --git a/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot b/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
index 60487fdc81fd..baebc4db4e30 100644
--- a/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
+++ b/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
@@ -72,7 +72,7 @@ msgid "Attachments"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:662
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:670
#, python-format
msgid "BIC is required and not exist in Xml\n"
"Curr bank data is: \n"
@@ -88,7 +88,7 @@ msgid "Bill"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1135
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1143
#, python-format
msgid "Bill total %s is different from document total amount %s"
msgstr ""
@@ -146,7 +146,7 @@ msgid "Company Name field contains '%s'. Your System contains '%s'"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1150
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1158
#, python-format
msgid "Computed amount untaxed %s is different from summary data %s"
msgstr ""
@@ -162,7 +162,7 @@ msgid "Contact"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:156
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:164
#, python-format
msgid "Country Code %s not found in system."
msgstr ""
@@ -213,7 +213,7 @@ msgid "Default products used in electronic supplier invoices"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:717
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:725
#, python-format
msgid "Define a purchase journal for this company: '%s' (id: %d)."
msgstr ""
@@ -256,7 +256,7 @@ msgid "Display Name"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:823
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:831
#, python-format
msgid "Document type %s not handled."
msgstr ""
@@ -337,7 +337,7 @@ msgid "File Size"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1173
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1181
#, python-format
msgid "File is linked to bills yet."
msgstr ""
@@ -368,7 +368,7 @@ msgid "General Data"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:550
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:558
#, python-format
msgid "Global bill discount from document general data"
msgstr ""
@@ -505,7 +505,7 @@ msgid "Last Updated on"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:307
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:315
#, python-format
msgid "Line '%s': Too many taxes with percentage equals to '%s'.\n"
"Fix it if required"
@@ -595,7 +595,7 @@ msgid "Name field contains '%s'. Your System contains '%s'"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:638
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:646
#, python-format
msgid "Name of Bank with BIC '%s' is not set. Can't create bank"
msgstr ""
@@ -606,19 +606,19 @@ msgid "Nature"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:800
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:808
#, python-format
msgid "No currency found with code %s."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:284
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:292
#, python-format
msgid "No tax with percentage %s and nature %s found. Please configure this tax."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:884
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:892
#, python-format
msgid "No withholding tax found with document payment reason %s and rate %s."
msgstr ""
@@ -660,19 +660,19 @@ msgid "Other Administrative Data"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:580
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:588
#, python-format
msgid "Payment method %s is not defined in your system."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1088
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1096
#, python-format
msgid "Payment method code %s is incorrect."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1083
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1091
#, python-format
msgid "Payment method code not found in document."
msgstr ""
@@ -718,7 +718,7 @@ msgid "Progress data"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:204
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:212
#, python-format
msgid "Province ( %s ) not present in your system"
msgstr ""
@@ -729,13 +729,13 @@ msgid "Quantity"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:234
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:242
#, python-format
msgid "REA Office Province Code ( %s ) not present in your system"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:193
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:201
#, python-format
msgid "Register Province ( %s ) not present in your system"
msgstr ""
@@ -824,7 +824,7 @@ msgid "Surname field contains '%s'. Your System contains '%s'"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:222
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:230
#, python-format
msgid "Tax Regime %s not present in your system."
msgstr ""
@@ -835,7 +835,7 @@ msgid "Tax Withholding"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:471
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:479
#, python-format
msgid "Tax kind %s not found"
msgstr ""
@@ -851,7 +851,7 @@ msgid "Text Reference"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:872
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:880
#, python-format
msgid "The bill contains withholding tax with payment reason %s, but such a tax is not found in your system. Please set it."
msgstr ""
@@ -887,7 +887,7 @@ msgid "Total Price"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:138
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:146
#, python-format
msgid "Two distinct partners with VAT number %s or Fiscal Code %s already present in db."
msgstr ""
@@ -959,7 +959,7 @@ msgid "Welfare Fund"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:498
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:506
#, python-format
msgid "Welfare Fund %s not present in your system."
msgstr ""
@@ -970,19 +970,19 @@ msgid "Welfare Fund Details"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:480
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:488
#, python-format
msgid "Welfare Fund is not defined."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:369
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:377
#, python-format
msgid "XML contains tax %s. Product %s has tax %s. Using the XML one"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:298
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:306
#, python-format
msgid "XML contains tax with percentage '%s' but it does not exist in your system"
msgstr ""
From c9b9daf8b0ca803ed98960d7edcb96acec315f37 Mon Sep 17 00:00:00 2001
From: sherpya
Date: Mon, 28 Jan 2019 19:13:11 +0100
Subject: [PATCH 061/236] l10n_it_fattura: migration to pyxb 1.2.6
added xsd patch and README.md to generate new bindings
includes workaround for pyxb bug in mindate check
pyxb is unable to check order of dates if only one has timezone
checking if the date > 1970-01-01
we remove tzinfo from parsed date only types as a workaround
---
l10n_it_fatturapa_in/tests/data/IT01234567890_FPR03.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/l10n_it_fatturapa_in/tests/data/IT01234567890_FPR03.xml b/l10n_it_fatturapa_in/tests/data/IT01234567890_FPR03.xml
index 752e850b6b10..7aaa1df7d8ec 100644
--- a/l10n_it_fatturapa_in/tests/data/IT01234567890_FPR03.xml
+++ b/l10n_it_fatturapa_in/tests/data/IT01234567890_FPR03.xml
@@ -51,7 +51,7 @@
TD01EUR
- 2014-12-18
+ 2014-12-18+01:00
123LA FATTURA FA RIFERIMENTO AD UNA OPERAZIONE AAAA BBBBBBBBBBBBBBBBBB CCC DDDDDDDDDDDDDDD E FFFFFFFFFFFFFFFFFFFF GGGGGGGGGG HHHHHHH II LLLLLLLLLLLLLLLLL MMM NNNNN OO PPPPPPPPPPP QQQQ RRRR SSSSSSSSSSSSSSSEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB
From 2f35aa4e4789b75d9420f83cf63641a44cccfea0 Mon Sep 17 00:00:00 2001
From: Roberto Fichera
Date: Fri, 22 Mar 2019 16:17:02 +0100
Subject: [PATCH 062/236] [12.0][IMP][l10n_it_fatturapa_in] Add to a supplier
invoice the validation of the amount when coming from a e-invoice source
---
l10n_it_fatturapa_in/models/account.py | 85 ++++++++++++++++++-
l10n_it_fatturapa_in/models/attachment.py | 9 ++
.../tests/test_import_fatturapa_xml.py | 7 ++
l10n_it_fatturapa_in/views/account_view.xml | 20 +++++
.../wizard/link_to_existing_invoice.py | 1 +
.../wizard/wizard_import_fatturapa.py | 10 +--
6 files changed, 124 insertions(+), 8 deletions(-)
diff --git a/l10n_it_fatturapa_in/models/account.py b/l10n_it_fatturapa_in/models/account.py
index 796f1b5e296a..84a5d9f4bb89 100644
--- a/l10n_it_fatturapa_in/models/account.py
+++ b/l10n_it_fatturapa_in/models/account.py
@@ -1,5 +1,7 @@
-from odoo import fields, models, api
+from odoo import fields, models, api, _
+from odoo.exceptions import ValidationError
+from odoo.tools import float_compare
import odoo.addons.decimal_precision as dp
@@ -14,6 +16,57 @@ class AccountInvoice(models.Model):
"einvoice.line", "invoice_id", string="Lines Detail",
readonly=True, copy=False)
+ e_invoice_amount_untaxed = fields.Monetary(
+ string='E-Invoice Untaxed Amount', readonly=True)
+ e_invoice_amount_tax = fields.Monetary(string='E-Invoice Tax Amount',
+ readonly=True)
+ e_invoice_amount_total = fields.Monetary(string='E-Invoice Total Amount',
+ readonly=True)
+ e_invoice_validation_error = fields.Boolean(
+ compute='_compute_e_invoice_validation_error')
+
+ e_invoice_force_validation = fields.Boolean(
+ string='Force E-Invoice Validation')
+
+ @api.multi
+ def invoice_validate(self):
+ for invoice in self:
+ if (invoice.e_invoice_validation_error and
+ not invoice.e_invoice_force_validation):
+ raise ValidationError(
+ _("The invoice '%s' doesn't match the related e-invoice") %
+ invoice.display_name)
+ return super(AccountInvoice, self).invoice_validate()
+
+ @api.depends('amount_untaxed', 'amount_tax', 'amount_total', 'state')
+ def _compute_e_invoice_validation_error(self):
+ for invoice in self:
+ if (invoice.type in ['in_invoice', 'in_refund'] and
+ invoice.state in ['draft', 'open', 'paid'] and
+ invoice.fatturapa_attachment_in_id):
+ if (invoice.e_invoice_amount_untaxed and
+ float_compare(invoice.amount_untaxed,
+ invoice.e_invoice_amount_untaxed,
+ precision_rounding=invoice.currency_id
+ .rounding) != 0):
+ invoice.e_invoice_validation_error = True
+ elif (invoice.e_invoice_amount_tax and
+ float_compare(invoice.amount_tax,
+ invoice.e_invoice_amount_tax,
+ precision_rounding=invoice.currency_id
+ .rounding) != 0):
+ invoice.e_invoice_validation_error = True
+ elif (invoice.e_invoice_amount_total and
+ float_compare(invoice.amount_total,
+ invoice.e_invoice_amount_total,
+ precision_rounding=invoice.currency_id
+ .rounding) != 0):
+ invoice.e_invoice_validation_error = True
+ else:
+ invoice.e_invoice_validation_error = False
+ else:
+ invoice.e_invoice_validation_error = False
+
@api.multi
def name_get(self):
result = super(AccountInvoice, self).name_get()
@@ -39,6 +92,36 @@ def remove_attachment_link(self):
self.fatturapa_attachment_in_id = False
return {'type': 'ir.actions.client', 'tag': 'reload'}
+ @api.model
+ def compute_xml_amount_untaxed(self, DatiRiepilogo):
+ amount_untaxed = 0.0
+ for Riepilogo in DatiRiepilogo:
+ amount_untaxed += float(Riepilogo.ImponibileImporto)
+ return amount_untaxed
+
+ @api.model
+ def compute_xml_amount_tax(self, DatiRiepilogo):
+ amount_tax = 0.0
+ for Riepilogo in DatiRiepilogo:
+ amount_tax += float(Riepilogo.Imposta)
+ return amount_tax
+
+ def set_einvoice_amount(self, fattura):
+ self.ensure_one()
+ amount_untaxed = self.compute_xml_amount_untaxed(
+ fattura.DatiBeniServizi.DatiRiepilogo)
+ amount_tax = self.compute_xml_amount_tax(
+ fattura.DatiBeniServizi.DatiRiepilogo)
+ amount_total = float(
+ fattura.DatiGenerali.DatiGeneraliDocumento.
+ ImportoTotaleDocumento or 0.0)
+
+ self.update({
+ 'e_invoice_amount_untaxed': amount_untaxed,
+ 'e_invoice_amount_tax': amount_tax,
+ 'e_invoice_amount_total': amount_total,
+ })
+
class fatturapa_article_code(models.Model):
# _position = ['2.2.1.3']
diff --git a/l10n_it_fatturapa_in/models/attachment.py b/l10n_it_fatturapa_in/models/attachment.py
index 5daceac43ac7..dc5eca0d0650 100644
--- a/l10n_it_fatturapa_in/models/attachment.py
+++ b/l10n_it_fatturapa_in/models/attachment.py
@@ -28,6 +28,15 @@ class FatturaPAAttachmentIn(models.Model):
registered = fields.Boolean(
"Registered", compute="_compute_registered", store=True)
+ e_invoice_validation_error = fields.Boolean(
+ compute='_compute_e_invoice_validation_error')
+
+ @api.depends('in_invoice_ids.e_invoice_validation_error')
+ def _compute_e_invoice_validation_error(self):
+ for rec in self:
+ rec.e_invoice_validation_error = \
+ any(rec.mapped('in_invoice_ids.e_invoice_validation_error'))
+
@api.onchange('datas_fname')
def onchagne_datas_fname(self):
self.name = self.datas_fname
diff --git a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
index f8a3b14cba56..2866c94d4d2f 100644
--- a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
+++ b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
@@ -236,6 +236,13 @@ def test_07_xml_import(self):
self.assertAlmostEqual(invoice.amount_untaxed, 1173.60)
self.assertEqual(invoice.amount_tax, 258.19)
self.assertEqual(invoice.amount_total, 1431.79)
+ self.assertAlmostEqual(
+ invoice.e_invoice_amount_untaxed, invoice.amount_untaxed,
+ places=invoice.currency_id.decimal_places)
+ self.assertAlmostEqual(
+ invoice.e_invoice_amount_tax, invoice.amount_tax,
+ places=invoice.currency_id.decimal_places)
+ self.assertEqual(invoice.e_invoice_validation_error, False)
self.assertEqual(invoice.invoice_line_ids[0].admin_ref, 'D122353')
def test_08_xml_import(self):
diff --git a/l10n_it_fatturapa_in/views/account_view.xml b/l10n_it_fatturapa_in/views/account_view.xml
index 8ba58f01bc2a..c392ceb8383c 100644
--- a/l10n_it_fatturapa_in/views/account_view.xml
+++ b/l10n_it_fatturapa_in/views/account_view.xml
@@ -6,6 +6,10 @@
fatturapa.attachment.in
+
+ One or more invoice doesn't match the amount (tax or untaxed or total) of the original e-invoice. Please check
+
+
@@ -109,6 +113,12 @@
account.invoice
+
+
+ The invoice doesn't match one of the amount untaxed, tax amount or total amount of the original e-invoice. Please check
+
+
+
@@ -126,9 +136,19 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.py b/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.py
index a1a7b6c1158d..277121a6615f 100644
--- a/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.py
+++ b/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.py
@@ -29,6 +29,7 @@ def link(self):
fatturapa_attachment_id)
fatt = self.get_invoice_obj(fatturapa_attachment)
for FatturaBody in fatt.FatturaElettronicaBody:
+ self.invoice_id.set_einvoice_amount(FatturaBody)
# 2.5
AttachmentsData = FatturaBody.Allegati
if AttachmentsData and self.invoice_id:
diff --git a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
index 863f9b4602ff..d29b616ee49c 100644
--- a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
+++ b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
@@ -1117,12 +1117,6 @@ def invoiceCreate(
invoice.compute_taxes()
return invoice_id
- def compute_xml_amount_untaxed(self, DatiRiepilogo):
- amount_untaxed = 0.0
- for Riepilogo in DatiRiepilogo:
- amount_untaxed += float(Riepilogo.ImponibileImporto)
- return amount_untaxed
-
def check_invoice_amount(self, invoice, FatturaElettronicaBody):
if (
FatturaElettronicaBody.DatiGenerali.DatiGeneraliDocumento.
@@ -1149,7 +1143,7 @@ def check_invoice_amount(self, invoice, FatturaElettronicaBody):
# DatiGeneraliDocumento.ScontoMaggiorazione is not present,
# because otherwise DatiRiepilogo and odoo invoice total would
# differ
- amount_untaxed = self.compute_xml_amount_untaxed(
+ amount_untaxed = invoice.compute_xml_amount_untaxed(
FatturaElettronicaBody.DatiBeniServizi.DatiRiepilogo)
if not float_is_zero(
invoice.amount_untaxed-amount_untaxed, precision_digits=2
@@ -1226,6 +1220,8 @@ def importFatturaPA(self):
new_invoices.append(invoice_id)
self.check_invoice_amount(invoice, fattura)
+ invoice.set_einvoice_amount(fattura)
+
if self.env.context.get('inconsistencies'):
invoice_inconsistencies = (
self.env.context['inconsistencies'])
From a98bc9a6e1aee62f18deba2343d676f5e175a9a3 Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Thu, 16 May 2019 16:59:24 +0000
Subject: [PATCH 063/236] [UPD] Update l10n_it_fatturapa_in.pot
---
.../i18n/l10n_it_fatturapa_in.pot | 55 +++++++++++++++++--
1 file changed, 51 insertions(+), 4 deletions(-)
diff --git a/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot b/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
index baebc4db4e30..fcfb67c3b24a 100644
--- a/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
+++ b/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
@@ -39,6 +39,11 @@ msgstr ""
msgid "Administration Reference"
msgstr ""
+#. module: l10n_it_fatturapa_in
+#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Amount Summary"
+msgstr ""
+
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line__cod_article_ids
#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
@@ -61,7 +66,7 @@ msgid "Attachment URL"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/models/attachment.py:71
+#: code:addons/l10n_it_fatturapa_in/models/attachment.py:80
#, python-format
msgid "Attachment without name"
msgstr ""
@@ -88,7 +93,7 @@ msgid "Bill"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1143
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1137
#, python-format
msgid "Bill total %s is different from document total amount %s"
msgstr ""
@@ -146,7 +151,7 @@ msgid "Company Name field contains '%s'. Your System contains '%s'"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1158
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1152
#, python-format
msgid "Computed amount untaxed %s is different from summary data %s"
msgstr ""
@@ -261,6 +266,27 @@ msgstr ""
msgid "Document type %s not handled."
msgstr ""
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice__e_invoice_validation_error
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in__e_invoice_validation_error
+msgid "E Invoice Validation Error"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice__e_invoice_amount_tax
+msgid "E-Invoice Tax Amount"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice__e_invoice_amount_total
+msgid "E-Invoice Total Amount"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice__e_invoice_amount_untaxed
+msgid "E-Invoice Untaxed Amount"
+msgstr ""
+
#. module: l10n_it_fatturapa_in
#: model:ir.model,name:l10n_it_fatturapa_in.model_fatturapa_article_code
msgid "E-bill Article Code"
@@ -337,7 +363,7 @@ msgid "File Size"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1181
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1175
#, python-format
msgid "File is linked to bills yet."
msgstr ""
@@ -362,6 +388,11 @@ msgstr ""
msgid "Followers (Partners)"
msgstr ""
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice__e_invoice_force_validation
+msgid "Force E-Invoice Validation"
+msgstr ""
+
#. module: l10n_it_fatturapa_in
#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
msgid "General Data"
@@ -653,6 +684,11 @@ msgstr ""
msgid "Number of unread messages"
msgstr ""
+#. module: l10n_it_fatturapa_in
+#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_fatturapa_in_attachment_form
+msgid "One or more invoice doesn't match the amount (tax or untaxed or total) of the original e-invoice. Please check"
+msgstr ""
+
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line__other_data_ids
#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
@@ -861,6 +897,17 @@ msgstr ""
msgid "The database object this attachment will be attached to."
msgstr ""
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/models/account.py:37
+#, python-format
+msgid "The invoice '%s' doesn't match the related e-invoice"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "The invoice doesn't match one of the amount untaxed, tax amount or total amount of the original e-invoice. Please check"
+msgstr ""
+
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_fatturapa_attachment_in__res_id
msgid "The record id this is attached to."
From e5806063233d5a6086e1b327fc94b836b1b3b134 Mon Sep 17 00:00:00 2001
From: OCA Transbot
Date: Mon, 20 May 2019 20:43:57 +0000
Subject: [PATCH 064/236] Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
Translation: l10n-italy-12.0/l10n-italy-12.0-l10n_it_fatturapa_in
Translate-URL: https://translation.odoo-community.org/projects/l10n-italy-12-0/l10n-italy-12-0-l10n_it_fatturapa_in/
---
l10n_it_fatturapa_in/i18n/it.po | 114 +++++++++++++++++++++++---------
1 file changed, 83 insertions(+), 31 deletions(-)
diff --git a/l10n_it_fatturapa_in/i18n/it.po b/l10n_it_fatturapa_in/i18n/it.po
index 668267040526..1aa3aaa96516 100644
--- a/l10n_it_fatturapa_in/i18n/it.po
+++ b/l10n_it_fatturapa_in/i18n/it.po
@@ -51,6 +51,11 @@ msgstr "Attivo"
msgid "Administration Reference"
msgstr "Riferimento amministrazione"
+#. module: l10n_it_fatturapa_in
+#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid "Amount Summary"
+msgstr ""
+
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line__cod_article_ids
#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
@@ -73,7 +78,7 @@ msgid "Attachment URL"
msgstr "URL allegato"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/models/attachment.py:71
+#: code:addons/l10n_it_fatturapa_in/models/attachment.py:80
#, python-format
msgid "Attachment without name"
msgstr "Allegato senza nome"
@@ -84,7 +89,7 @@ msgid "Attachments"
msgstr "Allegati"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:662
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:670
#, python-format
msgid ""
"BIC is required and not exist in Xml\n"
@@ -104,7 +109,7 @@ msgid "Bill"
msgstr "Fattura"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1135
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1137
#, python-format
msgid "Bill total %s is different from document total amount %s"
msgstr "Il totale fattura %s è diverso dall'importo totale del documento %s"
@@ -162,7 +167,7 @@ msgid "Company Name field contains '%s'. Your System contains '%s'"
msgstr "Il campo nome azienda contiene \"%s\", il sistema contiene \"%s\""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1150
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1152
#, python-format
msgid "Computed amount untaxed %s is different from summary data %s"
msgstr "L'imponibile calcolato %s è diverso da quello dei dati di riepilogo %s"
@@ -178,7 +183,7 @@ msgid "Contact"
msgstr "Contatto"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:156
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:164
#, python-format
msgid "Country Code %s not found in system."
msgstr "Codice nazione %s non trovato nel sistema."
@@ -229,7 +234,7 @@ msgid "Default products used in electronic supplier invoices"
msgstr "Prodotti predefiniti usati nelle fatture elettroniche fornitore"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:717
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:725
#, python-format
msgid "Define a purchase journal for this company: '%s' (id: %d)."
msgstr "Definire un registro di acquisto per questa azienda: \"%s\" (ID: %d)."
@@ -272,11 +277,34 @@ msgid "Display Name"
msgstr "Nome visualizzato"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:823
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:831
#, python-format
msgid "Document type %s not handled."
msgstr "Tipo documento %s non gestito."
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice__e_invoice_validation_error
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_fatturapa_attachment_in__e_invoice_validation_error
+msgid "E Invoice Validation Error"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice__e_invoice_amount_tax
+msgid "E-Invoice Tax Amount"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice__e_invoice_amount_total
+#, fuzzy
+#| msgid "Invoices total"
+msgid "E-Invoice Total Amount"
+msgstr "Totale fatture"
+
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice__e_invoice_amount_untaxed
+msgid "E-Invoice Untaxed Amount"
+msgstr ""
+
#. module: l10n_it_fatturapa_in
#: model:ir.model,name:l10n_it_fatturapa_in.model_fatturapa_article_code
msgid "E-bill Article Code"
@@ -353,7 +381,7 @@ msgid "File Size"
msgstr "Dimensione file"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1173
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1175
#, python-format
msgid "File is linked to bills yet."
msgstr "Il file è già collegato a delle fatture."
@@ -378,13 +406,20 @@ msgstr "Follower (canali)"
msgid "Followers (Partners)"
msgstr "Follower (partner)"
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_account_invoice__e_invoice_force_validation
+#, fuzzy
+#| msgid "E-invoice line"
+msgid "Force E-Invoice Validation"
+msgstr "Riga e-fattura"
+
#. module: l10n_it_fatturapa_in
#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
msgid "General Data"
msgstr "Dati generali"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:550
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:558
#, python-format
msgid "Global bill discount from document general data"
msgstr "Sconto globale fattura dai dati generali del documento"
@@ -526,7 +561,7 @@ msgid "Last Updated on"
msgstr "Ultimo aggiornamento il"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:307
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:315
#, python-format
msgid ""
"Line '%s': Too many taxes with percentage equals to '%s'.\n"
@@ -626,7 +661,7 @@ msgid "Name field contains '%s'. Your System contains '%s'"
msgstr "Il campo nome contiene \"%s\", il sistema contiene \"%s\""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:638
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:646
#, python-format
msgid "Name of Bank with BIC '%s' is not set. Can't create bank"
msgstr "Impossibile creare la banca con BIC \"%s\", il nome non è impostato."
@@ -637,13 +672,13 @@ msgid "Nature"
msgstr "Natura"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:800
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:808
#, python-format
msgid "No currency found with code %s."
msgstr "Valuta con codice %s non trovata."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:284
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:292
#, python-format
msgid ""
"No tax with percentage %s and nature %s found. Please configure this tax."
@@ -651,7 +686,7 @@ msgstr ""
"Imposta con aliquota %s e natura %s non trovata, configurare questa imposta."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:884
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:892
#, python-format
msgid "No withholding tax found with document payment reason %s and rate %s."
msgstr "Ritenuta d'acconto con causale documento %s e aliquota %s non trovata."
@@ -686,6 +721,13 @@ msgstr "Numero di messaggi con errore di consegna"
msgid "Number of unread messages"
msgstr "Numero di messaggi non letti"
+#. module: l10n_it_fatturapa_in
+#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_fatturapa_in_attachment_form
+msgid ""
+"One or more invoice doesn't match the amount (tax or untaxed or total) of "
+"the original e-invoice. Please check"
+msgstr ""
+
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line__other_data_ids
#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
@@ -693,19 +735,19 @@ msgid "Other Administrative Data"
msgstr "Altri dati gestionali"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:580
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:588
#, python-format
msgid "Payment method %s is not defined in your system."
msgstr "Modalità di pagamento %s non definita nel sistema."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1088
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1096
#, python-format
msgid "Payment method code %s is incorrect."
msgstr "Codice modalità di pagamento %s non corretto."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1083
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1091
#, python-format
msgid "Payment method code not found in document."
msgstr "Codice modalità di pagamento non trovato nel documento."
@@ -755,7 +797,7 @@ msgid "Progress data"
msgstr "Dati stato avanzamento lavori"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:204
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:212
#, python-format
msgid "Province ( %s ) not present in your system"
msgstr "Provincia ( %s ) non presente nel sistema"
@@ -766,13 +808,13 @@ msgid "Quantity"
msgstr "Quantità"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:234
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:242
#, python-format
msgid "REA Office Province Code ( %s ) not present in your system"
msgstr "Codice provincia dell'ufficio REA ( %s ) non presente nel sistema"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:193
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:201
#, python-format
msgid "Register Province ( %s ) not present in your system"
msgstr "Provincia Albo ( %s ) non presente nel sistema"
@@ -861,7 +903,7 @@ msgid "Surname field contains '%s'. Your System contains '%s'"
msgstr "Il campo cognome contiene \"%s\", il sistema contiene \"%s\""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:222
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:230
#, python-format
msgid "Tax Regime %s not present in your system."
msgstr "Regime fiscale %s non presente nel sistema."
@@ -872,7 +914,7 @@ msgid "Tax Withholding"
msgstr "Ritenuta d'acconto"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:471
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:479
#, python-format
msgid "Tax kind %s not found"
msgstr "Tipo imposta %s non trovato"
@@ -891,7 +933,7 @@ msgid "Text Reference"
msgstr "Riferimento testo"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:872
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:880
#, python-format
msgid ""
"The bill contains withholding tax with payment reason %s, but such a tax is "
@@ -905,6 +947,19 @@ msgstr ""
msgid "The database object this attachment will be attached to."
msgstr "L'oggetto del database a cui verrà assegnato questo allegato."
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/models/account.py:37
+#, python-format
+msgid "The invoice '%s' doesn't match the related e-invoice"
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
+msgid ""
+"The invoice doesn't match one of the amount untaxed, tax amount or total "
+"amount of the original e-invoice. Please check"
+msgstr ""
+
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_fatturapa_attachment_in__res_id
msgid "The record id this is attached to."
@@ -931,7 +986,7 @@ msgid "Total Price"
msgstr "Prezzo totale"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:138
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:146
#, python-format
msgid ""
"Two distinct partners with VAT number %s or Fiscal Code %s already present "
@@ -1012,7 +1067,7 @@ msgid "Welfare Fund"
msgstr "Cassa previdenziale"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:498
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:506
#, python-format
msgid "Welfare Fund %s not present in your system."
msgstr "Cassa previdenziale %s non presente nel sistema."
@@ -1023,13 +1078,13 @@ msgid "Welfare Fund Details"
msgstr "Dettagli cassa previdenziale"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:480
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:488
#, python-format
msgid "Welfare Fund is not defined."
msgstr "Cassa previdenziale non definita."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:369
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:377
#, python-format
msgid "XML contains tax %s. Product %s has tax %s. Using the XML one"
msgstr ""
@@ -1037,7 +1092,7 @@ msgstr ""
"quella dell'XML."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:298
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:306
#, python-format
msgid ""
"XML contains tax with percentage '%s' but it does not exist in your system"
@@ -1195,9 +1250,6 @@ msgstr "il"
#~ msgid "Invoices"
#~ msgstr "Fatture"
-#~ msgid "Invoices total"
-#~ msgstr "Totale fatture"
-
#~ msgid "Link to Supplier Invoice"
#~ msgstr "Collega a fattura fornitore"
From 1dfb4ee2d11598669573b5f3c38d0efd31943f7d Mon Sep 17 00:00:00 2001
From: Gianluigi Tiesi
Date: Fri, 3 May 2019 16:53:06 +0200
Subject: [PATCH 065/236] l10n_it_fatturapa: xml doctor for fatturapa
it fixes:
- removes xs:dateTime if bogus and not mandatory
i.e. 0001-01-01T00:00:00.000+02:00 where python raises
OverflowError
- removes timezone from xs:date to make pyxb able to compare with
1-1-1970, it also removes the need of patching pyxb
- removes space only strings if not mandatory, else replace with
a dash
breaking change:
modules needs to import binding.fatturapa instead of
bindings.fatturapa_v_1_2, this would be asl useful for
new specs
---
l10n_it_fatturapa_in/__manifest__.py | 2 +-
.../tests/data/IT01234567890_FPR03.xml | 2 +-
.../data/IT02780790107_11004_xml_doctor.xml | 208 ++++++++++++++++++
.../tests/test_import_fatturapa_xml.py | 31 +++
.../wizard/link_to_existing_invoice.py | 4 +-
.../wizard/wizard_import_fatturapa.py | 8 +-
6 files changed, 249 insertions(+), 6 deletions(-)
create mode 100644 l10n_it_fatturapa_in/tests/data/IT02780790107_11004_xml_doctor.xml
diff --git a/l10n_it_fatturapa_in/__manifest__.py b/l10n_it_fatturapa_in/__manifest__.py
index c63963e5275a..4cf816e883be 100644
--- a/l10n_it_fatturapa_in/__manifest__.py
+++ b/l10n_it_fatturapa_in/__manifest__.py
@@ -6,7 +6,7 @@
{
'name': 'Italian Localization - Fattura elettronica - Ricezione',
- 'version': '12.0.1.1.6',
+ 'version': '12.0.1.1.7',
"development_status": "Beta",
'category': 'Localization/Italy',
'summary': 'Ricezione fatture elettroniche',
diff --git a/l10n_it_fatturapa_in/tests/data/IT01234567890_FPR03.xml b/l10n_it_fatturapa_in/tests/data/IT01234567890_FPR03.xml
index 7aaa1df7d8ec..752e850b6b10 100644
--- a/l10n_it_fatturapa_in/tests/data/IT01234567890_FPR03.xml
+++ b/l10n_it_fatturapa_in/tests/data/IT01234567890_FPR03.xml
@@ -51,7 +51,7 @@
TD01EUR
- 2014-12-18+01:00
+ 2014-12-18
123LA FATTURA FA RIFERIMENTO AD UNA OPERAZIONE AAAA BBBBBBBBBBBBBBBBBB CCC DDDDDDDDDDDDDDD E FFFFFFFFFFFFFFFFFFFF GGGGGGGGGG HHHHHHH II LLLLLLLLLLLLLLLLL MMM NNNNN OO PPPPPPPPPPP QQQQ RRRR SSSSSSSSSSSSSSSEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB
diff --git a/l10n_it_fatturapa_in/tests/data/IT02780790107_11004_xml_doctor.xml b/l10n_it_fatturapa_in/tests/data/IT02780790107_11004_xml_doctor.xml
new file mode 100644
index 000000000000..6c782eb247fe
--- /dev/null
+++ b/l10n_it_fatturapa_in/tests/data/IT02780790107_11004_xml_doctor.xml
@@ -0,0 +1,208 @@
+
+
+
+
+
+ IT
+ 02780790107
+
+ 00001
+ FPA12
+ UFPQ1O
+
+
+
+
+
+ IT
+ 02780790107
+
+
+ SOCIETA' ALPHA SRL
+
+ RF01
+
+
+ VIALE ROMA 543
+ 07100
+ SASSARI
+ SS
+ IT
+
+
+
+
+
+ IT
+ 03339130126
+
+ 03339130126
+
+ Rappresentante fiscale
+ 1234567890123
+
+
+
+
+
+ 80213330584
+
+ AMMINISTRAZIONE BETA
+
+
+
+ VIA TORINO 38-B
+ 00145
+ ROMA
+ RM
+ IT
+
+
+
+
+
+ IT
+ 03339130126
+
+ 03339130126
+
+ Rappresentante fiscale
+ 1234567890123
+
+
+
+
+
+
+
+ TD01
+ EUR
+ 2014-12-18+01:00
+ 123
+
+ TC01
+ 4.00
+ 9.00
+ 22.00
+ rif. amm
+
+
+ SI
+
+
+ 1
+ 66685
+ 1
+ 123abc
+ 456def
+
+
+ 1
+ 123
+ 2012-09-01
+ 5
+ 123abc
+ 456def
+
+
+ 1
+ 123
+ 5
+ 123abc
+ 456def
+
+
+ 1
+ 123
+ 5
+ 123abc
+ 456def
+
+
+
+
+ IT
+ 05714511002
+
+
+ Trasporto spa
+
+
+ KGM
+ DAP
+
+ strada dei test
+
+ 12042
+ Bra
+ CN
+ IT
+
+ 0001-01-01T00:00:00.000+02:00
+
+
+
+
+ 1
+
+ 5.00
+ 1.00
+ 5.00
+ 22.00
+
+
+ 2
+ FORNITURE VARIE PER UFFICIO
+ 10.00
+ 2.00
+ 20.00
+ 22.00
+
+
+ 22.00
+ 34.00
+ 7.48
+ D
+
+
+
+ TP01
+
+ MP05
+ 2015-04-30
+ 20.00
+ Bank Test
+ IT28V0100003245232200001200
+ GEBABEBB
+ 2.00
+ 2015-05-01
+
+
+ MP05
+ 2015-05-30
+ 9.00
+ Bank Test
+ IT28V0100003245232200001200
+ GEBABEBB
+ 1.00
+ 2015-05-31
+
+
+
+ TP02
+
+ MP05
+ 2015-06-30
+ 1.50
+ Bank Test
+ IT28V0100003245232200001200
+ GEBABEBB
+ 0.15
+ 2015-07-01+02:00
+
+
+
+
diff --git a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
index 2866c94d4d2f..365ec9d59db5 100644
--- a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
+++ b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
@@ -480,3 +480,34 @@ def test_21_xml_import(self):
self.assertEqual(invoice.inconsistencies, '')
self.assertEqual(invoice.invoice_line_ids[2].price_unit, 0.0)
self.assertEqual(invoice.invoice_line_ids[2].discount, 0.0)
+
+ def test_22_xml_import(self):
+ res = self.run_wizard('test22', 'IT02780790107_11004_xml_doctor.xml')
+ invoice_id = res.get('domain')[0][2][0]
+ invoice = self.invoice_model.browse(invoice_id)
+
+ self.assertEqual(invoice.partner_id.name, "SOCIETA' ALPHA SRL")
+
+ self.assertIn('removed timezone information', invoice.inconsistencies)
+
+ # DatiGeneraliDocumento/Causale
+ self.assertEqual(invoice.comment, '')
+
+ # DatiGeneraliDocumento/Data
+ self.assertEqual(invoice.date_invoice, '2014-12-18')
+
+ # DatiTrasporto/IndirizzoResa/NumeroCivico
+ self.assertEqual(invoice.delivery_address,
+ 'strada dei test, \n12042 - Bra\nCN IT')
+
+ # DatiTrasporto/DataOraConsegna
+ self.assertFalse(invoice.delivery_datetime)
+
+ # DatiBeniServizi/DettaglioLinee/Descrizione
+ self.assertEqual(invoice.invoice_line_ids[0].name, '-')
+
+ # DatiPagamento/DettaglioPagamento/DataDecorrenzaPenale
+ payment_data = self.env['fatturapa.payment.data'].search(
+ [('invoice_id', '=', invoice.id)])
+ self.assertEqual(payment_data[0].payment_methods[0].penalty_date,
+ '2015-05-01')
diff --git a/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.py b/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.py
index 277121a6615f..5fea3ed51057 100644
--- a/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.py
+++ b/l10n_it_fatturapa_in/wizard/link_to_existing_invoice.py
@@ -2,7 +2,7 @@
from odoo import models, api, fields
from odoo.tools.translate import _
from odoo.exceptions import UserError
-from odoo.addons.l10n_it_fatturapa.bindings import fatturapa_v_1_2
+from odoo.addons.l10n_it_fatturapa.bindings import fatturapa
class WizardLinkToInvoice(models.TransientModel):
@@ -13,7 +13,7 @@ class WizardLinkToInvoice(models.TransientModel):
def get_invoice_obj(self, fatturapa_attachment):
xml_string = fatturapa_attachment.get_xml_string()
- return fatturapa_v_1_2.CreateFromDocument(xml_string)
+ return fatturapa.CreateFromDocument(xml_string)
@api.multi
def link(self):
diff --git a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
index d29b616ee49c..7e99b4ce94a7 100644
--- a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
+++ b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
@@ -5,7 +5,7 @@
from odoo.tools.translate import _
from odoo.exceptions import UserError
-from odoo.addons.l10n_it_fatturapa.bindings import fatturapa_v_1_2
+from odoo.addons.l10n_it_fatturapa.bindings import fatturapa
from odoo.addons.base_iban.models.res_partner_bank import pretty_iban
_logger = logging.getLogger(__name__)
@@ -1156,7 +1156,7 @@ def check_invoice_amount(self, invoice, FatturaElettronicaBody):
def get_invoice_obj(self, fatturapa_attachment):
xml_string = fatturapa_attachment.get_xml_string()
- return fatturapa_v_1_2.CreateFromDocument(xml_string)
+ return fatturapa.CreateFromDocument(xml_string)
@api.multi
def importFatturaPA(self):
@@ -1189,6 +1189,10 @@ def importFatturaPA(self):
generic_inconsistencies = (
self.env.context['inconsistencies'] + '\n\n')
+ xmlproblems = getattr(fatt, '_xmldoctor', None)
+ if xmlproblems: # None or []
+ generic_inconsistencies += '\n'.join(xmlproblems) + '\n\n'
+
# 2
for fattura in fatt.FatturaElettronicaBody:
From 8ec9bbb80b30652bae69566a533b7fe0d81cd26f Mon Sep 17 00:00:00 2001
From: eLBati
Date: Thu, 23 May 2019 09:15:43 +0200
Subject: [PATCH 066/236] FIX
File "/home/travis/build/eLBati/l10n-italy/l10n_it_fatturapa/bindings/fatturapa.py", line 8, in
from binding import * # noqa: F403
ImportError: No module named 'binding'
2019-05-23 07:25:57,622 6790 ERROR openerp_test odoo.addons.l10n_it_fatturapa_in.tests.test_import_fatturapa_xml: ` File "/home/travis/build/eLBati/l10n-italy/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py", line 497, in test_22_xml_import
2019-05-23 07:25:57,622 6790 ERROR openerp_test odoo.addons.l10n_it_fatturapa_in.tests.test_import_fatturapa_xml: ` self.assertEqual(invoice.date_invoice, '2014-12-18')
2019-05-23 07:25:57,622 6790 ERROR openerp_test odoo.addons.l10n_it_fatturapa_in.tests.test_import_fatturapa_xml: ` AssertionError: datetime.date(2014, 12, 18) != '2014-12-18'
---
l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
index 365ec9d59db5..bae9ae3d3c19 100644
--- a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
+++ b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
@@ -494,7 +494,7 @@ def test_22_xml_import(self):
self.assertEqual(invoice.comment, '')
# DatiGeneraliDocumento/Data
- self.assertEqual(invoice.date_invoice, '2014-12-18')
+ self.assertEqual(invoice.date_invoice, date(2014, 12, 18))
# DatiTrasporto/IndirizzoResa/NumeroCivico
self.assertEqual(invoice.delivery_address,
@@ -510,4 +510,4 @@ def test_22_xml_import(self):
payment_data = self.env['fatturapa.payment.data'].search(
[('invoice_id', '=', invoice.id)])
self.assertEqual(payment_data[0].payment_methods[0].penalty_date,
- '2015-05-01')
+ date(2015, 5, 1))
From 8f7c1e73cd2538e9c63a8f2e870f5cfda1f44df7 Mon Sep 17 00:00:00 2001
From: eLBati
Date: Wed, 13 Feb 2019 09:46:05 +0100
Subject: [PATCH 067/236] Restore DatiCassaPrevidenziale handling: when
present, add it as invoice line. Reverting part of
https://github.com/OCA/l10n-italy/pull/703
---
l10n_it_fatturapa_in/__manifest__.py | 2 +-
l10n_it_fatturapa_in/models/company.py | 16 ++++++++++
.../tests/test_import_fatturapa_xml.py | 28 ++++++++---------
l10n_it_fatturapa_in/views/company_view.xml | 4 +++
.../wizard/wizard_import_fatturapa.py | 30 +++++++++++++++++--
5 files changed, 63 insertions(+), 17 deletions(-)
diff --git a/l10n_it_fatturapa_in/__manifest__.py b/l10n_it_fatturapa_in/__manifest__.py
index 4cf816e883be..f369afc84b29 100644
--- a/l10n_it_fatturapa_in/__manifest__.py
+++ b/l10n_it_fatturapa_in/__manifest__.py
@@ -6,7 +6,7 @@
{
'name': 'Italian Localization - Fattura elettronica - Ricezione',
- 'version': '12.0.1.1.7',
+ 'version': '12.0.1.2.0',
"development_status": "Beta",
'category': 'Localization/Italy',
'summary': 'Ricezione fatture elettroniche',
diff --git a/l10n_it_fatturapa_in/models/company.py b/l10n_it_fatturapa_in/models/company.py
index 9e43a156c43f..5b1dac6da8e7 100644
--- a/l10n_it_fatturapa_in/models/company.py
+++ b/l10n_it_fatturapa_in/models/company.py
@@ -4,6 +4,11 @@
class ResCompany(models.Model):
_inherit = 'res.company'
+ cassa_previdenziale_product_id = fields.Many2one(
+ 'product.product', 'Welfare Fund Data Product',
+ help="Product used to model DatiCassaPrevidenziale XML element "
+ "on bills."
+ )
sconto_maggiorazione_product_id = fields.Many2one(
'product.product', 'Discount Supplement Product',
help="Product used to model ScontoMaggiorazione XML element on bills."
@@ -12,6 +17,12 @@ class ResCompany(models.Model):
class AccountConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
+ cassa_previdenziale_product_id = fields.Many2one(
+ related='company_id.cassa_previdenziale_product_id',
+ string="Welfare Fund Data Product",
+ help="Product used to model DatiCassaPrevidenziale XML element "
+ "on bills.", readonly=False
+ )
sconto_maggiorazione_product_id = fields.Many2one(
related='company_id.sconto_maggiorazione_product_id',
string="Discount Supplement Product",
@@ -24,10 +35,15 @@ def onchange_company_id(self):
res = super(AccountConfigSettings, self).onchange_company_id()
if self.company_id:
company = self.company_id
+ self.cassa_previdenziale_product_id = (
+ company.cassa_previdenziale_product_id and
+ company.cassa_previdenziale_product_id.id or False
+ )
self.sconto_maggiorazione_product_id = (
company.sconto_maggiorazione_product_id and
company.sconto_maggiorazione_product_id.id or False
)
else:
+ self.cassa_previdenziale_product_id = False
self.sconto_maggiorazione_product_id = False
return res
diff --git a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
index bae9ae3d3c19..1bd9c0486cbf 100644
--- a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
+++ b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
@@ -73,6 +73,8 @@ def run_wizard_multi(self, file_name_list):
return wizard.importFatturaPA()
def test_00_xml_import(self):
+ self.env.user.company_id.cassa_previdenziale_product_id = (
+ self.service.id)
res = self.run_wizard('test0', 'IT05979361218_001.xml')
invoice_id = res.get('domain')[0][2][0]
invoice = self.invoice_model.browse(invoice_id)
@@ -80,11 +82,17 @@ def test_00_xml_import(self):
self.assertEqual(
invoice.partner_id.register_fiscalpos.code, 'RF02')
self.assertEqual(invoice.reference, 'FT/2015/0006')
- self.assertEqual(invoice.amount_total, 54.00)
+ self.assertEqual(invoice.amount_total, 57.00)
self.assertEqual(invoice.gross_weight, 0.00)
self.assertEqual(invoice.net_weight, 0.00)
self.assertEqual(invoice.welfare_fund_ids[0].kind_id.code, 'N4')
self.assertFalse(invoice.art73)
+ welfare_found = False
+ for line in invoice.invoice_line_ids:
+ if line.product_id.id == self.service.id:
+ self.assertEqual(line.price_unit, 3)
+ welfare_found = True
+ self.assertTrue(welfare_found)
self.assertTrue(len(invoice.e_invoice_line_ids) == 1)
self.assertEqual(
invoice.e_invoice_line_ids[0].name, 'Prodotto di test al giorno')
@@ -110,15 +118,13 @@ def test_01_xml_import(self):
invoice_id = res.get('domain')[0][2][0]
invoice = self.invoice_model.browse(invoice_id)
self.assertEqual(invoice.reference, '123')
- self.assertEqual(invoice.amount_untaxed, 25.00)
- self.assertEqual(invoice.amount_tax, 5.5)
+ self.assertEqual(invoice.amount_untaxed, 34.00)
+ self.assertEqual(invoice.amount_tax, 7.48)
self.assertEqual(
len(invoice.invoice_line_ids[0].invoice_line_tax_ids), 1)
self.assertEqual(
invoice.invoice_line_ids[0].invoice_line_tax_ids[0].name,
'22% e-bill')
- # supplier sets DatiCassaPrevidenziale, includes its amount in invoice
- # total, but does not add it as invoice line
self.assertEqual(
invoice.fatturapa_summary_ids[0].amount_untaxed, 34.00)
self.assertEqual(
@@ -193,9 +199,7 @@ def test_04_xml_import(self):
self.assertEqual(
invoice.inconsistencies,
u"Company Name field contains 'Societa\' "
- u"Alpha SRL'. Your System contains 'SOCIETA\' ALPHA SRL'\n\n"
- u"Computed amount untaxed 25.0 is different from summary data "
- u"26.0")
+ u"Alpha SRL'. Your System contains 'SOCIETA\' ALPHA SRL'\n\n")
def test_05_xml_import(self):
res = self.run_wizard('test5', 'IT05979361218_003.xml')
@@ -324,15 +328,11 @@ def test_13_xml_import(self):
self.assertEqual(
invoice1.inconsistencies,
u"Company Name field contains 'Societa\' "
- u"Alpha SRL'. Your System contains 'SOCIETA\' ALPHA SRL'\n\n"
- u"Computed amount untaxed 25.0 is different from summary data "
- u"26.0")
+ u"Alpha SRL'. Your System contains 'SOCIETA\' ALPHA SRL'\n\n")
self.assertEqual(
invoice2.inconsistencies,
u"Company Name field contains 'Societa\' "
- u"Alpha SRL'. Your System contains 'SOCIETA\' ALPHA SRL'\n\n"
- u"Computed amount untaxed 25.0 is different from summary data "
- u"26.0")
+ u"Alpha SRL'. Your System contains 'SOCIETA\' ALPHA SRL'\n\n")
def test_14_xml_import(self):
# check: no tax code found , write inconsisteance and anyway
diff --git a/l10n_it_fatturapa_in/views/company_view.xml b/l10n_it_fatturapa_in/views/company_view.xml
index 323bd245a175..6ba336c43839 100644
--- a/l10n_it_fatturapa_in/views/company_view.xml
+++ b/l10n_it_fatturapa_in/views/company_view.xml
@@ -19,6 +19,10 @@
Default products used in electronic supplier invoices
+
+
+
+
diff --git a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
index 7e99b4ce94a7..28f34fb109ad 100644
--- a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
+++ b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
@@ -313,9 +313,9 @@ def _prepare_generic_line_data(self, line):
if len(account_taxes) > 1:
# just logging because this is an usual case: see split payment
_logger.warning(_(
- "Line '%s': Too many taxes with percentage equals "
+ "Too many taxes with percentage equals "
"to '%s'.\nFix it if required"
- ) % (line.Descrizione, line.AliquotaIVA))
+ ) % line.AliquotaIVA)
# if there are multiple taxes with same percentage
# and there is a default tax with this percentage,
# set taxes list equal to supplier_taxes_id, loaded before
@@ -927,6 +927,32 @@ def invoiceCreate(
WalferLineVals = self._prepareWelfareLine(
invoice_id, walfareLine)
WelfareFundLineModel.create(WalferLineVals)
+ line_vals = self._prepare_generic_line_data(walfareLine)
+ line_vals.update({
+ 'name': _(
+ "Welfare Fund: %s") % walfareLine.TipoCassa,
+ 'price_unit': float(walfareLine.ImportoContributoCassa),
+ 'invoice_id': invoice.id,
+ 'account_id': credit_account_id,
+ })
+ if walfareLine.Ritenuta:
+ if not wt_found:
+ raise UserError(_(
+ "Welfare Fund data %s has withholding tax but no "
+ "withholding tax was found in the system."
+ % walfareLine.TipoCassa))
+ line_vals['invoice_line_tax_wt_ids'] = [
+ (6, 0, [wt_found.id])]
+ if self.env.user.company_id.cassa_previdenziale_product_id:
+ cassa_previdenziale_product = (
+ self.env.user.company_id.cassa_previdenziale_product_id
+ )
+ line_vals['product_id'] = cassa_previdenziale_product.id
+ line_vals['name'] = cassa_previdenziale_product.name
+ self.adjust_accounting_data(
+ cassa_previdenziale_product, line_vals
+ )
+ self.env['account.invoice.line'].create(line_vals)
# 2.1.2
relOrders = FatturaBody.DatiGenerali.DatiOrdineAcquisto
From 74c86dd4d05b2040c9e60c20d4a20f55f8075e82 Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Fri, 14 Jun 2019 12:54:58 +0000
Subject: [PATCH 068/236] [UPD] Update l10n_it_fatturapa_in.pot
---
.../i18n/l10n_it_fatturapa_in.pot | 48 ++++++++++++++-----
1 file changed, 36 insertions(+), 12 deletions(-)
diff --git a/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot b/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
index fcfb67c3b24a..740d9a367ab0 100644
--- a/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
+++ b/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
@@ -93,7 +93,7 @@ msgid "Bill"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1137
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1163
#, python-format
msgid "Bill total %s is different from document total amount %s"
msgstr ""
@@ -151,7 +151,7 @@ msgid "Company Name field contains '%s'. Your System contains '%s'"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1152
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1178
#, python-format
msgid "Computed amount untaxed %s is different from summary data %s"
msgstr ""
@@ -363,7 +363,7 @@ msgid "File Size"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1175
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1201
#, python-format
msgid "File is linked to bills yet."
msgstr ""
@@ -535,13 +535,6 @@ msgstr ""
msgid "Last Updated on"
msgstr ""
-#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:315
-#, python-format
-msgid "Line '%s': Too many taxes with percentage equals to '%s'.\n"
-"Fix it if required"
-msgstr ""
-
#. module: l10n_it_fatturapa_in
#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
msgid "Line Detail"
@@ -702,13 +695,13 @@ msgid "Payment method %s is not defined in your system."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1096
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1122
#, python-format
msgid "Payment method code %s is incorrect."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1091
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1117
#, python-format
msgid "Payment method code not found in document."
msgstr ""
@@ -738,6 +731,12 @@ msgstr ""
msgid "Preview link"
msgstr ""
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_company__cassa_previdenziale_product_id
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_config_settings__cassa_previdenziale_product_id
+msgid "Product used to model DatiCassaPrevidenziale XML element on bills."
+msgstr ""
+
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_config_settings__sconto_maggiorazione_product_id
msgid "Product used to model ScontoMaggiorazione XML element on bills"
@@ -928,6 +927,13 @@ msgstr ""
msgid "To Register"
msgstr ""
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:315
+#, python-format
+msgid "Too many taxes with percentage equals to '%s'.\n"
+"Fix it if required"
+msgstr ""
+
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line__total_price
msgid "Total Price"
@@ -1011,17 +1017,35 @@ msgstr ""
msgid "Welfare Fund %s not present in your system."
msgstr ""
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_company__cassa_previdenziale_product_id
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_config_settings__cassa_previdenziale_product_id
+msgid "Welfare Fund Data Product"
+msgstr ""
+
#. module: l10n_it_fatturapa_in
#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
msgid "Welfare Fund Details"
msgstr ""
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:940
+#, python-format
+msgid "Welfare Fund data %s has withholding tax but no withholding tax was found in the system."
+msgstr ""
+
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:488
#, python-format
msgid "Welfare Fund is not defined."
msgstr ""
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:932
+#, python-format
+msgid "Welfare Fund: %s"
+msgstr ""
+
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:377
#, python-format
From 3e9bd93bf6b3c18e1dee0d234dd11f2ae8127138 Mon Sep 17 00:00:00 2001
From: OCA Transbot
Date: Sun, 16 Jun 2019 11:06:25 +0000
Subject: [PATCH 069/236] Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
Translation: l10n-italy-12.0/l10n-italy-12.0-l10n_it_fatturapa_in
Translate-URL: https://translation.odoo-community.org/projects/l10n-italy-12-0/l10n-italy-12-0-l10n_it_fatturapa_in/
---
l10n_it_fatturapa_in/i18n/it.po | 81 +++++++++++++++++++--------------
1 file changed, 48 insertions(+), 33 deletions(-)
diff --git a/l10n_it_fatturapa_in/i18n/it.po b/l10n_it_fatturapa_in/i18n/it.po
index 1aa3aaa96516..dda457f19800 100644
--- a/l10n_it_fatturapa_in/i18n/it.po
+++ b/l10n_it_fatturapa_in/i18n/it.po
@@ -109,7 +109,7 @@ msgid "Bill"
msgstr "Fattura"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1137
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1163
#, python-format
msgid "Bill total %s is different from document total amount %s"
msgstr "Il totale fattura %s è diverso dall'importo totale del documento %s"
@@ -167,7 +167,7 @@ msgid "Company Name field contains '%s'. Your System contains '%s'"
msgstr "Il campo nome azienda contiene \"%s\", il sistema contiene \"%s\""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1152
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1178
#, python-format
msgid "Computed amount untaxed %s is different from summary data %s"
msgstr "L'imponibile calcolato %s è diverso da quello dei dati di riepilogo %s"
@@ -381,7 +381,7 @@ msgid "File Size"
msgstr "Dimensione file"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1175
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1201
#, python-format
msgid "File is linked to bills yet."
msgstr "Il file è già collegato a delle fatture."
@@ -560,16 +560,6 @@ msgstr "Ultimo aggiornamento di"
msgid "Last Updated on"
msgstr "Ultimo aggiornamento il"
-#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:315
-#, python-format
-msgid ""
-"Line '%s': Too many taxes with percentage equals to '%s'.\n"
-"Fix it if required"
-msgstr ""
-"Riga \"%s\": troppe imposte con aliquota pari a\"%s\".\n"
-"Correggere se necessario"
-
#. module: l10n_it_fatturapa_in
#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
msgid "Line Detail"
@@ -741,13 +731,13 @@ msgid "Payment method %s is not defined in your system."
msgstr "Modalità di pagamento %s non definita nel sistema."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1096
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1122
#, python-format
msgid "Payment method code %s is incorrect."
msgstr "Codice modalità di pagamento %s non corretto."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1091
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1117
#, python-format
msgid "Payment method code not found in document."
msgstr "Codice modalità di pagamento non trovato nel documento."
@@ -777,6 +767,14 @@ msgstr "Data inizio periodo"
msgid "Preview link"
msgstr "Collegamento di anteprima"
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_company__cassa_previdenziale_product_id
+#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_config_settings__cassa_previdenziale_product_id
+msgid "Product used to model DatiCassaPrevidenziale XML element on bills."
+msgstr ""
+"Prodotto usato come modello per l'elemento XML DatiCassaPrevidenziale delle "
+"fatture."
+
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,help:l10n_it_fatturapa_in.field_res_config_settings__sconto_maggiorazione_product_id
msgid "Product used to model ScontoMaggiorazione XML element on bills"
@@ -980,6 +978,19 @@ msgstr "Anteprima"
msgid "To Register"
msgstr "Da registrare"
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:315
+#, fuzzy, python-format
+#| msgid ""
+#| "Line '%s': Too many taxes with percentage equals to '%s'.\n"
+#| "Fix it if required"
+msgid ""
+"Too many taxes with percentage equals to '%s'.\n"
+"Fix it if required"
+msgstr ""
+"Riga \"%s\": troppe imposte con aliquota pari a\"%s\".\n"
+"Correggere se necessario"
+
#. module: l10n_it_fatturapa_in
#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_einvoice_line__total_price
msgid "Total Price"
@@ -1072,17 +1083,39 @@ msgstr "Cassa previdenziale"
msgid "Welfare Fund %s not present in your system."
msgstr "Cassa previdenziale %s non presente nel sistema."
+#. module: l10n_it_fatturapa_in
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_company__cassa_previdenziale_product_id
+#: model:ir.model.fields,field_description:l10n_it_fatturapa_in.field_res_config_settings__cassa_previdenziale_product_id
+msgid "Welfare Fund Data Product"
+msgstr "Prodotto per dati cassa previdenziale"
+
#. module: l10n_it_fatturapa_in
#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_invoice_form_fatturapa_in
msgid "Welfare Fund Details"
msgstr "Dettagli cassa previdenziale"
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:940
+#, python-format
+msgid ""
+"Welfare Fund data %s has withholding tax but no withholding tax was found in "
+"the system."
+msgstr ""
+"I dati cassa previdenziale %s hanno la ritenuta d'acconto ma non sono "
+"presenti nel sistema."
+
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:488
#, python-format
msgid "Welfare Fund is not defined."
msgstr "Cassa previdenziale non definita."
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:932
+#, python-format
+msgid "Welfare Fund: %s"
+msgstr "Cassa previdenziale: %s"
+
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:377
#, python-format
@@ -1141,30 +1174,12 @@ msgstr "il"
#~ "Prodotto usato come modello per l'elemento XML DatiCassaPrevidenziale "
#~ "delle fatture."
-#~ msgid "Product used to model DatiCassaPrevidenziale XML element on bills."
-#~ msgstr ""
-#~ "Prodotto usato come modello per l'elemento XML DatiCassaPrevidenziale "
-#~ "delle fatture."
-
#~ msgid "Stamp Data Product"
#~ msgstr "Prodotto per dati bollo"
#~ msgid "Stamp duty payed under the MEF Decree June 17, 2014 (art. 6)"
#~ msgstr "Bollo assolto ai sensi del decreto MEF 17 giugno 2014 (art. 6)"
-#~ msgid "Welfare Fund Data Product"
-#~ msgstr "Prodotto per dati cassa previdenziale"
-
-#~ msgid ""
-#~ "Welfare Fund data %s has withholding tax but no withholding tax was found "
-#~ "in the system."
-#~ msgstr ""
-#~ "I dati cassa previdenziale %s hanno la ritenuta d'acconto ma non sono "
-#~ "presenti nel sistema."
-
-#~ msgid "Welfare Fund: %s"
-#~ msgstr "Cassa previdenziale: %s"
-
#~ msgid "Aliquota IVA"
#~ msgstr "Aliquota IVA"
From c430bc34cd647b30bb16b68a868d57e8538e5104 Mon Sep 17 00:00:00 2001
From: SimoRubi
Date: Tue, 4 Jun 2019 13:05:16 +0200
Subject: [PATCH 070/236] [FIX] l10n_it_fatturapa: Remove newlines from base64
file before decoding
---
.../data/IT01234567890_FPR04.base64.xml.p7m | 196 ++++++++++++++++++
.../tests/test_import_fatturapa_xml.py | 9 +
2 files changed, 205 insertions(+)
create mode 100644 l10n_it_fatturapa_in/tests/data/IT01234567890_FPR04.base64.xml.p7m
diff --git a/l10n_it_fatturapa_in/tests/data/IT01234567890_FPR04.base64.xml.p7m b/l10n_it_fatturapa_in/tests/data/IT01234567890_FPR04.base64.xml.p7m
new file mode 100644
index 000000000000..00d53a6adfa3
--- /dev/null
+++ b/l10n_it_fatturapa_in/tests/data/IT01234567890_FPR04.base64.xml.p7m
@@ -0,0 +1,196 @@
+MIIkBgYJKoZIhvcNAQcCoIIj9zCCI/MCAQExDTALBglghkgBZQMEAgEwghm3Bgk
+qhkiG9w0BBwGgghmoBIIZpDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9Il
+VURi04Ij8+CjxwOkZhdHR1cmFFbGV0dHJvbmljYSB2ZXJzaW9uZT0iRlBSMTIiI
+HhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiB4
+bWxuczpwPSJodHRwOi8vaXZhc2Vydml6aS5hZ2VuemlhZW50cmF0ZS5nb3YuaXQ
+vZG9jcy94c2QvZmF0dHVyZS92MS4yIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudz
+Mub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6c2NoZW1hTG9jYXRpb
+249Imh0dHA6Ly9pdmFzZXJ2aXppLmFnZW56aWFlbnRyYXRlLmdvdi5pdC9kb2Nz
+L3hzZC9mYXR0dXJlL3YxLjIgaHR0cDovL3d3dy5mYXR0dXJhcGEuZ292Lml0L2V
+4cG9ydC9mYXR0dXJhemlvbmUvc2RpL2ZhdHR1cmFwYS92MS4yL1NjaGVtYV9kZW
+xfZmlsZV94bWxfRmF0dHVyYVBBX3ZlcnNpb25lXzEuMi54c2QiPgogIDxGYXR0d
+XJhRWxldHRyb25pY2FIZWFkZXI+CiAgICA8RGF0aVRyYXNtaXNzaW9uZT4KICAg
+ICAgPElkVHJhc21pdHRlbnRlPgogICAgICAgIDxJZFBhZXNlPklUPC9JZFBhZXN
+lPgogICAgICAgIDxJZENvZGljZT4wNTk3OTM2MTIxODwvSWRDb2RpY2U+CiAgIC
+AgIDwvSWRUcmFzbWl0dGVudGU+CiAgICAgIDxQcm9ncmVzc2l2b0ludmlvPjAwM
+DAxPC9Qcm9ncmVzc2l2b0ludmlvPgogICAgICA8Rm9ybWF0b1RyYXNtaXNzaW9u
+ZT5GUFIxMjwvRm9ybWF0b1RyYXNtaXNzaW9uZT4KICAgICAgPENvZGljZURlc3R
+pbmF0YXJpbz4wMDAwMDAwPC9Db2RpY2VEZXN0aW5hdGFyaW8+CiAgICAgIDxDb2
+50YXR0aVRyYXNtaXR0ZW50ZS8+CiAgICA8L0RhdGlUcmFzbWlzc2lvbmU+CiAgI
+CA8Q2VkZW50ZVByZXN0YXRvcmU+CiAgICAgIDxEYXRpQW5hZ3JhZmljaT4KICAg
+ICAgICA8SWRGaXNjYWxlSVZBPgogICAgICAgICAgPElkUGFlc2U+SVQ8L0lkUGF
+lc2U+CiAgICAgICAgICA8SWRDb2RpY2U+MDI3ODA3OTAxMDc8L0lkQ29kaWNlPg
+ogICAgICAgIDwvSWRGaXNjYWxlSVZBPgogICAgICAgIDxBbmFncmFmaWNhPgogI
+CAgICAgICAgPERlbm9taW5hemlvbmU+U09DSUVUQScgQUxQSEEgU1JMPC9EZW5v
+bWluYXppb25lPgogICAgICAgIDwvQW5hZ3JhZmljYT4KICAgICAgICA8UmVnaW1
+lRmlzY2FsZT5SRjAxPC9SZWdpbWVGaXNjYWxlPgogICAgICA8L0RhdGlBbmFncm
+FmaWNpPgogICAgICA8U2VkZT4KICAgICAgICA8SW5kaXJpenpvPlZJQUxFIFJPT
+UEgNTQzPC9JbmRpcml6em8+CiAgICAgICAgPENBUD4wNzEwMDwvQ0FQPgogICAg
+ICAgIDxDb211bmU+U0FTU0FSSTwvQ29tdW5lPgogICAgICAgIDxQcm92aW5jaWE
++U1M8L1Byb3ZpbmNpYT4KICAgICAgICA8TmF6aW9uZT5JVDwvTmF6aW9uZT4KIC
+AgICAgPC9TZWRlPgogICAgPC9DZWRlbnRlUHJlc3RhdG9yZT4KICAgIDxDZXNza
+W9uYXJpb0NvbW1pdHRlbnRlPgogICAgICA8RGF0aUFuYWdyYWZpY2k+CiAgICAg
+ICAgPENvZGljZUZpc2NhbGU+MDM1MzM1OTAxNzQ8L0NvZGljZUZpc2NhbGU+CiA
+gICAgICAgPEFuYWdyYWZpY2E+CiAgICAgICAgICA8RGVub21pbmF6aW9uZT5CRV
+RBIEdBTU1BPC9EZW5vbWluYXppb25lPgogICAgICAgIDwvQW5hZ3JhZmljYT4KI
+CAgICAgPC9EYXRpQW5hZ3JhZmljaT4KICAgICAgPFNlZGU+CiAgICAgICAgPElu
+ZGlyaXp6bz5WSUEgVE9SSU5PIDM4LUI8L0luZGlyaXp6bz4KICAgICAgICA8Q0F
+QPjAwMTQ1PC9DQVA+CiAgICAgICAgPENvbXVuZT5ST01BPC9Db211bmU+CiAgIC
+AgICAgPFByb3ZpbmNpYT5STTwvUHJvdmluY2lhPgogICAgICAgIDxOYXppb25lP
+klUPC9OYXppb25lPgogICAgICA8L1NlZGU+CiAgICA8L0Nlc3Npb25hcmlvQ29t
+bWl0dGVudGU+CiAgPC9GYXR0dXJhRWxldHRyb25pY2FIZWFkZXI+CiAgPEZhdHR
+1cmFFbGV0dHJvbmljYUJvZHk+CiAgICA8RGF0aUdlbmVyYWxpPgogICAgICA8RG
+F0aUdlbmVyYWxpRG9jdW1lbnRvPgogICAgICAgIDxUaXBvRG9jdW1lbnRvPlREM
+DE8L1RpcG9Eb2N1bWVudG8+CiAgICAgICAgPERpdmlzYT5FVVI8L0RpdmlzYT4K
+ICAgICAgICA8RGF0YT4yMDE0LTEyLTE4PC9EYXRhPgogICAgICAgIDxOdW1lcm8
++MTIzPC9OdW1lcm8+CiAgICAgICAgPENhdXNhbGU+TEEgRkFUVFVSQSBGQSBSSU
+ZFUklNRU5UTyBBRCBVTkEgT1BFUkFaSU9ORSBBQUFBIEJCQkJCQkJCQkJCQkJCQ
+kJCQiBDQ0MgREREREREREREREREREREIEUgRkZGRkZGRkZGRkZGRkZGRkZGRkYg
+R0dHR0dHR0dHRyBISEhISEhIIElJIExMTExMTExMTExMTExMTExMIE1NTSBOTk5
+OTiBPTyBQUFBQUFBQUFBQUCBRUVFRIFJSUlIgU1NTU1NTU1NTU1NTU1M8L0NhdX
+NhbGU+CiAgICAgICAgPENhdXNhbGU+U0VHVUUgREVTQ1JJWklPTkUgQ0FVU0FMR
+SBORUwgQ0FTTyBJTiBDVUkgTk9OIFNJQU5PIFNUQVRJIFNVRkZJQ0lFTlRJIDIw
+MCBDQVJBVFRFUkkgQUFBQUFBQUFBQUEgQkJCQkJCQkJCQkJCQkJCQkI8L0NhdXN
+hbGU+CiAgICAgIDwvRGF0aUdlbmVyYWxpRG9jdW1lbnRvPgogICAgICA8RGF0aU
+9yZGluZUFjcXVpc3RvPgogICAgICAgIDxSaWZlcmltZW50b051bWVyb0xpbmVhP
+jE8L1JpZmVyaW1lbnRvTnVtZXJvTGluZWE+CiAgICAgICAgPElkRG9jdW1lbnRv
+PjY2Njg1PC9JZERvY3VtZW50bz4KICAgICAgICA8TnVtSXRlbT4xPC9OdW1JdGV
+tPgogICAgICA8L0RhdGlPcmRpbmVBY3F1aXN0bz4KICAgICAgPERhdGlUcmFzcG
+9ydG8+CiAgICAgICAgPERhdGlBbmFncmFmaWNpVmV0dG9yZT4JCQkJCiAgICAgI
+CAgICA8SWRGaXNjYWxlSVZBPgogICAgICAgICAgICA8SWRQYWVzZT5JVDwvSWRQ
+YWVzZT4KICAgICAgICAgICAgPElkQ29kaWNlPjA0NTA3OTkwMTUwPC9JZENvZGl
+jZT4KICAgICAgICAgIDwvSWRGaXNjYWxlSVZBPgogICAgICAgICAgPEFuYWdyYW
+ZpY2E+CiAgICAgICAgICAgIDxEZW5vbWluYXppb25lPlRyYXNwb3J0byBzcGE8L
+0Rlbm9taW5hemlvbmU+CiAgICAgICAgICA8L0FuYWdyYWZpY2E+CiAgICAgICAg
+PC9EYXRpQW5hZ3JhZmljaVZldHRvcmU+CiAgICAgICAgPERhdGFPcmFDb25zZWd
+uYT4yMDEyLTEwLTIyVDE2OjQ2OjEyLjAwMCswMjowMDwvRGF0YU9yYUNvbnNlZ2
+5hPgogICAgICA8L0RhdGlUcmFzcG9ydG8+CiAgICA8L0RhdGlHZW5lcmFsaT4KI
+CAgIDxEYXRpQmVuaVNlcnZpemk+CiAgICAgIDxEZXR0YWdsaW9MaW5lZT4KICAg
+ICAgICA8TnVtZXJvTGluZWE+MTwvTnVtZXJvTGluZWE+CiAgICAgICAgPENvZGl
+jZUFydGljb2xvPgogICAgICAgICAgPENvZGljZVRpcG8+SU5UPC9Db2RpY2VUaX
+BvPgogICAgICAgICAgPENvZGljZVZhbG9yZT5BUlQxMjM8L0NvZGljZVZhbG9yZ
+T4KICAgICAgICA8L0NvZGljZUFydGljb2xvPgogICAgICAgIDxEZXNjcml6aW9u
+ZT5MQSBERVNDUklaSU9ORSBERUxMQSBGT1JOSVRVUkEgUFVPJyBTVVBFUkFSRSB
+JIENFTlRPIENBUkFUVEVSSSBDSEUgUkFQUFJFU0VOVEFWQU5PIElMIFBSRUNFRE
+VOVEUgTElNSVRFIERJTUVOU0lPTkFMRS4gVEFMRSBMSU1JVEUgTkVMTEEgTlVPV
+kEgVkVSU0lPTkUgRScgU1RBVE8gUE9SVEFUTyBBIE1JTExFIENBUkFUVEVSSTwv
+RGVzY3JpemlvbmU+CiAgICAgICAgPFF1YW50aXRhPjUuMDA8L1F1YW50aXRhPgo
+gICAgICAgIDxQcmV6em9Vbml0YXJpbz4xLjAwPC9QcmV6em9Vbml0YXJpbz4KIC
+AgICAgICA8UHJlenpvVG90YWxlPjUuMDA8L1ByZXp6b1RvdGFsZT4KICAgICAgI
+CA8QWxpcXVvdGFJVkE+MjIuMDA8L0FsaXF1b3RhSVZBPgogICAgICA8L0RldHRh
+Z2xpb0xpbmVlPgogICAgICA8RGV0dGFnbGlvTGluZWU+CiAgICAgICAgPE51bWV
+yb0xpbmVhPjI8L051bWVyb0xpbmVhPgogICAgICAgIDxEZXNjcml6aW9uZT5GT1
+JOSVRVUkUgVkFSSUUgUEVSIFVGRklDSU88L0Rlc2NyaXppb25lPgogICAgICAgI
+DxRdWFudGl0YT4xMC4wMDwvUXVhbnRpdGE+CiAgICAgICAgPFByZXp6b1VuaXRh
+cmlvPjIuMDA8L1ByZXp6b1VuaXRhcmlvPgogICAgICAgIDxQcmV6em9Ub3RhbGU
++MjAuMDA8L1ByZXp6b1RvdGFsZT4KICAgICAgICA8QWxpcXVvdGFJVkE+MjIuMD
+A8L0FsaXF1b3RhSVZBPgogICAgICA8L0RldHRhZ2xpb0xpbmVlPgogICAgICA8R
+GF0aVJpZXBpbG9nbz4KICAgICAgICA8QWxpcXVvdGFJVkE+MjIuMDA8L0FsaXF1
+b3RhSVZBPgogICAgICAgIDxJbXBvbmliaWxlSW1wb3J0bz4yNS4wMDwvSW1wb25
+pYmlsZUltcG9ydG8+CiAgICAgICAgPEltcG9zdGE+NS41MDwvSW1wb3N0YT4KIC
+AgICAgICA8RXNpZ2liaWxpdGFJVkE+STwvRXNpZ2liaWxpdGFJVkE+CiAgICAgI
+DwvRGF0aVJpZXBpbG9nbz4KICAgIDwvRGF0aUJlbmlTZXJ2aXppPgogICAgPERh
+dGlQYWdhbWVudG8+CiAgICAgIDxDb25kaXppb25pUGFnYW1lbnRvPlRQMDE8L0N
+vbmRpemlvbmlQYWdhbWVudG8+CiAgICAgIDxEZXR0YWdsaW9QYWdhbWVudG8+Ci
+AgICAgICAgPE1vZGFsaXRhUGFnYW1lbnRvPk1QMDE8L01vZGFsaXRhUGFnYW1lb
+nRvPgogICAgICAgIDxEYXRhU2NhZGVuemFQYWdhbWVudG8+MjAxNS0wMS0zMDwv
+RGF0YVNjYWRlbnphUGFnYW1lbnRvPgogICAgICAgIDxJbXBvcnRvUGFnYW1lbnR
+vPjMyLjUwPC9JbXBvcnRvUGFnYW1lbnRvPgogICAgICA8L0RldHRhZ2xpb1BhZ2
+FtZW50bz4KICAgIDwvRGF0aVBhZ2FtZW50bz4KICA8L0ZhdHR1cmFFbGV0dHJvb
+mljYUJvZHk+CiAgPEZhdHR1cmFFbGV0dHJvbmljYUJvZHk+CiAgICA8RGF0aUdl
+bmVyYWxpPgogICAgICA8RGF0aUdlbmVyYWxpRG9jdW1lbnRvPgogICAgICAgIDx
+UaXBvRG9jdW1lbnRvPlREMDE8L1RpcG9Eb2N1bWVudG8+CiAgICAgICAgPERpdm
+lzYT5FVVI8L0RpdmlzYT4KICAgICAgICA8RGF0YT4yMDE0LTEyLTIwPC9EYXRhP
+gogICAgICAgIDxOdW1lcm8+NDU2PC9OdW1lcm8+CiAgICAgICAgPENhdXNhbGU+
+TEEgRkFUVFVSQSBGQSBSSUZFUklNRU5UTyBBRCBVTkEgT1BFUkFaSU9ORSBBQUF
+BIEJCQkJCQkJCQkJCQkJCQkJCQiBDQ0MgREREREREREREREREREREIEUgRkZGRk
+ZGRkZGRkZGRkZGRkZGRkYgR0dHR0dHR0dHRyBISEhISEhIIElJIExMTExMTExMT
+ExMTExMTExMIE1NTSBOTk5OTiBPTyBQUFBQUFBQUFBQUCBRUVFRIFJSUlIgU1NT
+U1NTU1NTU1NTU1M8L0NhdXNhbGU+CiAgICAgICAgPENhdXNhbGU+U0VHVUUgREV
+TQ1JJWklPTkUgQ0FVU0FMRSBORUwgQ0FTTyBJTiBDVUkgTk9OIFNJQU5PIFNUQV
+RJIFNVRkZJQ0lFTlRJIDIwMCBDQVJBVFRFUkkgQUFBQUFBQUFBQUEgQkJCQkJCQ
+kJCQkJCQkJCQkI8L0NhdXNhbGU+CiAgICAgIDwvRGF0aUdlbmVyYWxpRG9jdW1l
+bnRvPgogICAgICA8RGF0aU9yZGluZUFjcXVpc3RvPgogICAgICAgIDxSaWZlcml
+tZW50b051bWVyb0xpbmVhPjE8L1JpZmVyaW1lbnRvTnVtZXJvTGluZWE+CiAgIC
+AgICAgPElkRG9jdW1lbnRvPjY2Njg1PC9JZERvY3VtZW50bz4KICAgICAgICA8T
+nVtSXRlbT4xPC9OdW1JdGVtPgogICAgICA8L0RhdGlPcmRpbmVBY3F1aXN0bz4K
+ICAgIDwvRGF0aUdlbmVyYWxpPgogICAgPERhdGlCZW5pU2Vydml6aT4KICAgICA
+gPERldHRhZ2xpb0xpbmVlPgogICAgICAgIDxOdW1lcm9MaW5lYT4xPC9OdW1lcm
+9MaW5lYT4KICAgICAgICA8RGVzY3JpemlvbmU+UFJFU1RBWklPTkUgREVMIFNFR
+1VFTlRFIFNFUlZJWklPIFBST0ZFU1NJT05BTEU6IExBIERFU0NSSVpJT05FIERF
+TExBIFBSRVNUQVpJT05FIFBVTycgU1VQRVJBUkUgSSBDRU5UTyBDQVJBVFRFUkk
+gQ0hFIFJBUFBSRVNFTlRBVkFOTyBJTCBQUkVDRURFTlRFIExJTUlURSBESU1FTl
+NJT05BTEUuIFRBTEUgTElNSVRFIE5FTExBIE5VT1ZBIFZFUlNJT05FIEUnIFNUQ
+VRPIFBPUlRBVE8gQSBNSUxMRSBDQVJBVFRFUkk8L0Rlc2NyaXppb25lPgogICAg
+ICAgIDxQcmV6em9Vbml0YXJpbz4yMDAwLjAwPC9QcmV6em9Vbml0YXJpbz4KICA
+gICAgICA8UHJlenpvVG90YWxlPjIwMDAuMDA8L1ByZXp6b1RvdGFsZT4KICAgIC
+AgICA8QWxpcXVvdGFJVkE+MjIuMDA8L0FsaXF1b3RhSVZBPgogICAgICA8L0Rld
+HRhZ2xpb0xpbmVlPgogICAgICA8RGF0aVJpZXBpbG9nbz4KICAgICAgICA8QWxp
+cXVvdGFJVkE+MjIuMDA8L0FsaXF1b3RhSVZBPgogICAgICAgIDxJbXBvbmliaWx
+lSW1wb3J0bz4yMDAwLjAwPC9JbXBvbmliaWxlSW1wb3J0bz4KICAgICAgICA8SW
+1wb3N0YT40NDAuMDA8L0ltcG9zdGE+CiAgICAgICAgPEVzaWdpYmlsaXRhSVZBP
+kk8L0VzaWdpYmlsaXRhSVZBPgogICAgICA8L0RhdGlSaWVwaWxvZ28+CiAgICA8
+L0RhdGlCZW5pU2Vydml6aT4KICAgIDxEYXRpUGFnYW1lbnRvPgogICAgICA8Q29
+uZGl6aW9uaVBhZ2FtZW50bz5UUDAxPC9Db25kaXppb25pUGFnYW1lbnRvPgogIC
+AgICA8RGV0dGFnbGlvUGFnYW1lbnRvPgogICAgICAgIDxNb2RhbGl0YVBhZ2FtZ
+W50bz5NUDE5PC9Nb2RhbGl0YVBhZ2FtZW50bz4KICAgICAgICA8RGF0YVNjYWRl
+bnphUGFnYW1lbnRvPjIwMTUtMDEtMjg8L0RhdGFTY2FkZW56YVBhZ2FtZW50bz4
+KICAgICAgICA8SW1wb3J0b1BhZ2FtZW50bz4yNDQwLjAwPC9JbXBvcnRvUGFnYW
+1lbnRvPgogICAgICA8L0RldHRhZ2xpb1BhZ2FtZW50bz4KICAgIDwvRGF0aVBhZ
+2FtZW50bz4KICA8L0ZhdHR1cmFFbGV0dHJvbmljYUJvZHk+CjwvcDpGYXR0dXJh
+RWxldHRyb25pY2E+CqCCByIwggceMIIGBqADAgECAgQAmWk4MA0GCSqGSIb3DQE
+BCwUAMIGFMQswCQYDVQQGEwJJVDEVMBMGA1UECgwMSU5GT0NFUlQgU1BBMSIwIA
+YDVQQLDBlDZXJ0aWZpY2F0b3JlIEFjY3JlZGl0YXRvMRQwEgYDVQQFEwswNzk0N
+TIxMTAwNjElMCMGA1UEAwwcSW5mb0NlcnQgRmlybWEgUXVhbGlmaWNhdGEgMjAe
+Fw0xODEwMjUxMDAwNDlaFw0yMTEwMjUwMDAwMDBaMIGBMQswCQYDVQQGEwJJVDE
+PMA0GA1UEBAwGQ09SQVRPMR8wHQYDVQQFExZUSU5JVC1DUlRTUkc3NE0xOEE0NT
+lHMRYwFAYDVQQDDA1DT1JBVE8gU0VSR0lPMRcwFQYDVQQuEw4yMDE4NzExNjUwN
+Tg4MjEPMA0GA1UEKgwGU0VSR0lPMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAzhvbAYi42YNPBbUIqgALQnYqy//aj3QrGzRDlw/WqVIkTPVjkBo2YGp
+4JrUTR+Z2NoQqyTOXlqKs7G+weZAA7bMOEgbZJMJyTdc2MX/XPnycn6XOijqlIv
+8yJ9QZW+3gmBj6m5FDHtYqzJkPxZL72Ls+9dEbrGtUqZsYwCu9POc30MSOKAWOh
+w35g5DbyANuAyypgHlguxC5dTSJ92cG2gjL2Z+YctiULZWphav9NkiWTsnuL0aX
+Oo8BBc3X0T+1gUNzvYUsroqGL1nNsmVMPif79kKMIJwhANbnMTSp1sv8pTlGCNn
+BeYDr0hHE/PL2CfdwmX5OAj43A5CZZHjUQwIDAQABo4IDljCCA5IwCQYDVR0TBA
+IwADAlBgNVHRIEHjAcgRpmaXJtYS5kaWdpdGFsZUBpbmZvY2VydC5pdDCB5wYDV
+R0fBIHfMIHcMDKgMKAuhixodHRwOi8vY3JsLmluZm9jZXJ0Lml0L2NybHMvZmly
+bWEyL0NSTDIzLmNybDCBpaCBoqCBn4aBnGxkYXA6Ly9sZGFwLmluZm9jZXJ0Lml
+0L2NuJTNESW5mb0NlcnQlMjBGaXJtYSUyMFF1YWxpZmljYXRhJTIwMiUyMENSTD
+IzLG91JTNEQ2VydGlmaWNhdG9yZSUyMEFjY3JlZGl0YXRvLG8lM0RJTkZPQ0VSV
+CUyMFNQQSxjJTNESVQ/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDBuBggrBgEF
+BQcBAQRiMGAwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLnNjLmluZm9jZXJ0Lml
+0LzA1BggrBgEFBQcwAoYpaHR0cDovL2NlcnQuaW5mb2NlcnQuaXQvY2EyL2Zpcm
+1hMi9DQS5jcnQwbwYDVR0gBGgwZjBPBgYrTCQBASAwRTBDBggrBgEFBQcCARY3a
+HR0cDovL3d3dy5maXJtYS5pbmZvY2VydC5pdC9kb2N1bWVudGF6aW9uZS9tYW51
+YWxpLnBocDAIBgYrTBgBAQIwCQYHBACL7EABAjCBhAYIKwYBBQUHAQMEeDB2MAg
+GBgQAjkYBATAIBgYEAI5GAQQwCwYGBACORgEDAgEUMBMGBgQAjkYBBjAJBgcEAI
+5GAQYBMD4GBgQAjkYBBTA0MDIWLGh0dHBzOi8vd3d3LmZpcm1hLmluZm9jZXJ0L
+ml0L3BkZi9QS0ktRFMucGRmEwJFTjAOBgNVHQ8BAf8EBAMCBkAwKAYDVR0JBCEw
+HzAdBggrBgEFBQcJATERGA8xOTc0MDgxODAwMDAwMFowgbIGA1UdIwSBqjCBp4A
+Uk90h/APQFQpyraPM1ZoJnTiLnemhgYukgYgwgYUxCzAJBgNVBAYTAklUMRUwEw
+YDVQQKDAxJTkZPQ0VSVCBTUEExIjAgBgNVBAsMGUNlcnRpZmljYXRvcmUgQWNjc
+mVkaXRhdG8xFDASBgNVBAUTCzA3OTQ1MjExMDA2MSUwIwYDVQQDDBxJbmZvQ2Vy
+dCBGaXJtYSBRdWFsaWZpY2F0YSAyggEBMB0GA1UdDgQWBBQC+5alhufm+HCHTCg
+81oGQIoDmvjANBgkqhkiG9w0BAQsFAAOCAQEAAIHw1SdESPUrScc75vO6lzDTKo
+TWWduV9FqUN7gI0TVMlFmjoHccCs9J/RHM/wyRaQgaUULGo80aB5C9Ps5ZceVU+
+LbDRALN4UHg56prc04fVXzdltdIbe94ipQQfgqnWcO+z3fYtL3q/aBE54tRGPiY
+BpbKIl9I7VwvMUNkJ7LNYZcM4wm9Ejj+yQUqzfe+MskIaM8PnvQJLcXGuNmWStX
+ExKjWgeggIDy2+7r1lkVgACOv4KXYXPXvzr+TbjrLtpXSAelYvrCIdYTgAPPQzw
+G9KJjaZgAWzJZQJ1STzCnnylg1gMSVbUNtnAsobwJMnX602ZOdw65HsV8f2lHHK
+DGCAvwwggL4AgEBMIGOMIGFMQswCQYDVQQGEwJJVDEVMBMGA1UECgwMSU5GT0NF
+UlQgU1BBMSIwIAYDVQQLDBlDZXJ0aWZpY2F0b3JlIEFjY3JlZGl0YXRvMRQwEgY
+DVQQFEwswNzk0NTIxMTAwNjElMCMGA1UEAwwcSW5mb0NlcnQgRmlybWEgUXVhbG
+lmaWNhdGEgMgIEAJlpODANBglghkgBZQMEAgEFAKCCAT4wGAYJKoZIhvcNAQkDM
+QsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTgxMjIxMTU1ODEzWjAvBgkq
+hkiG9w0BCQQxIgQgNOm1eVRN+DqSfoOxwlk6r+TguNLak0hU+Lf4SaAMwxUwgdI
+GCyqGSIb3DQEJEAIvMYHCMIG/MIG8MIG5BCCSL/SmwV+hCfetFWZgJp3KfvusfJ
+zeD4S3B4nKkumawjCBlDCBi6SBiDCBhTELMAkGA1UEBhMCSVQxFTATBgNVBAoMD
+ElORk9DRVJUIFNQQTEiMCAGA1UECwwZQ2VydGlmaWNhdG9yZSBBY2NyZWRpdGF0
+bzEUMBIGA1UEBRMLMDc5NDUyMTEwMDYxJTAjBgNVBAMMHEluZm9DZXJ0IEZpcm1
+hIFF1YWxpZmljYXRhIDICBACZaTgwDQYJKoZIhvcNAQELBQAEggEABrraEzS4n6
+SW2S9C5e0lEnqJehEEz4riodSsf79ZpNLsjZ88NMkQHR/Gy+q306NFA0KopfSKg
+RmnbMXNKj1hSmLKaI7O6R+vfAwTs15/3VBaK86zCvzr1ig2zOSk2wlo2o64EiId
+qDtOi9C7kTKIp4mC74QSLQvQf4dxA6mxzrw3jM9Su3nodwNq637rRcqverBPMK0
+ViEWIZyjzp/eClugD+ngGSmcEEImOE2aAXwPZTH8lhgPECTE10q2hc4567ZBdRj
+EevLisiqLSY6NuE137XOeradGUB44iV/YCFO77HakttpcnZ8SkEausjuWIH3/y/
+BUi2EVDR4jtbdDTkA==
\ No newline at end of file
diff --git a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
index 1bd9c0486cbf..7a2fb9b76965 100644
--- a/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
+++ b/l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
@@ -511,3 +511,12 @@ def test_22_xml_import(self):
[('invoice_id', '=', invoice.id)])
self.assertEqual(payment_data[0].payment_methods[0].penalty_date,
date(2015, 5, 1))
+
+ def test_23_xml_import(self):
+ # Testing CAdES signature, base64 encoded with newlines
+ res = self.run_wizard(
+ 'test23', 'IT01234567890_FPR04.base64.xml.p7m',
+ 'IT01234567890_FPR04.xml.p7m')
+ invoice_ids = res.get('domain')[0][2]
+ invoices = self.invoice_model.browse(invoice_ids)
+ self.assertEqual(len(invoices), 2)
From 0103c81760654a1b33f2eed6434f263eda9f36fa Mon Sep 17 00:00:00 2001
From: SimoRubi
Date: Tue, 4 Jun 2019 14:36:50 +0200
Subject: [PATCH 071/236] [REF] l10n_it_fatturapa_in: Fix lint warnings
---
l10n_it_fatturapa_in/models/account.py | 2 +-
l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/l10n_it_fatturapa_in/models/account.py b/l10n_it_fatturapa_in/models/account.py
index 84a5d9f4bb89..a4d852df1668 100644
--- a/l10n_it_fatturapa_in/models/account.py
+++ b/l10n_it_fatturapa_in/models/account.py
@@ -123,7 +123,7 @@ def set_einvoice_amount(self, fattura):
})
-class fatturapa_article_code(models.Model):
+class FatturapaArticleCode(models.Model):
# _position = ['2.2.1.3']
_name = "fatturapa.article.code"
_description = 'E-bill Article Code'
diff --git a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
index 28f34fb109ad..bd3579f87897 100644
--- a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
+++ b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
@@ -408,7 +408,7 @@ def _prepareInvoiceLine(self, credit_account_id, line, wt_found=False):
return retLine
- def _prepareRelDocsLine(self, invoice_id, line, type):
+ def _prepareRelDocsLine(self, invoice_id, line, doc_type):
res = []
lineref = line.RiferimentoNumeroLinea or False
IdDoc = line.IdDocumento or 'Error'
@@ -430,7 +430,7 @@ def _prepareRelDocsLine(self, invoice_id, line, type):
if invoice_lines:
invoice_lineid = invoice_lines[0].id
val = {
- 'type': type,
+ 'type': doc_type,
'name': IdDoc,
'lineRef': numline,
'invoice_line_id': invoice_lineid,
@@ -444,7 +444,7 @@ def _prepareRelDocsLine(self, invoice_id, line, type):
res.append(val)
else:
val = {
- 'type': type,
+ 'type': doc_type,
'name': IdDoc,
'invoice_line_id': invoice_lineid,
'invoice_id': invoice_id,
@@ -509,14 +509,14 @@ def _prepareWelfareLine(self, invoice_id, line):
return res
- def _prepareDiscRisePriceLine(self, id, line):
+ def _prepareDiscRisePriceLine(self, line_id, line):
Tipo = line.Tipo or False
Percentuale = line.Percentuale and float(line.Percentuale) or 0.0
Importo = line.Importo and float(line.Importo) or 0.0
res = {
'percentage': Percentuale,
'amount': Importo,
- self.env.context.get('drtype'): id,
+ self.env.context.get('drtype'): line_id,
}
res['name'] = Tipo
From e4f9ad66bc040b4eb84a39d631aaf5185b5c365e Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Fri, 21 Jun 2019 20:05:26 +0000
Subject: [PATCH 072/236] l10n_it_fatturapa_in 12.0.1.2.1
---
l10n_it_fatturapa_in/__manifest__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/l10n_it_fatturapa_in/__manifest__.py b/l10n_it_fatturapa_in/__manifest__.py
index f369afc84b29..d5d34e068813 100644
--- a/l10n_it_fatturapa_in/__manifest__.py
+++ b/l10n_it_fatturapa_in/__manifest__.py
@@ -6,7 +6,7 @@
{
'name': 'Italian Localization - Fattura elettronica - Ricezione',
- 'version': '12.0.1.2.0',
+ 'version': '12.0.1.2.1',
"development_status": "Beta",
'category': 'Localization/Italy',
'summary': 'Ricezione fatture elettroniche',
From e18c2fe79b1c0510d2539aeb6cdbfa64c16d3cc8 Mon Sep 17 00:00:00 2001
From: Lorenzo Battistini
Date: Wed, 26 Jun 2019 06:49:28 +0000
Subject: [PATCH 073/236] Translated using Weblate (Italian)
Currently translated at 95.3% (184 of 193 strings)
Translation: l10n-italy-12.0/l10n-italy-12.0-l10n_it_fatturapa_in
Translate-URL: https://translation.odoo-community.org/projects/l10n-italy-12-0/l10n-italy-12-0-l10n_it_fatturapa_in/it/
---
l10n_it_fatturapa_in/i18n/it.po | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/l10n_it_fatturapa_in/i18n/it.po b/l10n_it_fatturapa_in/i18n/it.po
index dda457f19800..896f7f046f1f 100644
--- a/l10n_it_fatturapa_in/i18n/it.po
+++ b/l10n_it_fatturapa_in/i18n/it.po
@@ -7,15 +7,15 @@ msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-09-27 08:07+0000\n"
-"PO-Revision-Date: 2019-03-07 16:53+0000\n"
-"Last-Translator: Sergio Zanchetta \n"
+"PO-Revision-Date: 2019-06-26 09:42+0000\n"
+"Last-Translator: Lorenzo Battistini \n"
"Language-Team: \n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.4\n"
+"X-Generator: Weblate 3.6.1\n"
#. module: l10n_it_fatturapa_in
#: model_terms:ir.ui.view,arch_db:l10n_it_fatturapa_in.view_account_config_settings_ftpa_in
@@ -980,15 +980,12 @@ msgstr "Da registrare"
#. module: l10n_it_fatturapa_in
#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:315
-#, fuzzy, python-format
-#| msgid ""
-#| "Line '%s': Too many taxes with percentage equals to '%s'.\n"
-#| "Fix it if required"
+#, python-format
msgid ""
"Too many taxes with percentage equals to '%s'.\n"
"Fix it if required"
msgstr ""
-"Riga \"%s\": troppe imposte con aliquota pari a\"%s\".\n"
+"Troppe imposte con aliquota uguale a\"%s\".\n"
"Correggere se necessario"
#. module: l10n_it_fatturapa_in
From 96c8e528289aeba37fe3a7601b8f86d6e8293913 Mon Sep 17 00:00:00 2001
From: eLBati
Date: Tue, 26 Mar 2019 17:35:40 +0100
Subject: [PATCH 074/236] FIX l10n_it_fatturapa_in: log inconsistency when
multiple exemption taxes are found, so that user is informed IMP module name
---
l10n_it_fatturapa_in/__manifest__.py | 2 +-
l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py | 9 ++++++++-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/l10n_it_fatturapa_in/__manifest__.py b/l10n_it_fatturapa_in/__manifest__.py
index d5d34e068813..c549d91ef4cd 100644
--- a/l10n_it_fatturapa_in/__manifest__.py
+++ b/l10n_it_fatturapa_in/__manifest__.py
@@ -5,7 +5,7 @@
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
{
- 'name': 'Italian Localization - Fattura elettronica - Ricezione',
+ 'name': 'ITA - Fattura elettronica - Ricezione',
'version': '12.0.1.2.1',
"development_status": "Beta",
'category': 'Localization/Italy',
diff --git a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
index bd3579f87897..da09d1c5be5f 100644
--- a/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
+++ b/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
@@ -286,12 +286,19 @@ def _prepare_generic_line_data(self, line):
('type_tax_use', '=', 'purchase'),
('kind_id.code', '=', line.Natura),
('amount', '=', 0.0),
- ], order='sequence', limit=1)
+ ], order='sequence')
if not account_taxes:
self.log_inconsistency(
_('No tax with percentage '
'%s and nature %s found. Please configure this tax.')
% (line.AliquotaIVA, line.Natura))
+ if len(account_taxes) > 1:
+ self.log_inconsistency(
+ _('Too many taxes with percentage '
+ '%s and nature %s found. Tax %s with lower priority has '
+ 'been set on invoice lines.')
+ % (line.AliquotaIVA, line.Natura,
+ account_taxes[0].description))
else:
account_taxes = account_tax_model.search(
[
From 76cb88d41f1b1c0b3a02d79988f4a9e92cca86a6 Mon Sep 17 00:00:00 2001
From: oca-travis
Date: Sun, 30 Jun 2019 16:23:30 +0000
Subject: [PATCH 075/236] [UPD] Update l10n_it_fatturapa_in.pot
---
.../i18n/l10n_it_fatturapa_in.pot | 50 +++++++++++--------
1 file changed, 28 insertions(+), 22 deletions(-)
diff --git a/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot b/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
index 740d9a367ab0..e2472dc93ffe 100644
--- a/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
+++ b/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
@@ -77,7 +77,7 @@ msgid "Attachments"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:670
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:677
#, python-format
msgid "BIC is required and not exist in Xml\n"
"Curr bank data is: \n"
@@ -93,7 +93,7 @@ msgid "Bill"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1163
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1170
#, python-format
msgid "Bill total %s is different from document total amount %s"
msgstr ""
@@ -151,7 +151,7 @@ msgid "Company Name field contains '%s'. Your System contains '%s'"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1178
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1185
#, python-format
msgid "Computed amount untaxed %s is different from summary data %s"
msgstr ""
@@ -218,7 +218,7 @@ msgid "Default products used in electronic supplier invoices"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:725
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:732
#, python-format
msgid "Define a purchase journal for this company: '%s' (id: %d)."
msgstr ""
@@ -261,7 +261,7 @@ msgid "Display Name"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:831
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:838
#, python-format
msgid "Document type %s not handled."
msgstr ""
@@ -363,7 +363,7 @@ msgid "File Size"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1201
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1208
#, python-format
msgid "File is linked to bills yet."
msgstr ""
@@ -399,7 +399,7 @@ msgid "General Data"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:558
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:565
#, python-format
msgid "Global bill discount from document general data"
msgstr ""
@@ -619,7 +619,7 @@ msgid "Name field contains '%s'. Your System contains '%s'"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:646
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:653
#, python-format
msgid "Name of Bank with BIC '%s' is not set. Can't create bank"
msgstr ""
@@ -630,7 +630,7 @@ msgid "Nature"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:808
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:815
#, python-format
msgid "No currency found with code %s."
msgstr ""
@@ -642,7 +642,7 @@ msgid "No tax with percentage %s and nature %s found. Please configure this tax.
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:892
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:899
#, python-format
msgid "No withholding tax found with document payment reason %s and rate %s."
msgstr ""
@@ -689,19 +689,19 @@ msgid "Other Administrative Data"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:588
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:595
#, python-format
msgid "Payment method %s is not defined in your system."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1122
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1129
#, python-format
msgid "Payment method code %s is incorrect."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1117
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1124
#, python-format
msgid "Payment method code not found in document."
msgstr ""
@@ -870,7 +870,7 @@ msgid "Tax Withholding"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:479
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:486
#, python-format
msgid "Tax kind %s not found"
msgstr ""
@@ -886,7 +886,7 @@ msgid "Text Reference"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:880
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:887
#, python-format
msgid "The bill contains withholding tax with payment reason %s, but such a tax is not found in your system. Please set it."
msgstr ""
@@ -928,7 +928,13 @@ msgid "To Register"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:315
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:297
+#, python-format
+msgid "Too many taxes with percentage %s and nature %s found. Tax %s with lower priority has been set on invoice lines."
+msgstr ""
+
+#. module: l10n_it_fatturapa_in
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:322
#, python-format
msgid "Too many taxes with percentage equals to '%s'.\n"
"Fix it if required"
@@ -1012,7 +1018,7 @@ msgid "Welfare Fund"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:506
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:513
#, python-format
msgid "Welfare Fund %s not present in your system."
msgstr ""
@@ -1029,31 +1035,31 @@ msgid "Welfare Fund Details"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:940
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:947
#, python-format
msgid "Welfare Fund data %s has withholding tax but no withholding tax was found in the system."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:488
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:495
#, python-format
msgid "Welfare Fund is not defined."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:932
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:939
#, python-format
msgid "Welfare Fund: %s"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:377
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:384
#, python-format
msgid "XML contains tax %s. Product %s has tax %s. Using the XML one"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:306
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:313
#, python-format
msgid "XML contains tax with percentage '%s' but it does not exist in your system"
msgstr ""
From e2de06f8d81b4b4c97292149bdc32034d970552c Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Sun, 30 Jun 2019 16:52:21 +0000
Subject: [PATCH 076/236] [UPD] README.rst
---
l10n_it_fatturapa_in/README.rst | 6 +++---
l10n_it_fatturapa_in/static/description/index.html | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/l10n_it_fatturapa_in/README.rst b/l10n_it_fatturapa_in/README.rst
index 84e315f1c5b0..f5b30b55b77b 100644
--- a/l10n_it_fatturapa_in/README.rst
+++ b/l10n_it_fatturapa_in/README.rst
@@ -1,6 +1,6 @@
-======================================================
-Italian Localization - Fattura elettronica - Ricezione
-======================================================
+=====================================
+ITA - Fattura elettronica - Ricezione
+=====================================
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
diff --git a/l10n_it_fatturapa_in/static/description/index.html b/l10n_it_fatturapa_in/static/description/index.html
index f060d4f193a4..b08f291b8e4e 100644
--- a/l10n_it_fatturapa_in/static/description/index.html
+++ b/l10n_it_fatturapa_in/static/description/index.html
@@ -4,7 +4,7 @@
-Italian Localization - Fattura elettronica - Ricezione
+ITA - Fattura elettronica - Ricezione
-
-
Italian Localization - Fattura elettronica - Ricezione
+
+
ITA - Fattura elettronica - Ricezione
Date: Fri, 26 Jul 2019 14:48:55 +0000
Subject: [PATCH 086/236] [UPD] Update l10n_it_fatturapa_in.pot
---
.../i18n/l10n_it_fatturapa_in.pot | 38 +++++++++----------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot b/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
index f91f1bfd4086..f7809d13d8bf 100644
--- a/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
+++ b/l10n_it_fatturapa_in/i18n/l10n_it_fatturapa_in.pot
@@ -77,7 +77,7 @@ msgid "Attachments"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:702
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:701
#, python-format
msgid "BIC is required and not exist in Xml\n"
"Curr bank data is: \n"
@@ -93,7 +93,7 @@ msgid "Bill"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1195
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1194
#, python-format
msgid "Bill total %s is different from document total amount %s"
msgstr ""
@@ -151,7 +151,7 @@ msgid "Company Name field contains '%s'. Your System contains '%s'"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1210
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1209
#, python-format
msgid "Computed amount untaxed %s is different from summary data %s"
msgstr ""
@@ -224,7 +224,7 @@ msgid "Default products used in electronic supplier invoices"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:757
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:756
#, python-format
msgid "Define a purchase journal for this company: '%s' (id: %d)."
msgstr ""
@@ -267,7 +267,7 @@ msgid "Display Name"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:863
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:862
#, python-format
msgid "Document type %s not handled."
msgstr ""
@@ -369,7 +369,7 @@ msgid "File Size"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1233
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1232
#, python-format
msgid "File is linked to bills yet."
msgstr ""
@@ -405,7 +405,7 @@ msgid "General Data"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:590
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:589
#, python-format
msgid "Global bill discount from document general data"
msgstr ""
@@ -625,7 +625,7 @@ msgid "Name field contains '%s'. Your System contains '%s'"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:678
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:677
#, python-format
msgid "Name of Bank with BIC '%s' is not set. Can't create bank"
msgstr ""
@@ -636,7 +636,7 @@ msgid "Nature"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:840
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:839
#, python-format
msgid "No currency found with code %s."
msgstr ""
@@ -648,7 +648,7 @@ msgid "No tax with percentage %s and nature %s found. Please configure this tax.
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:924
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:923
#, python-format
msgid "No withholding tax found with document payment reason %s and rate %s."
msgstr ""
@@ -695,19 +695,19 @@ msgid "Other Administrative Data"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:620
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:619
#, python-format
msgid "Payment method %s is not defined in your system."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1154
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1153
#, python-format
msgid "Payment method code %s is incorrect."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1149
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1148
#, python-format
msgid "Payment method code not found in document."
msgstr ""
@@ -876,7 +876,7 @@ msgid "Tax Withholding"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:511
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:510
#, python-format
msgid "Tax kind %s not found"
msgstr ""
@@ -892,7 +892,7 @@ msgid "Text Reference"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:912
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:911
#, python-format
msgid "The bill contains withholding tax with payment reason %s, but such a tax is not found in your system. Please set it."
msgstr ""
@@ -1024,7 +1024,7 @@ msgid "Welfare Fund"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:538
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:537
#, python-format
msgid "Welfare Fund %s not present in your system."
msgstr ""
@@ -1041,19 +1041,19 @@ msgid "Welfare Fund Details"
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:972
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:971
#, python-format
msgid "Welfare Fund data %s has withholding tax but no withholding tax was found in the system."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:520
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:519
#, python-format
msgid "Welfare Fund is not defined."
msgstr ""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:964
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:963
#, python-format
msgid "Welfare Fund: %s"
msgstr ""
From 268cbf8e4317ffc06c50ebc31a572350380b1d32 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Fri, 26 Jul 2019 15:55:40 +0000
Subject: [PATCH 087/236] l10n_it_fatturapa_in 12.0.1.3.2
---
l10n_it_fatturapa_in/__manifest__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/l10n_it_fatturapa_in/__manifest__.py b/l10n_it_fatturapa_in/__manifest__.py
index d92f89f46b65..a1e6655db05f 100644
--- a/l10n_it_fatturapa_in/__manifest__.py
+++ b/l10n_it_fatturapa_in/__manifest__.py
@@ -6,7 +6,7 @@
{
'name': 'ITA - Fattura elettronica - Ricezione',
- 'version': '12.0.1.3.1',
+ 'version': '12.0.1.3.2',
"development_status": "Beta",
'category': 'Localization/Italy',
'summary': 'Ricezione fatture elettroniche',
From 1506e5655521e32d833285f8d362ea1524e2cfe3 Mon Sep 17 00:00:00 2001
From: OCA Transbot
Date: Sat, 27 Jul 2019 16:59:31 +0000
Subject: [PATCH 088/236] Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
Translation: l10n-italy-12.0/l10n-italy-12.0-l10n_it_fatturapa_in
Translate-URL: https://translation.odoo-community.org/projects/l10n-italy-12-0/l10n-italy-12-0-l10n_it_fatturapa_in/
---
l10n_it_fatturapa_in/i18n/it.po | 38 ++++++++++++++++-----------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/l10n_it_fatturapa_in/i18n/it.po b/l10n_it_fatturapa_in/i18n/it.po
index f9e03a44c6af..930499552f17 100644
--- a/l10n_it_fatturapa_in/i18n/it.po
+++ b/l10n_it_fatturapa_in/i18n/it.po
@@ -89,7 +89,7 @@ msgid "Attachments"
msgstr "Allegati"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:702
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:701
#, python-format
msgid ""
"BIC is required and not exist in Xml\n"
@@ -109,7 +109,7 @@ msgid "Bill"
msgstr "Fattura"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1195
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1194
#, python-format
msgid "Bill total %s is different from document total amount %s"
msgstr "Il totale fattura %s è diverso dall'importo totale del documento %s"
@@ -167,7 +167,7 @@ msgid "Company Name field contains '%s'. Your System contains '%s'"
msgstr "Il campo nome azienda contiene \"%s\", il sistema contiene \"%s\""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1210
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1209
#, python-format
msgid "Computed amount untaxed %s is different from summary data %s"
msgstr "L'imponibile calcolato %s è diverso da quello dei dati di riepilogo %s"
@@ -242,7 +242,7 @@ msgid "Default products used in electronic supplier invoices"
msgstr "Prodotti predefiniti usati nelle fatture elettroniche fornitore"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:757
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:756
#, python-format
msgid "Define a purchase journal for this company: '%s' (id: %d)."
msgstr "Definire un registro di acquisto per questa azienda: \"%s\" (ID: %d)."
@@ -285,7 +285,7 @@ msgid "Display Name"
msgstr "Nome visualizzato"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:863
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:862
#, python-format
msgid "Document type %s not handled."
msgstr "Tipo documento %s non gestito."
@@ -387,7 +387,7 @@ msgid "File Size"
msgstr "Dimensione file"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1233
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1232
#, python-format
msgid "File is linked to bills yet."
msgstr "Il file è già collegato a delle fatture."
@@ -423,7 +423,7 @@ msgid "General Data"
msgstr "Dati generali"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:590
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:589
#, python-format
msgid "Global bill discount from document general data"
msgstr "Sconto globale fattura dai dati generali del documento"
@@ -655,7 +655,7 @@ msgid "Name field contains '%s'. Your System contains '%s'"
msgstr "Il campo nome contiene \"%s\", il sistema contiene \"%s\""
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:678
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:677
#, python-format
msgid "Name of Bank with BIC '%s' is not set. Can't create bank"
msgstr "Impossibile creare la banca con BIC \"%s\", il nome non è impostato."
@@ -666,7 +666,7 @@ msgid "Nature"
msgstr "Natura"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:840
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:839
#, python-format
msgid "No currency found with code %s."
msgstr "Valuta con codice %s non trovata."
@@ -680,7 +680,7 @@ msgstr ""
"Imposta con aliquota %s e natura %s non trovata, configurare questa imposta."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:924
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:923
#, python-format
msgid "No withholding tax found with document payment reason %s and rate %s."
msgstr "Ritenuta d'acconto con causale documento %s e aliquota %s non trovata."
@@ -731,19 +731,19 @@ msgid "Other Administrative Data"
msgstr "Altri dati gestionali"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:620
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:619
#, python-format
msgid "Payment method %s is not defined in your system."
msgstr "Modalità di pagamento %s non definita nel sistema."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1154
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1153
#, python-format
msgid "Payment method code %s is incorrect."
msgstr "Codice modalità di pagamento %s non corretto."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1149
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:1148
#, python-format
msgid "Payment method code not found in document."
msgstr "Codice modalità di pagamento non trovato nel documento."
@@ -918,7 +918,7 @@ msgid "Tax Withholding"
msgstr "Ritenuta d'acconto"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:511
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:510
#, python-format
msgid "Tax kind %s not found"
msgstr "Tipo imposta %s non trovato"
@@ -937,7 +937,7 @@ msgid "Text Reference"
msgstr "Riferimento testo"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:912
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:911
#, python-format
msgid ""
"The bill contains withholding tax with payment reason %s, but such a tax is "
@@ -1092,7 +1092,7 @@ msgid "Welfare Fund"
msgstr "Cassa previdenziale"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:538
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:537
#, python-format
msgid "Welfare Fund %s not present in your system."
msgstr "Cassa previdenziale %s non presente nel sistema."
@@ -1109,7 +1109,7 @@ msgid "Welfare Fund Details"
msgstr "Dettagli cassa previdenziale"
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:972
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:971
#, python-format
msgid ""
"Welfare Fund data %s has withholding tax but no withholding tax was found in "
@@ -1119,13 +1119,13 @@ msgstr ""
"presenti nel sistema."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:520
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:519
#, python-format
msgid "Welfare Fund is not defined."
msgstr "Cassa previdenziale non definita."
#. module: l10n_it_fatturapa_in
-#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:964
+#: code:addons/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py:963
#, python-format
msgid "Welfare Fund: %s"
msgstr "Cassa previdenziale: %s"
From d5df8fd64afbea9fb1988995aadc299cc4ab2442 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Mon, 29 Jul 2019 03:03:50 +0000
Subject: [PATCH 089/236] [UPD] README.rst
---
l10n_it_fatturapa_in/static/description/index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/l10n_it_fatturapa_in/static/description/index.html b/l10n_it_fatturapa_in/static/description/index.html
index b08f291b8e4e..c63536c197d9 100644
--- a/l10n_it_fatturapa_in/static/description/index.html
+++ b/l10n_it_fatturapa_in/static/description/index.html
@@ -3,7 +3,7 @@
-
+
ITA - Fattura elettronica - Ricezione