Hallo,
Habe mal wieder ein (für mich) unlogisches) Problem:
Wenn im Feld LBS bei Varianten "0" steht, wird das mit
my $index = shift;
my $anzahl = shift;
if ($index <= $anzahl) {
my $lmenge = ssp::get_var_cart("LBS", $index);
my $bmenge = ssp::get_var_cart("anzahl", $index);
if (length($lmenge)) {
if ($lmenge < $bmenge && $lmenge ne "0") {main::mprint "z.Z. leider nur $lmenge St lagernd - Lieferzeit für $bmenge St ca 14 Tage";}
elsif ($lmenge eq "0") {main::mprint "dieser Artikel ist z.Z. nicht lagernd - Lieferzeit ca 14 Tage";}
}
return "noinc";
}
als "nichts" interpretiert und weder berechnet noch angezeigt.
(bei Artikeln wird LBS "0" korrekt angezeigt und berechnet)
wie üblich bei solchen Problemen, habe ich das auch in einem Demoshop versucht und im WK zur Kontrolle so ausgegeben.
<!--spmacro:module(show)
sub menge {
my $index = shift;
my $anzahl = shift;
if ($index <= $anzahl) {
my $lmenge = ssp::get_var_cart("LBS", $index);
main::mprint $lmenge;}
return "noinc";
}
-->
__hprodukt__ __zusatz1__ __produkt__ / __LBS__ / __show::menge__
Im Beispiel ist LBS "0", "1", "2"

Hat jemand eine Idee, wo/wie ich diesen Fehler suchen/korrigieren kann?
P.S.:if (!length($lmenge)) kann ich nicht verwenden, da es auch Artikel/Varianten gibt, für die kein Lagerstand importiert werden kann
also hier das Feld LBS leer ist -> ich brauche die Unterscheidung zwischen LBS = "0" und LBS = " "
PP.S.: das ist - *nur* bei Varianten - nicht nur bei LBS sondern bei allen ben.def. Feldern so, daß "0" gleich " " ist.
eine "Notlösung" habe ich entdeckt: wenn in LBS nicht "0" sondern " 0" (mit Leerzeichen voran) steht, wird es richtig ausgegeben
- ist aber keine schöne Lösung da es bei jedem Lagerstandimport wieder überschrieben wird.....
Linkback: https://www.shoppilot.net/pf/index.php?topic=1150.0