Bonjour à tous
Je souhaite créer un extrafield via un module qui ne s’afficherait que sous certaines conditions.
Un premier extrafield est ajouté à la table « produit » (« is_lm_product »). C’est un boolean qui indique si l’article est calculé au mètre linéaire ou pas.
Un second extrafied est créé dans la table « commande_fournisseurdet » (« length »). Cet extrafield ne doit apparaitre que lorsque le champ « is_lm_product » est à 1 (true).
J’ai donc utilisé l’expression suivante pour la visibilité de l’extrafield « length » : ($reloadedobj = new Product($db)) && ($reloadedobj->fetch($objectoffield->fk_product ) && $reloadedobj->array_options[‹ options_is_lm_product ›] )
Seulement, j’ai un comportement étrange. Le champ n’apparait pas lorsque j’ajoute des articles dans les commandes fournisseurs. Voici les tests que j’ai effectués :
- J’ai placé l’expression dans le Champ calculé et j’ai mis la visibilité à 1. La valeur du champ est bien de 1 ou 0 en fonction de la valeur de ‹ options_is_lm_product ›
- Avec le paramètre ajouté par module builder « isModEnabled( »…« ) » j’ai ajouté mon expression au lieu de la placer dans le paramètre « Visibilité » mais rien n’apparait non plus lors de la saisie d’une commande.
- Lorsque je place l’expression dans un des deux champs précédents (visibilité conditionnelle) et que j’utilise le champ calculé (quel que soit l’expression, par exemple 1+1), tout fonctionne alors comme prévu. Il apparait bien dans les conditions requises mais il n’est bien sur pas possible de modifier le champ.
L’expression ne génère aucune erreur et retourne la bonne valeur.
J’ai bien entendu ajouté les extrafields via la méthode $extrafields->addExtraField(). Mais j’ai essayé en les ajoutant via l’interface mais sans résultat.
J’utilise la version 19.1.0
Pouvez-vous m’aider et me dire ce qui m’échappe ?
Merci à tous par avance.