lanfisis Posted February 20, 2009 Share Posted February 20, 2009 Bonjour,J'ai créé sur mon site Prestashop (Version 1.1.0.1) un bon de réduction de 5% nommé OLO. Je l'ai utilisé pour une commande test. En vérifiant ma facture final, je me suis rendu compte d'une petite erreur.Image de l'erreur iciComme vous pouvez le constater, l'addition des différents montants de la commande n'est pas celui affiché dans le total :39,00 + 29,50 - 3,43 + 6,50 = 71,57 et non 71,58. Par contre si je fait :(39,00 + 29,50) x 0,95 (correspond au pourcentage de réduction) + 6,5 = 71,575 soit 71,78, le montant affiché sur ma facture. Comment puis-je corriger ce problème d'arrondis ?Merci d'avance. Link to comment Share on other sites More sharing options...
EnveloppeBulle Posted April 6, 2009 Share Posted April 6, 2009 UPj'ai le même problème ! (et site en prod !)le pb d'arrondis semble effectivement provenir de l'utilisation des bons de réduction.Est-ce que celà peut provenir du fait de l'utilisation de la fonction number_format($monprix*1.196,2,'.','') au lieu de la fonction money_format('%8.2i', $monprix*1.196) pour les calculs des prix ? Link to comment Share on other sites More sharing options...
EnveloppeBulle Posted April 6, 2009 Share Posted April 6, 2009 Bon, moi je n'avais pas le pb DANS prestashop (factures OK, paniers OK, récapitulatifs OK...) mais dans le module pour paiement CIC (Euroinformation).Je pense avoir corrigé le pb (mes tests le montrent en tout cas).A la ligne 799 de euroinformation.php du module du même nom, j'ai effectué ces modifs : ligne 799 //$MyTpe["montant"] = number_format(Tools::convertPrice($params['cart']->getOrderTotal(true, 4), $currency), 2, '.', ''); $MyTpe["montant"] = money_format('%8.2i', Tools::convertPrice($params['cart']->getOrderTotal(true, 4), $currency)); //$shipping = number_format(Tools::convertPrice($params['cart']->getOrderShippingCost(), $currency), 2, '.', ''); $shipping = money_format('%8.2i', Tools::convertPrice($params['cart']->getOrderShippingCost(), $currency)); $MyTpe["montant"] = $MyTpe["montant"]+$shipping; Ce qui me laisse à penser que comme tout le système de calcul des montants est basé sur la fonction number_format, alors la base même de la solution Prestashop peut être remise en question.Pour info, j'ai développé ma propre plateforme de VAD, et au début j'utilisais toujours la fonction "number_format" mais je me suis vite aperçu qu'il pouvait y avoir des soucis d'arrondis, et j'avais fini par utiliser partout la fonction "money_format" qui, comme son nom l'indique, sert à formater des valeur numérique en vue d'une utilisation de type monétaire. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now