Jump to content
Sign in to follow this  
lanfisis

Problème au niveau de la facture

Recommended Posts

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 ici

Comme 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.

Share this post


Link to post
Share on other sites

UP

j'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 ?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More