Autor Thema: Zahlart ausschließen  (Gelesen 5000 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Zahlart ausschließen
« am: August 19, 2009, 21:37:10 »
Hallo,

Irgendetwas mache ich falsch und finde den Fehler nicht  :-\

Bei Kauf von bestimmten Produkten soll die Zahlart Rechnung (bei mir ID 5) ausgeschlossen werden.
mit XZAHLARTEX und mit eingtragener 5 in diesem Feld wird "Rechnung" eingeblendet, egal ob dieser Artikel in WK liegt oder nicht.

2. Versuch
<!--spmacro:module(Callback)
sub exclude_zahlart {

my $index = $_[0];
my $anzahl = $_[1];
   if ($index <= $anzahl) {
for ($i=0;$i<=$anzahl;$i++) {
my $wert = ssp::get_var_cart('ESDFILE',$i);
if (length($wert)) {
return 5; # ID für Rechnung ist 5
} else {
return "";
}
}
}
}
-->
auch hier wird die Option "Rechnung" nach wie vor eingeblendet
($wert wird aber korrekt ausgelesen und mit
<!--spmacro:module(show)
sub download {
my $index = shift;
my $wert = ssp::get_var_cart('ESDFILE',$index);
if (length($wert)) {
main::mprint ($wert);
}
}
-->
auch im WK bei DEN Artikeln auf die die Bedingung zutrifft, ausgegeben.

Es geht hier um Varianten - beide Felder "auch für Varianten" angelegt.
zum Testen habe ich es aber auch mit Artikeln versucht - selbes Ergebnis = alle Zahlungsoptionen stehen zur Auswahl

Was habe ich übersehen?
bzw. WIE kann ich erreichen, das die Zahlart "Rechnung" nicht mehr zur Verfügung steht, sobald ein Artikel bei dem im Feld ESFILE etwas eingetragen ist oder "5" im XZAHLARTEX-Feld steht, im WK liegt?

Linkback: https://www.shoppilot.net/pf/index.php?topic=1288.0
mfG
dobra

Offline admin

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 545
  • Lob: 10
Re: Zahlart ausschließen
« Antwort #1 am: August 20, 2009, 10:59:01 »
Hallo Dobra,

der Callback Funktion "exclude_zahlart" werden keine Parameter mitgegeben.
Insofern ist $anzahl und $index Null.

Stattdessen muss die Anzahl der Positionen im WK mit  ssp::get_cart_items() ermittelt werden und als Obergrenze der for-Schleife dienen.

Gruss hop


Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Zahlart ausschließen
« Antwort #2 am: August 20, 2009, 11:05:00 »
Danke
- darauf hätte ich eigentlich selber können sollen  ;)

falls das mal jemand braucht - so funktioniert's:
<!--spmacro:module(Callback)
sub exclude_zahlart {
my $wert;
my $anzahl = ssp::get_cart_items();
for ($i=0;$i<=$anzahl;$i++) {
$wert = ssp::get_var_cart('ESDFILE',$i);
if (length($wert)) {
return 5; # ID für Rechnung ist 5
}
}
}
-->

Nachtrag: wenn man mehrere Zahlarten ausschließen will, müssen die IDs mit Komma getrennt und in " " geschrieben werden
also: return "1,2,5";
(Danke hop)
« Letzte Änderung: August 20, 2009, 12:22:32 von dobra »


xx
Artikel von der Suche ausschließen

Begonnen von dobra

0 Antworten
4616 Aufrufe
Letzter Beitrag August 02, 2008, 08:51:56
von dobra
xx
Artikelverknüpfungen in DB Abfrage ausschließen?

Begonnen von dobra

2 Antworten
5575 Aufrufe
Letzter Beitrag Juli 28, 2008, 21:24:10
von dobra
xx
Gutschein Artikel aus der Shop-Suche ausschließen

Begonnen von admin

0 Antworten
5191 Aufrufe
Letzter Beitrag April 13, 2010, 17:43:13
von admin
xx
Zahlart

Begonnen von Ingolf

5 Antworten
6904 Aufrufe
Letzter Beitrag Februar 25, 2013, 00:12:51
von dobra