l10n-italy icon indicating copy to clipboard operation
l10n-italy copied to clipboard

[14.0] fatturapa_in errore importazione fattura con importi negativi

Open francescapenso opened this issue 3 years ago • 11 comments

Se si cerca di importare una nota di credito in cui il fornitore ha messo importi negativi sia nelle righe che nel totale fallisce. Segue video https://watch.screencastify.com/v/lHMuIhWZOK7mAPmMjfFa image

Eseguita prova con NC con importi positivi e anche con righe di fattura importo positivo e totale negativo e funziona tt correttamente

francescapenso avatar Oct 19 '21 08:10 francescapenso

Questa situazione è (teoricamente) coperta da test_33_xml_import().

Hai modo di vedere se ci sono differenze logiche tra la tua nota di credito e questa: https://github.com/OCA/l10n-italy/blob/713dc095099ad2c5382347b13505a8374868b99b/l10n_it_fatturapa_in/tests/data/IT01234567890_FPR07.xml#L1-L74 ?

In ogni caso nel frattempo hai modo di provare:

diff --git a/l10n_it_fatturapa_in/models/account.py b/l10n_it_fatturapa_in/models/account.py
index 7224cdfc4..90d33bc73 100644
--- a/l10n_it_fatturapa_in/models/account.py
+++ b/l10n_it_fatturapa_in/models/account.py
@@ -321,10 +321,13 @@ class AccountInvoice(models.Model):
                 return
         # if every line is negative, change them all
         for line in self.invoice_line_ids:
