Im Werte Feld rechnen und runden?

Hallo,


ich stehe auf dem Schlauch und bräuchte mal bitte Hilfe.


Unter einer Bedingung im Wertefeld soll je nach Hersteller ein unterschiedlicher Verkaufpreis ermittelt werden. Bei einem einzelnen Hersteller soll der UVP genommen werden und bei allen anderen Herstellern soll der VK aus dem BasePrice errechnet werden und gerundet werden - und das bekomme ich nicht hin:


<#if Hersteller! == 'XXX'>${RecommendedRetailPrice!}<#else>${BasePrice?replace(",",".")?number * 1.6}</#if>


Also das funktioniert, aber wie kann ich den Teil noch runden?

${BasePrice?replace(",",".")?number * 1.6}


Der RecommendedRetailPrice soll nicht gerundet werden.

Hallo,


du bist schon nah dran. Versuch mal den ganzen Ausdruck der in den {} steht noch in () zusetzten und mit diesen Methoden hier(https://freemarker.apache.org/docs/ref_builtins_number.html#ref_builtin_rounding) kannst du runden.

${(BasePrice?replace(",",".")?number * 1.6)?round}


Viele Grüße,

Lukas

Hallo Lukas,


aha, das funktioniert :)


Kann ich noch die Kommastellen beim Runden beeinflussen? Also zB auf oder abrunden auf 0.99 oder 0.95?


Danke vorab!

Hallo,


mir fällt gerade ein, dass wir auch eine eigene Runden Methode haben, schau mal hier: https://apps.synesty.com/transformy?action=showTemplateFunctionDocumentation#round

Ich glaube für deinen Fall wäre sowas ähnliche das richtige:

${round(DeinWert,2,"HALF_EVEN",0.95)}


Viele Grüße,

Lukas

Habs selbst rausgefunden und so gemacht:


<#if Hersteller! == 'XXX'>${RecommendedRetailPrice!}<#else>${(BasePrice?replace(",",".")?number * 1.6)?round?number-0.01}</#if>

Hallo Lukas,


oh, noch schicker, dann mache ich es mal so wie von Dir vorgeschlagen :)


VG Stefan