Autor Thema: mehrere Lieferadressen je Kunde  (Gelesen 5608 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Ingolf

  • Newbie
  • *
  • Beiträge: 24
  • Lob: 0
mehrere Lieferadressen je Kunde
« am: September 21, 2016, 14:19:54 »
Ich habe in der Tabelle ADR für einen Kunden mehrere Lieferadressen eingegeben. Zusatzlich habe ich eine Datei shipping.ipl erstellt mit folgendem 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[0]);
         jQuery('#orderform input[name="LPLZ"]').val(liefer[1]);
         jQuery('#orderform input[name="LORT"]').val(liefer[2]);
         jQuery('#orderform input[name="LFIRMA"]').val(liefer[3]);
         jQuery('#orderform input[name="LNAME"]').val(liefer[4]);
         jQuery('#orderform input[name="LVORAME"]').val(liefer[5]);
         jQuery('#orderform input[name="LSTRASSE"]').val(liefer[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";
}


Im html-Code der Bestellseite habe ich die Datei mit
<!--spmacro:include(shipping.ipl)-->
eingebunden und will an passender Stelle die Funktion SELECT mit __shipping::select__ aufrufen.

Welche Formularfelder müssen eventuell noch in das Bestellformular eingefügt werden?
Ich erhalte immer einen iboshop.cgi Fehler, weil er angeblich die Funktion __shipping::select__ nicht findet.

Kann mir eventuell jemand ein Beispiel posten?

Danke für die Hilfe
Ingolf


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

Offline Ingolf

  • Newbie
  • *
  • Beiträge: 24
  • Lob: 0
Re: mehrere Lieferadressen je Kunde
« Antwort #1 am: September 21, 2016, 20:12:29 »
Ich habs jetzt hinbekommen. Der Fehler lag nicht daran, dass die Funktion nicht gefunden wurde, sondern am fehlerhaften SQL-Script in der Funktion. Man muß darauf achten, dass auch die Felder aufgerufen werden, die in der Tabelle vorhanden sind. Und hier weicht die Funktion von der originalen ADR-Tabelle ab.
In der entsprechenden html-Datei habe ich die Adress-Felder eingefügt und so benannt, wie sie in der Funktion benannt sind.Das funktioniert alles. Jetzt meine neue Frage. Wie übernehme ich die Daten der Lieferanschrift in die Auftragsbestätigung? Die Daten werden ja eigentlich mit den Formulardaten an die entsprechende html-Seite übergeben.

Gruß Ingolf

Offline Ingolf

  • Newbie
  • *
  • Beiträge: 24
  • Lob: 0
Re: mehrere Lieferadressen je Kunde
« Antwort #2 am: September 23, 2016, 22:46:39 »
So, habs hinbekommen.
Im Bestell-Formular kann der Kunde unter mehreren Lieferanschriften wählen.
Ich bedanke mich bei diesem Forum.


xx
Mehrere Lieferadressen pro Kunde

Begonnen von admin

1 Antworten
7110 Aufrufe
Letzter Beitrag September 04, 2015, 14:00:10
von Ingolf
xx
mehrere Bedingungen in exclude_zahlart

Begonnen von dobra

0 Antworten
6039 Aufrufe
Letzter Beitrag August 23, 2012, 13:21:32
von dobra
xx
neuer Kunde in Auftragsliste?

Begonnen von dobra

2 Antworten
5514 Aufrufe
Letzter Beitrag August 30, 2007, 12:33:01
von dobra
xx
KdNr geändert, Kunde doppelt angelegt

Begonnen von jg

2 Antworten
6345 Aufrufe
Letzter Beitrag April 13, 2003, 18:35:03
von jg