adrione Posted July 19, 2011 Share Posted July 19, 2011 Hola a tod@s,Tengo un pequeño problema que espero que alguien me pueda ayudar.Tengo una tienda 1.3.7 y el por ser B2B tiene que salir sin IVA, pero en el resumen si que debe de salir. El problema viene con el redondeo del precio final. Me varía el IVA para ajustar a un precio final redondeado.Ejemplo:FICHA DE PRODUCTO:Sin IVA=3.95€Con IVA=4.66€PESTAÑA RESUMEN:PRODUCTO=3.95€IVA 18%=¿ 1,05€ ? Debería de ser 0.71€TOTAL=5,00 (Este es el culpable)Parece ser que varía el IVA para dar un precio total redondeado. En este caso 5,00€, en vez de 4,66€.En Preferencias -> Modo de redondeo he tocado las tres opciones con los siguiente resultados:Clásico: 5,00€Inferior: 4,00€ (IVA de ¿0,05€?)Superior: Idem a clásicoNo hay ninguna manera de que si el precio final es de 4,66€ sea 4,66€. Es decir DESACTIVAR por completo el redondeo?Muchas gracias a todos por adelantado.Un saludo, Link to comment Share on other sites More sharing options...
adrione Posted July 19, 2011 Author Share Posted July 19, 2011 Había dado con esta solución pero al logearme en la tienda se queda incluso en negativo el IVA. Así que NO ES VÁLIDA, pero la dejo por si alguien que controle le puede dar alguna pista.En classes/Tools.php static public function ceilf($value, $precision = 0) { $precisionFactor = $precision == 0 ? 1 : pow(10, $precision); $tmp = $value * $precisionFactor; $tmp2 = (string)$tmp; // If the current value has already the desired precision if (strpos($tmp2, '.') === false) return ($value); if ($tmp2[strlen($tmp2) - 1] == 0) return $value; return ceil($tmp) / $precisionFactor; } static public function floorf($value, $precision = 0) { $precisionFactor = $precision == 0 ? 1 : pow(10, $precision); $tmp = $value * $precisionFactor; $tmp2 = (string)$tmp; // If the current value has already the desired precision if (strpos($tmp2, '.') === false) return ($value); if ($tmp2[strlen($tmp2) - 1] == 0) return $value; return floor($tmp) / $precisionFactor; } Sustituir ambos: $tmp = $value * $precisionFactor; Por $tmp = $precisionFactor; Saludos!! Link to comment Share on other sites More sharing options...
adrione Posted July 19, 2011 Author Share Posted July 19, 2011 Alguien?? Link to comment Share on other sites More sharing options...
Recommended Posts