Hallo,
Ich habe meinen Kunden ein Guthabenkonto eingerichtet, auf das Provisionen (Affiliate-Provisionen) gebucht werden.
Bei Bestellungen wird dieses Guthaben von der Rechnungssumme abgezogen.
<!--spmacro:module(Callback)
sub invoice_addpos_final {
my $ref_gesamt = $_[0];
my $kdnr = ssp::get_var_user("kundennr");
my $pre = ssp::db_get_prefix();
my $USR = $pre . "USR";
ssp::readSQLData(qq|SELECT GUTSCHBETR FROM $USR WHERE KUNDENNR = '$kdnr'|, "GUTSCHBETR");
my $wert = ssp::get_var_db('GUTSCHBETR',0);
$wert = 0 if ($wert eq $ssp::undefined);
if ($wert ne "undefined") {
$$ref_gesamt -= $wert;
}
return 0;
}
-->
Soweit funktioniert das auch.
Das Problem:in diesem Fall kann der Rechnungsbetrag auch ein
Minusbetrag sein.
also wenn ssp::get_wktotalsum(); <= 0 soll als Zahloption nur "nix zu zahlen" angezeigt werden.
Ist der Wert >0 die normalen Zahlarten.
Scheinbar kann das Callback::exclude_zahlart aber nicht mit Minuszahlen umgehen?
<!--spmacro:module(Callback)
sub exclude_zahlart {
my $sum = ssp::get_wktotalsum();
if ($sum >= 0) {
return 6; # ID für "nichts zu bezahlen"
} else {
return "1,2,4,5";
}
}
-->
funktioniert nicht
wie kann ich das lösen?
Nachtrag ich glaube, jetzt habe ich die Lösung gefunden...
Scheinbar wird das
Callback::exclude_zahlart VOR dem
Callback::invoice_addpos_final ausgeführt?
wenn ich das
SO schreibe, funktioniert es (auch bei Minuswerten)
<!--spmacro:module(Callback)
sub exclude_zahlart {
my $kdnr = ssp::get_var_user("kundennr");
my $pre = ssp::db_get_prefix();
my $USR = $pre . "USR";
ssp::readSQLData(qq|SELECT GUTSCHBETR FROM $USR WHERE KUNDENNR = '$kdnr'|, "GUTSCHBETR");
my $wert = ssp::get_var_db('GUTSCHBETR',0);
$wert = 0 if ($wert eq $ssp::undefined);
my $sum = ssp::get_wktotalsum();
if (($sum - $wert) >=0) {
return 6; # ID für "nichts zu bezahlen"
} else {
return "1,2,4,5";
}
}
-->
Linkback: https://www.shoppilot.net/pf/index.php?topic=1470.0