Addieren von Kommazahlen für sOrder Mailvorlage

Hallo zusammen,

in meiner Mailvorlage sOrder möchte ich $sAmount (z.B. 1885,17) - $sShippingCosts (z.B. 37,04) berechnen. Ergebnis muss sein = 1848,13

Was ich versucht habe:

Fall1

{assign var=„ergebnis“ value="$sAmount-$sShippingCosts"}
{$ergebnis|string_format:"%.2f"}

Ergebnis = 1848.00

Fall 2

{math equation=„x-y“ x=(int)$sAmount y=(int)$sShippingCosts}

Ergebnis = 1848

Fall 3:

 {$x = $sAmount|replace:",":"."}
 {$y = $sShippingCosts|replace:".":","} 
 {assign var=„ergebnis“ value="$x-$y"}
 {$ergebnis}

Ergebnis = 1848.17

Leider bekomme ich in keinem Fall 1848.13.

Gibt es denn nur den Datentyp integer für Ganzzahlen bei smarty oder kann ich auch einen double oder single für Kommastellen gebrauchen?

Oder kann ich in Fall 2 nicht einfach den integer 1848 in string 1848,13 umwandeln?

 

 

 

Wenn Du im ersten Fall {$ergebnis|string_format:"%.2f"} weglässt und $ergebnis anzeigen lässt?

Was ist wenn Du einfach {$sAmount-$sShippingCosts} anzeigen lässt?

Beim Fall 3

{$x = $sAmount|replace:",":"."}
{$y = $sShippingCosts|replace:".":","} 

ist das replace bei $sShippingCosts anders/falsch. 

Nein leider liefert beides den Wert 1848. Also ohne Komma.

Mit dem Datentyp single könnte ich ja mit Kommastellen rechnen, aber leider finde ich nichts über google wie ich ein single übergebe.

Das funktioniert auf jeden Fall nicht.

{math equation=“x-y” x=(single)$sAmount y=(single)$sShippingCosts}

Irgendwie muss man mit Smarty doch Zahlen mit Kommastellen berechnen können? Wer weiß wie?

danke hhmarco73 --> das war es! Nun kommt mein Ergebnis.

Ob man mit single oder double in smarty arbeiten kann, würde mich dennoch interessieren…

Ok, falls mal irgendein so Ahnlungsloser wie ich das brauchen kann…hier mal der Code wie man es in der Vorlage einstellt, damit man das in der Mail angezeigt bekommt:

Anzeige sOrder:

Code(nicht schön, aber funktionier):

      Summe:
      {$x = $sAmount|replace:",":"."}
 			{$y = $sShippingCosts|replace:",":"."} 
 			{assign var="ergebnis" value="`$x-$y`"}
 			{$ausgabe = $ergebnis|replace:".":","} 
 			{$ausgabe} EUR
 		
    
     
      Versandkosten:*
      {$sShippingCosts}
    
    
      Gesamtsumme:
      {$sAmount}
    
     
      Gesamtsumme ohne MwSt.:
      {$sAmountNet}
    
      
      zzgl. 19.00 % MwSt.:
      {$r= $sAmountNet|replace:",":"."}
 		{assign var="ergebnis" value="`$r*0.19`"}
		{$format = $ergebnis|string_format:"%.2f"}
    	{$ausgabe = $format|replace:".":","}
		{$ausgabe} EUR

 

2 Likes

Stell den doch bitte mal als Code    rein für alle die es dann mal brauchen kann es dann kopiert werden.

sorry, Anfänger am Werk, hab es aktualisiert…

@Wilson82 schrieb:

Ok, falls mal irgendein so Ahnlungsloser wie ich das brauchen kann…hier mal der Code wie man es in der Vorlage einstellt, damit man das in der Mail angezeigt bekommt:

Anzeige sOrder:

image

Code(nicht schön, aber funktionier):

Summe:
{$x = $sAmount|replace:",":"."}
{$y = $sShippingCosts|replace:",":"."}
{assign var=„ergebnis“ value="$x-$y"}
{$ausgabe = $ergebnis|replace:".":","}
{$ausgabe} EUR

Versandkosten:*
{$sShippingCosts}

Gesamtsumme:
{$sAmount}

Gesamtsumme ohne MwSt.:
{$sAmountNet}

zzgl. 19.00 % MwSt.:
{$r= $sAmountNet|replace:",":"."}
{assign var=„ergebnis“ value="$r*0.19"}
{$format = $ergebnis|string_format:"%.2f"}
{$ausgabe = $format|replace:".":","}
{$ausgabe} EUR

 

Huh! Danke hierfür! Danach habe ich gerade gesucht!

Ich hätte nur eine kleinere Korrektur noch damit du Summe bzw. bei mir hier Zwischensumme ebenfalls zweistellig hast:

      Zwischensumme:
      {$x = $sAmount|replace:",":"."}
 			{$y = $sShippingCosts|replace:",":"."} 
 			{assign var="ergebnis" value="`$x-$y`"}
 			{$ausgabe = $ergebnis} 
 			{$ausgabe|string_format:"%.2f"|replace:".":","} EUR

 

1 Like