IBO - Vertriebspartner in Österreich             
ShopPilot.at
zurück Home     ShopPilot.at Tutorials Scripte für diverse Aufgaben Seite empfehlen Seite drucken    teilen
Tipps - Tricks - Lösungen

Thema: Ein echtes Guthabenkonto für Kunden einrichten
Autor: dobra

Aufgabe:
man soll einem registrieten Kunden ein Guthaben zuschreiben können
(z.B. den Betrag für Rücksendungen, "Provisionen", oder was auch immer)
Dieses Guthaben wird dann von der aktuellen Bestellung abgezogen.
Macht die Bestellung weniger aus als das Guthaben, wird das Guthabenbudget natürlich automatisch aktualisiert bzw gelöscht wenn es verbraucht ist.

Lösung:
zwei benutzerdefinierte Kundenfelder anlegen
GUTSCHTEXT -> hier kommt der Text rein
GUTSCHBETR -> hier kommt der Betrag rein

Code in stdall.ipl:

<!--spmacro:module(show)
sub gutschrift {
my $out;
my $out2;
   my $kdnr = ssp::get_var_user("kundennr");
	my $gstext =  ssp::get_var_user('GUTSCHTEXT');
		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);
		$wertanz = main::fp($wert);
		my $rbetr = ssp::get_wktotalsum ();
		my $rest = $wert - $rbetr;
			if ($rest < 0) {$rest = 0}
		my $showrest = main::fp($rest);
			if ($rest > 0) {$out2 = qq|
				<tr>
					<td colspan="6" class="mindertext" style="border:none;">Restguthaben</td>
					<td colspan="2" class="mindertext" style="padding-right:15px;" nowrap bgcolor="#FEF7FE"> $showrest</td>
				</tr>
				|;
			}
				
		my $showrbetrneu = $rbetr-$wert;
			if ($showrbetrneu < 0) {$showrbetrneu = 0;}
				$showrbetrneu = main::fp($showrbetrneu);
		  if ($wert > 0) { $out = qq| 
			<input type="hidden" name="gseingeloest" value="$rest">
			<tr>
				<td colspan="6" class="mindertext" style="border:none;">$gstext</td>
				<td colspan="2" class="mindertext" style="padding-right:15px;" nowrap bgcolor="#FEF7FE"> $wertanz</td>
			</tr>
			<tr>
				<td colspan="6" class="mindertext" style="border:none;">Rechnungsbetrag NEU</td>
				<td colspan="2" class="mindertext" style="padding-right:15px;" nowrap bgcolor="#FEF7FE"> $showrbetrneu</td>
			</tr>
			$out2
			|;
			main::mprint $out;
			}
}
-->

der HTML-Teil muß natürlich angepasst werden

Im WK, auf den Bestelldatenvorlagen und im Mail an Händler mit  __show::gutschrift__  ausgeben.
(wird nur angezeigt, wenn es auch ein Guthaben für diesen Kunden gibt)

Damit dieses Gutschriftfeld bei Bestellungen auch in der DB aktualisiert wird auf der Meldungsseite "Bestellung OK" diesen Code im Headbereich eintragen
<!--spmacro:module(gutschrift)
sub aktualisieren {
			my $pre = ssp::db_get_prefix();
			my $USR = $pre . "USR";
	my $kdnr = ssp::get_var_user("kundennr");
	my $sgrest = ssp::qform(ssp::get_var_form('gseingeloest')) ;
		if ($sgrest ne 'undefined') {
			my $sql = qq|UPDATE  $USR SET GUTSCHBETR = "$sgrest" WHERE KUNDENNR = $kdnr|;			
			ssp::exec_sql($sql, 1);	
			ssp::db_update_usr($kdnr,"GUTSCHBETR",$sgrest)	
		}
}
-->

Mit "Daten einlesen" ist der aktuelle Stand des Kundenguthabens auch im WC


Wenn Sie fragen zum Artikel haben, bitte im Support-Forum stellen.