Grace au forum et à quelques recherches j’ai réussie a soustraire 2 attributs supplémentaires grâce au champs calculés dans la partie « Attributs supplémentaire (facture) ». Néanmoins en réutilisant exactement la même formule (aux variables près) impossible que le logiciel effectue le calcul pour des « Attributs supplémentaire (lignes) »
Voici la formule que j'utilise :
($object-\>array_options ['line_options_rcm1'])-($object-\>array_options ['line_options_rcm2'])
La formule doit être différente selon si je suis mode « facture » ou en « ligne »?
De plus, quelle doit être la formule si je veux pas exemple simplement créer un prix final ttc qui comprends le prix total ttc généré par dolibarr + un frais saisie en extra field?
Je ne suis pas sur mais je crois que vos formules ne fonctionneront pas si vous possédez plusieurs extrafields. En effet, $object->array_options retourne un array et non pas une simple valeur.
Je pourrais essayer de vous aiguiller si vous pouviez me donner plus d’informations sur vos extrafields sur une facture et sur une ligne de facture.
Par mégarde j’ai supprimé mon premier post …
Ma problématique était de pouvoir calculer automatiquement une différence via « champs calculés » dans attributs supplémentaires (ligne) à partir de 2 attributs supplémentaires que j’ai créé.
Concrètement j’ai besoin que lors de l’ajout d’un produit (pas prédéfinis) dans une facture je puisse saisir 2 relevés compteurs, puis que dolibar effectue la différence entre les deux et même dans l’idéal (mais je pense que mes compétences en codage s’arrête largement avant cela) que le nombre calculé devienne la quantité de mon produit :
(que mon nombre de page devient la quantité de mon produits essai)
Voilà si quelqu’un peut m’éclairer sur la formule qui doit simplement être fausse …
Ça fonctionne ! Merci beaucoup Fred ce détail me bloquait depuis quelques jours, super!
Est-ce possible à présent de transformer ce nombre calculé en quantité pour le produit en question? (sans avoir à ressaisir/modifier la quantité à la main?)
Je suis confronté au même problème et je tiens déjà à vous remercier parce que vos réponses me permettent d’avancer toutefois même avec ce que Fred à fait le calcul me retourne 0 et var_dump affiche NULL
si vous avez des idées sur quel pourrait être le problème je suis preneur
j’ai fait var_dump qui m’a affiché mon tableau et je me suis rendu compte que je n’avais pas besoin d’écrire ->line vu qu’il n’y étais pas chez moi . et ça marche comme sur des roulettes
Ce sujet m’intéresse pour un usage légèrement différent :
Peut on dans un extrafield ligne de facture faire afficher la valeur d’un attribut produit qui est natif dans dolibarr?
Si oui…
Peut-on le multiplier par la quantité de produits de la ligne en question (via un extrafield calculé).
Dans la théorie, je sais que c’est possible (vu dans un autre post - mais la modification est lourde).
Mais en pratique je cherche la solution la plus légère possible!
Error in request SELECT rowid as rowid, libelle FROM llx_location_taux WHERE fk_duree=$object->array_options[options_locduree] ORDER BY libelle You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '>array_options[options_locduree] ORDER BY libelle' at line 1. Check setup of extra parameters
La suggestion d’utiliser var_dump m’a aidé : après des recherches fastidieuses, j’ai enfin compris comment accéder à mon attribut.
Si vous voulez accéder à un attribut nommé « mon_attribut » dans la formule d’un champ calculé, il faut utiliser (valable sous Dolibarr 17.0.2 en tout cas) : $objectoffield->array_options["options_mon_attribut"]
Notez donc bien qu’il faut ajouter le préfixe options_ devant « mon_attribut ».
Il fallait deviner ! Je n’ai pas trouvé cette information dans la documentation. Si un contributeur passe par ici… je suis novice sur Dolibarr, mais il me semblerait judicieux de documenter cette syntaxe dans la fenêtre modale qui s’ouvre quand on clique sur le « i » à côté du label « Champ calculé », c’est-à-dire au sein du texte qui commence par « Vous pouvez entrer ici une formule en utilisant d’autres propriétés de l’objet ».