Closed mildiou closed 8 years ago
Bonjour,
il ne s'agit en effet pas ici d'un bug mais d'un besoin pour l'API SIPS : SIPS nécessitant l'envoi des montant dans la plus petite unité de la devise, le module doit donc multiplier par 100 le montant uniquement pour les devises avec des décimales. Le Yen par exemple n'a pas de décimales, son montant ne doit donc pas être multiplié par 100.
Désactiver les décimales pour une monnaie qui en comporte est une source de problème, il s'agit ici d'une propriété décrivant la devise au système, et non d'une fonctionnalité pour arrondir les prix à l'unité. Cela va par exemple fausser les calculs de taxes en arrondissant à l'unité des montants de taxes qui devraient l'être au centième.
duplicates #35
Sacrée erreur de ma part en effet. Désolé et merci pour l'éclaircissement !
Pas de soucis, ce n'est pas parce que je mets des labels qui ont l'air "méchants" que je suis énervé ;-)
C'est une erreur courante sous PrestaShop.
Hi there,
Juste pour signaler un petit souci lorsque l'on désactive les décimales sur sa boutique avec l'option "Localisation>Devise". Le montant du panier n'est plus multiplié par 100 pour la transaction avec Atos. Du coup, on se trouve avec un montant à payer / 100.
Dans tggatos.php, j'ai désactivé la condition qui vérifie si notre monnaie contient des décimales car à priori on doit quand même faire l'opération pour avoir un montant * 100.
ligne 588 :
if ($currency->decimals) $atosAmount *= 100;
devient
$atosAmount *= 100;
Idem pour ligne 631, 641, et 876 (en veillant bien à conserver le nom de la variable).
Damien, une raison particulière pour ce test ?
Et bravo pour le module, il fonctionne au top une fois ce petit souci réglé.