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 „Gefällt mir“
useg
30. Dezember 2016 um 14:56
7
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…
runde8
23. August 2017 um 12:16
9
@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:
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 „Gefällt mir“