Voici un module prestashop tout simple qui se chargera de mettre à jour les taux de TVA de votre boutique facilement.

Il suffit de configurer une tâche cron le 31 décembre à 00h 00 qui appelle le fichier

http:://www.votreSite.com/modules/eitaxupdater/cron.php

Le taux de 19,6% passe à 20 %, et le taux de 7% passe à 10%.

Voici le code du module :

eitaxupdater.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php 
/**
 * Module de mise à jour du taux de Taxe FR
 *
 * 
 * @version 0.1 | $Revision$
 * Last-Modified : $Date$
 * Id : $Id$
 */
if (!defined('_CAN_LOAD_FILES_'))
    exit;
 
class EiTaxUpdater extends Module {
 
    function __construct() {
        $this->name = 'eitaxupdater';
        $this->tab = 'hhennes';
        $this->version = '0.1.0';
 
        parent::__construct();
 
        $this->displayName = $this->l('Ei Tax Updater');
        $this->description = $this->l('Update prestashop Tax Rate');
    }
 
    public function install() {
        return parent::install();
    }
 
    public function uninstall() {
        return parent::uninstall();
    }
 
    /**
     * Fonction qui mets à jour le taux de TVA 
     */
    public static function updateTaxRate() {
 
        /**
         * Récupération du taux de tax normal 19.6
         * ( On se base sur la valeur à 19.6 pour récupérer l'identifiant de taxe )
         */
        $id_tax = Db::getInstance()->getValue("SELECT id_tax FROM "._DB_PREFIX_."tax WHERE rate LIKE '19.6%'");
 
        if ( !$id_tax ) {
            echo 'Erreur : Impossible de mettre à jour le taux de TVA => Pas de taux existant à 19.6%
';
        }
        else {     
            $tax = new Tax($id_tax);
            $tax->rate = '20.0000';
            $languages = Language::getLanguages();
             foreach ( $languages as $lang ) {
                 $tax->name[$lang['id_lang']] = 'TVA FR 20%';
             }
             $tax->save();
             echo 'Mise à jour du taux de TVA de 19.6 à 20% effectué
';
 
        }
 
        /**
         * Récupération du taux de taxe 7%
         */
        $id_tax = Db::getInstance()->getValue("SELECT id_tax FROM "._DB_PREFIX_."tax WHERE rate='7.0%'");
 
        if ( !$id_tax ) {
            echo 'Erreur : Impossible de mettre à jour le taux de TVA => Pas de taux existant à 7%
';
        }
        else {     
            $tax = new Tax($id_tax);
            $tax->rate = '10.0000';
            $languages = Language::getLanguages();
             foreach ( $languages as $lang ) {
                 $tax->name[$lang['id_lang']] = 'TVA FR 10%';
             }
             $tax->save();
             echo 'Mise à jour du taux de TVA de 7 à 10% effectué
';
 
        }
 
    }
 
}
?>

Fichier cron :

1
2
3
4
5
6
7
8
9
10
<?php  
/**  
* EiTaxUpdater  
* Tache cron qui mets à jour le taux de TVA  
*/ 
include_once('../../config/config.inc.php'); 
include_once(dirname(__FILE__).'/eitaxupdater.php'); 
//Mise à jour du taux de tva 
EiTaxUpdater::updateTaxRate(); 
?>

Le code a été testé sous Prestashop 1.3, 1.4 et 1.5
Vous pouvez télécharger le module ici : eitaxupdater