arrotondamento calcolo IVA errato?
Inviato: 18/12/2006, 14:18
Ciao a tutti, ho una osC un po' ricarrozzato, quindi non sono certissimo che sia un problema universale o solo mio, ma in ogni caso la formula applicata mi sembra imprecisa e quindi ve lo posto qui.
Innanzitutto io ho una vecchia versione (324, mi pare) dell'osC di magnino:
viewtopic.php?t=5683&postdays=0&postorder=asc&start=0
In includes/functions/general.php c'è la funzione tep_add_tax che prende il prezzo, lo arrotonda, prende l'IVA, l'arrotonda e poi somma. In alcuni casi potrebbe capitare, come a me, che nel DB ci sia il campo del prezzo con 5 decimali e quindi gli arrotondamenti fanno casino.
La modifica è semplice, ho trasformato questa riga:
In questa:
E ho modificato la tep_calculate_tax in modo che se il parametro $round è passato a false non faccia l'arrotondamento. Questo per essere sicuro che altri arrotondamenti in giro per il sito funzionino come prima, visto che il problema mi si presentava solo mentre facevo vedere i dettagli del prodotto e non nel carrello.
PS: ho anche installato un configuratore customizzato a partire da quello che ho trovato sul sito di osC e rivisto per le mie necessità.
- Andrea
Innanzitutto io ho una vecchia versione (324, mi pare) dell'osC di magnino:
viewtopic.php?t=5683&postdays=0&postorder=asc&start=0
In includes/functions/general.php c'è la funzione tep_add_tax che prende il prezzo, lo arrotonda, prende l'IVA, l'arrotonda e poi somma. In alcuni casi potrebbe capitare, come a me, che nel DB ci sia il campo del prezzo con 5 decimali e quindi gli arrotondamenti fanno casino.
La modifica è semplice, ho trasformato questa riga:
Codice: Seleziona tutto
return tep_round($price, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places']) + tep_calculate_tax($price, $tax);
Codice: Seleziona tutto
return tep_round($price + tep_calculate_tax($price, $tax, false), $currencies->currencies[DEFAULT_CURRENCY]['decimal_places']);
PS: ho anche installato un configuratore customizzato a partire da quello che ho trovato sul sito di osC e rivisto per le mie necessità.
- Andrea