zurgly Posted May 27, 2011 Share Posted May 27, 2011 Bonjour,J'ai développé un module pour les anciennes version de prestashop, or il se trouve que dans la 1.4 le champs id_tax a était modifié en id_tax_rules_group dans plusieurs tables , je voulais savoir si cela allez être définitif pour les prochaines versions de prestashop ? J'aurais aimé savoir aussi si c'etais possible de faire une condition si c'est id_tax_rules_group appliquer tel action et si c'est id_tax appliqué une autre action dans une seule et même requête.merciCordialement Link to comment Share on other sites More sharing options...
Maxence de Flotte Posted May 31, 2011 Share Posted May 31, 2011 Bonjour,Malheureusement (et cela vaut pour tout projet informatique), on ne peut pas assurer que le schéma des tables ne bouge plus. Dans tous les cas, je suis presque sûr que id_tax_rules_group restera pour toute les futurs versions 1.4.x.Pour votre requête il est bien sûr possible d'effectuer des conditions SQL (if, ifnull, ...) mais il est préférable dans votre cas d'effectuer deux requête en fonction de la version de Prestashop : if (version_compare(_PS_VERSION_, 1.4) >= 0) { }else { } En remplaçant "1.4" par le numéro de version où id_tax_rules_group est apparu (il semble que ça soit la 1.4.0.5).Pour mysql je vous conseil de faire un tours sur la documentation officielle (en français) : http://dev.mysql.com/doc/refman/5.0/fr/control-flow-functions.html Link to comment Share on other sites More sharing options...
Thierry Point2vente Posted May 31, 2011 Share Posted May 31, 2011 La réponse semble effectivement cohérente, sauf que faire un LEFT JOIN conditionnel, ce n'est pas possible.L'on est obligé de reprendre du code, le seul SQL ne suffit pas pour régler ce problème.Par ailleurs, comment géré le changement de champ sur la fiche produit ; en effet, auparavant id_tax représentait le taux de tva.Maintenant il faut passer par les règles, c'est id_tax_rules_group qui contient l'id de la taxe. Mais comment associé les 2 (je structurellement avec du SQL) ? Link to comment Share on other sites More sharing options...
Maxence de Flotte Posted June 1, 2011 Share Posted June 1, 2011 Bonjour,Pour récupérer le taux de la tax ou son id, il faut soit effectuer une jointure avec id_tax_rules_group + un group by soit utiliser une fonction native de prestashop : TaxRulesGroup::getTaxesRate().Cette dernière prends quatre paramètres : l'identifiant id_tax_rules_group, l'identifiant du pays, d'identifiant de l'état et du comté. Les deux derniers sont optionnelles (on peut les remplacer par '0').Voici un exemple d'utilisation : TaxRulesGroup::getTaxesRate(28, Configuration::get('PS_COUNTRY_DEFAULT'), 0, 0); Où "28" est l'id_tax_rules_group .Cette fonction retourne un nombre flottant qui est le taux de tax en %.Il est possible de récupérer l'identifiant du pays du visiteur grâce à : $id_country = (int)$cookie->id_country; Link to comment Share on other sites More sharing options...
Thierry Point2vente Posted June 1, 2011 Share Posted June 1, 2011 Merci, avec un peu de recherche effectivement, c'est ce que j'ai pu découvrir, néanmoins, j'aurais plutôt pensé utiliser 'PS_SHOP_COUNTRY_ID' qui correspond à l'ID du pays de la boutique ... Link to comment Share on other sites More sharing options...
Maxence de Flotte Posted June 1, 2011 Share Posted June 1, 2011 Oui, j'ai donné un exemple issu du code de prestashop. Après, il faut remplacer "Configuration::get('PS_COUNTRY_DEFAULT')" par ce que l'on veut. Mais normalement il faut utiliser le pays du client et pas celui du magasin. Link to comment Share on other sites More sharing options...
Thierry Point2vente Posted June 1, 2011 Share Posted June 1, 2011 Afin de récupérer le bon taux de TVA pour la commande, je suis d'accord. Pour le taux de TVA par défaut sur la fiche produit, je suis sceptique ...Fiscalement, le taux de TVA du produit dépend du pays de la boutique. Ensuite, l'on peut envisager les taux de TVA par zone de livraison.Je pense donc que le taux de TVA par défaut doit être lié à la boutique ; je ne vois pas l'utilité de l'autre variable :-( 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