Champs calculés dans les attributs suppl. de produits

bonjour à tous,
je suis en version 20.01 de dolibarr
php 8.2.23 et hébergé chez O2switch.

Mon problème est le suivant. Je veux calculer mon cout de revient de mes produits en fonction d’une surface de toile et de peinture. J’ai donc créé dans les attributs supplémentaires de mes produits :

  • une longueur et une largeur

  • j’ai créé un attribut pour le prix au cm2 de la toile comme suit :

    ($objectoffield->array_options[‹ options_longueur ›]*$objectoffield->array_options[‹ options_hauteur ›])*1/100

  • j’ai créé un attribut pour le prix au cm2 du couvrant en peinture comme suit :
    ($objectoffield->array_options[‹ options_longueur ›]*$objectoffield->array_options[‹ options_hauteur ›])2/1008/100

Ces deux calculs fonctionnent parfaitement.

En revanche, j’ai créé un cout de revient qui regroupent ces deux éléments précédents comme suit :

($objectoffield->array_options[‹ options_longueur ›]*$objectoffield->array_options[‹ options_hauteur ›])1/100+($objectoffield->array_options[‹ options_longueur ›]$objectoffield->array_options[‹ options_hauteur ›])2/1008/100

Et c’est là où est mon problème car ce champs calculé du cout de revient ne fonctionne pas.

J’ai procédé comme ça pour ne pas surcharger un seul attribut avec une seule formule. J’y suis donc allé à taton et quand j’ai vu que mes formules « toile » et « couvrant » fonctionnaient bien avec leur formule, je me suis dit que cela allait être plus facile. Et oups pour moi le dernier calcule ne fonctionne pas.

Quelqu’un aurait-il une idée car je ne comprends pas pourquoi les 2 premières formules fonctionnent et pas la dernière. Serait-ce parce que c’est un regroupement de formules ? Je ne sais pas.

Merci à vous pour me donner un tuyau, une formule ou autre.
Belle journée à vous tous en attendant vos retours. Merci encore

Bonjour :slight_smile:

il manque plusieurs opérateurs dans vos formules, et dans votre exemple, vous pouvez simplifier la notation en évitant d’utiliser les parenthèses…
ce qui devrait marcher :

$objectoffield->array_options['options_longueur']*$objectoffield->array_options['options_hauteur']*1/100+
$objectoffield->array_options['options_longueur']*$objectoffield->array_options['options_hauteur']*2/1008/100

Bonne continuation

bonsoir, et un grand merci à vous. Je viens de voir votre message et mis votre formule et youpi!! ça fonctionne. Merci à vous, c’est super sympa et très bonne soirée, je vais pouvoir passer à autre chose. Je suis ravie. Merci encore