Shopsystem ShopPilot Shoploesung Diskussionen und Infos zum Shopsystem ShopPilot
Willkommen Gast. Bitte einloggen oder registrieren.
Mai 23, 2012, 07:12:02

Einloggen mit Benutzername, Passwort und Sitzungslänge
Suche:     Erweiterte Suche
5257 Beiträge in 1422 Themen von 333 Mitglieder
Neuestes Mitglied: pje
* Übersicht Hilfe Login Registrieren
+  Diskussionen und Infos zum Shopsystem ShopPilot
|-+  ShopPilot
| |-+  SSP - Shop Server Pages
| | |-+  Preisanzeige bei Staffelpreisen
0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: Preisanzeige bei Staffelpreisen  (Gelesen 1049 mal)
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« am: Juni 13, 2009, 07:58:22 »

Hallo,

wenn man bei Staffelpreisen im Preisfeld ein "ab" schreibt, gibt es bei bestimmten Abfragen Probleme, da hier nur Zahlen erwartet werden.
ich mache daher die Preisausgabe mit ssp

Staffelpreisfelder abfragen, sortieren und den kleinsten Wert ausgeben
Das funktioniert soweit - aber meine Lösung, nicht benutzte Staffelpreisfelder aus dem Hash zu entfernen gefällt mir nicht  Sad

Code:
<!--spmacro:module(check)
use strict;
    sub preis {
my $minpreis;
my $out;
        my $index = $_[0];
        my $anzahl = $_[1];         
        my $item = ssp::get_var_article("itemid", $index);
if (length($item)) {
my $price = ssp::get_var_article('preis',$index);

my $stprice1 = ssp::get_var_article('stafp1',$index);
my $stprice2 = ssp::get_var_article('stafp2',$index);
my $stprice3 = ssp::get_var_article('stafp3',$index);
my $stprice4 = ssp::get_var_article('stafp4',$index);

my @staffelp = ($stprice1,$stprice2,$stprice3,$stprice4);
if (!length($stprice4)) {@staffelp = ($stprice1,$stprice2,$stprice3);}
if (!length($stprice3)) {@staffelp = ($stprice1,$stprice2);}
if (!length($stprice2)) {@staffelp = ($stprice1);}

$minpreis = main::fp((sort @staffelp)[0]);
if (length($minpreis)) { $out = "ab $minpreis";}
else { $out = main::fp($price); }

             main::mprint ($out);
        }
}
-->

Da gibt's doch bestimmt eine bessere Lösung als für jedes Feld extra abzufragen, ob hier etwas eingetragen ist  ...

« Letzte Änderung: Juni 13, 2009, 08:57:23 von dobra » Gespeichert

ahe
Global Moderator
Sr. Member
*****

Lob: 19
Offline Offline

Beiträge: 407


« Antwort #1 am: Juni 13, 2009, 20:46:46 »

Hallo dobra,

so gehts auch:

Code:
my @staffelp = ();
foreach my $field (qw/stafp1 stafp2 stafp3 stafp4/) {
my $val = ssp::get_var_article($field,$index);
push(@staffelp, $val) if ($val);
}
Gespeichert

MfG ahe
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #2 am: Juni 13, 2009, 20:49:46 »

Hallo ahe,
DANKE
Gespeichert

dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #3 am: Juni 14, 2009, 18:23:30 »

nur der Vollständigkeit halber  Wink

hab noch einen kleinen Fehler korrigiert:
mit
(sort @staffelp)[0]  
wird alphanumerisch sortiert = 12,50 ist kleiner als 9,90
in diesem Fall muss es also so heißen:
(sort {$a<=>$b} @staffelp)[0]
dann wird numerisch sortiert = 9,90/22,50/110,90

hoffe das stimmt jetzt so und ich habe nicht noch etwas übersehen....
Gespeichert

Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  

mysitelist Impressum Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS