Forum CMS Made Simple FR
[Résolu] LISE - Math in template - Version imprimable

+- Forum CMS Made Simple FR (https://www.cmsmadesimple.fr/forum)
+-- Forum : Général (https://www.cmsmadesimple.fr/forum/forum-3.html)
+--- Forum : Modules, Tags (https://www.cmsmadesimple.fr/forum/forum-14.html)
+--- Sujet : [Résolu] LISE - Math in template (/thread-4247.html)



[Résolu] LISE - Math in template - milou2002 - 10/07/2019

Bonjour,

Au sein d'un gabarit de sommaire, je souhaite effectuer la somme de tous les montants repris dans un champs d'une instance LISE. Pour ce faire, j'appelle une variable et y ajoute le montant à chaque itération.
Pensant que cela venait du format texte du champs, j'ai tenté en vain de la convertir en variable numérique via '(float)x+(float)y', ...  Angry

Valeurs du champs montant : 100, 100 et 55
Code utilisé :

Code :
{if $items|@count > 0}
{assign var='sum' value=0.00}
{assign var='desc' value=''}

{foreach from=$items item=item}
{assign var='add' value=$item->fielddefs.montant}
{math equation='x+y' x=$sum y=$add assign='sum'}
{if $item@first}{assign var='desc' value=$add}{else}{assign var='desc' value=$desc|cat:'+'|cat:$add}{/if}
{/foreach}

{$sum} ({$desc})
{/if}

Résultat attendu : 255 (100+100+55)
Résultat obtenu : 0 (100+100+55)

Merci pour votre aide !


RE: LISE - Math in template - airelibre - 10/07/2019

Bonjour,

pour la valeur d'un champ, il faut passer par $item->fielddefs.montant->value car $item->fielddefs.montant est un objet et non une valeur directement. Même s'il y a des cas où on peut l'afficher directement, cela reste une rustine.

Tente ainsi ?
A noter aussi que :
Code :
{assign var='add' value=$item->fielddefs.montant->value}

Peut être remplacé par la notation :
Code :
{$add=$item->fielddefs.montant->value}

Tiens-nous au courant Wink


RE: LISE - Math dans un gabarit - milou2002 - 10/07/2019

Cela fonctionne en effet mieux ainsi :

Code :
{if $items|@count > 0}
{assign var='sum' value=0.00}
{assign var='desc' value=''}

{foreach from=$items item=item}
{assign var='add' value=$item->fielddefs.montant->value}
{math equation='x+y' x=$sum y=$add assign='sum'}
{if $item@first}{assign var='desc' value=$add}{else}{assign var='desc' value=$desc|cat:'+'|cat:$add}{/if}
{/foreach}
{$sum} ({$desc})
{/if}

Un tout grand merci.