Shopsystem ShopPilot

ShopPilot => Visual Forms => Thema gestartet von: dobra am Januar 01, 2008, 21:35:23

Titel: Kundenkonto-Einstellungen: Zahlart abhängig von Lieferzone
Beitrag von: dobra am Januar 01, 2008, 21:35:23
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?
Titel: Re: Kundenkonto-Einstellungen: Zahlart abhängig von Lieferzone
Beitrag von: admin am Januar 02, 2008, 11:56:22
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
Titel: Re: Kundenkonto-Einstellungen: Zahlart abhängig von Lieferzone
Beitrag von: dobra am Januar 02, 2008, 12:35:33
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?

Titel: Re: Kundenkonto-Einstellungen: Zahlart abhängig von Lieferzone
Beitrag von: admin am Januar 02, 2008, 12:47:36
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
Titel: Re: Kundenkonto-Einstellungen: Zahlart abhängig von Lieferzone
Beitrag von: dobra am Januar 02, 2008, 13:19:22
Danke hop 

Jetzt habe ich's  ;D