string replace

IceT

Aktives Mitglied
13. Juli 2007
89
0
Ich möchte $Artikel->Preise->cVKLocalized[$NettoPreise] mit $Artikel->fUVPBrutto vergleichen.
Das funktioniert aber nicht, weil bei cVKLocalized[$NettoPreise] das Währungszeichen beinhaltet, also zum Beispiel 12.000,00 € und fUVPBrutto hingegegen so aussieht: 12000.00.
Wie kann ich beide Variablen formatieren, so dass ich sie vergleichen kann?

Vielen Dank
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.452
282
AW: string replace

Nimm doch {if $Artikel->SieSparenX->fSparbetrag == 0}. Das greift nur wenn UVP und Anzeigepreis identisch sind ;)
 

MBesancon

Administrator
Mitarbeiter
1. Oktober 2010
2.055
187
Erkelenz
AW: string replace

Ich weiss nicht wozu du das benötigst, aber wieso vergleichst du nicht

Code:
{$Artikel->Preise->fVKNetto}

und

Code:
{$Artikel->Preise->fVKBrutto}

?

Edit: Sorry, nicht gesehen das du den UVP vergleichen möchtest :)
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.452
282
AW: string replace

Weil fVKBrutto und Netto eine andere Formatierung haben als fUVPBrutto. Da müsste erst wieder umgewandelt werden.
 

IceT

Aktives Mitglied
13. Juli 2007
89
0
AW: string replace

Hi,
würde das auch gerne damit machen: {if $Artikel->SieSparenX->fSparbetrag == 0}
aber irgendwie steht mir die Variable nicht zur Verfügung im article listing, glaube ich zumindest.
Benutze das Flat template von Southbridge
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.452
282
AW: string replace

Achso, in der Übersicht ist die leer, stimmt. Das kann man aber nachziehen, ich hatte mal eine Funktion dafür. Ich werde die morgen Vormittag mal raussuchen, sofern bis dahin kein anderer Lösungsansatz gepostet wurde.
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.452
282
AW: string replace

Hier nun die Funktion:

functions.php (vorher Sicherung machen, nicht updatesicher):

Oben unter die letzte $smarty->register_function einbinden:
Code:
$smarty->register_function("berechneSieSparenX", "berechneSieSparenX");

Als letzte Funktion einbinden
Code:
function berechneSieSparenX($params, &$smarty) {
    $Artikel = $params['Artikel'];
    if ($Artikel->fUVP > 0) {
        if (!isset($Artikel->SieSparenX)) {
            $Artikel->SieSparenX = new stdClass();
        }
        if ($_SESSION["Kundengruppe"]->nNettoPreise) {
            $Artikel->fUVP = $Artikel->fUVP / (1 + gibUst($Artikel->kSteuerklasse) / 100);
            $Artikel->UVPlocalized = gibPreisStringLocalized($Artikel->fUVP);
            $Artikel->SieSparenX->anzeigen = $anzeigen;
            $Artikel->SieSparenX->nProzent = round((($Artikel->fUVP - $Artikel->Preise->fVKNetto) * 100) / $Artikel->fUVP);
            $Artikel->SieSparenX->fSparbetrag = $Artikel->fUVP - $Artikel->Preise->fVKNetto;
            $Artikel->SieSparenX->cLocalizedSparbetrag = gibPreisStringLocalized($Artikel->SieSparenX->fSparbetrag);
        } else {
            $Artikel->UVPlocalized = gibPreisStringLocalized($Artikel->fUVP);
            $Artikel->UVPBruttolocalized = gibPreisStringLocalized($Artikel->fUVPBrutto);
            $Artikel->SieSparenX->anzeigen = $anzeigen;
            $Artikel->SieSparenX->nProzent = round((($Artikel->fUVP - berechneBrutto($Artikel->Preise->fVKNetto, gibUst($Artikel->kSteuerklasse))) * 100) / $Artikel->fUVP);
            $Artikel->SieSparenX->fSparbetrag = $Artikel->fUVP - berechneBrutto($Artikel->Preise->fVKNetto, gibUst($Artikel->kSteuerklasse));
            $Artikel->SieSparenX->cLocalizedSparbetrag = gibPreisStringLocalized($Artikel->SieSparenX->fSparbetrag);
        }
    }
}

suche_liste_custom.tpl:

Code:
{foreach name=artikel from=$Suchergebnisse->Artikel->elemente item=Artikel}
    [B][COLOR=#ff0000]{berechneSieSparenX Artikel=$Artikel}[/COLOR][/B]
    <li class="{$style}{if $smarty.foreach.artikel.index%3==0} first{/if}">

rote fette ergänzen. Dann steht dir innerhalb des Templates das Objekt $Artikel->SieSparenX mit seinen Eigenschaften zur Verfügung. Dann klappt auch die Abfrage von mir oben :)