Jump to content

Problema Calcolo IVA in fattura PS 1.5.4


prestag4

Recommended Posts

Salve a tutti,

premetto di essere alle prime armi con PS, veniamo al problema riscontrato che se confermato anche da voi potrebbe generare molti problemi.

 

Secondo la legge italiana, l'imponibile di una fattura (ovvero il totale senza IVA) e l'imposta (il valore di IVA da aggiungere all'imponibile) vanno entrambi arrotondati a due cifre decimali, al centesimo inferiore se la terza cifra è ≤ 4, al centesimo superiore se la terza cifra è ≥ 5. (Vedi ad es. http://www.fatture.net/NormativaFatturazione.asp )

Il totale fattura deve essere la semplice somma dell'imponibile e dell'imposta, già arrotondati.

Ora, supponiamo di avere una fattura con un solo prodotto, con aliquota al 22%. Indipendentemente da come il prezzo di quel prodotto venga memorizzato nel database dell'e-commerce (con o senza IVA, con 6 cifre decimali, prezzo al metro/grammo/etc.) in fattura potremmo avere uno di questi casi:
    •    Se l'imponibile fattura risulta 10,65 allora l'imposta fattura sarà 2,34 (imponibile + 22%, arrotondato come detto) e quindi il totale fattura sarà 12,99
    •    Se l'imponibile fattura risulta 10,66, allora l'imposta fattura sarà 2,35 e il totale fattura 13,01
Poiché una fattura non può avere legalmente un valore di imponibile in mezzo tra 10,65 e 10,66, perché deve essere arrotondato al centesimo, allora non potrà nemmeno avere il totale in mezzo tra 12,99 e 13,01

Quindi una fattura con un solo prodotto, con aliquota al 22% e totale fattura a 13,00 secondo la legge italiana non può esistere.

Ma Prestashop mi ha appena generato una fattura come da allegato.

 

Ringrazio anticipatamente chi volesse partecipare alla discussione

000007.pdf

Edited by prestag4 (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

Ciao,

secondo me è un qualche problema col tuo shop... Come hai inserito l'IVA al 22%? E gli arrotondamenti che metodo seguono?

Perché ho provato con una installazione "pulita" della 1560 in locale, ho aggiunto una nuova IVA al 22% (non modificato una esistente), create regole per paesi, ecc ecc e ti allego le due fatture emesse: una da 12.99 e una da 13.01 per rispettivamente 10.65 e 10.66 euro (buon prezzo per una macbook eh?  :D )

Quindi penso che il problema risieda in qualcosa relativo al tuo shop. Tocca capire cosa, adesso...

 

E non male la tua formattazione della fattura, bella elegante e chiara da leggere, mi sa te la copio!  :D

 

EDIT: non è che è successo qualcosa proprio nella modifica del template? O che il template è di un'altra versione di pS?

Per esempio, vedo che nel totale tasse del dettaglio tasse hai 2.35, nel totale tasse dell'elenco prodotti hai 2.34, questo è strano, dovrebbe essere lo stesso valore...

Edited by viger (see edit history)
Link to comment
Share on other sites

Vabbé, mai fare le cose di fretta e prima di pranzo!  :D

Mi sono dimenticato gli allegati e poi ho usato la 1560. 

Rimedio subito con la 1540 appena installata e le due fatture che, comunque, sono uguali alla 1560: da 12.99 e 13.01 come dovrebbe essere.

Quindi bisogna andare a cercare l'errore nel tuo shop. Io proverei a cercare nel cambiamento aliquota IVA, vedo che nel forum tantissimi hanno avuto problemi con il cambio.

000001.pdf

000002.pdf

Link to comment
Share on other sites

ho provato con una installazione "pulita" della 1560 in locale, ho aggiunto una nuova IVA al 22% (non modificato una esistente), create regole per paesi, ecc ecc e ti allego le due fatture emesse: una da 12.99 e una da 13.01 per rispettivamente 10.65 e 10.66 euro

 

Mi sono spiegato male :mellow: scusa, se parti da quei due prezzi, il conto torna.

 

Il problema è quando il prezzo base (senza iva) ha più di due cifre decimali, che succede ad es. quando si vende con prezzo al kg o al metro. In quel caso Prestashop non arrotonda correttamente i prezzi quando genera l'ordine. (Ho impostato l'arrotondamento classico, che è quello da usare in Italia.)

 

Uno dei modi per riprodurre l'errore, senza mettersi ad usare metri e kg, è quello di usare la casella "Prezzo di vendita tasse incl." e inserire 13,00. Prestashop giustamente calcola il prezzo non ivato con molte cifre, in questo caso 10,655738 e lo memorizza su DB.

 

Il problema è che nella creazione dell'ordine (e quindi della fattura) l'imposta andrebbe calcolata sull'imponibile arrotondato. Quindi nell'esempio dei 13 €, il prezzo base 10,655738 andrebbe a produrre un imponibile di 10,66 e un totale imposta di 2,35 per un totale fattura di 13,01. Prestashop invece calcola l'IVA sull'imponobile non arrotondato, quindi produce un'imposta di 2,34 e un totale di 13,00

Edited by prestag4 (see edit history)
Link to comment
Share on other sites

  • 6 months later...
  • 2 weeks later...
Link to comment
Share on other sites

  • 4 months later...

Buongiorno a tutti, anch'io, purtroppo ho lo stesso problema.


Non ho ancora trovato una soluzione ma credo di essere riuscito a isolare il problema: è che l'arrotondamento viene fatto al momento sbagliato.


 


Mi spiego meglio:


il mio prodotto X ha prezzo di vendita ( al netto di IVA ) di 28,69 €  a cui bisogna aggiungere l' IVA a 22%


un cliente effettua un ordine di 10 pezzi del prodotto X


Sulla fattura generata da PS si legge imponibile 286,90 € IVA 63,10 €


Il che è sbagliato perchè il 22% di 286,90 è 63,118 che arrotondato fa 63,12 € ( abbiamo perso 2 centesimi )


 


Per quale motivo le tasse generate da PS sono 63,10 invece di 63,12?


Perchè PS genera l'IVA su ogni singolo prodotto, poi la arrotonda e poi la moltiplica per il numero di prodotti. In questo caso:


l'iva sul singolo prodotto che costa 28,69 è 6,3118...che arrotondato fa 6,31 €...visto che ne ha acquistati 10 sarà 6,31*10 = 63,10 €


 


La soluzione sarebbe moltiplicare prima l'IVA del singolo per il numero di prodotti e poi arrotondare alla fine.


 


Perchè non capita sempre?


Perchè se l'IVA calcolata sul prezzo del prodotto genera un numero con solo 2 cifre decimali il problema non si verifica perchè non c'è arrotondamento.


Se invece l'iva calcolata supera le 2 cifre decimali si verifica l'errore. Infatti rifacendo il calcolo appena mostrato con un prodotto il cui prezzo di vendita ( al netto di iva ) è di 14,50 € ... tutti i calcoli generati sono giusti. ( infatti l'IVA su ogni singolo prodotto sarà di 3,19 € con solo 2 cifre decimali  )


 


Qualcuno è daccordo?


Come si risolve?


  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Salve ragazzi, volevo dirvi che al momento ho trovato una soluzione temporanea al problema:


ho creato un override della classe Tools dove è presente la funzione ps_round


Questa funzione accetta 2 parametri: il numero reale "$value" e la cifra di cifre decimali "$precision".


Non ho fatto altro che forzare il parametro $precision a un minimo di 3 cifre decimali. 


Il file che ho creato bisogna posizionarlo qui override/classes/Tools.php


 


Il file contiene il seguente codice:



class Tools extends ToolsCore{

public static function ps_round($value, $precision = 0)
{
if($precision<3){ $precision=3; }
return parent::ps_round($value, $precision);

}

}  

Dopo aver creato questo file bisogna cancellare il fil cache/class_index.php . Dopo averlo cancellato, prestashop lo rigenera in modo corretto.


 


ps. Non so se la modifica può comportare problemi di altro genere....pertanto non l'ho testata a fondo, però risolve il problema della fattura.


Link to comment
Share on other sites

  • 4 weeks later...
  • 9 months later...

Salve ragazzi, io ho un problema nella mia fattura, essendo giovane imprenditore, devo seguire Il Regime dei Minimi, quindi non applicare l'iva, ma dopo aver disabilitato le tasse, nella fattura compare un ulteriore tabella che specifica i dettagli delle tasse, ma i campi sono vuoti  :( . Vorrei semplicemente eliminare la tabella perchè mi sembra inutile. Comunque allego la mia fattura. (ho evidenziato la tabella che vorrei eliminare in rosso). Grazie  :)

#000001.pdf

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...