Kundenkonto-Einstellungen: Zahlart abhängig von Lieferzone

Begonnen von dobra, Januar 01, 2008, 21:35:23

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

Hallo,

Habe mit 01.01.08 jetzt doch Lieferzonen in mein Shop eingebaut.

War bißchen kompliziert, da ich div andere Berechnungsfunktionen (keine Versandkosten bei nur Gutscheinbestellung, versandkosenfrei ab € 100,- und artikelbezogener Rabatt muß daher schon vom Warenwert und nicht erst von der Gesamtsumme abgezogen werden) eingebaut habe und daher die "normale" Lieferzonen -> Versandkostentabelle nicht verwenden konnte.
Aber ich denke, ich habe das ganz gut gelöst  :D

Jetzt möchte ich aber auch im Kundenkonto - Einstellungen die Wahl der Zahlart von der Lieferzone abhängig machen.
= es soll so wie im WK funktionieren -> nur die für diese Lieferzone freigeschaltenen Zahlarten sollen in der Listbox angezeigt werden.

...
     my $zone = ssp::get_var_user(LIEFERZONE);
    my $out;

if ($zone <= 3)  {
$out = qq |
<select size="1" name="ZAHLUNGSART" style="width: 180px;">
<option value="__ZAHLUNGSART:3__">Kreditkarte (Daten SSL senden)</option>
<option value="__ZAHLUNGSART:4__">Kreditkarte (Daten faxen)</option>
<option value="__ZAHLUNGSART:2__">Vorauskassa (-3% Sconto)</option>
<option value="__ZAHLUNGSART:1__">Rechnung</option>
</select>
            |;
} else {
         ...


Im konkreten Fall soll für Lieferzone 1 - 3 Zahlart 1 - 4 eingeblendet werden.
Für Lieferzone 4 - 26 aber nur Zahlart 2, 3 und 4.
Auserdem soll nur für "berechtigte" Kunden in Zone 4 - 26 auch Zahlart 1001 angezeigt werden.
(das funktioniert im Kundenkonto aber nicht - 1001 wird (wenn als option eingetragen) auch bei ALLEN angezeigt.

Das "__ZAHLUNGSART:x__" in qq | ... | geht aber nicht.
Ich komme nicht drauf, wie ich das maskieren kann  ???
\__, _\_ oder \: nutzt garnix, mit &#95;&#95; statt __ wird's zwar richtig angezeigt, aber dann wird das value im Quelltext nicht ersetzt = Einstellungen werden nicht mehr gespeichert bzw. im WK vorbelegt.

Ist der Ansatz schon falsch?
mfG
dobra

admin

Hallo Dobra,

das funktioniert so nicht, weil hier die Reihenfolge der Auswertung anders ist.
Man kann es so wie im (Standard) Kundenkonto Modul machen.


sub printZahlungsarten {
my $field = "ZAHLUNGSART";
my $selected = ssp::get_var_user($field);
my @values;
my @titles;

my $pre = ssp::db_get_prefix();
my $PAYADD = $pre . "PAYADD";
my $MERPAY = $pre . "MERPAY";
my $sql = qq|SELECT NAME,PAYID FROM $PAYADD,$MERPAY WHERE PID=PAYID AND MID='$main::h_id' ORDER BY SID|;
my $read = ssp::readSQLData($sql, "NAME", "PAYID");
if (-1 == $read) { main::syserr($sql); }
for (my $i = 0; $i < $read; $i++) {
my $name = ssp::get_var_db("NAME", $i);
my $id = ssp::get_var_db("PAYID", $i);

push(@values, $id);
push(@titles, $name);
}

printCombo($field, $selected, \@values, \@titles);
}



Gruss hop

dobra

Hallo hop,

Danke für den Code, aber bitte noch um "Gebrauchsanweisung" - irgendetwas fehlt mir da sicher noch ....
(ich nix verstehen  :-\)

Wenn ich den Code so einbaue, bekomme ich "Undefined subroutine &zahlart::printCombo called at (eval 73) line 22. "

Mit print($field, $selected, \@values, \@titles); wird "ZAHLUNGSART4ARRAY(0x1e5de54)ARRAY(0x1e5de6c) " ausgegeben.

Ich möchte aber doch so gerne die Zahlartlistbox mit den "erlaubten" Optionen - wie mache ich das?

mfG
dobra

admin

Hallo Dobra,

es kommt aus dem Kundenkonto Modul ,
zu finden z.B. im Carshop in kundenkonto_modul/kundenkonto_kdndaten_sonstige.html.
Dort findet man auch den kompletten Code.

Gruss hop

dobra

mfG
dobra