La soluzione proposta sotto è incompleta, appena possibile rilascerò una BUGFIX-Contrib completa
PROBLEMA
Nel caso DISPLAY_PRICES_WITH_TAX sia TRUE il subtotale ivato non viene calcolato correttamente.
Il problema è dovuto alla funzione tep_calculate_tax che arrotonda erroneamente la tassa al numero di cifre usato per la valuta, tipicamente 2. Nel caso DISPLAY_PRICES_WITH_TAX sia FALSE il problema non si presenta.
Per risolvere il problema basta tener presente che il minimo numero di cifre necessarie per la TAX è dato da:
Cifre usate per la valuta (tipicamente 2) +1 NEL CASO ($tax >= 10) && ($tax < 100 )
Cifre usate per la valuta (tipicamente 2) +2 NEL CASO ($tax >= 1) && ($tax < 10 )
SOLUZIONE
(Quanto segue fa riferimento alla versione:
osCommerce-2.2ms2 PULITA)
1] Sostituire il codice della funzione tep_calculate_tax nei file
/includes/functions/general.php (LATO CLIENTE)
/admin/includes/functions/general.php (LATO ADMIN)
con il seguente:
Codice: Seleziona tutto
// Calculates Tax rounding the result
function tep_calculate_tax($price, $tax) {
global $currencies;
$rprice = tep_round($price, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places']);
if (( $tax >= 10) && ($tax < 100 )) {
return tep_round($rprice * $tax / 100, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places'] + 1);
} elseif (( $tax >= 1) && ($tax < 10 )) {
return tep_round($rprice * $tax / 100, $currencies->currencies[DEFAULT_CURRENCY]['decimal_places'] + 2);
} else {
return 0;
}
}
Marcus Marzullus