Skip to content

Commit

Permalink
[FIX] l10n_it_fatturapa_in: Company detection by Fiscal Code
Browse files Browse the repository at this point in the history
  • Loading branch information
SirTakobi authored and eLBati committed Feb 27, 2024
1 parent f8fd285 commit b867c13
Show file tree
Hide file tree
Showing 5 changed files with 126 additions and 5 deletions.
2 changes: 2 additions & 0 deletions l10n_it_fatturapa_in/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
# Copyright 2018 Lorenzo Battistini
# Copyright 2018 Sergio Zanchetta (Associazione PNLUG - Gruppo Odoo)
# Copyright 2022 Marco Colombo (<marco.colombo@phi.technology>)
# Copyright 2023 Simone Rubino - TAKOBI
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
Expand All @@ -17,6 +18,7 @@
"depends": [
"base_vat",
"mail",
"l10n_it_fiscalcode",
"l10n_it_fatturapa",
"l10n_it_fiscal_document_type",
"l10n_it_withholding_tax_reason",
Expand Down
2 changes: 1 addition & 1 deletion l10n_it_fatturapa_in/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
- Lorenzo Battistini \<<lorenzo.battistini@agilebg.com>\>
- Lorenzo Battistini
- Roberto Onnis
- Alessio Gerace
- Sergio Zanchetta \<<https://github.com/primes2h>\>
Expand Down
98 changes: 98 additions & 0 deletions l10n_it_fatturapa_in/tests/data/IT04333730275_FPR17.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='fatturapa_v1.2.xsl'?>
<p:FatturaElettronica versione="FPR12" xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<FatturaElettronicaHeader>
<DatiTrasmissione>
<IdTrasmittente>
<IdPaese>IT</IdPaese>
<IdCodice>04333730275</IdCodice>
</IdTrasmittente>
<ProgressivoInvio>qtungosjgi</ProgressivoInvio>
<FormatoTrasmissione>FPR12</FormatoTrasmissione>
<CodiceDestinatario>ZG4QBXW</CodiceDestinatario>
<ContattiTrasmittente>
</ContattiTrasmittente>
</DatiTrasmissione>
<CedentePrestatore>
<DatiAnagrafici>
<IdFiscaleIVA>
<IdPaese>IT</IdPaese>
<IdCodice>04333730275</IdCodice>
</IdFiscaleIVA>
<CodiceFiscale>04333730275</CodiceFiscale>
<Anagrafica>
<Nome><![CDATA[NOME]]></Nome>
<Cognome><![CDATA[Cognome]]></Cognome>
</Anagrafica>
<RegimeFiscale>RF01</RegimeFiscale>
</DatiAnagrafici>
<Sede>
<Indirizzo>VIALE ROMA 543B</Indirizzo>
<CAP>07100</CAP>
<Comune>SASSARI</Comune>
<Provincia>SS</Provincia>
<Nazione></Nazione>
</Sede>
<Contatti>
</Contatti>
</CedentePrestatore>
<CessionarioCommittente>
<DatiAnagrafici>
<IdFiscaleIVA>
<IdPaese>IT</IdPaese>
<IdCodice>10538570960</IdCodice>
</IdFiscaleIVA>
<CodiceFiscale>10538570960</CodiceFiscale>
<Anagrafica>
<Denominazione><![CDATA[AZIENDA]]></Denominazione>
</Anagrafica>
</DatiAnagrafici>
<Sede>
<Indirizzo>VIA TORINO 38-B</Indirizzo>
<CAP>00145</CAP>
<Comune>ROMA</Comune>
<Provincia>RM</Provincia>
<Nazione>IT</Nazione>
</Sede>
</CessionarioCommittente>
<SoggettoEmittente>TZ</SoggettoEmittente>
</FatturaElettronicaHeader>
<FatturaElettronicaBody>
<DatiGenerali>
<DatiGeneraliDocumento>
<TipoDocumento>TD01</TipoDocumento>
<Divisa>EUR</Divisa>
<Data>2023-08-17</Data>
<Numero>177</Numero>
<ImportoTotaleDocumento>679.14</ImportoTotaleDocumento>
</DatiGeneraliDocumento>
</DatiGenerali>
<DatiBeniServizi>
<DettaglioLinee>
<NumeroLinea>10</NumeroLinea>
<Descrizione><![CDATA[TORTA]]></Descrizione>
<Quantita>34.30000000</Quantita>
<UnitaMisura>KG</UnitaMisura>
<PrezzoUnitario>18.00000000</PrezzoUnitario>
<PrezzoTotale>617.40000000</PrezzoTotale>
<AliquotaIVA>10.00</AliquotaIVA>
</DettaglioLinee>
<DatiRiepilogo>
<AliquotaIVA>10.00</AliquotaIVA>
<ImponibileImporto>617.40</ImponibileImporto>
<Imposta>61.74</Imposta>
<EsigibilitaIVA>I</EsigibilitaIVA>
</DatiRiepilogo>
</DatiBeniServizi>
<DatiPagamento>
<CondizioniPagamento>TP02</CondizioniPagamento>
<DettaglioPagamento>
<ModalitaPagamento>MP05</ModalitaPagamento>
<DataRiferimentoTerminiPagamento>2023-08-17</DataRiferimentoTerminiPagamento>
<GiorniTerminiPagamento>44</GiorniTerminiPagamento>
<DataScadenzaPagamento>2023-09-30</DataScadenzaPagamento>
<ImportoPagamento>679.14</ImportoPagamento>
</DettaglioPagamento>
</DatiPagamento>
</FatturaElettronicaBody>
</p:FatturaElettronica>
16 changes: 16 additions & 0 deletions l10n_it_fatturapa_in/tests/test_import_fatturapa_xml.py
Original file line number Diff line number Diff line change
Expand Up @@ -1055,6 +1055,22 @@ def test_duplicated_vat_on_partners(self):
self.assertFalse(attach.xml_supplier_id)
self.assertTrue(attach.inconsistencies)

def test_xml_import_missing_Denominazione(self):
"""When CedentePrestatore has no Denominazione and the Fiscal Code of a Company,
it is imported as a Company.
"""
res = self.run_wizard(
"test_xml_import_missing_Denominazione",
"IT04333730275_FPR17.xml",
)
bill_model = res.get("res_model")
bill_domain = res.get("domain")
bill = self.env[bill_model].search(bill_domain)

partner = bill.partner_id
self.assertTrue(partner.is_company)
self.assertEqual(partner.fiscalcode, "04333730275")


class TestFatturaPAEnasarco(FatturapaCommon):
def setUp(self):
Expand Down
13 changes: 9 additions & 4 deletions l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2022 Simone Rubino - TAKOBI
# Copyright 2022 ~ 2023 Simone Rubino - TAKOBI
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

import logging
Expand All @@ -13,6 +13,7 @@
from odoo.tools.translate import _

from odoo.addons.base_iban.models.res_partner_bank import pretty_iban
from odoo.addons.l10n_it_fiscalcode.model.res_partner import _check_company_fiscal_code

from . import efattura

Expand Down Expand Up @@ -300,12 +301,16 @@ def getPartnerBase(self, DatiAnagrafici): # noqa: C901
raise UserError(
_("Country Code %s not found in system.") % CountryCode
)
if cf:
is_company = _check_company_fiscal_code(cf)
else:
# This is a weaker condition because
# Denominazione is also present when the partner is a person.
is_company = bool(DatiAnagrafici.Anagrafica.Denominazione)
vals = {
"vat": vat,
"fiscalcode": cf,
"is_company": (
DatiAnagrafici.Anagrafica.Denominazione and True or False
),
"is_company": is_company,
"eori_code": DatiAnagrafici.Anagrafica.CodEORI or "",
"country_id": country_id,
}
Expand Down

0 comments on commit b867c13

Please sign in to comment.