ShopPilot > Aktuelle FAQ - H?ufige Fragen

Mehrere Lieferadressen pro Kunde

(1/1)

admin:
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:


--- Code: ---<!--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";
}




--- End code ---


Linkback: https://www.shoppilot.net/pf/index.php?topic=1684.0

Ingolf:
Gibt es ein Beispiel für diese Anwendung?
Danke

Navigation

[0] Themen-Index

Go to full version
Powered by SMFPacks SEO Pro Mod | Sitemap