Champ calculée automatiquement

J’ai utilisé un champ calculable automatiquement sur la facture (extra Field), j’ai mis le syntax suivant $object->multicurrency_total_ttc/2. Le champs s’affiche bien sur la facture.
mais quand j’affiche ce champs calculable dans la liste des factures. La colonne correspond reste vide, n’affiche rien,
Merci de me renseigner afin que je puisse affiche la veleur de ce champ calculée automatiquement dans la liste des factures vente et merci de votre aide.

Bonjour, je déterre ce sujet car je rencontre la même anomalie.

dolibarr 13.0.1

Un attribut supplémentaire de type « champ calculé » est rajouté à un objet (propale), l’idée étant de contourner le fait que Origine n’est pas proposé dans l’affichage mode liste des propales.
Ce champ calculé est : $object->demand_reason_id (qui sera numérique, mais c’est déjà un début…)

Quand il est rendu visible dans la fiche proposition, il affiche la valeur numérique correspondant au champ Origine de la propale.

Cependant, dans la liste des propales la colonne, rendue visible bien entendu, reste vide alors qu’on devrait y trouver des valeurs identiques à celles qui figurent dans les fiches propales…

Fausse piste, j’en ai peur. :worried:

Serait-ce parce qu’un champ calculé l’est à chaque consultation de la fiche (propale, facture) ?
Et que par conséquent il n’est pas calculé dans le mode d’affichage liste ?

Bonjour :grinning:

Pouvez-vous essayer par exemple avec la valeur suivante pour le champ calculé
($obj->total_ttc ? $obj->total_ttc : $object->total_ttc)/2

Ceci va vous donner la moitié du total ttc; il faut simplement comprendre que la structure $object est chargée quand vous faites appel au script card.php pour afficher le contenu d’un document, et quand vous faites appel à une liste, c’est l’objet $obj qu’il faut utiliser !!!

mais pour retrouver la valeur de demand_reason_id, cela ne sera pas la solution car toutes les propriétés ne sont pas chargées quand vous désirez l’affichage de listes…
c’est quand même possible, mais avec un développement relativement simple et un peu « spécifique »

pour votre champ calculé, le paramétrage suivant devrait fonctionner - mais en fait ça ne donne pas le résultat attendu
(($reloadedobj = new Propal($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->demand_reason_id : ‹ -1 ›

N’hésitez pas à me contacter pour plus d’informations à [email protected]

Bonne continuation

1 « J'aime »

Pour la question de l’Origine, la réponse est dans ce commit.