Skip to content

Commit

Permalink
[IMP] l10n_it_fatturapa_in: Test price computation with many digits
Browse files Browse the repository at this point in the history
When price precision is increased during import, the price of the created lines should have been computed using the new precision
  • Loading branch information
SirAionTech committed Nov 20, 2024
1 parent c62d173 commit 9a4f961
Show file tree
Hide file tree
Showing 3 changed files with 114 additions and 0 deletions.
87 changes: 87 additions & 0 deletions l10n_it_fatturapa_in/tests/data/IT01234567890_FPR16.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?>
<q1:FatturaElettronica xmlns:q1="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2" versione="FPR12">
<FatturaElettronicaHeader>
<DatiTrasmissione>
<IdTrasmittente>
<IdPaese>IT</IdPaese>
<IdCodice>02780790107</IdCodice>
</IdTrasmittente>
<ProgressivoInvio>FPR14</ProgressivoInvio>
<FormatoTrasmissione>FPR12</FormatoTrasmissione>
<CodiceDestinatario>0000000</CodiceDestinatario>
<ContattiTrasmittente>
<Telefono>06543534343</Telefono>
<Email>[email protected]</Email>
</ContattiTrasmittente>
<PECDestinatario>[email protected]</PECDestinatario>
</DatiTrasmissione>
<CedentePrestatore>
<DatiAnagrafici>
<IdFiscaleIVA>
<IdPaese>IT</IdPaese>
<IdCodice>02780790107</IdCodice>
</IdFiscaleIVA>
<Anagrafica>
<Denominazione>YourCompany</Denominazione>
</Anagrafica>
<RegimeFiscale>RF01</RegimeFiscale>
</DatiAnagrafici>
<Sede>
<Indirizzo>Via Milano, 1</Indirizzo>
<CAP>00100</CAP>
<Comune>Roma</Comune>
<Provincia>AK</Provincia>
<Nazione>IT</Nazione>
</Sede>
<Contatti>
<Telefono>06543534343</Telefono>
<Email>[email protected]</Email>
</Contatti>
</CedentePrestatore>
<CessionarioCommittente>
<DatiAnagrafici>
<IdFiscaleIVA>
<IdPaese>IT</IdPaese>
<IdCodice>07973780013</IdCodice>
</IdFiscaleIVA>
<CodiceFiscale>07973780013</CodiceFiscale>
<Anagrafica>
<Denominazione>B2B Customer</Denominazione>
</Anagrafica>
</DatiAnagrafici>
<Sede>
<Indirizzo>Via Roma, 1</Indirizzo>
<CAP>16100</CAP>
<Comune>Genova</Comune>
<Provincia>AK</Provincia>
<Nazione>IT</Nazione>
</Sede>
</CessionarioCommittente>
</FatturaElettronicaHeader>
<FatturaElettronicaBody>
<DatiGenerali>
<DatiGeneraliDocumento>
<TipoDocumento>TD01</TipoDocumento>
<Divisa>EUR</Divisa>
<Data>2020-09-30</Data>
<Numero>14481</Numero>
<ImportoTotaleDocumento>81.49</ImportoTotaleDocumento>
</DatiGeneraliDocumento>
</DatiGenerali>
<DatiBeniServizi>
<DettaglioLinee>
<NumeroLinea>1</NumeroLinea>
<Descrizione>Test precisione decimale</Descrizione>
<Quantita>69.00</Quantita>
<PrezzoUnitario>0.968</PrezzoUnitario>
<PrezzoTotale>66.792</PrezzoTotale>
<AliquotaIVA>22.00</AliquotaIVA>
</DettaglioLinee>
<DatiRiepilogo>
<AliquotaIVA>22.00</AliquotaIVA>
<ImponibileImporto>66.79</ImponibileImporto>
<Imposta>14.69</Imposta>
</DatiRiepilogo>
</DatiBeniServizi>
</FatturaElettronicaBody>
</q1:FatturaElettronica>
4 changes: 4 additions & 0 deletions l10n_it_fatturapa_in/tests/fatturapa_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,8 @@ def run_wizard(
):
if module_name is None:
module_name = "l10n_it_fatturapa_in"
if wiz_values is None:
wiz_values = dict()
attach = self.create_attachment(name, file_name, module_name=module_name)
attach.e_invoice_received_date = fields.Datetime.now()
attach_id = attach.id
Expand All @@ -297,6 +299,8 @@ def run_wizard(
active_ids=[attach_id], active_model="fatturapa.attachment.in"
)
)
for wiz_field, wiz_value in wiz_values.items():
setattr(wizard_form, wiz_field, wiz_value)
wizard = wizard_form.save()
return wizard.importFatturaPA()
if mode == "link":
Expand Down
23 changes: 23 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 @@ -1150,6 +1150,29 @@ def test_ignore_global_discount(self):
self.assertEqual(invoice.amount_tax, 5.12)
self.assertEqual(invoice.amount_total, 28.39)

def test_increased_decimal_precision(self):
"""
Increase price decimal precision during import:
computation of line's price is more accurate.
"""
res = self.run_wizard(
"increased_decimal_precision",
"IT01234567890_FPR16.xml",
wiz_values={
"price_decimal_digits": 3,
},
)
invoice = self.invoice_model.search(res["domain"])
invoice_line = invoice.invoice_line_ids
self.assertRecordValues(
invoice_line,
[
{
"price_subtotal": 66.79,
}
],
)


class TestFatturaPAEnasarco(FatturapaCommon):
def setUp(self):
Expand Down

0 comments on commit 9a4f961

Please sign in to comment.