Shopsystem ShopPilot

ShopPilot => Aktuelle FAQ - H?ufige Fragen => Thema gestartet von: admin am Februar 26, 2014, 16:17:50

Titel: Mehrere Lieferadressen pro Kunde
Beitrag von: admin am Februar 26, 2014, 16:17:50
Es kann notwendig sein für einen Kunden mehrere Lieferadressen zu hinterlegen. Z.B. Wenn dieser Kunde mehrere Filialen hat und es soll direkt an die Filiale  geliefert werden.
In einem solchen Fall müssen für den Kunden mehrere Lieferadressen hinterlegt sein, damit er  ohne Neueingabe die entsprechende Adresse auswählen kann.
Diese Adressen werden in der relativ neuen Tabelle ADR gespeichert.
Die Auswahl erfolgt über eine Selectbox . Nach der Auswahl werden die Werte in die L-Adressfelder kopiert.

Beispiel:

<!--spmacro:module(shipping)

# Mögliche Lieferaddressen anbieten und in die Lieferfelder übertragen
sub select {
    my $pre = ssp::db_get_prefix();
    my $ADR = $pre . 'ADR';
    my $read = 0;
my $kundennr = ssp::get_var_user('KDNRWAWI');
my $out;
    my $sql = qq|SELECT LFDNR, ADDRESSNR, KUNDENNR, ADRTYPE, ANREDE, VORNAME, NAME, FIRMA, ORT, PLZ, STRASSE
FROM $ADR WHERE KUNDENNR = '$kundennr'  ORDER BY PLZ ASC;|;

    $read = ssp::readSQLData($sql,'LFDNR', 'ADDRESSNR','KUNDENNR','ADRTYPE','ANREDE','VORNAME','NAME','FIRMA','ORT','PLZ','STRASSE');
    if ($read == -1) {
       main::syserr("error: " . ssp::get_last_sqlerr());
    }
if ($read == 0) { return;} # Keine Daten

# Bei Änderung Werte in die Lieferfelder schreiben
my $jsout = qq|<script type="text/javascript">
jQuery().ready( function() {
jQuery("#adrselect").change(function() {
var i = jQuery("#adrselect").val();
jQuery('#orderform input[name="LFDNR"]').val(liefer[i][0]);
jQuery('#orderform input[name="LPLZ"]').val(liefer[i][1]);
jQuery('#orderform input[name="LORT"]').val(liefer[i][2]);
jQuery('#orderform input[name="LFIRMA"]').val(liefer[i][3]);
jQuery('#orderform input[name="LNAME"]').val(liefer[i][4]);
jQuery('#orderform input[name="LVORAME"]').val(liefer[i][5]);
jQuery('#orderform input[name="LSTRASSE"]').val(liefer[i][6]);
});
});
var liefer = new Array();\n|;

# Select aufbauen
$out .= qq|
</td>
<td style="margin-top:5px;"><b>Lieferadressen vorbelegen</b></td>
<td>
<select style="width:230px;" id="adrselect">\n|;
for ($i = 0; $i < $read; ++$i) {
my $lfdnr = ssp::get_var_db('LFDNR',$i);
my $plz = ssp::get_var_db('PLZ',$i);
my $ort = trans(ssp::get_var_db('ORT',$i));
my $firma = trans(ssp::get_var_db('FIRMA',$i));
my $name  = trans(ssp::get_var_db('NAME',$i));
my $vorname  = trans(ssp::get_var_db('VORNAME',$i));
my $strasse  = trans(ssp::get_var_db('STRASSE',$i));
$jsout .= qq|liefer[$i] = new Array ("$lfdnr","$plz","$ort","$firma","$name","$vorname","$strasse");\n|;

$out .= qq|<option value="$i">($lfdnr) $plz $ort $firma $name $vorname $strasse</option>\n|;
}
$out .= qq|</select>\n|;
$jsout .= qq|</script>\n|;
main::mprint "\n\n$jsout\n\n$out";
}



Titel: Re: Mehrere Lieferadressen pro Kunde
Beitrag von: Ingolf am September 04, 2015, 14:00:10
Gibt es ein Beispiel für diese Anwendung?
Danke