cvbdev Posted June 13, 2010 Share Posted June 13, 2010 Bonjour,Actuellement j'ai un gros soucis dans Prestashop. Aprés avoir modifier des paramètres, rajouter des champs pour calculer des poids (décimal), ce qui fonctionne trés bien, je suis me suis aperçu d'un énorme problème.Dans le panier (quand j'affiche le récapitulatif) mes produits alimentaires sont calculés avec une taxe de 19,6% alors qu'ils sont configurés en base de données à 5,5%. Et mes frais de transport sur une taxe de 19,6%. Pour une raison que j'ignore le prix de mon produit s'affiche HT dans le panier....Toujours pour une raison qui m'échappe (le CB et le paiement par chéque) calculs bien mes produits alimentaires en 5,5% et mes frais de transports en 19,6% ! Je vois cela dans le récapilutatif des commandes.A cause de cette différence entre le panier et le paiement des erreurs surgissent due à la différence de montant entre celui qui est affiché et celui que l'on va payer !Avertissement et erreur lors du paiement par chéque. We noticed a problem with your order. If you think this is an error, you can contact our customer support. Voici quelques élèments qui j'espère vous aideront.-> L'ancienne sauvegarde qui fonctionnait y 15 jours (aucune erreur de paiement à la fin) ne fonctionne plus aujourd'hui. Entre temps des élèments dans la base de données ont été modifiés. -> Je n'ai jamais touché à aucun moment au calcul des montants, aux taxes et autres fonction du pannier. J'ai juste changé la quantité dans la table ps_product en décimal pour qu'elle puisse accueillir des décimaux (contraintes dans le cadre de notre projet).-> Quelques soit la taxe que je mets pour mes produits alimentaires, je suis toujours sur une taxe à 19,6%-> Installation du module CIC (j'ai trouvé un autre post qui semble parlait de ces soucis avec ce dernier)http://www.prestashop.com/forums/viewthread/51839/P30/configuration_et_utilisation_de_prestashop/probleme_sur_la_commande-> Aprés avoir déroulé le fil, je me suis aperçu qu'il prennait la taxe associés à la zone géographique (je suis en France). Explicant sans doute le dernier point (?)Fichier Product.php$result = Db::getInstance()->getRow(' SELECT p.`price`, p.`reduction_percent`, p.`wholesale_price`, p.`reduction_percent`, p.`reduction_from`, p.`reduction_to`, p.`id_tax`, t.`rate`, '.($id_product_attribute ? 'pa.`price`' : 'IFNULL((SELECT pa.price FROM `'._DB_PREFIX_.'product_attribute` pa WHERE id_product = '.intval($id_product).' AND default_on = 1), 0)').' AS attribute_price FROM `'._DB_PREFIX_.'product` p '.($id_product_attribute ? 'LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON pa.`id_product_attribute` = '.intval($id_product_attribute) : '').' LEFT JOIN `'._DB_PREFIX_.'tax` AS t ON t.`id_tax` = p.`id_tax` WHERE p.`id_product` = '.intval($id_product)); $price = $result['price']; Aprés cette fonction mon prix HT passe en 19,6%. Le taux qui rentre est bien de 5,5%, je précise. $tax = floatval(Tax::getApplicableTax(intval($result['id_tax']), floatval($result['rate']))); Dans mon fichier de sortie (error_log) : Taux 5,5Prix :8,10 (prix HT)Taux 5,5Prix :9,6876 (prix TTC à 19,6%) Pensez-vous que mon problème puisse venir de la base de données ? Du code (sachant que j'ai pas touché au calcul des taxes une seule fois) ? Pourquoi mes prix s'affiche t-il en HT dans mon panier (chose qui m'échappe également).J'espère que vous allez pouvoir me donner des pistes, des élèments pour que je puisse orienter mes recherches ! J'avoue ne plus savoir ou chercher...D'avance merciCordialement,CVbdevps : Dans le backoffice, les frais de transports sont calculés sur le poids final. En le mettant sur le prix final ça ne change rien du tout !Topic RESOLU -yoya971 Link to comment Share on other sites More sharing options...
liandri Posted June 14, 2010 Share Posted June 14, 2010 Bonjour,Essai de revoir toute la séquence de traitement des taxes en fonction des zones / devises dans l'onglet paiement.A+ Link to comment Share on other sites More sharing options...
cvbdev Posted June 14, 2010 Author Share Posted June 14, 2010 Bonjour,Merci de ta réponse ! Je vais revoir cela de plus prêt !Est-ce que tu penses que ceci couplé au erreur du module de paiement CIC pourrait provoquer les nombreuses anomalies dont je fais l'objet ? Je te tiens au courant, dés que j'ai des élèments probants...++ Link to comment Share on other sites More sharing options...
cvbdev Posted June 14, 2010 Author Share Posted June 14, 2010 Bonjour,En désactivant le module de paiement de la CIC le message lors du paiement par chèque à disparu ! Je / nous continuons à chercher cet histoire de taxe, pourquoi il nons prend la taxes des frais de transport...? ++ Link to comment Share on other sites More sharing options...
cvbdev Posted June 14, 2010 Author Share Posted June 14, 2010 @liandri : Merci pour ta réponse ! Ca fonctionne nickel ! Par contre, je gère des quantités sous forme décimal.Est-ce que tu sais quel fichier m'arrondie ces quantités en entier ? Ce qui ne donne pas un prix "juste"...D'avance merci++ Link to comment Share on other sites More sharing options...
liandri Posted June 14, 2010 Share Posted June 14, 2010 Avant même de traiter la quantité, je te donne juste une donnée supplémentaire qui pour le coup répond à ta question :La structure de la table _product gère les quantités sous forme d'entier ( quantity => int(10) )Tu auras donc beau modifier quoi que se soit dans le code, il faut au préalable gérer le décimal dans la structure.De plus, j'ai peur que ça ai de fâcheuses incidences sur tous les autres calculs.A+ Link to comment Share on other sites More sharing options...
cvbdev Posted June 14, 2010 Author Share Posted June 14, 2010 Bonjour,Merci de ta réponse ! j'ai modifié la structure de la base de données (en mettant les champs à Float). J'ai changé dans le code, également en remplaçant "intval" par "floatval" sur les quantités. Seul ennuis, le prix n'est pas impacté par le décimal, il reste calculé sur un entier (6 au lieu de 6.4 Kg).J'ai pas le choix c'est une contrainte du cahier des charges !Actuellement je cherche pourquoi le prix n'est pas impacté, par le changement du "poid" ! Alors que le site affiche bien 6,4 (panier, recap commande,...)Une idée ? ++ Link to comment Share on other sites More sharing options...
cvbdev Posted June 14, 2010 Author Share Posted June 14, 2010 Bonsoir,Finalement j'ai résolu le problème, je n'avais pas tout passé en Floatval(.... Voilà, si ça peut servir à une personne :- Utiliser la méthode de "liandri" (1er réponse)- Rechercher toute les valeurs quantity dans le code et changer le intval en floatval aprés modification des types de champs dans la base de données.Bonne soirée !! ++ Link to comment Share on other sites More sharing options...
juaddit Posted June 21, 2010 Share Posted June 21, 2010 salut, du coup tu as changé tous les int en float ??? ce n'est pas un peu dangererux ? J'ai une problematique similaire mais je ne veux pas tout cassé. Link to comment Share on other sites More sharing options...
dos.2 Posted December 17, 2010 Share Posted December 17, 2010 Bonjour,Je met une note ici car je viens d'avoir le meme probleme, je n'ai pas eu a changé les tpl et php.Dans mon theme -> modules -> blocknewsletter -> il faut changer le droit des repertoire de 705 a 727sur votre ftp, click droit "files permissions"Désormais tout fonctionnevoila ma modeste contributiona+ 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