Autor Thema: Preisanzeige bei Staffelpreisen  (Gelesen 5425 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Preisanzeige bei Staffelpreisen
« 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  :(

<!--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  ...



Linkback: https://www.shoppilot.net/pf/index.php?topic=1257.0
« Letzte Änderung: Juni 13, 2009, 08:57:23 von dobra »
mfG
dobra

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: Preisanzeige bei Staffelpreisen
« Antwort #1 am: Juni 13, 2009, 20:46:46 »
Hallo dobra,

so gehts auch:

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

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Preisanzeige bei Staffelpreisen
« Antwort #2 am: Juni 13, 2009, 20:49:46 »
Hallo ahe,
DANKE

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Preisanzeige bei Staffelpreisen
« Antwort #3 am: Juni 14, 2009, 18:23:30 »
nur der Vollständigkeit halber  ;)

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....


xx
Preisanzeige auf- absteigend

Begonnen von bytefender

0 Antworten
4150 Aufrufe
Letzter Beitrag Dezember 15, 2004, 19:23:07
von bytefender
xx
Preisanzeige über SSP

Begonnen von Doni

3 Antworten
7047 Aufrufe
Letzter Beitrag Januar 28, 2004, 08:14:25
von Doni