[Résolu] LISE - Math in template

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
#1
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 !
CMSMS : Version 2.1.2 (nouveaux sites)
Local : WampServer
Serveur : OVH Perso (généralement)
#1
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 !
CMSMS : Version 2.1.2 (nouveaux sites)
Local : WampServer
Serveur : OVH Perso (généralement)
#2
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
#2
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
#3
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.
CMSMS : Version 2.1.2 (nouveaux sites)
Local : WampServer
Serveur : OVH Perso (généralement)
#3
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.
CMSMS : Version 2.1.2 (nouveaux sites)
Local : WampServer
Serveur : OVH Perso (généralement)


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)