-            line.with_context(check_move_validity=False).update(
+            line_ = line.with_context(check_move_validity=False)
+            line_.update(
                 {"price_unit": -line.price_unit}
             )
-        self.with_context(check_move_validity=False)._recompute_dynamic_lines(
+            line_.update(line._get_price_total_and_subtotal())
+            line_.update(line._get_fields_onchange_subtotal())
+        self._recompute_dynamic_lines(
             recompute_all_taxes=True
         )
 

?

TheMule71 avatar Oct 19 '21 10:10 TheMule71

Direi che la differenza logica è solo che nella stanza Dati Generali -> Dati Generali Documento viene riportato importo totale documento. Vedi Screen

image

francescapenso avatar Oct 20 '21 11:10 francescapenso

ho provato quel codice ma manda in crash tutto

francescapenso avatar Nov 04 '21 12:11 francescapenso

ho provato quel codice ma manda in crash tutto

Potresti allegare un messaggio di traceback che renda utile l'identificazione del problema?

OpenCode avatar Nov 04 '21 12:11 OpenCode

@francescapenso potresti fornire un XML che riproduca il problema? Grazie

eLBati avatar Nov 25 '21 16:11 eLBati

TD04 EUR 2021-10-09 412109481007 -14.79 FORNITURA SERVIZIO GAS 3019450403 1 FORNITURA SERVIZIO GAS -12.12 -12.12 22.00 Pod/Pdr 61610000007995 22.00 -12.12 -2.67 I Aliquota IVA 22% TP02 HERA SPA MP05 2021-10-29 -14.79 IT56Q0200809292V00835454373

francescapenso avatar Jan 17 '22 09:01 francescapenso

@elBati @francescapenso L'XML in realtà c'è, nel messaggio di Francesca, mi permetto di quotarlo e formattarlo, se non vi dispiace:

<?xml version="1.0"?>
<FatturaElettronicaBody>
  <DatiGenerali>
    <DatiGeneraliDocumento>
      <TipoDocumento>TD04</TipoDocumento>
      <Divisa>EUR</Divisa>
      <Data>2021-10-09</Data>
      <Numero>412109481007</Numero>
      <ImportoTotaleDocumento>-14.79</ImportoTotaleDocumento>
      <Causale>FORNITURA SERVIZIO GAS</Causale>
    </DatiGeneraliDocumento>
    <DatiContratto>
      <IdDocumento>3019450403</IdDocumento>
    </DatiContratto>
  </DatiGenerali>
  <DatiBeniServizi>
    <DettaglioLinee>
      <NumeroLinea>1</NumeroLinea>
      <Descrizione>FORNITURA SERVIZIO GAS</Descrizione>
      <PrezzoUnitario>-12.12</PrezzoUnitario>
      <PrezzoTotale>-12.12</PrezzoTotale>
      <AliquotaIVA>22.00</AliquotaIVA>
      <AltriDatiGestionali>
        <TipoDato>Pod/Pdr</TipoDato>
        <RiferimentoTesto>61610000007995</RiferimentoTesto>
      </AltriDatiGestionali>
    </DettaglioLinee>
    <DatiRiepilogo>
      <AliquotaIVA>22.00</AliquotaIVA>
      <ImponibileImporto>-12.12</ImponibileImporto>
      <Imposta>-2.67</Imposta>
      <EsigibilitaIVA>I</EsigibilitaIVA>
      <RiferimentoNormativo>Aliquota IVA 22%</RiferimentoNormativo>
    </DatiRiepilogo>
  </DatiBeniServizi>
  <DatiPagamento>
    <CondizioniPagamento>TP02</CondizioniPagamento>
    <DettaglioPagamento>
      <Beneficiario>HERA SPA</Beneficiario>
      <ModalitaPagamento>MP05</ModalitaPagamento>
      <DataScadenzaPagamento>2021-10-29</DataScadenzaPagamento>
      <ImportoPagamento>-14.79</ImportoPagamento>
      <IBAN>IT56Q0200809292V00835454373</IBAN>
    </DettaglioPagamento>
  </DatiPagamento>
</FatturaElettronicaBody>

TheMule71 avatar Feb 05 '22 13:02 TheMule71

Mi pare si sovrapponga a https://github.com/OCA/l10n-italy/issues/2090

eLBati avatar Feb 11 '22 09:02 eLBati

Riprendo questa issue perchè oggi mi è successo nuovamente....mi pare che sia aperta sia questa che la #2090 o sono stati fatti approfondimeni in merito?

francescapenso avatar Apr 27 '22 08:04 francescapenso

Chiudo a favore di https://github.com/OCA/l10n-italy/issues/2090

tafaRU avatar Aug 05 '22 12:08 tafaRU

Errore in importazione rilevato

The amount expressed in the secondary currency must be positive when account is debited and negative when account is credited. If the currency is the same as the one from the company, this amount must strictly be equal to the balance.

francescapenso avatar Oct 17 '22 10:10 francescapenso

Questa situazione è (teoricamente) coperta da test_33_xml_import().

Hai modo di vedere se ci sono differenze logiche tra la tua nota di credito e questa:

https://github.com/OCA/l10n-italy/blob/713dc095099ad2c5382347b13505a8374868b99b/l10n_it_fatturapa_in/tests/data/IT01234567890_FPR07.xml#L1-L74

? In ogni caso nel frattempo hai modo di provare:

diff --git a/l10n_it_fatturapa_in/models/account.py b/l10n_it_fatturapa_in/models/account.py
index 7224cdfc4..90d33bc73 100644
--- a/l10n_it_fatturapa_in/models/account.py
+++ b/l10n_it_fatturapa_in/models/account.py
@@ -321,10 +321,13 @@ class AccountInvoice(models.Model):
                 return
         # if every line is negative, change them all
         for line in self.invoice_line_ids:
-            line.with_context(check_move_validity=False).update(
+            line_ = line.with_context(check_move_validity=False)
+            line_.update(
                 {"price_unit": -line.price_unit}
             )
-        self.with_context(check_move_validity=False)._recompute_dynamic_lines(
+            line_.update(line._get_price_total_and_subtotal())
+            line_.update(line._get_fields_onchange_subtotal())
+        self._recompute_dynamic_lines(
             recompute_all_taxes=True
         )
 

Il test segnalato, in questo caso fallisce https://github.com/OCA/l10n-italy/actions/runs/4677014793/jobs/8284026493?pr=3269#step:8:776

odooNextev avatar Apr 12 '23 12:04 odooNextev

Errore in importazione rilevato

The amount expressed in the secondary currency must be positive when account is debited and negative when account is credited. If the currency is the same as the one from the company, this amount must strictly be equal to the balance.

Riprodotto su https://github.com/OCA/l10n-italy/issues/3523

eLBati avatar Oct 25 '23 14:10 eLBati

@francescapenso puoi provare queste modifiche https://github.com/OCA/l10n-italy/pull/3751 ?

eLBati avatar Dec 01 '23 17:12 eLBati

@francescapenso puoi aggiungere una checkbox per la 16?

francesco-ooops avatar Dec 03 '23 18:12 francesco-ooops

@francescapenso puoi aggiungere una checkbox per la 16?

Fatto

eLBati avatar Dec 04 '23 07:12 eLBati

Fatto un po di test e funziona

francescapenso avatar Dec 07 '23 11:12 francescapenso

@francescapenso puoi verificare se il problema esiste ancora per 16.0? Potrebbe essere stato risolto da https://github.com/OCA/l10n-italy/pull/4026.

SirAionTech avatar Jun 13 '24 08:06 SirAionTech