Glop,
Il semble y avoir des lièvres un peu dodus qui se balladent dans la
gestion des taxes.
Dans le formulaire d'édition d'un produit, il est dit à propos de
celle-ci : « Valeur par défaut sur le site : N%. Ce champ peut être
laissé vide. ».
On devrait donc théoriquement pouvoir laisser le champ vide pour laisser
appliquer la taxe par défaut, ou mettre une valeur de 0 si on ne veut
pas de taxe pour ce produit : ce sont 2 cas de figure différents.
Mais dans la pratique, ça n'est pas pris en compte de façon consistante.
Déjà un détail dans le formulaire : la taxe globale est prise comme
valeur par défaut. Ça fait qu'on doit vider le champ à chaque passage si
on veut explicitement du vide :
https://git.spip.net/plugin/produits/src/branch/master/formulaires/editer_produit.php#L72
Pénible.
Plus problématique : dans la fonction qui calcule le prix TTC avec le
plugin prix, la taxe par défaut n'est *jamais* appliquée.
https://git.spip.net/plugin/produits/src/branch/master/prix/produit.php#L12
Un floatval() transforme les chaînes vides en '0', et donc pas de
fallback dans ce cas.
Dans la fiche d'un produit, quand il a une taxe de 0, le label affiche
la taxe par défaut du site au lieu de '0%' :
https://git.spip.net/plugin/produits/src/branch/master/prive/squelettes/contenu/produit.html#L16
Je n'ai pas regardé le reste en détail, mais à vue de nez il semble y
avoir d'autres endroits où la différence entre valeur vide et valeur '0'
est mal prise en compte (dans le charger du formulaire d'édition par ex.).
Bon, je n'ose pas trop y toucher avant d'avoir des retours quand même.
Le plus gênant étant surtout la fonction qui calcule le prix ttc.
----
spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone