Skip to content

Commit

Permalink
[FIX] l10n_it_fatturapa_in: fattura con arrotondamento importata con …
Browse files Browse the repository at this point in the history
…dettaglio minimo

Risolve OCA#2093.

Quando viene importata con dettaglio minimo la fattura non ha righe,
la max() fallisce su recordset vuoto.
  • Loading branch information
TheMule71 committed Feb 24, 2021
1 parent 32434ce commit 164ed6f
Show file tree
Hide file tree
Showing 3 changed files with 105 additions and 1 deletion.
94 changes: 94 additions & 0 deletions l10n_it_fatturapa_in/tests/data/IT05979361218_016.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<p:FatturaElettronica versione="FPA12" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 http://www.fatturapa.gov.it/export/fatturazione/sdi/fatturapa/v1.2/Schema_del_file_xml_FatturaPA_versione_1.2.xsd">
<FatturaElettronicaHeader>
<DatiTrasmissione>
<IdTrasmittente>
<IdPaese>IT</IdPaese>
<IdCodice>05979361218</IdCodice>
</IdTrasmittente>
<ProgressivoInvio>006</ProgressivoInvio>
<FormatoTrasmissione>FPA12</FormatoTrasmissione>
<CodiceDestinatario>UFPQ1O</CodiceDestinatario>
</DatiTrasmissione>
<CedentePrestatore>
<DatiAnagrafici>
<IdFiscaleIVA>
<IdPaese>IT</IdPaese>
<IdCodice>05979361218</IdCodice>
</IdFiscaleIVA>
<Anagrafica>
<Denominazione>SOCIETA' ALPHA BETA SRL</Denominazione>
</Anagrafica>
<RegimeFiscale>RF02</RegimeFiscale>
</DatiAnagrafici>
<Sede>
<Indirizzo>VIALE ROMA 543B</Indirizzo>
<CAP>07100</CAP>
<Comune>SASSARI</Comune>
<Provincia>SS</Provincia>
<Nazione>IT</Nazione>
</Sede>
</CedentePrestatore>
<CessionarioCommittente>
<DatiAnagrafici>
<CodiceFiscale>80213330584</CodiceFiscale>
<Anagrafica>
<Denominazione>AMMINISTRAZIONE BETA</Denominazione>
</Anagrafica>
</DatiAnagrafici>
<Sede>
<Indirizzo>VIA TORINO 38-B</Indirizzo>
<CAP>00145</CAP>
<Comune>ROMA</Comune>
<Provincia>RM</Provincia>
<Nazione>IT</Nazione>
</Sede>
</CessionarioCommittente>
</FatturaElettronicaHeader>
<FatturaElettronicaBody xmlns="">
<DatiGenerali>
<DatiGeneraliDocumento>
<TipoDocumento>TD01</TipoDocumento>
<Divisa>EUR</Divisa>
<Data>2019-05-11</Data>
<Numero>852S1</Numero>
<ImportoTotaleDocumento>34.32</ImportoTotaleDocumento>
<Causale>Rif ordine 908</Causale>
</DatiGeneraliDocumento>
</DatiGenerali>
<DatiBeniServizi>
<DettaglioLinee>
<NumeroLinea>1</NumeroLinea>
<Descrizione>USB4</Descrizione>
<Quantita>1.00</Quantita>
<UnitaMisura>Pz.</UnitaMisura>
<PrezzoUnitario>18.07</PrezzoUnitario>
<PrezzoTotale>18.07</PrezzoTotale>
<AliquotaIVA>0.00</AliquotaIVA>
<Natura>N4</Natura>
</DettaglioLinee>
<DettaglioLinee>
<NumeroLinea>2</NumeroLinea>
<Descrizione>USB</Descrizione>
<Quantita>1.00</Quantita>
<UnitaMisura>Pz.</UnitaMisura>
<PrezzoUnitario>16.60</PrezzoUnitario>
<PrezzoTotale>16.60</PrezzoTotale>
<AliquotaIVA>0.00</AliquotaIVA>
<Natura>N4</Natura>
</DettaglioLinee>
<DatiRiepilogo>
<AliquotaIVA>0.00</AliquotaIVA>
<Natura>N4</Natura>
<Arrotondamento>-0.35</Arrotondamento>
<ImponibileImporto>34.32</ImponibileImporto>
<Imposta>0.00</Imposta>
<EsigibilitaIVA>I</EsigibilitaIVA>
<RiferimentoNormativo>Esenzione Art.8 comma 1 DPR 633/72</RiferimentoNormativo>
</DatiRiepilogo>
</DatiBeniServizi>
</FatturaElettronicaBody>
</p:FatturaElettronica>
9 changes: 9 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 @@ -679,6 +679,15 @@ def test_45_xml_import_no_duplicate_partner(self):
('vat', 'ilike', '05979361218')
])), 1)

def test_46_xml_import(self):
wiz_values = { 'e_invoice_detail_level': '0' }
res = self.run_wizard('test46', 'IT05979361218_016.xml', wiz_values=wiz_values)
invoice_id = res.get('domain')[0][2][0]
invoice = self.invoice_model.browse(invoice_id)
self.assertAlmostEqual(invoice.e_invoice_amount_untaxed, 34.32)
self.assertEqual(invoice.e_invoice_amount_tax, 0.0)
self.assertEqual(invoice.e_invoice_amount_total, 34.32)

def test_01_xml_link(self):
"""
E-invoice lines are created.
Expand Down
3 changes: 2 additions & 1 deletion l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py
Original file line number Diff line number Diff line change
Expand Up @@ -1130,7 +1130,8 @@ def set_roundings(self, FatturaBody, invoice):
_('Round up and down tax is not set')
)

line_sequence = max(invoice.invoice_line_ids.mapped('sequence'))
# invoice may have no lines at all if imported with minimum detail level
line_sequence = max(invoice.invoice_line_ids.mapped('sequence') or [0])
line_vals = []
for summary in FatturaBody.DatiBeniServizi.DatiRiepilogo:
to_round = float(summary.Arrotondamento or 0.0)
Expand Down

0 comments on commit 164ed6f

Please sign in to comment.