TrogloGeek / prestashop-tggatos-module

TggAtos Module for Prestashop (1.4 to 1.7), ATOS SIPS 6xx payment gateway
61 stars 34 forks source link

Devise sans décimale #52

Closed mildiou closed 8 years ago

mildiou commented 8 years ago

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

TrogloGeek commented 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.

TrogloGeek commented 8 years ago

duplicates #35

mildiou commented 8 years ago

Sacrée erreur de ma part en effet. Désolé et merci pour l'éclaircissement !

TrogloGeek commented 8 years ago

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.