[IMP] l10n_it_edi: Adding negative bill test

Added a test to verify the behaviour when receiving a negative bill. The
invoice gets imported with negative amounts, but it can't be posted.
When the user tries to post it, they are prompted to turn it into a
credit note with a UserError.

closes odoo/odoo#141485

Signed-off-by: Josse Colpaert <jco@odoo.com>
This commit is contained in:
Paolo Gatti
2024-04-17 22:47:07 +00:00
committed by Paolo Gatti (pgi)
parent d28774398f
commit f043353880
2 changed files with 127 additions and 0 deletions
@@ -0,0 +1,111 @@
<p:FatturaElettronica versione="FPR12" 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>01234560157</IdCodice>
</IdTrasmittente>
<ProgressivoInvio>00001</ProgressivoInvio>
<FormatoTrasmissione>FPR12</FormatoTrasmissione>
<CodiceDestinatario>ABC1234</CodiceDestinatario>
<ContattiTrasmittente/>
</DatiTrasmissione>
<CedentePrestatore>
<DatiAnagrafici>
<IdFiscaleIVA>
<IdPaese>IT</IdPaese>
<IdCodice>01234560157</IdCodice>
</IdFiscaleIVA>
<Anagrafica>
<Denominazione>SOCIETA' ALPHA SRL</Denominazione>
</Anagrafica>
<RegimeFiscale>RF19</RegimeFiscale>
</DatiAnagrafici>
<Sede>
<Indirizzo>VIALE ROMA 543</Indirizzo>
<CAP>07100</CAP>
<Comune>SASSARI</Comune>
<Provincia>SS</Provincia>
<Nazione>IT</Nazione>
</Sede>
</CedentePrestatore>
<CessionarioCommittente>
<DatiAnagrafici>
<CodiceFiscale>01234560157</CodiceFiscale>
<Anagrafica>
<Denominazione>DITTA 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>
<DatiGenerali>
<DatiGeneraliDocumento>
<TipoDocumento>TD01</TipoDocumento>
<Divisa>EUR</Divisa>
<Data>2014-12-18</Data>
<Numero>01234567890</Numero>
<Causale>Test</Causale>
</DatiGeneraliDocumento>
<DatiOrdineAcquisto>
<RiferimentoNumeroLinea>1</RiferimentoNumeroLinea>
<IdDocumento>66685</IdDocumento>
<NumItem>1</NumItem>
</DatiOrdineAcquisto>
<DatiContratto>
<RiferimentoNumeroLinea>1</RiferimentoNumeroLinea>
<IdDocumento>01234567890</IdDocumento>
<Data>2012-09-01</Data>
<NumItem>5</NumItem>
<CodiceCUP>01234567890abc</CodiceCUP>
<CodiceCIG>456def</CodiceCIG>
</DatiContratto>
<DatiTrasporto>
<DatiAnagraficiVettore>
<IdFiscaleIVA>
<IdPaese>IT</IdPaese>
<IdCodice>24681012141</IdCodice>
</IdFiscaleIVA>
<Anagrafica>
<Denominazione>Trasporto spa</Denominazione>
</Anagrafica>
</DatiAnagraficiVettore>
<DataOraConsegna>2012-10-22T16:46:12.000+02:00</DataOraConsegna>
</DatiTrasporto>
</DatiGenerali>
<DatiBeniServizi>
<DettaglioLinee>
<NumeroLinea>1</NumeroLinea>
<Descrizione>DESCRIZIONE DELLA FORNITURA</Descrizione>
<Quantita>5.00</Quantita>
<PrezzoUnitario>-1.00</PrezzoUnitario>
<PrezzoTotale>-5.00</PrezzoTotale>
<AliquotaIVA>22.00</AliquotaIVA>
</DettaglioLinee>
<DatiRiepilogo>
<AliquotaIVA>22.00</AliquotaIVA>
<ImponibileImporto>-5.00</ImponibileImporto>
<Imposta>-1.10</Imposta>
<EsigibilitaIVA>I</EsigibilitaIVA>
</DatiRiepilogo>
</DatiBeniServizi>
<DatiPagamento>
<CondizioniPagamento>TP01</CondizioniPagamento>
<DettaglioPagamento>
<ModalitaPagamento>MP01</ModalitaPagamento>
<DataScadenzaPagamento>2015-01-30</DataScadenzaPagamento>
<ImportoPagamento>-6.10</ImportoPagamento>
</DettaglioPagamento>
</DatiPagamento>
</FatturaElettronicaBody>
</p:FatturaElettronica>
@@ -47,12 +47,28 @@ class TestItEdiImport(TestItEdi):
https://www.fatturapa.gov.it/export/documenti/fatturapa/v1.2/IT01234567890_FPR01.xml
"""
self._assert_import_invoice('IT01234567890_FPR01.xml', [{
'move_type': 'in_invoice',
'invoice_date': fields.Date.from_string('2014-12-18'),
'amount_untaxed': 5.0,
'amount_tax': 1.1,
'invoice_line_ids': [{
'quantity': 5.0,
'price_unit': 1.0,
'debit': 5.0,
}],
}])
def test_receive_negative_vendor_bill(self):
""" Same vendor bill as test_receive_vendor_bill but negative unit price """
self._assert_import_invoice('IT01234567890_FPR02.xml', [{
'move_type': 'in_invoice',
'invoice_date': fields.Date.from_string('2014-12-18'),
'amount_untaxed': -5.0,
'amount_tax': -1.1,
'invoice_line_ids': [{
'quantity': 5.0,
'price_unit': -1.0,
'credit': 5.0,
}],
}])