resplandor2010 Posted July 22, 2013 Share Posted July 22, 2013 Hola a todos: A ver si alguien me puede echar un cable con el tema de los precios. Recientemente he actualizado a la versión 1.4.11, y tengo un pequeño problema, por el que estoy buscando solución y no encuentro nada. Se trata, de que algunos precios de los artículos, en el pedido, figuran con 1 céntimo de más o de menos. Tengo puesto los precios con iva, y el redondeo clasico, y en pantalla sale todo correcto, en la cesta, también, el total también sale correcto. Sólo aparece el error en el desglose del precio del artículo. Yo más o meno, se de dónde viene el error, pero no se solucionarlo. Este se produce, porque el precio que recogen los artículos en el pedido, es el precio sin iva de la ficha del producto, al que después le suma el iva: Precio de venta final: 11.9 € (IVA incluído) / 9.83 € (tasas no incluídas) En este caso, si se piden 10 unidades, la cesta muestra 119 €, el importe final, son 119, pero en el desglose, pone 10 a 11.89 € (9.83 + 21 % de iva) = 118'90 € y total a pagar 119 € Aunque el total final, en todos los sitios es correcto, no queda bien que en el desglose del artículo, salga un importe incorrecto. La solución, sería que el desglose, recogiese los precios con el iva incluido. Pero no se si se puede hacer, ni como hacerlo. Antes con las demás versiones, no tenía este problema. Por favor, si sabéis la solución, o por dónde buscar, sería muy de agradecer. Un saludo Link to comment Share on other sites More sharing options...
resplandor2010 Posted July 23, 2013 Author Share Posted July 23, 2013 Hola de nuevo. Estoy ya un poco desesperado, y no enuentro la solución. Creo que todo ha venido al pasar de la versión 1.4.09 a la 1.4.11 Aunque el importe final, sea el correcto, no me gusta que se hagan pedidos, y tando en el correo que se envía, como en el pdf, ponga un precio diferente al real (es sólo 1 centímo, pero no queda bien). Por ejemplo. 6 artículos a 11,89 71,34 € Total Productos 71,40 € Descuentos 0,00 € Envolver regalos 0,00 € Transporte 9,90 € Total a pagar 81,30 € Nunca he tenido este problema con las demás versiones y ya no se por dónde mirar. Por favor , si alguien puede indicarme algo, se lo agradecería mucho. Un saludo Link to comment Share on other sites More sharing options...
resplandor2010 Posted July 24, 2013 Author Share Posted July 24, 2013 Hola: Llevo ya varios días con este tema, y finalmente he encontrado cual es el archivo que produce este error. Comparando los posibles archivos que manejan los impuestos con el winmerge, de las versiones 1.4.09 y 1.4.11, he visto que el error lo produce el archivo classes/Order.php He sustituido el archivo comentado, de la versión 1.4.9 a la 1.4.11, y desaparece el problema de los céntimos. Todo esto en local. Ahora viene la gran duda. Si dejo el archivo de la version 1.4.9 en la 1.4.11, ¿podría tener algún problema? Se que lo lógico sería encontrar la parte del código afectada, y cambiarla, en vez de todo el archivo completo, pero yo no se exactamente como hacerlo. Con el winmerge, creo que he localizado la parte del código afectada, pero no se como soluionarlo. Por favor, alguien me puede echar un cable. Gracias. Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted July 24, 2013 Share Posted July 24, 2013 ¿Has probado cambiarlo, por el fichero de la SVN: https://github.com/PrestaShop/PrestaShop-1.4/blob/development/classes/Order.php ? Link to comment Share on other sites More sharing options...
resplandor2010 Posted July 24, 2013 Author Share Posted July 24, 2013 ¿Has probado cambiarlo, por el fichero de la SVN: https://github.com/P...asses/Order.php ? Gracias por la información, pero acabo de probar ese archivo, y el problema no se soluciona. Lo curioso del caso, es que el correo que recibe el cliente está correcto, pero en el pdf generado, el pedido de la parte de administración, y el correo que recibo yo, está mal. Solo funciona correctamente con el archivo de la versión 1.4.9 Es raro que nadie más tenga este problema. La verdad es que no se que hacer, si dejar el archivo de la 1.4.9 en la 1.4.11, o esperar a ver si alguien con mas conocimientos que yo, me puede indicar como solucionarlo. Link to comment Share on other sites More sharing options...
resplandor2010 Posted July 24, 2013 Author Share Posted July 24, 2013 Hola: Finalmente, indagando y comparando ficheros, he descubierto la parte del código, que hace que muestre los precios unitarios con un céntimo de más o de menos, en algunos artículos. El fichero afectado, es el classes/order.php como ya apuntabamos anteriormente. El código de la versión 1.4.9 (que es el que funciona bien), es el siguiente if ($this->_taxCalculationMethod == PS_TAX_EXC) $row['product_price'] = Tools::ps_round($row['product_price'], 2); else $row['product_price_wt'] = Tools::ps_round($row['product_price'] * (1 + $row['tax_rate'] / 100), 2); $group_reduction = 1; if ($row['group_reduction'] > 0) $group_reduction = 1 - $row['group_reduction'] / 100; if ($row['reduction_percent'] != 0) { if ($this->_taxCalculationMethod == PS_TAX_EXC) $row['product_price'] = ($row['product_price'] - $row['product_price'] * ($row['reduction_percent'] * 0.01)); else { $reduction = Tools::ps_round($row['product_price_wt'] * ($row['reduction_percent'] * 0.01), 2); $row['product_price_wt'] = Tools::ps_round(($row['product_price_wt'] - $reduction), 2); } } y el de la 1.4.11, es el siguiente $row['product_price'] = Tools::ps_round($row['product_price'], 2); $row['product_price_wt'] = Tools::ps_round($row['product_price'] * (1 + $row['tax_rate'] / 100), 2); $group_reduction = 1; if ($row['group_reduction'] > 0) $group_reduction = 1 - $row['group_reduction'] / 100; if ($row['reduction_percent'] != 0) { $row['product_price'] = ($row['product_price'] - $row['product_price'] * ($row['reduction_percent'] * 0.01)); $reduction = Tools::ps_round($row['product_price_wt'] * ($row['reduction_percent'] * 0.01), 2); $row['product_price_wt'] = Tools::ps_round(($row['product_price_wt'] - $reduction), 2); } Como podési comprobar, hay 2 sentencias IF Else, que en la versión 1.4.11 han desaparecido. Yo de programación no entiendo mucho, pero si pongo esa parte del código igual que está en la versión 1.4.9, en la nueva versión, los precios se muestran correctamente. No se si alguien me puede indicar, si es que ha sido un descuido de programación, o qué. Me parece raro que haya sido un error. Por favor, los que dominási prestashop, decidme si puedo dejar esa parte del código con las sentencias if else, como estaban el la 1.4.9, sin que por ello signifique tener otro tipo de problemas. Gracias de antemano. Link to comment Share on other sites More sharing options...
yeremaya Posted September 1, 2013 Share Posted September 1, 2013 (edited) Tengo el mismo problema, desde que actualicé a la versión 1.4.11. Me suma un céntimo a los productos que he modificado después de la actualización. Edited September 1, 2013 by yeremaya (see edit history) Link to comment Share on other sites More sharing options...
yeremaya Posted September 1, 2013 Share Posted September 1, 2013 ¿Pudiste solucionar el problema sustituyendo el código?. Link to comment Share on other sites More sharing options...
Recommended Posts