Ho generato i file FaE da alcune fatture reali e mi sono accorto che molte non superano il controllo in oggetto. SDI restituisce su alcune righe questo errore (00423):
2.2.1.11 PrezzoTotale non calcolato secondo le regole definite nelle specifiche tecniche - Per la linea numero 2, della fattura numero 29 del 2017-11-30 c'è un errore nel calcolo del campo PrezzoTotale
Questo è il nodo xml della riga in questione:
<DettaglioLinee> <NumeroLinea>2</NumeroLinea> <Descrizione>Nec - 12TXH, terminale di sistema per SL1000, 12 tasti programmabili</Descrizione> <Quantita>5.00</Quantita> <UnitaMisura>Pz</UnitaMisura> <PrezzoUnitario>95.00</PrezzoUnitario> <ScontoMaggiorazione> <Tipo>SC</Tipo> <Percentuale>20.00</Percentuale> <Importo>95.00</Importo> </ScontoMaggiorazione> <PrezzoTotale>380.00</PrezzoTotale> <AliquotaIVA>22.00</AliquotaIVA> </DettaglioLinee>
Confrontando le linee che superano i controlli e quelle che non lo fanno mi sono reso conto che quelle che non lo superano sono quelle con quantità maggiore di uno.
Infatti se ci fate caso l'importo in ScontoMaggiorazione viene valorizzato al totale dello sconto del rigo e non a quello della singola entità come richiesto. Modificando quel valore con 19.5 il controllo viene superato.
Il documento elenco controlli 1.4 , riporta:
Per ogni BloccoDettaglioLinee
IF ( PrezzoTotale != ( PrezzoUnitario ± MaggiorazioneTot o ScontoTot ) * Quantità )
E R R O R E (00423)
END-IF
Non ho avuto modo di controllare il codice e comunque prima di affrontare la questione, tempo permettendo, vorrei un feedback dagli altri per essere sicuro che non si tratti di qualche disallineamento nella mia installazione.
Grazie per la segnalazione.
Già da domattina sarò al lavoro sul file https://sourceforge.net/p/gazie/code/HEAD/tree/trunk/library/include/electronic_invoice.inc.php per implementare i righi relativi alla cassa previdenziale.
Comunque la tua analisi sembra giusta, e se così fosse basterà ridividere (o non moltiplicare) per la quantità l'elemento
<Importo>
dentro<ScontoMaggiorazione>
per risolvere l'erroreCon l'ultimo commit il problema dovrebbe essere risolto.
Ti prego cortesemente di controllare...
Verificati gli stessi documenti ed altri con condizioni simili ora è ok.