Ce petit filtre a été écrit pour transformer un champ numérique contenant un prix hors taxes, en un champ contenant les prix hors taxes et TTC, bien formatés, avec les séparateurs de milliers et le signe €...
A ajouter dans mes_fonctions :
@define('tvaNormale', 1.196);
@define('tvaReduite', 1.055);
function ttc($ht, $taux='tvaNormale') {
setlocale(LC_MONETARY, 'fr_FR');
$taux = constant($taux);
$ttc = $ht * $taux;
$ttc = money_format('%i', $ttc);
$ht = money_format('%i', $ht);
$tva = $ht . " HT" . " (" . $ttc . " TTC)";
$tva = ereg_replace("EUR", "€", $tva);
return $tva;
}
Utilisation
Dans un champ d’un article SPIP, par exemple #PS, on peut stocker un nombre qui correspond à un prix hors taxes. Ensuite, si on veut l’afficher avec le format défini par le filtre « ttc » il suffit d’appeler la balise #PS avec le filtre : [(#PS|ttc)]
.
Par défaut ce filtre utilise un taux de TVA à 19,6%, mais grâce à l’astuce de Patrice, il peut accepter le taux de TVA réduite à 5,5%. Pour cela, il suffit d’appeler la balise comme ceci : [(#PRIX_HT|ttc{tvaReduite})]
.
Explications
- la 1re ligne modifie la manière dont le serveur va afficher les données au format monétaire (voir lien)
- la 3e ligne calcule le montant TTC avec une TVA à 19,6% (par défaut) ou le taux envoyé en paramètre avec le filte.
- les 4e et 5e lignes appliquent le format aux montants HT et TTC (voir lien)
- la 6e ligne génère la chaine qui sera affichée (ici « 999,00 € HT (1234.56 € TTC) »
- la 7e ligne s’assure que c’est bien le signe « € » qui s’affiche et non pas le code ISO « EUR » (c’est moins joli...).
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |