chloe45 Posted August 21, 2013 Share Posted August 21, 2013 (edited) Bonjour à tous,J'aimerais ouvrir un post sur la futur augmentation de la TVA au 1er janvier 2014 afin de mieux palier à certains bug en avance avant cette date.Je viens de faire le test sur une boutique, en modifiant le taux de tva de 19,6% à 20% dans le back office tout va bien apparemment.Maintenant mes prix sont tous augmenté sur ma boutique, exemple un produit à 6,90€ vient de passer à 6,92 euros avec la taxe à 20%J'ai dans ma boutique environ 3000 produits.Le problème c'est que 6,90 euros c'est pour mes clients un prix psychologique et ce n'est pas pensable d'avoir un 6,92 eurosDonc à mon avis, mon entreprise va subir cette augmentation que nous n'allons pas répercuter sur le client (sauf pour certains articles)J'aimerais donc savoir si il est possible de conserver mes prix actuel mais en modifiant tout de même la tva ?Si ce n'est pas possible je vais devoir tout modifier à la main ? (ou avec un gros module très connu mais qui coute aussi assez chers?)Si vous avez des pistes , d'avance merci ! Edited November 16, 2013 by chloe45 (see edit history) Link to comment Share on other sites More sharing options...
cadeaumaestro Posted August 23, 2013 Share Posted August 23, 2013 (edited) Bonjour Chloe45, En effet ce comportement est celui par défaut de Presta. En fait, les prix sont stockés en HT dans la base de données. C'est la raison pour laquelle lorsque l'on modifie la TVA, il garde toujours le même prix HT mais modifie le prix TTC. Tu as une solution qui peut être intéressante si tu connais un petit peu MySQL. 19,6/20 = 0,9966667 Tu multiplies tes prix HT par 0,9966667 avec une requête SQL et le tour est joué ! (il faudra ensuite simplement modifier la TVA 19,6% e 20% dans le back de Presta). Edited August 23, 2013 by cadeaumaestro (see edit history) Link to comment Share on other sites More sharing options...
chloe45 Posted August 23, 2013 Author Share Posted August 23, 2013 Super, je vais tester voir ! Merci ! Link to comment Share on other sites More sharing options...
Le-cathare Posted August 24, 2013 Share Posted August 24, 2013 Bonjour moi je connait rien en MySQL. Peut t'on m'expliquer ? Link to comment Share on other sites More sharing options...
passicool Posted August 26, 2013 Share Posted August 26, 2013 Bonjour, Prestapricing te permet de corriger simplement les prix pour les arrondir en prix psychologique. Le module n'est pas trop chère 85 €. Fais un tour sur le site du dev sitolog.com En plus cela pourra servir dans la gestion au quotidien. Link to comment Share on other sites More sharing options...
fase Posted August 26, 2013 Share Posted August 26, 2013 Bonjour, Prestapricing te permet de corriger simplement les prix pour les arrondir en prix psychologique. Le module n'est pas trop chère 85 €. Fais un tour sur le site du dev sitolog.com En plus cela pourra servir dans la gestion au quotidien. Effectivement avec prestapricing c'est parfait ! Link to comment Share on other sites More sharing options...
Bob30320 Posted October 28, 2013 Share Posted October 28, 2013 Ou simplement avec un export CSV des prix de vente HT, une modification globale avec un tableur en multipliant les prix par 0,996666667 (en fait 1.196/1.2) et en réimportant les nouveaux prix HT. Actualiser le taux de TVA à l'issue. Link to comment Share on other sites More sharing options...
Tristan de VGO Posted November 9, 2013 Share Posted November 9, 2013 Bonjour Fais une sauvegarde avant tout import ou requêtes sql comme tout bon webmaster Link to comment Share on other sites More sharing options...
Le-cathare Posted November 15, 2013 Share Posted November 15, 2013 Bonjour Pour les moins dégourdi avec les requêtes sql, il faudrait faire un tuto qui reprend tout sa au clair est en détails. 1 Link to comment Share on other sites More sharing options...
jujutte24 Posted November 16, 2013 Share Posted November 16, 2013 Ne serait-il pas possible de modifier le taux de 19.6% à 20% par le back-office ? Simplement ? et ainsi les prix passent tous en TVA à 20% ? Link to comment Share on other sites More sharing options...
chloe45 Posted November 16, 2013 Author Share Posted November 16, 2013 Si ca ne pose pas de probleme ca en 1 clic c'est fait dans le BO Le soucis c'est que les prix vont du coup changer exemple un produit de 10 euros ttc va passer à 10,03€ ttc avec la tva à 20% La solution c'est d'utiliser un module de gestion en masse de prix Link to comment Share on other sites More sharing options...
jujutte24 Posted November 16, 2013 Share Posted November 16, 2013 Salut, Ok, pour moi ça ne pose pas de souci. Sinon, oui, un logiciel dans le style Store commander. Ok, merci pour l'info. ++ 1 Link to comment Share on other sites More sharing options...
nympheur Posted November 18, 2013 Share Posted November 18, 2013 Bonjour je rebondis sur le sujet...comment faire facilement ce changement de taux Merci d'avance Link to comment Share on other sites More sharing options...
nympheur Posted November 22, 2013 Share Posted November 22, 2013 Je savais bien qu'une âme charitable pensait à nous pauvres (petits) développeurs.... Merci à Store Commander http://www.prestashop.com/forums/topic/290813-module-gratuit-programmateur-tva-2014-r%C3%A9veillonnez-zen/ J'ai commandé et j'attends l'envoi sur mon mail... Encore merci à lui Link to comment Share on other sites More sharing options...
caeruleus Posted November 23, 2013 Share Posted November 23, 2013 Bonjour, Quel est le nom de la table à éditer, et quel champ ? Merci. Link to comment Share on other sites More sharing options...
Tchupa Posted November 24, 2013 Share Posted November 24, 2013 Je savais bien qu'une âme charitable pensait à nous pauvres (petits) développeurs.... Merci à Store Commander http://www.prestashop.com/forums/topic/290813-module-gratuit-programmateur-tva-2014-r%C3%A9veillonnez-zen/ J'ai commandé et j'attends l'envoi sur mon mail... Encore merci à lui Tu as reçu le module en question? Link to comment Share on other sites More sharing options...
nympheur Posted November 25, 2013 Share Posted November 25, 2013 Non pas encore. Mais je ne m'inquiète pas il va surement arriver bientôt Link to comment Share on other sites More sharing options...
nympheur Posted November 26, 2013 Share Posted November 26, 2013 Salut Tchupa Voilà j'ai bien reçu le module et il est parfaitement installé sur une version 1.5.5.0 de Prestashop bye Link to comment Share on other sites More sharing options...
Gu1llaume Posted November 29, 2013 Share Posted November 29, 2013 A priori voici la requête a effectuer: Vérification SELECT price,price*0.9966667 new_price FROM ps_product; Action Update ps_product set price=price*0.9966667; Attention c'est donné sans garanti hein pensez à faire une sauvegarde au moins de votre table Bon réveillon ! Link to comment Share on other sites More sharing options...
jd440 Posted December 1, 2013 Share Posted December 1, 2013 (edited) Je pense que la meilleure solution serais de mttren place un cron qui mette à jour le taux de TVA le 01/01/14 à 00h01.Dans mon cas de conserver mon TTC identique et modifier que le HTDonc mon cron à pour tache de1- Faire un sauvegarde de ma base mysqldump -u DB_user --password=DB_pass -h DB_host DB_prod | \ mysql -u DB_user --password=DB_pass -h DB_host DB_beta 2- Modifier tous les prix HT ==> Nouveau HT = HT*1.196/1.2 update `ps_product` set `price` = `price`* 1.196/1.2; update `ps_product_shop` set `price` = `price`* 1.196/1.2; update `ps_product_attribute` set `price` = `price`* 1.196/1.2; update `ps_product_attribute_shop` set `price` = `price`* 1.196/1.2; 3- Modifier le Taux update `ps_tax` set `rate` = 20 WHERE `rate` = 19.6; update `ps_tax_lang` set `name` = 'TVA FR 20%' WHERE `name` = 'TVA FR 19.6%'; update `ps_tax_rules_group` set `name` = 'FR Taux standard (20%)' WHERE `name` = 'FR Taux standard (19.6%)'; update `ps_tax` set `rate` = 10 WHERE `rate` = 7; update `ps_tax_lang` set `name` = 'TVA FR 10%' WHERE `name` = 'TVA FR 7%'; update `ps_tax_rules_group` set `name` = 'FR Taux réduit (10%)' WHERE `name` = 'FR Taux réduit (7%)'; update `ps_tax` set `rate` = 5 WHERE `rate` = 5.5; update `ps_tax_lang` set `name` = 'TVA FR 5%' WHERE `name` = 'TVA FR 5.5%'; update `ps_tax_rules_group` set `name` = 'FR Taux réduit (5%)' WHERE `name` = 'FR Taux réduit (5.5%)'; Attention: la solution : price=price*0.9966667; ou price=price*1.196/1.2; n'est correct que pour les produits dont tx passe de 19.6 à 20% donc attention si vous avez des produits à 7=10%, ou 5.5=>5% Edited December 1, 2013 by jd440 (see edit history) 1 Link to comment Share on other sites More sharing options...
Le-cathare Posted December 1, 2013 Share Posted December 1, 2013 (edited) En effet un cron serait une bonne solution. Quelqu'un c'est comment faire? Edited December 1, 2013 by Le-cathare (see edit history) Link to comment Share on other sites More sharing options...
jd440 Posted December 1, 2013 Share Posted December 1, 2013 Il y a plusieurs partit Le cron, ou la tache programmé c'est à voir du coté de ton hebergeur. Après il faut voir ce que tu programme La première partit (backup) peut se faire directement en ligne de commande. Pour la partit de mise à jour des prix et taux, Il fraudrait programmer quelque choses Je suis entrain de plancher dessus. Link to comment Share on other sites More sharing options...
jd440 Posted December 1, 2013 Share Posted December 1, 2013 (edited) Et voici mon bout de code; Si quelqu'un a des amélioration hésitez pas: <?php error_reporting(E_ALL); include(dirname(__FILE__).'/../../config/config.inc.php'); require_once(dirname(__FILE__).'/../../init.php'); if (!Configuration::get('NEWRATE_RESTORE')) echo "t1"; // Generer Security Token si il n'existe pas if (!Configuration::get('NEWR_SECURITY_TOKEN')) Configuration::updateValue('NEWR_SECURITY_TOKEN', Tools::passwdGen(30)); //Vérifier Security Token if (Tools::getValue('security') == Configuration::get('NEWR_SECURITY_TOKEN')) { $action = ((Tools::getValue('action')) ? (Tools::getValue('action')) : ''); if ($action !=''){ $multiple = '(1.196/1.2)'; if (($action == 'nvxtx')&&(!Configuration::get('NEWRATE_UPDATE'))) { echo "update"; $multiple = '*'.$multiple; $nvxtx1 = 20; $nvxtx2 = 10; //$nvxtx3 = 5; $oldtx1 = 19.6; $oldtx2 = 7; //$oldtx3 = 5.5; } elseif (( $action == 'restoretx')&&(!Configuration::get('NEWRATE_RESTORE'))) { echo "restore"; $multiple = '/'.$multiple; $nvxtx1 = 19.6; $nvxtx2 = 7; //$nvxtx3 = 5.5; $oldtx1 = 20; $oldtx2 = 10; //$oldtx3 = 5; } $sql = ' update `'._DB_PREFIX_.'product` set `price` = `price`'.$multiple.'; update `'._DB_PREFIX_.'product_shop` set `price` = `price`'.$multiple.'; update `'._DB_PREFIX_.'product_attribute` set `price` = `price`'.$multiple.'; update `'._DB_PREFIX_.'product_attribute_shop` set `price` = `price`'.$multiple.'; update `'._DB_PREFIX_.'tax` set `rate` = '.$nvxtx1.' WHERE `rate` = '.$oldtx1.'; update `'._DB_PREFIX_.'tax_lang` set `name` = \'TVA FR '.$nvxtx1.'%\' WHERE `name` = \'TVA FR '.$oldtx1.'%\'; update `'._DB_PREFIX_.'tax_rules_group` set `name` = \'FR Taux standard ('.$nvxtx1.'%)\' WHERE `name` = \'FR Taux standard ('.$oldtx1.'%)\'; update `'._DB_PREFIX_.'tax` set `rate` = '.$nvxtx2.' WHERE `rate` = '.$oldtx2.'; update `'._DB_PREFIX_.'tax_lang` set `name` = \'TVA FR '.$nvxtx2.'%\' WHERE `name` = \'TVA FR '.$oldtx2.'%\'; update `'._DB_PREFIX_.'tax_rules_group` set `name` = \'FR Taux réduit ('.$nvxtx2.'%)\' WHERE `name` = \'FR Taux réduit ('.$oldtx2.'%)\';'; /* $sql = ' update `'._DB_PREFIX_.'tax` set `rate` = '.$nvxtx3.' WHERE `rate` = '.$oldtx3.'; update `'._DB_PREFIX_.'tax_lang` set `name` = \'TVA FR '.$nvxtx3.'%\' WHERE `name` = \'TVA FR '.$oldtx3.'%\'; update `'._DB_PREFIX_.'tax_rules_group` set `name` = \'FR Taux réduit ('.$nvxtx3.'%)\' WHERE `name` = \'FR Taux réduit ('.$oldtx3.'%)\'; '; */ if (($action == 'nvxtx')&&(!Configuration::get('NEWRATE_UPDATE'))) { echo "update"; Db::getInstance()->ExecuteS($sql); Configuration::updateValue('NEWRATE_UPDATE', date("dmy-His")); // Suppression d'une clé Configuration::deleteByName('NEWRATE_RESTORE'); } elseif (( $action == 'restoretx')&&(!Configuration::get('NEWRATE_RESTORE'))) { echo "restore"; Db::getInstance()->ExecuteS($sql); Configuration::updateValue('NEWRATE_RESTORE', date("dmy-His")); // Suppression d'une clé Configuration::deleteByName('NEWRATE_UPDATE'); } elseif ( $action == 'backupquantity') { $sql = "SELECT pss.`id_product` , ps.`reference`, st.`id_product_attribute`, st.`id_shop`, st.`id_shop_group`, st.`quantity`, st.`depends_on_stock`, st.`out_of_stock`, psl.`name` FROM `ps_product` ps, `ps_product_shop` pss, `ps_product_lang` psl, `ps_stock_available` st WHERE ps.`id_product` = pss.`id_product` AND pss.`id_product` = psl.`id_product` AND ps.`id_product` = st.`id_product` AND pss.`id_shop` = psl.`id_shop` AND pss.`id_shop` = st.`id_shop` AND psl.`id_lang` =5"; if ($list = Db::getInstance()->ExecuteS($sql)) { $file_name = _PS_MODULE_DIR_.'updatetaxrate/backup/file'.date("dmy-His").'.csv'; $fp = fopen($file_name, 'w'); foreach ($list as $fields) { fputcsv($fp, $fields); } fclose($fp); } } echo "stop"; } } else { echo "OUST!!!!";} Edited December 2, 2013 by jd440 (see edit history) Link to comment Share on other sites More sharing options...
chloe45 Posted December 1, 2013 Author Share Posted December 1, 2013 Jd440 > Merci beaucoup pour ta participation Attention, il semble que la tva de 5,5% va rester à 5,5% et ne passera pas à 5 (amendement parlemantaire de ce mois ci) Voir sujet sur : http://www.lefigaro.fr/conjoncture/2013/11/29/20002-20131129ARTFIG00599-le-gouvernement-tente-de-calmer-les-frondes-anti-tva.php A confirmer par contre.. Link to comment Share on other sites More sharing options...
jd440 Posted December 2, 2013 Share Posted December 2, 2013 merci pour l'info Link to comment Share on other sites More sharing options...
Neovis Posted December 3, 2013 Share Posted December 3, 2013 (edited) Bonjour, Pour ceux qui ne souhaitent pas mettre les mains dans le cambouis et effectuer la transition en toute sécurité (et automatiquement), nous avons créé ce module, que nous présentons ici: http://www.prestashop.com/forums/topic/293323-module-changement-de-tva-au-01012014/ Edited December 3, 2013 by Neovis (see edit history) Link to comment Share on other sites More sharing options...
kevin78 Posted December 4, 2013 Share Posted December 4, 2013 Je pense que la meilleure solution serais de mttren place un cron qui mette à jour le taux de TVA le 01/01/14 à 00h01. Dans mon cas de conserver mon TTC identique et modifier que le HT Donc mon cron à pour tache de 1- Faire un sauvegarde de ma base mysqldump -u DB_user --password=DB_pass -h DB_host DB_prod | \ mysql -u DB_user --password=DB_pass -h DB_host DB_beta 2- Modifier tous les prix HT ==> Nouveau HT = HT*1.196/1.2 update `ps_product` set `price` = `price`* 1.196/1.2; update `ps_product_shop` set `price` = `price`* 1.196/1.2; update `ps_product_attribute` set `price` = `price`* 1.196/1.2; update `ps_product_attribute_shop` set `price` = `price`* 1.196/1.2; 3- Modifier le Taux update `ps_tax` set `rate` = 20 WHERE `rate` = 19.6; update `ps_tax_lang` set `name` = 'TVA FR 20%' WHERE `name` = 'TVA FR 19.6%'; update `ps_tax_rules_group` set `name` = 'FR Taux standard (20%)' WHERE `name` = 'FR Taux standard (19.6%)'; update `ps_tax` set `rate` = 10 WHERE `rate` = 7; update `ps_tax_lang` set `name` = 'TVA FR 10%' WHERE `name` = 'TVA FR 7%'; update `ps_tax_rules_group` set `name` = 'FR Taux réduit (10%)' WHERE `name` = 'FR Taux réduit (7%)'; update `ps_tax` set `rate` = 5 WHERE `rate` = 5.5; update `ps_tax_lang` set `name` = 'TVA FR 5%' WHERE `name` = 'TVA FR 5.5%'; update `ps_tax_rules_group` set `name` = 'FR Taux réduit (5%)' WHERE `name` = 'FR Taux réduit (5.5%)'; Attention: la solution : price=price*0.9966667; ou price=price*1.196/1.2; n'est correct que pour les produits dont tx passe de 19.6 à 20% donc attention si vous avez des produits à 7=10%, ou 5.5=>5% Je pense que cette solution est la plus simple, et correcte. 1 Link to comment Share on other sites More sharing options...
hphilg Posted December 4, 2013 Share Posted December 4, 2013 salut, Pour eviter de baisser le prix des produits à TVA 5.5, il serait préférable d'ajouter uen clause where sur la colonne "id_tax_rules_group" non ? une truc du genre : update `ps_product` where id_tax_rules_group=1 set `price` = `price`* 1.196/1.2; update `ps_product_shop` where id_tax_rules_group=1 set `price` = `price`* 1.196/1.2; update `ps_product_attribute` where id_tax_rules_group=1 set `price` = `price`* 1.196/1.2; update `ps_product_attribute_shop` where id_tax_rules_group=1 set `price` = `price`* 1.196/1.2; si id_tax_rules_group correspond bien à votre id de tax correspond à la tva 19.6 Link to comment Share on other sites More sharing options...
Le-cathare Posted December 5, 2013 Share Posted December 5, 2013 Je pense que la meilleure solution serais de mttren place un cron qui mette à jour le taux de TVA le 01/01/14 à 00h01. Dans mon cas de conserver mon TTC identique et modifier que le HT Donc mon cron à pour tache de 1- Faire un sauvegarde de ma base mysqldump -u DB_user --password=DB_pass -h DB_host DB_prod | \ mysql -u DB_user --password=DB_pass -h DB_host DB_beta 2- Modifier tous les prix HT ==> Nouveau HT = HT*1.196/1.2 update `ps_product` set `price` = `price`* 1.196/1.2; update `ps_product_shop` set `price` = `price`* 1.196/1.2; update `ps_product_attribute` set `price` = `price`* 1.196/1.2; update `ps_product_attribute_shop` set `price` = `price`* 1.196/1.2; 3- Modifier le Taux update `ps_tax` set `rate` = 20 WHERE `rate` = 19.6; update `ps_tax_lang` set `name` = 'TVA FR 20%' WHERE `name` = 'TVA FR 19.6%'; update `ps_tax_rules_group` set `name` = 'FR Taux standard (20%)' WHERE `name` = 'FR Taux standard (19.6%)'; update `ps_tax` set `rate` = 10 WHERE `rate` = 7; update `ps_tax_lang` set `name` = 'TVA FR 10%' WHERE `name` = 'TVA FR 7%'; update `ps_tax_rules_group` set `name` = 'FR Taux réduit (10%)' WHERE `name` = 'FR Taux réduit (7%)'; update `ps_tax` set `rate` = 5 WHERE `rate` = 5.5; update `ps_tax_lang` set `name` = 'TVA FR 5%' WHERE `name` = 'TVA FR 5.5%'; update `ps_tax_rules_group` set `name` = 'FR Taux réduit (5%)' WHERE `name` = 'FR Taux réduit (5.5%)'; Attention: la solution : price=price*0.9966667; ou price=price*1.196/1.2; n'est correct que pour les produits dont tx passe de 19.6 à 20% donc attention si vous avez des produits à 7=10%, ou 5.5=>5% D'accord mais comment créer ce cron. Que doit ont faire avec sa ? ou le mettre ? Link to comment Share on other sites More sharing options...
Le-cathare Posted December 6, 2013 Share Posted December 6, 2013 Bonjour, sur le net j'ai trouver un tuto très intéressant sur le changement de la tva sur prastashop 1.4 et 1.5. Le voici http://referencement.web-alliance.fr/blog/hausse-de-la-tva-modifiez-vos-prix-en-quelques-clics/ Link to comment Share on other sites More sharing options...
caeruleus Posted December 6, 2013 Share Posted December 6, 2013 @ Le-cathare Très intéressant ton lien web alliance, mais il est précisé que cela ne prend pas en compte les déclinaisons ! Comment faire pour que les déclinaisons soient prisent en compte ? Merci. Link to comment Share on other sites More sharing options...
Le-cathare Posted December 6, 2013 Share Posted December 6, 2013 je sais pas Link to comment Share on other sites More sharing options...
doekia Posted December 6, 2013 Share Posted December 6, 2013 (edited) Mon module prend en compte les déclinaisons. [Modéré 4eme post en une journée merci de lire les règles du forum] Cordialement, Edited December 6, 2013 by Oron (see edit history) Link to comment Share on other sites More sharing options...
bebeachat Posted December 10, 2013 Share Posted December 10, 2013 Bonjour, OK pour tout ce qui précède, mais pour un Presta 1.3.7 ?Cldt po Link to comment Share on other sites More sharing options...
IllicoPresta Posted December 11, 2013 Share Posted December 11, 2013 (edited) Bonjour à tous. Concernant le script le jd440 il y a un truc qui m'embête un peu pour ma part. Il modifie la taxe actuelle de 19.6% pour la passer à 20% Cela risque de poser un soucis pour tous les produits ayant été achetés avec cette taxe mais qui étaient avant à 19.6% (soucis d'affichage uniquement pas de calcul). Je pense qu'il vaut mieux créer un nouveau taux de TVA à 20% dans le BO, une nouvelle règles de taxe s'appliquant à ce taux, et ensuite modifier l'id_tax_rules_group de tous les produit et attributs concernés. Ainsi au niveau de l'historique des achats la taxe restera présente. Pas besoin donc de touché à l'update des tables tax. Mais sinon le script devrait fonctionner Edited December 11, 2013 by IllicoPresta (see edit history) 1 Link to comment Share on other sites More sharing options...
jd440 Posted December 11, 2013 Share Posted December 11, 2013 Merci pour ce retour, Je vais ameliorer le script de ce sens. 1- Ameliorer la mise a jour des prix en fonction de comme le proposait @hphilg http://www.prestashop.com/forums/topic/269407-augmentation-de-la-tva-au-1er-janvier-2014/page-2?do=findComment&comment=1481226 2- créer des nouvelles taxes correspondaux nouveaux taux, et mettre jour id_tax_group des produits en conséquences. Je pense qu'il vaut mieux créer un nouveau taux de TVA à 20% dans le BO, une nouvelle règles de taxe s'appliquant à ce taux, et ensuite modifier l'id_tax_rules_group de tous les produit et attributs concernés. Ainsi au niveau de l'historique des achats la taxe restera présente. Pas besoin donc de touché à l'update des tables tax. Mais sinon le script devrait fonctionner Link to comment Share on other sites More sharing options...
jd440 Posted December 16, 2013 Share Posted December 16, 2013 (edited) Et voici: <?php error_reporting(E_ALL); include(dirname(__FILE__).'/../../config/config.inc.php'); require_once(dirname(__FILE__).'/../../init.php'); if (!Configuration::get('NEWRATE_RESTORE')) echo "t1"; // Generer Security Token si il n'existe pas if (!Configuration::get('NEWR_SECURITY_TOKEN')) Configuration::updateValue('NEWR_SECURITY_TOKEN', Tools::passwdGen(30)); //Vérifier Security Token if (Tools::getValue('security') == Configuration::get('NEWR_SECURITY_TOKEN')) { $action = ((Tools::getValue('action')) ? (Tools::getValue('action')) : ''); if ($action !=''){ $multiple = '(1.196/1.2)'; $multiple2 = '(1.7/1.1)'; if (($action == 'nvxtx')&&(!Configuration::get('NEWRATE_UPDATE'))) { echo "update"; $multiple = '*'.$multiple; $multiple2 = '*'.$multiple2; $nvxtx1 = 20; $nvxtx2 = 10; $nvxtx3 = 5; $oldtx1 = 19.6; $oldtx2 = 7; $oldtx3 = 5.5; $sql = ' update `'._DB_PREFIX_.'product` set `price` = `price`'.$multiple.' where `id_tax_rules_group`=1; update `'._DB_PREFIX_.'product` set `id_tax_rules_group`=5 where `id_tax_rules_group`=1; update `'._DB_PREFIX_.'product_shop` set `price` = `price`'.$multiple.' where `id_tax_rules_group`=1; update `'._DB_PREFIX_.'product_shop` set `id_tax_rules_group`=5 where `id_tax_rules_group`=1; update `'._DB_PREFIX_.'tax_rule` set `id_tax` = 5 WHERE `id_tax` = 1; update `'._DB_PREFIX_.'product` set `price` = `price`'.$multiple2.' where `id_tax_rules_group`=2; update `'._DB_PREFIX_.'product` set `id_tax_rules_group`=6 where `id_tax_rules_group`=2; update `'._DB_PREFIX_.'product_shop` set `price` = `price`'.$multiple2.' where `id_tax_rules_group`=2; update `'._DB_PREFIX_.'product_shop` set `id_tax_rules_group`=6 where `id_tax_rules_group`=2; update `'._DB_PREFIX_.'tax_rule` set `id_tax` = 6 WHERE `id_tax` = 2; INSERT INTO `'._DB_PREFIX_.'tax` (`id_tax`, `rate`, `active`, `deleted`) VALUES (\'5\', \'20\', \'1\', \'0\'); INSERT INTO `'._DB_PREFIX_.'tax` (`id_tax`, `rate`, `active`, `deleted`) VALUES (\'6\', \'10\', \'1\', \'0\'); INSERT INTO `'._DB_PREFIX_.'tax_lang` (`id_tax` ,`id_lang` ,`name`)VALUES (\'5\', \'5\', \'TVA FR 20%\'); INSERT INTO `'._DB_PREFIX_.'tax_lang` (`id_tax` ,`id_lang` ,`name`)VALUES (\'6\', \'5\', \'TVA FR 10%\'); INSERT INTO `'._DB_PREFIX_.'tax_rules_group` (`id_tax_rules_group`, `name`, `active`) VALUES (\'5\', \'FR Taux standard (20%)\', \'1\'); INSERT INTO `'._DB_PREFIX_.'tax_rules_group` (`id_tax_rules_group`, `name`, `active`) VALUES (\'6\', \'FR Taux standard (10%)\', \'1\'); update `'._DB_PREFIX_.'tax_rules_group_shop` set `id_tax_rules_group` = 5 WHERE `id_tax_rules_group` = 1; update `'._DB_PREFIX_.'tax_rules_group_shop` set `id_tax_rules_group` = 6 WHERE `id_tax_rules_group` = 2; update `'._DB_PREFIX_.'carrier_tax_rules_group_shop` set `id_tax_rules_group` = 5 WHERE `id_tax_rules_group` = 1; update `'._DB_PREFIX_.'carrier_tax_rules_group_shop` set `id_tax_rules_group` = 6 WHERE `id_tax_rules_group` = 2; update `'._DB_PREFIX_.'tax_rule` set `id_tax_rules_group` = 5 WHERE `id_tax_rules_group` = 1; update `'._DB_PREFIX_.'tax_rule` set `id_tax_rules_group` = 6 WHERE `id_tax_rules_group` = 2;'; echo "<hr/> ".$sql; } elseif (( $action == 'restoretx')&&(!Configuration::get('NEWRATE_RESTORE'))) { echo "restore"; $multiple = '/'.$multiple; $multiple2 = '/'.$multiple2; $nvxtx1 = 19.6; $nvxtx2 = 7; $nvxtx3 = 5.5; $oldtx1 = 20; $oldtx2 = 10; $oldtx3 = 5; $sql = ' update `'._DB_PREFIX_.'product` set `price` = `price`'.$multiple.' where `id_tax_rules_group`=5; update `'._DB_PREFIX_.'product` set `id_tax_rules_group`=1 where `id_tax_rules_group`=5; update `'._DB_PREFIX_.'product_shop` set `price` = `price`'.$multiple.' where `id_tax_rules_group`=5; update `'._DB_PREFIX_.'product_shop` set `id_tax_rules_group`=1 where `id_tax_rules_group`=5; update `'._DB_PREFIX_.'tax_rule` set `id_tax` = 1 WHERE `id_tax` = 5; update `'._DB_PREFIX_.'product` set `price` = `price`'.$multiple2.' where `id_tax_rules_group`=6; update `'._DB_PREFIX_.'product` set `id_tax_rules_group`=2 where `id_tax_rules_group`=6; update `'._DB_PREFIX_.'product_shop` set `price` = `price`'.$multiple2.' where `id_tax_rules_group`=6; update `'._DB_PREFIX_.'product_shop` set `id_tax_rules_group`=2 where `id_tax_rules_group`=6; update `'._DB_PREFIX_.'tax_rule` set `id_tax` = 2 WHERE `id_tax` = 6; DELETE FROM `'._DB_PREFIX_.'tax` WHERE `id_tax` =5; DELETE FROM `'._DB_PREFIX_.'tax` WHERE `id_tax`=6; DELETE FROM `'._DB_PREFIX_.'tax_lang` WHERE `id_tax` = 5; DELETE FROM `'._DB_PREFIX_.'tax_lang` WHERE `id_tax` =6; DELETE FROM `'._DB_PREFIX_.'tax_rules_group` WHERE `id_tax_rules_group` = 5; DELETE FROM `'._DB_PREFIX_.'tax_rules_group` WHERE `id_tax_rules_group` = 6; update `'._DB_PREFIX_.'tax_rules_group_shop` set `id_tax_rules_group` = 1 WHERE `id_tax_rules_group` = 5; update `'._DB_PREFIX_.'tax_rules_group_shop` set `id_tax_rules_group` = 2 WHERE `id_tax_rules_group` = 6; update `'._DB_PREFIX_.'carrier_tax_rules_group_shop` set `id_tax_rules_group` = 1 WHERE `id_tax_rules_group` = 5; update `'._DB_PREFIX_.'carrier_tax_rules_group_shop` set `id_tax_rules_group` = 2 WHERE `id_tax_rules_group` = 6; update `'._DB_PREFIX_.'tax_rule` set `id_tax_rules_group` = 1 WHERE `id_tax_rules_group` = 5; update `'._DB_PREFIX_.'tax_rule` set `id_tax_rules_group` = 2 WHERE `id_tax_rules_group` = 6;'; echo $sql; } if (($action == 'nvxtx')&&(!Configuration::get('NEWRATE_UPDATE'))) { echo "update"; Db::getInstance()->ExecuteS($sql); Configuration::updateValue('NEWRATE_UPDATE', date("dmy-His")); // Suppression d'une clé Configuration::deleteByName('NEWRATE_RESTORE'); } elseif (( $action == 'restoretx')&&(!Configuration::get('NEWRATE_RESTORE'))) { echo "restore"; Db::getInstance()->ExecuteS($sql); Configuration::updateValue('NEWRATE_RESTORE', date("dmy-His")); // Suppression d'une clé Configuration::deleteByName('NEWRATE_UPDATE'); } elseif ( $action == 'backupquantity') { $sql = "SELECT pss.`id_product` , ps.`reference`, st.`id_product_attribute`, st.`id_shop`, st.`id_shop_group`, st.`quantity`, st.`depends_on_stock`, st.`out_of_stock`, psl.`name` FROM `ps_product` ps, `ps_product_shop` pss, `ps_product_lang` psl, `ps_stock_available` st WHERE ps.`id_product` = pss.`id_product` AND pss.`id_product` = psl.`id_product` AND ps.`id_product` = st.`id_product` AND pss.`id_shop` = psl.`id_shop` AND pss.`id_shop` = st.`id_shop` AND psl.`id_lang` =5"; if ($list = Db::getInstance()->ExecuteS($sql)) { $file_name = _PS_MODULE_DIR_.'updatetaxrate/backup/file'.date("dmy-His").'.csv'; $fp = fopen($file_name, 'w'); foreach ($list as $fields) { fputcsv($fp, $fields); } fclose($fp); } } echo "stop"; } } else { echo "OUST!!!!";} Edited December 16, 2013 by jd440 (see edit history) Link to comment Share on other sites More sharing options...
DevNet Posted December 16, 2013 Share Posted December 16, 2013 Pour ajouter à la liste, et pour les non développeurs, il y a aussi ce tuto qui prend en compte toutes les versions de PrestaShop : http://blog.hdclic.com/changer-tva-prestashop/ Bonne lecture Link to comment Share on other sites More sharing options...
doekia Posted December 16, 2013 Share Posted December 16, 2013 Si je puis me permettre,, il faut changer le prix et l'id de TVA en même temps... dans la même requête (single commit). Si pour une raison quelconque quelque chose ne se passe pas comme prévu vous terminez avec un base de données qui n'est plus intègre... 1 Link to comment Share on other sites More sharing options...
jd440 Posted December 16, 2013 Share Posted December 16, 2013 (edited) merci @doekia C'est corrigé <?php error_reporting(E_ALL); include(dirname(__FILE__).'/../../config/config.inc.php'); require_once(dirname(__FILE__).'/../../init.php'); if (!Configuration::get('NEWRATE_RESTORE')) echo "t1"; // Generer Security Token si il n'existe pas if (!Configuration::get('NEWR_SECURITY_TOKEN')) Configuration::updateValue('NEWR_SECURITY_TOKEN', Tools::passwdGen(30)); //Vérifier Security Token if (Tools::getValue('security') == Configuration::get('NEWR_SECURITY_TOKEN')) { $action = ((Tools::getValue('action')) ? (Tools::getValue('action')) : ''); if ($action !=''){ $multiple = '(1.196/1.2)'; $multiple2 = '(1.07/1.1)'; if (($action == 'nvxtx')&&(!Configuration::get('NEWRATE_UPDATE'))) { echo "update"; $multiple = '*'.$multiple; $multiple2 = '*'.$multiple2; $nvxtx1 = 20; $nvxtx2 = 10; $oldtx1 = 19.6; $oldtx2 = 7; $sql = ' update `'._DB_PREFIX_.'product` set `price` = `price`'.$multiple.', `id_tax_rules_group`=5 where `id_tax_rules_group`=1; update `'._DB_PREFIX_.'product_shop` set `price` = `price`'.$multiple.', `id_tax_rules_group`=5 where `id_tax_rules_group`=1; update `'._DB_PREFIX_.'tax_rule` set `id_tax` = 5 WHERE `id_tax` = 1; update `'._DB_PREFIX_.'product` set `price` = `price`'.$multiple2.', `id_tax_rules_group`=6 where `id_tax_rules_group`=2; update `'._DB_PREFIX_.'product_shop` set `price` = `price`'.$multiple2.', `id_tax_rules_group`=6 where `id_tax_rules_group`=2; update `'._DB_PREFIX_.'tax_rule` set `id_tax` = 6 WHERE `id_tax` = 2; INSERT INTO `'._DB_PREFIX_.'tax` (`id_tax`, `rate`, `active`, `deleted`) VALUES (\'5\', \'20\', \'1\', \'0\'); INSERT INTO `'._DB_PREFIX_.'tax` (`id_tax`, `rate`, `active`, `deleted`) VALUES (\'6\', \'10\', \'1\', \'0\'); INSERT INTO `'._DB_PREFIX_.'tax_lang` (`id_tax` ,`id_lang` ,`name`)VALUES (\'5\', \'5\', \'TVA FR 20%\'); INSERT INTO `'._DB_PREFIX_.'tax_lang` (`id_tax` ,`id_lang` ,`name`)VALUES (\'6\', \'5\', \'TVA FR 10%\'); INSERT INTO `'._DB_PREFIX_.'tax_rules_group` (`id_tax_rules_group`, `name`, `active`) VALUES (\'5\', \'FR Taux standard (20%)\', \'1\'); INSERT INTO `'._DB_PREFIX_.'tax_rules_group` (`id_tax_rules_group`, `name`, `active`) VALUES (\'6\', \'FR Taux standard (10%)\', \'1\'); update `'._DB_PREFIX_.'tax_rules_group_shop` set `id_tax_rules_group` = 5 WHERE `id_tax_rules_group` = 1; update `'._DB_PREFIX_.'tax_rules_group_shop` set `id_tax_rules_group` = 6 WHERE `id_tax_rules_group` = 2; update `'._DB_PREFIX_.'carrier_tax_rules_group_shop` set `id_tax_rules_group` = 5 WHERE `id_tax_rules_group` = 1; update `'._DB_PREFIX_.'carrier_tax_rules_group_shop` set `id_tax_rules_group` = 6 WHERE `id_tax_rules_group` = 2; update `'._DB_PREFIX_.'tax_rule` set `id_tax_rules_group` = 5 WHERE `id_tax_rules_group` = 1; update `'._DB_PREFIX_.'tax_rule` set `id_tax_rules_group` = 6 WHERE `id_tax_rules_group` = 2;'; echo "<hr/> ".$sql; } elseif (( $action == 'restoretx')&&(!Configuration::get('NEWRATE_RESTORE'))) { echo "restore"; $multiple = '/'.$multiple; $multiple2 = '/'.$multiple2; $nvxtx1 = 19.6; $nvxtx2 = 7; $oldtx1 = 20; $oldtx2 = 10; $sql = ' update `'._DB_PREFIX_.'product` set `price` = `price`'.$multiple.', `id_tax_rules_group`=1 where `id_tax_rules_group`=5; update `'._DB_PREFIX_.'product_shop` set `price` = `price`'.$multiple.', `id_tax_rules_group`=1 where `id_tax_rules_group`=5; update `'._DB_PREFIX_.'tax_rule` set `id_tax` = 1 WHERE `id_tax` = 5; update `'._DB_PREFIX_.'product` set `price` = `price`'.$multiple2.', `id_tax_rules_group`=2 where `id_tax_rules_group`=6; update `'._DB_PREFIX_.'product_shop` set `price` = `price`'.$multiple2.', `id_tax_rules_group`=2 where `id_tax_rules_group`=6; update `'._DB_PREFIX_.'tax_rule` set `id_tax` = 2 WHERE `id_tax` = 6; DELETE FROM `'._DB_PREFIX_.'tax` WHERE `id_tax` =5; DELETE FROM `'._DB_PREFIX_.'tax` WHERE `id_tax`=6; DELETE FROM `'._DB_PREFIX_.'tax_lang` WHERE `id_tax` = 5; DELETE FROM `'._DB_PREFIX_.'tax_lang` WHERE `id_tax` =6; DELETE FROM `'._DB_PREFIX_.'tax_rules_group` WHERE `id_tax_rules_group` = 5; DELETE FROM `'._DB_PREFIX_.'tax_rules_group` WHERE `id_tax_rules_group` = 6; update `'._DB_PREFIX_.'tax_rules_group_shop` set `id_tax_rules_group` = 1 WHERE `id_tax_rules_group` = 5; update `'._DB_PREFIX_.'tax_rules_group_shop` set `id_tax_rules_group` = 2 WHERE `id_tax_rules_group` = 6; update `'._DB_PREFIX_.'carrier_tax_rules_group_shop` set `id_tax_rules_group` = 1 WHERE `id_tax_rules_group` = 5; update `'._DB_PREFIX_.'carrier_tax_rules_group_shop` set `id_tax_rules_group` = 2 WHERE `id_tax_rules_group` = 6; update `'._DB_PREFIX_.'tax_rule` set `id_tax_rules_group` = 1 WHERE `id_tax_rules_group` = 5; update `'._DB_PREFIX_.'tax_rule` set `id_tax_rules_group` = 2 WHERE `id_tax_rules_group` = 6;'; echo $sql; } if (($action == 'nvxtx')&&(!Configuration::get('NEWRATE_UPDATE'))) { echo "update"; Db::getInstance()->ExecuteS($sql); Configuration::updateValue('NEWRATE_UPDATE', date("dmy-His")); // Suppression d'une clé Configuration::deleteByName('NEWRATE_RESTORE'); } elseif (( $action == 'restoretx')&&(!Configuration::get('NEWRATE_RESTORE'))) { echo "restore"; Db::getInstance()->ExecuteS($sql); Configuration::updateValue('NEWRATE_RESTORE', date("dmy-His")); // Suppression d'une clé Configuration::deleteByName('NEWRATE_UPDATE'); } elseif ( $action == 'backupquantity') { $sql = "SELECT pss.`id_product` , ps.`reference`, st.`id_product_attribute`, st.`id_shop`, st.`id_shop_group`, st.`quantity`, st.`depends_on_stock`, st.`out_of_stock`, psl.`name` FROM `ps_product` ps, `ps_product_shop` pss, `ps_product_lang` psl, `ps_stock_available` st WHERE ps.`id_product` = pss.`id_product` AND pss.`id_product` = psl.`id_product` AND ps.`id_product` = st.`id_product` AND pss.`id_shop` = psl.`id_shop` AND pss.`id_shop` = st.`id_shop` AND psl.`id_lang` =5"; if ($list = Db::getInstance()->ExecuteS($sql)) { $file_name = _PS_MODULE_DIR_.'updatetaxrate/backup/file'.date("dmy-His").'.csv'; $fp = fopen($file_name, 'w'); foreach ($list as $fields) { fputcsv($fp, $fields); } fclose($fp); } } echo "stop"; } } else { echo "OUST!!!!";} ps: Publier pas de corriger aussi les taux transporteur. Edited December 17, 2013 by jd440 (see edit history) 1 Link to comment Share on other sites More sharing options...
shroom Posted December 16, 2013 Share Posted December 16, 2013 (edited) Ici : $multiple2 = '(1.7/1.1)'; Ne serait-ce pas plutôt : $multiple2 = '(1.07/1.1)'; Je suppose également que les lignes suivantes sont aussi obsolètes : $nvxtx3 = 5; [...] $oldtx3 = 5.5; $nvxtx3 = 5.5; [...] $oldtx3 = 5; Merci pour votre contribution Edited December 16, 2013 by shroom (see edit history) 1 Link to comment Share on other sites More sharing options...
jd440 Posted December 17, 2013 Share Posted December 17, 2013 Ici : $multiple2 = '(1.7/1.1)'; Ne serait-ce pas plutôt : $multiple2 = '(1.07/1.1)'; Je suppose également que les lignes suivantes sont aussi obsolètes : $nvxtx3 = 5; [...] $oldtx3 = 5.5; $nvxtx3 = 5.5; [...] $oldtx3 = 5; Merci pour votre contribution Merci c est corrige. J'ai ajouter aussi le recalcul de price attribute <?php error_reporting(E_ALL); include(dirname(__FILE__).'/../../config/config.inc.php'); require_once(dirname(__FILE__).'/../../init.php'); if (!Configuration::get('NEWRATE_RESTORE')) echo "t1"; // Generer Security Token si il n'existe pas if (!Configuration::get('NEWR_SECURITY_TOKEN')) Configuration::updateValue('NEWR_SECURITY_TOKEN', Tools::passwdGen(30)); //Vérifier Security Token if (Tools::getValue('security') == Configuration::get('NEWR_SECURITY_TOKEN')) { $action = ((Tools::getValue('action')) ? (Tools::getValue('action')) : ''); if ($action !=''){ $multiple = '(1.196/1.2)'; $multiple2 = '(1.07/1.1)'; if (($action == 'nvxtx')&&(!Configuration::get('NEWRATE_UPDATE'))) { echo "update"; $multiple = '*'.$multiple; $multiple2 = '*'.$multiple2; $nvxtx1 = 20; $nvxtx2 = 10; $oldtx1 = 19.6; $oldtx2 = 7; $sql = ' update `'._DB_PREFIX_.'product` set `price` = `price`'.$multiple.', `id_tax_rules_group`=5 where `id_tax_rules_group`=1; update `'._DB_PREFIX_.'product_attribute` set `price` = `price`'.$multiple.' where `id_tax_rules_group`=5; update `'._DB_PREFIX_.'product_shop` set `price` = `price`'.$multiple.', `id_tax_rules_group`=5 where `id_tax_rules_group`=1; update `'._DB_PREFIX_.'tax_rule` set `id_tax` = 5 WHERE `id_tax` = 1; update `'._DB_PREFIX_.'product` set `price` = `price`'.$multiple2.', `id_tax_rules_group`=6 where `id_tax_rules_group`=2; update `'._DB_PREFIX_.'product_attribute` set `price` = `price`'.$multiple2.' where `id_tax_rules_group`=6; update `'._DB_PREFIX_.'product_shop` set `price` = `price`'.$multiple2.', `id_tax_rules_group`=6 where `id_tax_rules_group`=2; update `'._DB_PREFIX_.'tax_rule` set `id_tax` = 6 WHERE `id_tax` = 2; INSERT INTO `'._DB_PREFIX_.'tax` (`id_tax`, `rate`, `active`, `deleted`) VALUES (\'5\', \'20\', \'1\', \'0\'); INSERT INTO `'._DB_PREFIX_.'tax` (`id_tax`, `rate`, `active`, `deleted`) VALUES (\'6\', \'10\', \'1\', \'0\'); INSERT INTO `'._DB_PREFIX_.'tax_lang` (`id_tax` ,`id_lang` ,`name`)VALUES (\'5\', \'5\', \'TVA FR 20%\'); INSERT INTO `'._DB_PREFIX_.'tax_lang` (`id_tax` ,`id_lang` ,`name`)VALUES (\'6\', \'5\', \'TVA FR 10%\'); INSERT INTO `'._DB_PREFIX_.'tax_rules_group` (`id_tax_rules_group`, `name`, `active`) VALUES (\'5\', \'FR Taux standard (20%)\', \'1\'); INSERT INTO `'._DB_PREFIX_.'tax_rules_group` (`id_tax_rules_group`, `name`, `active`) VALUES (\'6\', \'FR Taux standard (10%)\', \'1\'); update `'._DB_PREFIX_.'tax_rules_group_shop` set `id_tax_rules_group` = 5 WHERE `id_tax_rules_group` = 1; update `'._DB_PREFIX_.'tax_rules_group_shop` set `id_tax_rules_group` = 6 WHERE `id_tax_rules_group` = 2; update `'._DB_PREFIX_.'carrier_tax_rules_group_shop` set `id_tax_rules_group` = 5 WHERE `id_tax_rules_group` = 1; update `'._DB_PREFIX_.'carrier_tax_rules_group_shop` set `id_tax_rules_group` = 6 WHERE `id_tax_rules_group` = 2; update `'._DB_PREFIX_.'tax_rule` set `id_tax_rules_group` = 5 WHERE `id_tax_rules_group` = 1; update `'._DB_PREFIX_.'tax_rule` set `id_tax_rules_group` = 6 WHERE `id_tax_rules_group` = 2;'; echo "<hr/> ".$sql; } elseif (( $action == 'restoretx')&&(!Configuration::get('NEWRATE_RESTORE'))) { echo "restore"; $multiple = '/'.$multiple; $multiple2 = '/'.$multiple2; $nvxtx1 = 19.6; $nvxtx2 = 7; $oldtx1 = 20; $oldtx2 = 10; $sql = ' update `'._DB_PREFIX_.'product` set `price` = `price`'.$multiple.', `id_tax_rules_group`=1 where `id_tax_rules_group`=5; update `'._DB_PREFIX_.'product_shop` set `price` = `price`'.$multiple.', `id_tax_rules_group`=1 where `id_tax_rules_group`=5; update `'._DB_PREFIX_.'tax_rule` set `id_tax` = 1 WHERE `id_tax` = 5; update `'._DB_PREFIX_.'product` set `price` = `price`'.$multiple2.', `id_tax_rules_group`=2 where `id_tax_rules_group`=6; update `'._DB_PREFIX_.'product_shop` set `price` = `price`'.$multiple2.', `id_tax_rules_group`=2 where `id_tax_rules_group`=6; update `'._DB_PREFIX_.'tax_rule` set `id_tax` = 2 WHERE `id_tax` = 6; DELETE FROM `'._DB_PREFIX_.'tax` WHERE `id_tax` =5; DELETE FROM `'._DB_PREFIX_.'tax` WHERE `id_tax`=6; DELETE FROM `'._DB_PREFIX_.'tax_lang` WHERE `id_tax` = 5; DELETE FROM `'._DB_PREFIX_.'tax_lang` WHERE `id_tax` =6; DELETE FROM `'._DB_PREFIX_.'tax_rules_group` WHERE `id_tax_rules_group` = 5; DELETE FROM `'._DB_PREFIX_.'tax_rules_group` WHERE `id_tax_rules_group` = 6; update `'._DB_PREFIX_.'tax_rules_group_shop` set `id_tax_rules_group` = 1 WHERE `id_tax_rules_group` = 5; update `'._DB_PREFIX_.'tax_rules_group_shop` set `id_tax_rules_group` = 2 WHERE `id_tax_rules_group` = 6; update `'._DB_PREFIX_.'carrier_tax_rules_group_shop` set `id_tax_rules_group` = 1 WHERE `id_tax_rules_group` = 5; update `'._DB_PREFIX_.'carrier_tax_rules_group_shop` set `id_tax_rules_group` = 2 WHERE `id_tax_rules_group` = 6; update `'._DB_PREFIX_.'tax_rule` set `id_tax_rules_group` = 1 WHERE `id_tax_rules_group` = 5; update `'._DB_PREFIX_.'tax_rule` set `id_tax_rules_group` = 2 WHERE `id_tax_rules_group` = 6;'; echo $sql; } if (($action == 'nvxtx')&&(!Configuration::get('NEWRATE_UPDATE'))) { echo "update"; Db::getInstance()->ExecuteS($sql); Configuration::updateValue('NEWRATE_UPDATE', date("dmy-His")); // Suppression d'une clé Configuration::deleteByName('NEWRATE_RESTORE'); } elseif (( $action == 'restoretx')&&(!Configuration::get('NEWRATE_RESTORE'))) { echo "restore"; Db::getInstance()->ExecuteS($sql); Configuration::updateValue('NEWRATE_RESTORE', date("dmy-His")); // Suppression d'une clé Configuration::deleteByName('NEWRATE_UPDATE'); } elseif ( $action == 'backupquantity') { $sql = "SELECT pss.`id_product` , ps.`reference`, st.`id_product_attribute`, st.`id_shop`, st.`id_shop_group`, st.`quantity`, st.`depends_on_stock`, st.`out_of_stock`, psl.`name` FROM `ps_product` ps, `ps_product_shop` pss, `ps_product_lang` psl, `ps_stock_available` st WHERE ps.`id_product` = pss.`id_product` AND pss.`id_product` = psl.`id_product` AND ps.`id_product` = st.`id_product` AND pss.`id_shop` = psl.`id_shop` AND pss.`id_shop` = st.`id_shop` AND psl.`id_lang` =5"; if ($list = Db::getInstance()->ExecuteS($sql)) { $file_name = _PS_MODULE_DIR_.'updatetaxrate/backup/file'.date("dmy-His").'.csv'; $fp = fopen($file_name, 'w'); foreach ($list as $fields) { fputcsv($fp, $fields); } fclose($fp); } } echo "stop"; } } else { echo "OUST!!!!";} 1 Link to comment Share on other sites More sharing options...
lanner Posted December 31, 2013 Share Posted December 31, 2013 Bonjour Pour le code fourni il suffit de placer le fichier créé dans le dossier admin et de l'executer en mettant l'url ? Merci Est ce que le code est fonctionnel pour un prestashop 1.4.1.0 ? Mais une question, si l'on créer une nouvelle taxe, n'est il pas plus simple de l'appliquer dans les champs de la bdd qui sont concernés ? comme cela on ne touche pas aux anciennes factures Link to comment Share on other sites More sharing options...
shroom Posted December 31, 2013 Share Posted December 31, 2013 (edited) Entre deux coupes de champagne (bonne année tout le monde !), la même question m'a effectivement traversé l'esprit. Ma tâche cron et mes quelques requêtes SQL ont parfaitement fonctionné, seulement voilà, si je clique sur une ancienne commande, elle a également le nouveau taux alors qu'il faudrait qu'elle affiche l'ancien taux et l'ancien prix HT, tout du moins pour toutes les commandes payées en 2013 et antérieur. Ca me semble relativement anodin, je suppose que peu de personnes vont rechercher d'anciennes factures, et que peu de personnes passent commandes le soir du réveillon, mais sait-on jamais... Edited January 1, 2014 by shroom (see edit history) 1 Link to comment Share on other sites More sharing options...
lanner Posted January 1, 2014 Share Posted January 1, 2014 (edited) Je n'ai pas testé ce procédé, du coup j'ai acheté un module qui à fonctionné pour la totalité des modifications Edited January 1, 2014 by lanner (see edit history) Link to comment Share on other sites More sharing options...
kevin78 Posted January 1, 2014 Share Posted January 1, 2014 Idem : les factures de 2013 sont désormais erronées Le produit est affiché à 20.00% Les frais de port restent à 19.60% Car en plus de ça, les taxes de transport n'ont pas été mis à jour Link to comment Share on other sites More sharing options...
doekia Posted January 1, 2014 Share Posted January 1, 2014 là ça ressemble à un beau bug... Il ne vous reste plus qu'a reprendre le backup amont. Sur tous les clients que j'ai migré grâce à mon module aucun ne présente ce dysfonctionnement. Link to comment Share on other sites More sharing options...
kevin78 Posted January 1, 2014 Share Posted January 1, 2014 Tu n'as aucun bug avec les factures générées en 2013? J'aurai mieux fait d'acheter un module payant Bref j'ai passé mon réveillon a changer tous les frais de ports sur mes 7 sites prestashop... Et j'ai du désactivé les factures pour tous mes clients Tant pis Link to comment Share on other sites More sharing options...
doekia Posted January 1, 2014 Share Posted January 1, 2014 aucun. Le problème vient d'avoir changer le taux de la tva il me semble au lieu d'en créer un nouvelle et de réaffecter celle-ci aux produits. Si tu as le backup d'avant le cron, remonte-le et passe un module. Gain de temps et d'efficacité.. Link to comment Share on other sites More sharing options...
kevin78 Posted January 1, 2014 Share Posted January 1, 2014 Non je n'ai aucun back up J'ai fais confiance a l'équipe STORE COMMANDER pensant faire bien Ou j'ai du mal faire quelque chose J'attends le retour des autres Link to comment Share on other sites More sharing options...
doekia Posted January 1, 2014 Share Posted January 1, 2014 Pas de backup ??? Si besoin PM on essayera de trouver une solution, mais pas avant 14h demain, là je pars faire dodo. Link to comment Share on other sites More sharing options...
Neovis Posted January 1, 2014 Share Posted January 1, 2014 Salut à tous. Les personnes qui n'ont pas réussi à "bidouiller" peuvent encore passer par notre module, classé en TOP5 des meilleures ventes de modules, installé sur plus de 250 boutiques! Link to comment Share on other sites More sharing options...
kevin78 Posted January 1, 2014 Share Posted January 1, 2014 Pas de backup Par contre il est vrai qu'il aurait fallu recréer un nouveau taux a 20% Puis ensuite réduire les prix HT via SQL J'aurai pu le faire mais j'ai été tenté par celui de store commander... Il me reste une solution : Remettre le taux a 19,6% Puis recréer un taux a 20% Ça résoudra le problème des factures etc Link to comment Share on other sites More sharing options...
shroom Posted January 1, 2014 Share Posted January 1, 2014 (edited) Edit: en fait tout semble fonctionner correctement en procédant de la sorte (hors transporteur) : - créer une nouvelle taxe et sa règle - mettre à jour les tables "product" et "product_shop" en indiquant cette nouvelle règle - procéder à la conversion du prix HT Edited January 1, 2014 by shroom (see edit history) Link to comment Share on other sites More sharing options...
kevin78 Posted January 1, 2014 Share Posted January 1, 2014 Le module de store commander modifie bien le prix. Il suffit donc de créer une nouvelle taxe a 20% Puis d'assigner tous les produits a cette nouvelle taxe. En cinq minutes ça devrait être réglé Je ferai ça plus tard Link to comment Share on other sites More sharing options...
Gu1llaume Posted January 1, 2014 Share Posted January 1, 2014 J'ai fait une réponse sur le topic du module de store commander: http://www.prestashop.com/forums/topic/290813-module-gratuit-programmateur-tva-2014-r%C3%A9veillonnez-zen/page-3?do=findComment&comment=1510374 en espérant que leur réponse ne tarde pas... Link to comment Share on other sites More sharing options...
electroclopes Posted January 3, 2014 Share Posted January 3, 2014 Bonjour, J'ai utiliser ça : Update ps_product set price=price*0.9966667; Puis passer la TVA de 19.6% à 20% dans le BO de prestashop. Fonctionne parfaitement et fait en 2 minutes, les factures de 2013 sont ok. Je rencontre un seul petit problème, depuis le changement de la TVA, quelques commandes payé par Paypal ont le statut erreur de paiement. En vérifiant sur Paypal la commande est bien payée mais il y à un écart de 1 ou 2 cts. Savez vous comment réglée ce problème. Bonne année 2014 à tous. Arnaud Link to comment Share on other sites More sharing options...
caeruleus Posted January 4, 2014 Share Posted January 4, 2014 il serait utile que Prestashop prévois un module fiable en natif pour ce genre de chose, car en France la TVA va augmenter de 1 à 2 % par an pendant les 3 prochaines années. Et ça risque d'être le cas pour de nombreux pays européens. Link to comment Share on other sites More sharing options...
totem95 Posted January 8, 2014 Share Posted January 8, 2014 Bonjour En voulant modifier mon taux de TVA, après une journée éprouvante et fatigante (première erreur) et sans avoir fait de backup !!(erreur fatale), j'ai appuyé sur le bouton "supprimer" (et bêtement j'ai validé) mon taux de tva à 19,60%. Pas grave, me direz vous, il suffit d'en recréer un. Sauf que j'utilise un script d'import de données en bloc (format CSV) créé par mon webmaster avec qui je n'ai plus de contact. Qui utilisait sans doute le fait que la TVA à 19,60% était repérée par son ID n° 1. Je n'ai plus que des taxes à ID 2, 3, ou 4. Connaissez vous un moyen de recréer une taxe avec une ID n° 1 Link to comment Share on other sites More sharing options...
Neovis Posted January 8, 2014 Share Posted January 8, 2014 En modifiant direct dans la base peut être? Link to comment Share on other sites More sharing options...
caeruleus Posted January 8, 2014 Share Posted January 8, 2014 +1 Modifier la base ou modifier le script. Link to comment Share on other sites More sharing options...
KevLas Posted January 12, 2014 Share Posted January 12, 2014 Bonjour, Prestapricing te permet de corriger simplement les prix pour les arrondir en prix psychologique. Le module n'est pas trop chère 85 €. Fais un tour sur le site du dev sitolog.com En plus cela pourra servir dans la gestion au quotidien. 85 € pour un changement de TVA ! C est quand même exagéré ! Link to comment Share on other sites More sharing options...
albatore Posted January 24, 2014 Share Posted January 24, 2014 (edited) En fait depuis l'augmentation de la TVA, beaucoup de forum parlent de l'augmentation des prix de vente mais jamais des prix d'achat...et pourtant... ils sont bien présent aussi Voici un petit tuto sans pretention afin de permettre a tous le monde d'augmenter ses prix d'achats en masse : 1 Aller sur phpmyadmin de votre hebergeur - choisir la table que l'on veut sauvegarder ex : ps_product- l'exporter au format sql et CSV pour MS Excel.2 Creer une base en localhost pour tester si tout se deroule bien- importer dedans la table ps_product3 ensuite ouvrir le fichier CSV que l'on a exporté de la base de donnée en ligne- copier la colonne des tarifs a augmenter- coller la colonne dans un autre excel a part et realiser l'augmentation désirée - dans le tableur d'origine, remplacer les anciennes valeurs par les nouvelles- enregistrer le tout sous dans le meme formatle nouveau fichier CSV avec les nouveaux tarifs est pret4 Afin d'etre sur que tout se deroule bien, il faut le tester en localhost- importer le nouveau fichier CSV et cocher : Remplacer les données de la table avec le fichier- executerNormalement tout doit etre ok a ce niveau5 repeter l'operation sur la base de donnée en lignepour prestashop 1.4:sauvegarder la table ps_productpour prestashop 1.5:sauvegarder la table ps_productsauvegarder la table ps_product_shop voili voilou les prix sont augmentés en masse je ne l'ai pas testé sur les prix de ventes mais la methode reste la meme Edited January 24, 2014 by albatore (see edit history) 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