Avisos
Vaciar todo

Error en el cálculo del IVA en la factura de Prestasho 1.6.  

 
Elena
 Elena
Usuario eminente

Buenas tardes.
tengo Prestashop 1.6.1.

Tengo un problema con el redondeo de los precios., que me genera desajuste en las facturas.

Actualmente tengo el redondeo por producto y desglose de impuestos Activado

He probado cambiar Tipo de redondeo al Redondea por el total. Con esta opción soluciono el problema de las facturas, pero empiezan a generar errores de pago los módulos de Paypal y Redsys. Entiendo que el problema esta en que los módulos hacen la suma de los CON IVA redondeados, mientras que la factura hace la suma de los productos SIN IVA y luego aplica el redondeo. En algunos pedidos la diferencia puede llegar a 4€.

Necesito una solución menos invasiva para este problema.

Gracias

URL del sitio: Contenido solo visible a usuarios registrados

Citar
Respondido : 18/09/2019 5:24 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Elena.

empiezan a generar errores de pago los módulos de Paypal y Redsys
Puedes explicarnos un poco más si puedes con capturas para que veamos los totales y a los desajustes que te refieres.

Revisa esta entrada del foro de prestashop que tratan el tema del redondeo:
-> https://www.prestashop.com/forums/topic/341333-prestashop-16-¿redondeo/
-> https://www.prestashop.com/forums/topic/546878-error-de-redondeo-en-combinaciones-de-productos-ps-16x-solucionado/

Nota: Tienes una versión muy desfasada de prestashop tienes que pensar en actualizar, es posible que actualizando soluciones el problema.

Un saludo

ResponderCitar
Respondido : 18/09/2019 5:37 pm

Elena
 Elena
Usuario eminente

la semana pasada actualice la versión del prestashop.

Adjunto la capturas

del error que genera en la factura

un saludo

ResponderCitar
Respondido : 18/09/2019 7:54 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

Cómo has ingresado los precios de tus productos, estan con IVA incluído?, envía algunas capturas de algun producto para probar.

Saludos.

ResponderCitar
Respondido : 18/09/2019 8:31 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

Elena
 Elena
Usuario eminente

Hola

los productos los importo como un CSV y sin IVA.

ResponderCitar
Respondido : 19/09/2019 9:45 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Elena.

El tema del redondeo en prestashop es un Bug que llevan arrastrando desde hace mucho tiempo
-> http://forge.prestashop.com/browse/PSCSX-7630

En esta entrada dan una posible solución modificando los archivos Tools.php y ProductController.php

-> https://github.com/PrestaShop/PrestaShop/pull/5135/commits/2636a3182502686e19ff2ebeea3d5178665c974f

Un saludo

ResponderCitar
Respondido : 19/09/2019 11:41 am

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Elena
 Elena
Usuario eminente

acabo de comprobar y estos errores en los controllers ya los tenía corregidos. se ve que se han corregido con la última actualización de Prestashop.
Necesito otra solución

ResponderCitar
Respondido : 19/09/2019 12:36 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Elena.

ok, va a ser complicado ya que es un problema del propio prestashop con esas versiones, es algo que muchos usuarios reportan pero no se soluciona por parte de prestashop y dudo que lo solucionen en esa versión ya que no recibe actualizaciones.

Prueba a cambiar en preferencias - configuración - redondeo: redondear cada artículo por si soluciona el problema.

Te pasa con todos los pagos, es solo con TPV, PAYPAL....

El módulo de paypal tenia problemas con el redondeo por eso te lo comento.

En esta entrada del foro de prestashop ofrecen otra posible solución:

https://www.prestashop.com/forums/topic/619297-solucionado-redondeo-de-precios-con-un-c%C3%A9ntimo-con-combinaciones-error-en-ps-1614/

Un saludo

ResponderCitar
Respondido : 19/09/2019 12:55 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Elena
 Elena
Usuario eminente

hola

Actualmente tengo el redondeo por artículo, que es el que me genera el desajuste en las facturas. y me funcionan bien los módulos de pago.

Cuando dejo el redondeo por total o por línea, los módulos de Paypal y Redsys me generan error de pago por el desajuste en el total. Pero las facturas si que salen bien.

P.S. la entrada del foto citada. No encuentro en mi archivo product.js la línea que se ha de modificar.

un saludo

ResponderCitar
Respondido : 19/09/2019 1:27 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Elena.

