Jump to content
Sign in to follow this  
zurgly

base de données mise a jour 1.4

Recommended Posts

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.

merci
Cordialement

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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) ?

Share this post


Link to post
Share on other sites

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;

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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 :-(

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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