Mehrere Lieferadressen pro Kunde

Begonnen von admin, Februar 26, 2014, 16:17:50

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

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:


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




Ingolf

Gibt es ein Beispiel für diese Anwendung?
Danke