Ok, entonces el problema lo tenemos en otros sitios, no es de prestashop.
Vamos a ir por parte y empecemos con el de modulo de paypal.

Prueba lo siguiente:
.- Accede a modules -> paypal -> express_checkout y edita el archivo proccess.php
.- Busca el siguiente código:

private function setProductsList(&$fields, &$index, &$total) {
foreach ($this->product_list as $product) {
$fields['L_PAYMENTREQUEST_0_NUMBER'.++$index] = (int) $product['id_product'];
$fields['L_PAYMENTREQUEST_0_NAME'.$index] = $product['name'];
if (isset($product['attributes']) && (empty($product['attributes']) === false)) {
$fields['L_PAYMENTREQUEST_0_NAME'.$index] .= ' - '.$product['attributes'];
}
$fields['L_PAYMENTREQUEST_0_DESC'.$index] = Tools::substr(strip_tags($product['description_short']), 0, 50).'...';
$fields['L_PAYMENTREQUEST_0_AMT'.$index] = Tools::ps_round($product['price_wt'], $this->decimals);
$fields['L_PAYMENTREQUEST_0_QTY'.$index] = $product['quantity'];
$total = $total + ($fields['L_PAYMENTREQUEST_0_AMT'.$index] * $product['quantity']);
}
}

Modifica por lo siguiente:

private function setProductsList(&$fields, &$index, &$total)
{
foreach ($this->product_list as $product) {
$fields['L_PAYMENTREQUEST_0_NUMBER'.++$index] = 1;
$fields['L_PAYMENTREQUEST_0_NAME'.$index] = 'Total Productos '; // o el texto que deseemos
$fields['L_PAYMENTREQUEST_0_AMT'.$index] = $this->context->cart->getOrderTotal(true,Cart::ONLY_PRODUCTS);
//mandamos el total de los productos con IVA incluido
$fields['L_PAYMENTREQUEST_0_QTY'.$index] = 1;
$total = $total + ($fields['L_PAYMENTREQUEST_0_AMT'.$index] * 1);
break;
}
}

.- En el mismo archivo busca lo siguiente:

public function getTotalPaid()
{
$total = 0.00;
foreach ($this->product_list as $product) {
$price = Tools::ps_round($product['price_wt'], $this->decimals);
$quantity = Tools::ps_round($product['quantity'], $this->decimals);
$total = Tools::ps_round($total + ($price * $quantity), $this->decimals);
}
if ($this->context->cart->gift == 1) {
$total = Tools::ps_round($total + $this->getGiftWrappingPrice(), $this->decimals);
}
if (version_compare(_PS_VERSION_, '1.5', 'context->cart->getDiscounts();
$shipping_cost = $this->context->cart->getOrderShippingCost();
} else {
$discounts = $this->context->cart->getCartRules();
$shipping_cost = $this->context->cart->getTotalShippingCost();
}
if (count($discounts) > 0) {
foreach ($discounts as $product) {
$price = -1 * Tools::ps_round($product['value_real'], $this->decimals);
$total = Tools::ps_round($total + $price, $this->decimals);
}
}
return Tools::ps_round($shipping_cost, $this->decimals) + $total;
}

Sustituye por lo siguiente:

public function getTotalPaid()
{
$total = 0.00;
$total = $total + $this->context->cart->getOrderTotal(true,Cart::ONLY_PRODUCTS);
if ($this->context->cart->gift == 1) {
$total = Tools::ps_round($total + $this->getGiftWrappingPrice(), $this->decimals);
}
if (version_compare(_PS_VERSION_, '1.5', 'context->cart->getDiscounts();
$shipping_cost = $this->context->cart->getOrderShippingCost();
} else {
$discounts = $this->context->cart->getCartRules();
$shipping_cost = $this->context->cart->getTotalShippingCost();
}
if (count($discounts) > 0) {
foreach ($discounts as $product) {
$price = -1 * Tools::ps_round($product['value_real'], $this->decimals);
$total = Tools::ps_round($total + $price, $this->decimals);
}
}
return Tools::ps_round($shipping_cost, $this->decimals) + $total;
}

Comprueba si con eso solucionamos lo de paypal.

Nota: recuerda descargar el archivo antes de realizar la modificación para tener una copia del original.

Un saludo

ResponderCitar
Respondido : 19/09/2019 1:45 pm

Cursos Gratuitos WordPress