Jump to content

Recommended Posts

Buenos días, he visto otros post relacionados con el tema, pero no he podido solucionar el tema.

 

El caso es que tengo mi tienda configurada con una sola moneda (Peso Colombiano) y no se visualiza con los 3 decimales (como debería ser, por el formato de esta moneda), tengo productos de precio por ejemplo $ 9.500 y al ingresarlos me los transforma en $9.50. 

 

Ya he visto Localización->Moneda y el formato y todo eso... también tengo configurado el redondeo en modo clasico. Adjunto como tengo configurado el precio y la conf de la moneda.

 

Gracias

post-590741-0-66847800-1381162594_thumb.png

Link to comment
Share on other sites

Hola Nadie, gracias por info, pero ya lo habia visto y creo que solo es para agregar un nuevo formato, pero al final seguirá mostrando 2 decimales :/

 

Creo que puedes añadir un formato con 3 decimales depende con 2.  

Link to comment
Share on other sites

Tambien, he encontrado este post de: http://www.prestashop.com/forums/topic/196757-3-decimal-currencies/?do=findComment&comment=1089081 de bellini13

 


This is pretty sad the way its been implemented, but here is how you support 3 decimal places in Prestashop v1.5. Keep in mind, this is a global site change, so it will impact currencies that are only 2 decimal places. All Prices will be shown with 3 decimals if you make this change.
 
To summarize, you would need to make the following changes to use a 3 decimal place price. Read below for more details
1) Change the config/defines.inc.php
 
define('_PS_PRICE_DISPLAY_PRECISION_', 3);
2) Override Tools::ps_round so the precision is switched globally from 2 to 3
3) Search for the usage of string_format, and ensure 3f is used instead of 2f. I only get 2 hits when I search, which is prices.tpl and AdminRangePriceController.php
 
The detailed explanation
1. Change the config/defines.inc.php
There is a config file named defines.inc.php, which has a setting _PS_PRICE_DISPLAY_PRECISION_
define('_PS_PRICE_DISPLAY_PRECISION_', 2);
This is used by the Tools::displayPrice function in conjunction with the currency format to show the price on a majority of the site. I changed the 2 to a 3 on a local test site and it seems to be working 90%.
 
2. Override Tools::ps_round
There are still some places where only 2 decimals are showing, and that is because of functions like Product::getPriceStatic and Product::priceCalculation also do decimal formatting, and instead of using the above setting, they hard coded 2. So in the AdminProductsController, where the product price is entered, rounds the price to 2 decimal
Product::getPriceStatic($this->_list[$i]['id_product'], true, null, 2, null, false, true, 1, true);
 
Those functions just pass the decimal value to Tools::ps_round, so a simple override of the ps_round function, you could do
if ($precision==2) $precision=3
 
3. Search for the usage of string_format
The last thing I could find is within the actual smarty templates, there is also price formatting. For example, in prices.tpl (which is used to show the admin product price), they are using string_format:'%.2f'
This is taking the 3 decimal price, and formatting it to 2 decimal, so changing it to string_format:'%.3f' fixes that display issue.
I suppose you could just remove the string_format entirely, but that will result in showing the full 6 decimal places
Link to comment
Share on other sites

  • 3 weeks later...

 

Buenas noches.

 

En mi caso me ocurre algo al contrario:  Necesito mostrar los decimales con dos posiciones, pero que PS opere con 4 ya que el cálculo del desglose del iva en las facturas lo hace mal,  porque lo aplica producto por producto y nunca cuadra con el total de la factura (siempre faltan decimales.

 

¿Podéis orientarme de alguna manera en como resolver el problema?

 

Muchas gracias

Link to comment
Share on other sites

  • 1 month later...

Creo que encontré la solución para previsualizar los tres decimales, actualmente me estaba con el mismo problema el caso era que había configurado el prestashop 1.5 para que hiciera el proceso de la suma de los números con tres decimales y se lograra hacer correctamente la factura pero en el precio del producto seguía apareciendo los dos decimales.

Ejemplo un producto que costaba 12.000 se veía como 12.00 pero cuando se añadía al carrito de compra si sumaba normalmente con sus tres cifras.

Aun así no estaba contento porque haciendo pruebas con diferentes personas generaba desconfianza el que el producto tuviera solo 2 cifras y al agregarlo 3

Busque en muchos foros y no puede hallar la respuesta hasta que un amigo mio me hizo caer en cuenta
Tan solo a la hora de colocar el precio con IVA del producto dejaba que la plataforma se encargara de colocar el (.)  Punto es decir 12000 adicional coloque en el panel de moneda de peso colombiano desactive la opción mostrar decimales y de esta manera el precio se muestra 12,000 y hace correctamente la suma esperada.

Adicional a esto si también configuraste costos de envió y otros productos debes usar la misma metodología
Bueno espero y sea de ayuda en caso de que no se comprenda muy bien no duden en hacer preguntas

Edited by daniac (see edit history)
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...