<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">package admin;

use template;
use pdat;
use kasse;

@ISA = qw ( template );

####################################################################
####         Konstruktor der Kundenklasse
####         Argumente  : -
####         Returnwert : -
####################################################################
sub init {
	my $that = shift;
	my $class = ref($that) || $that;
	my $self = template-&gt;init(@_);
	bless $self, $class;	
	$self-&gt;{knr}      = shift;
	$self-&gt;{query}    = shift;
	$self-&gt;{kpass}     = "";
	$self-&gt;{pass}     = "";
	$self-&gt;{template} = 0;
	$self-&gt;{sprache}  = 0;
	$self-&gt;{name}     = "";
	$self-&gt;{firma}    = "";	
	$self-&gt;{nnname} ="";
	return $self;
}

####################################################################
####         Datenbanklader der Kundenklasse
####         Argumente  : knr
####         Returnwert : -
####################################################################
sub load {
	my $self = shift;	
	$self-&gt;log(4,"Entering: kunde:load");
	# Kunde aus der Datenbank laden
	my $sql = "select pass, name, firma, template, sprache from kunden where knr=$self-&gt;{knr}";
	($self-&gt;{kpass}, $self-&gt;{name}, $self-&gt;{firma}, $self-&gt;{template}, $self-&gt;{sprache}) = $self-&gt;sqlselect($sql);
	if (! defined $self-&gt;{knr}) {$self-&gt;log(2,"Kunde ist nicht vorhanden");$self-&gt;exit;}
	$self-&gt;loadtmp;
	return $self;
}

####################################################################
####         macht den Teilnehmer zum "Zombi"
####         Argumente  : 
####         Returnwert : 
####################################################################
sub delete {
	my $self = shift;
	$self-&gt;log(4,"Entering: pdat:delete");
	# Überprüfen, ob Teilnehmer existiert
	$sql = "select pin from benutzer where pin=$self-&gt;{id}";
	
	($self-&gt;{pin}) = $self-&gt;sqlselect($sql);
	
	if (! defined $self-&gt;{pin}){
		$self-&gt;{warntext}="Teilnehmer existiert nicht!";
		return $self-&gt;{warntext};
		}
		
	# Überprüfen, ob das Konto nicht leer ist
	my $sql = "select sum(betrag) from kasse where pin=$self-&gt;{id}";
	
	($self-&gt;{betrag}) = $self-&gt;sqlselect($sql);
	
	if ((! defined $self-&gt;{betrag}) || ($self-&gt;{betrag} &lt; 500)  ) 
	{
		
		if (! defined $self-&gt;{betrag}){ $self-&gt;{betrag}=0; }

		my $summe=$self-&gt;{betrag};

		$sql  = "delete from kasse where pin=$self-&gt;{id}";
		$self-&gt;sqldo($sql);
		$sql  = "delete from ergebnis where pin=$self-&gt;{id}";
		$self-&gt;sqldo($sql);
		$sql  = "delete from umfidpin where pin=$self-&gt;{id}";
		$self-&gt;sqldo($sql);
		$sql  = "delete from kriterien where pin=$self-&gt;{id}";
		$self-&gt;sqldo($sql);
		$sql  = "delete from benutzer where pin=$self-&gt;{id}";
		$self-&gt;sqldo($sql);
		$self-&gt;{warntext}="Der Teilnehmer $self-&gt;{id} ist gelöscht worden!&lt;BR&gt;Kontostand ".sprintf("%0.2f", $summe / 100)." Euro&amp;nbsp;/ ".sprintf("%0.2f", $summe *0.0195583)." DM";
		return $self-&gt;{warntext};
		}
	else{
		my $summe=$self-&gt;{betrag};
		 $self-&gt;log(4,"Entering: pdat: $dm");
		$self-&gt;{warntext}="Teilnehmer $self-&gt;{id} kann nicht gelöscht werden.&lt;BR&gt;Kontostand ".sprintf("%0.2f", $summe / 100)." Euro&amp;nbsp;/ ".sprintf("%0.2f", $summe *0.0195583)." DM";
		return $self-&gt;{warntext};
		}
}

####################################################################
####         Administrationsmaske
####         Argumente  : Emergency und Logtext
####         Returnwert : -
####################################################################
sub htmladmin{
		
		my $self = shift;
		$self-&gt;{id}=$baseq::VARS{knr};
		$self-&gt;{kpass}=$baseq::VARS{pass}=$baseq::VARS{kpass};
		$baseq::VARS{umfid}=0;
		$self-&gt;log(4,"Entering: pdat:htmladmin");
        $self-&gt;loadtmp;
		$self-&gt;{buttonwidth}=40;
		my $TITLE=$self-&gt;trans("TI22");
		$self-&gt;log(4,$self-&gt;{warntext});
		$baseq::VARS{pin}="";
		$HTML="&lt;DIV ALIGN='CENTER'&gt;\n&lt;TABLE WIDTH=80%&gt;\n".
			$self-&gt;TR([ $self-&gt;sfont($self-&gt;trans("HI22").":"),
			$self-&gt;sfont($self-&gt;{name}." bei ".$self-&gt;{firma}),
			$self-&gt;sfont(pdat-&gt;getdate) ])."\n&lt;/TABLE&gt;\n&lt;/DIV&gt;\&lt;BR&gt;".
			"&lt;DIV ALIGN='CENTER'&gt;&lt;TABLE width=80% BORDER='1' BORDERCOLOR='#CCCCCC'&gt;\n".
			"&lt;TR&gt;&lt;TD WIDTH='100%' bgcolor='#E6E6E6' HEIGHT='29'&gt;&amp;nbsp;&lt;/td&gt;\n".
			$self-&gt;TR(["&lt;P ALIGN='CENTER'&gt;".$self-&gt;SM("bbut","BU24")."&lt;/P&gt;"])."\n".
			"&lt;TR&gt;&lt;TD WIDTH='100%' bgcolor='#E6E6E6' HEIGHT='29'&gt;&amp;nbsp;&lt;/td&gt;\n".
			$self-&gt;TR(["&lt;P ALIGN='CENTER'&gt;".$self-&gt;SM("bbut","BU50")."&lt;/P&gt;"])."\n".
			"&lt;TR&gt;&lt;TD WIDTH='100%' bgcolor='#E6E6E6' HEIGHT='29'&gt;&amp;nbsp;&lt;/td&gt;\n".
			$self-&gt;TR(["&lt;P ALIGN='CENTER'&gt;".$self-&gt;SM("bbut","BU42")."&lt;/P&gt;"])."\n".
			"&lt;TR&gt;&lt;TD WIDTH='100%' bgcolor='#E6E6E6' HEIGHT='29'&gt;&amp;nbsp;&lt;/td&gt;\n".
			$self-&gt;TR(["&lt;P ALIGN='CENTER'&gt;".$self-&gt;SM("bbut","BU41")."&lt;/P&gt;"])."\n".
			"&lt;TR&gt;&lt;TD WIDTH='100%' bgcolor='#E6E6E6' HEIGHT='29'&gt;&amp;nbsp;&lt;/td&gt;\n".
			$self-&gt;TR(["&lt;P ALIGN='CENTER'&gt;".$self-&gt;SM("bbut","BU48")."&lt;/P&gt;"])."\n".
			"&lt;TR&gt;&lt;TD WIDTH='100%' bgcolor='#E6E6E6' HEIGHT='29'&gt;&amp;nbsp;&lt;/td&gt;\n".
			$self-&gt;TR(["&lt;P ALIGN='CENTER'&gt;".$self-&gt;SM("bbut","BU51")."&lt;/P&gt;"])."\n".
			"&lt;TR&gt;&lt;TD WIDTH='100%' bgcolor='#E6E6E6' HEIGHT='29'&gt;&amp;nbsp;&lt;/td&gt;\n".
			$self-&gt;TR(["&lt;P ALIGN='CENTER'&gt;".$self-&gt;SM("bbut","BU45")."&lt;/P&gt;"])."\n".
			"&lt;TR&gt;&lt;TD WIDTH='100%' bgcolor='#E6E6E6' HEIGHT='29'&gt;&amp;nbsp;&lt;/td&gt;\n".
			$self-&gt;TR(["&lt;P ALIGN='CENTER'&gt;".$self-&gt;SM("bbut","BU61")."&lt;/P&gt;"])."\n".
			"&lt;TR&gt;&lt;TD WIDTH='100%' bgcolor='#E6E6E6' HEIGHT='29'&gt;&amp;nbsp;&lt;/td&gt;\n".	
			$self-&gt;TR(["&lt;P ALIGN='CENTER'&gt;".$self-&gt;SM("bbut","BU53")."&lt;/P&gt;"])."\n".
			"&lt;TR&gt;&lt;TD WIDTH='100%' bgcolor='#E6E6E6' HEIGHT='29'&gt;&amp;nbsp;&lt;/td&gt;\n".
			$self-&gt;TR(["&lt;P ALIGN='CENTER'&gt;".$self-&gt;SM("bbut","BU11")."&lt;/P&gt;"])."\n".
			"&lt;TR&gt;&lt;TD WIDTH='100%' bgcolor='#E6E6E6' HEIGHT='29'&gt;&amp;nbsp;&lt;/td&gt;\n".	
			"&lt;/TABLE&gt;&lt;/DIV&gt;\n&lt;BR&gt;&lt;HR&gt;\n";
			$self-&gt;{helpkontext}="admin"; 
			$self-&gt;printhtml($TITLE,$HTML);
			$self-&gt;exit;
			
}

####################################################################
####         Abruf von Teilnehmerdaten von Administrator
####         Argumente  : Emergency und Logtext
####         Returnwert : -
####################################################################
sub htmlanzeig{

		my $self = shift;
		$self-&gt;loadtmp;
		$self-&gt;{id} = $baseq::VARS{pin}+0;
		$self-&gt;{buttonwidth}=21;
		$self-&gt;log(4,"Entering: pdat:getbearb-abrufen");
		my $TITLE=$self-&gt;trans("TI22");
		$self-&gt;log(4,$self-&gt;{warntext});
		$HTML= $self-&gt;afont("&lt;P ALIGN='CENTER'&gt;".$self-&gt;trans("BU42")."&lt;/P&gt;");
		$HTML.="&lt;TABLE width=80%&gt;\n".
		$self-&gt;TR([ $self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI100").": "),$self-&gt;sfont($self-&gt;TF("npin","",10)),$self-&gt;SM("bbut","BU43")]).
		#$self-&gt;TR([ "&lt;TD colspan='3'&gt;&lt;TD&gt;"]).
		$self-&gt;TR([ $self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI62").": "),$self-&gt;sfont($self-&gt;TF("nmail","",50)),$self-&gt;SM("bbut","BU43")]).
		#$self-&gt;TR([ "&lt;TD colspan='3'&gt;&lt;TD&gt;"]).
		$self-&gt;TR([ $self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI110").": "),$self-&gt;sfont($self-&gt;TF("nnname","",50)),$self-&gt;SM("bbut","BU34")]).
		"&lt;/TABLE&gt;\n&lt;BR&gt;&lt;HR&gt;\n".
		$self-&gt;SMrow( ["bbut","bbut"] , ["BU47","BU11"] );
		$HTML.="&lt;HR&gt;";
		return $HTML;

}

####################################################################
####         Gibt die Maske zum Löschen von Teilnehmer aus
####         Argumente  : Emergency und Logtext
####         Returnwert : -
####################################################################
sub htmlloesch{

		my $self = shift;
		$self-&gt;loadtmp;
		$self-&gt;{buttonwidth}=21;
		$self-&gt;log(4,"Entering: pdat:getbearb-löschen");
		my $TITLE=$self-&gt;trans("BU41");
		$self-&gt;log(4,$self-&gt;{warntext});
		$HTML= $self-&gt;afont("&lt;P ALIGN='CENTER'&gt;".$self-&gt;trans("BU41")."&lt;/P&gt;");
		$HTML.="\n&lt;TABLE width=50%&gt;\n".
		$self-&gt;TR([ $self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI100").": "),$self-&gt;sfont($self-&gt;TF("pin","",10))]).
		"&lt;/TABLE&gt;\n&lt;BR&gt;&lt;HR&gt;\n".
		$self-&gt;SMrow( ["bbut","bbut","bbut"] , ["BU40","BU47","BU11"] );
		$self-&gt;printhtml($TITLE,$HTML);
		$self-&gt;exit;
}
####################################################################
####         Abruf von Teilnehmerdaten von Administrator
####         Argumente  : Emergency und Logtext
####         Returnwert : -
####################################################################
sub htmldoppelte{

		my $self = shift;
		$self-&gt;loadtmp;
		$self-&gt;{id} = $baseq::VARS{pin}+0;
		$self-&gt;{buttonwidth}=21;
		$self-&gt;log(4,"Entering: pdat:getbearb-doppelte");
		my $TITLE=$self-&gt;trans("TI22");
		$self-&gt;log(4,$self-&gt;{warntext});
		$HTML= $self-&gt;afont("&lt;P ALIGN='CENTER'&gt;".$self-&gt;trans("BU48")."&lt;/P&gt;");
		$HTML.="&lt;TABLE width=80%&gt;\n".
		$self-&gt;TR([ $self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI101").": "),$self-&gt;sfont($self-&gt;TF("npin1","",10))]).
		$self-&gt;TR([ $self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI102").": "),$self-&gt;sfont($self-&gt;TF("npin2","",10))]).
		"&lt;/TABLE&gt;\n&lt;BR&gt;&lt;HR&gt;\n".
		$self-&gt;SMrow( ["bbut","bbut","bbut"] , ["BU49","BU47","BU11"] );
		$HTML.="&lt;HR&gt;";
		#################

		$HTML.= $self-&gt;afont("&lt;P ALIGN='CENTER'&gt;Teilnehmer mit einer mehrfachvorkommenden eMail-Adresse und ohne eMail-Adresse&lt;/P&gt;");
		$HTML.="&lt;TABLE width=80% BORDER=1 CELLSPACING=1&gt;\n".
		$self-&gt;TR([  $self-&gt;sfont("&lt;B&gt;Nummer&lt;/B&gt;"),$self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI62")."&lt;/B&gt;"),$self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI64")."&lt;/B&gt;"),
		$self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI55")."&lt;/B&gt;"),$self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI56")."&lt;/B&gt;"),
		$self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI57")."&lt;/B&gt;"),$self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI53a")."&lt;/B&gt;") ]);

		@liste=();
		my $sql="SELECT email FROM benutzer As Tmp GROUP BY email HAVING Count(*)&gt;1 ORDER BY email";
		my $sth= $self-&gt;sqlprepare($sql);
		my $n=0;
		my $nummer=$n2=1;
		while (@liste=$sth-&gt;fetchrow_array) {
				
				$hasn[$n]-&gt;{lmail}=$liste[0];
				$self-&gt;log(4,"Entering: pdat:doppelte :".$liste);

				my $sql1="SELECT email, tel, anrede, vname, nname, pin FROM benutzer WHERE email='$hasn[$n]-&gt;{lmail}'";			
				my $nsth=$self-&gt;sqlprepare($sql1);
				while(@nliste=$nsth-&gt;fetchrow_array){

							$email[$n2]=$nliste[0]; $tel[$n2]=$nliste[1]; $anrede[$n2]=$nliste[2]; $vname[$n2]=$nliste[3]; $nname[$n2]=$nliste[4];$pin[$n2]=$nliste[5];
							$nummer=$n2;
							if ($email[$n2] eq "") {$email[$n2]="&amp;nbsp;"}

							$HTML.=$self-&gt;TR([ $self-&gt;sfont("&lt;B&gt;".$nummer."&lt;/B&gt;"), $self-&gt;sfont("&lt;B&gt;".$email[$n2]."&lt;/B&gt;"),$self-&gt;sfont("&lt;B&gt;".$tel[$n2]."&lt;/B&gt;"),
											$self-&gt;sfont("&lt;B&gt;".$baseq::HF[$anrede[$n2]]."&lt;/B&gt;"),$self-&gt;sfont("&lt;B&gt;".$vname[$n2]."&lt;/B&gt;"),
											$self-&gt;sfont("&lt;B&gt;".$nname[$n2]."&lt;/B&gt;"),$self-&gt;sfont("&lt;B&gt;".$pin[$n2]."&lt;/B&gt;") ]);
							
							$n2++;
							}
							$n++;
		}

		$HTML.="&lt;/TABLE&gt;\n&lt;BR&gt;&lt;HR&gt;\n";

		
		return $HTML;

}

####################################################################
####         Telnehmer -PIN-Nummer für den Kontoauszug festlegen
####         Argumente  : PIN-Nummer
####         Returnwert : -
####################################################################
sub htmlvorauszug{

		my $self = shift;
		$self-&gt;loadtmp;
		$self-&gt;{buttonwidth}=21;
		$self-&gt;log(4,"Entering: pdat: -htmlvorauszug");
		my $TITLE=$self-&gt;trans("BU51");
		$self-&gt;log(4,$self-&gt;{warntext});
		$HTML= $self-&gt;afont("&lt;P ALIGN='CENTER'&gt;".$self-&gt;trans("BU51")."&lt;/P&gt;");
		$HTML.="\n&lt;TABLE width=50%&gt;\n".
		$self-&gt;TR([ $self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI100").": "),$self-&gt;sfont($self-&gt;TF("pin","",10))]).
		"&lt;/TABLE&gt;\n&lt;BR&gt;&lt;HR&gt;\n".
		$self-&gt;SMrow( ["bbut","bbut","bbut"] , ["BU52","BU47","BU11"] );
		$self-&gt;printhtml($TITLE,$HTML);
		$self-&gt;exit;
}

####################################################################
####         Telnehmer -PIN-Nummer für den Kontoauszug festlegen
####         Argumente  : PIN-Nummer
####         Returnwert : -
####################################################################
sub htmlauszug{

		my $self = shift;
		$self-&gt;loadtmp;
		$self-&gt;{buttonwidth}=21;
		$self-&gt;log(4,"Entering: pdat: -htmlauszug");
		my $TITLE=$self-&gt;trans("HI101").$baseq::VARS{pin};
		$self-&gt;log(4,$self-&gt;{warntext});
		$HTML= $self-&gt;sfont("&lt;P ALIGN='LEFT'&gt;".$self-&gt;trans("TI24")."&lt;/P&gt;");

		#Persönliche angaben aus pdat-modul

		$benutzer=pdat-&gt;init($self,$baseq::VARS{pin});
		$benutzer-&gt;load;
		$HTML.="&lt;TABLE WIDTH=80%&gt;&lt;TR&gt;&lt;TD WIDTH=20%&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;\TD&gt;&lt;/TR&gt;".
		$self-&gt;TR([ $self-&gt;sfont("&lt;FONT COLOR='#CC3300'&gt;".$self-&gt;trans("HI53a")."&lt;/FONT&gt;\n"),$self-&gt;sfont("&lt;FONT COLOR='#CC3300'&gt;".$benutzer-&gt;{id}."&lt;/FONT&gt;\n") ]).
		$self-&gt;TR([ $self-&gt;sfont($benutzer-&gt;{vname}) ])."\n".
		$self-&gt;TR([ $self-&gt;sfont($benutzer-&gt;{nname}) ])."\n".
		$self-&gt;TR([ $self-&gt;sfont($benutzer-&gt;{strasse}) ])."\n".
		$self-&gt;TR([ $self-&gt;sfont($benutzer-&gt;{plz}." ".$self-&gt;sfont($benutzer-&gt;{nl})),$self-&gt;sfont($benutzer-&gt;{stadt}) ])."\n".
		$self-&gt;TR([ "&lt;HR&gt;","&lt;HR&gt;" ])."\n".
		$self-&gt;TR([$self-&gt;sfont($baseq::LO[$benutzer-&gt;{lohnart}])  ])."\n";
		if ($benutzer-&gt;{lohnart} == 1) {
		$HTML.=$self-&gt;TR([ $self-&gt;sfont($self-&gt;trans("HI84")),$self-&gt;sfont($benutzer-&gt;{bank}) ])."\n".
					$self-&gt;TR([ $self-&gt;sfont($self-&gt;trans("HI85")),$self-&gt;sfont($benutzer-&gt;{blz}) ])."\n".
					$self-&gt;TR([ $self-&gt;sfont($self-&gt;trans("HI86")),$self-&gt;sfont($benutzer-&gt;{kontonr}) ])."\n";
		}
		$HTML.=$self-&gt;TR([ "&lt;HR&gt;","&lt;HR&gt;" ])."\n"."&lt;/TABLE&gt;\n&lt;BR&gt;\n";
			
			
		#Kontostand aus kasse-modul
			
		$kasse=kasse-&gt;init($benutzer-&gt;{id});			
		$HTML.=$kasse-&gt;kontohtml($benutzer-&gt;{id})."&lt;HR&gt;\n";				
			#$self-&gt;SMrow( ["bbut","bbut"] , ["BU47","BU11"] );
		$self-&gt;printhtml($TITLE,$HTML);
		$self-&gt;exit;
}

####################################################################
####         Zufallsgenerator
####         Argumente  : PIN-Nummer
####         Returnwert : -
####################################################################
sub htmlzufallsgen{

		my $self = shift;
		$self-&gt;loadtmp;
		$self-&gt;{buttonwidth}=21;
		$self-&gt;log(4,"Entering: pdat: -htmlvorauszug");
		my $TITLE=$self-&gt;trans("BU53");
		$self-&gt;log(4,$self-&gt;{warntext});
		$HTML= $self-&gt;afont("&lt;P ALIGN='CENTER'&gt;".$self-&gt;trans("BU53")."&lt;/P&gt;");
		$HTML.="\n&lt;TABLE width=50%&gt;\n".
		$self-&gt;TR([ $self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI104").": "),$self-&gt;sfont($self-&gt;TF("zahl1","",10))]).
		$self-&gt;TR([ $self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI105").": "),$self-&gt;sfont($self-&gt;TF("zahl2","",10))]).
		"&lt;/TABLE&gt;\n&lt;BR&gt;&lt;HR&gt;\n".
		$self-&gt;SMrow( ["bbut","bbut","bbut"] , ["BU54","BU47","BU11"] );
		$self-&gt;printhtml($TITLE,$HTML);
		$self-&gt;exit;
}

####################################################################
####         Werbeprämien
####         Argumente  : PIN-Nummer
####         Returnwert : -
####################################################################
sub htmlwerbepraem{

		my $self = shift;
		$self-&gt;loadtmp;
		$self-&gt;{buttonwidth}=21;
		$self-&gt;log(4,"Entering: pdat: -htmlwerbepraemien");
		my $TITLE=$self-&gt;trans("BU61");
		$self-&gt;log(4,$self-&gt;{warntext});
		$HTML= $self-&gt;afont("&lt;P ALIGN='CENTER'&gt;".$self-&gt;trans("BU61")."&lt;/P&gt;");
		$HTML.=$self-&gt;SMrow( ["bbut","bbut"] , ["BU47","BU11"] );
		$HTML.="&lt;HR&gt;&lt;BR&gt;\n&lt;TABLE BORDER='1'&gt;&lt;CENTER&gt;";
		$HTML.=$self-&gt;TR([ $self-&gt;sfont("PIN "),$self-&gt;sfont("Anzahl angeworbener Teilnehmer"),$self-&gt;sfont("SOLL in EURO"),$self-&gt;sfont("HABEN in EURO")]);
		
		#Die Teilnehmer, die geworben haben
		my $sql="select distinct werbpin from benutzer where werbpin&gt;0 order by werbpin";
		my $sth= $self-&gt;sqlprepare($sql);
		my $total=0;
		while (@WPINS=$sth-&gt;fetchrow_array) {
			$total++;
			$kasse=kasse-&gt;init($self);
			my $werbpin=$WPINS[0];
			my ($count,$sollbetrag) = $kasse-&gt;werbebetrag($werbpin);

		#Haben in der Kasse
		 $sql1="select betrag from kasse where pin=$werbpin and umfid=1";
		my $habenbetrag=$self-&gt;sqlselect($sql1);
		
		$self-&gt;log(4,"habenbetrag = ".$habenbetrag." sollbetrag = ".($sollbetrag*100));

		if ($habenbetrag != ($sollbetrag*100)) {
				$sql1= "update kasse set betrag=($sollbetrag*100) where umfid=1 and pin=$werbpin";
				$self-&gt;sqldo($sql1);
				$habenbetrag =$sollbetrag*100;
		}

		
		$HTML.=$self-&gt;TR([ $self-&gt;sfont($werbpin),$self-&gt;sfont("&lt;CENTER&gt;".$count."&lt;/CENTER&gt;"),$self-&gt;sfont(sprintf("%0.2f",($sollbetrag))),$self-&gt;sfont(sprintf("%0.2f",($habenbetrag/100)))]);
		}
		
		$HTML.="&lt;/CENTER&gt;&lt;/TABLE&gt;&lt;BR&gt;".$self-&gt;afont("Insgesamt")."&lt;BR&gt;&lt;BR&gt;\n&lt;TABLE BORDER='1'&gt;&lt;CENTER&gt;";
		$HTML.=$self-&gt;TR([ $self-&gt;sfont("Anzahl PIN "),$self-&gt;sfont("Anzahl angeworbener Teilnehmer"),$self-&gt;sfont("SOLL in EURO"),$self-&gt;sfont("HABEN in EURO")]);

		#Count PINs insgesamt
		my $sql2="select count(pin) from benutzer where werbpin&gt;0";
		my $countins=$self-&gt;sqlselect($sql2);
		
		#Haben in der Kasse insgesamt
		 $sql1="select sum(betrag) from kasse where umfid=1";
		my $habeninsgesamt=$self-&gt;sqlselect($sql1);

		#SOLL insgesamt
		my $sollinsgesamt=$countins*1.5;

		if ($habeninsgesamt != ($sollinsgesamt*100)) {
			$sql1="delete from kasse where pin=0";
			$self-&gt;sqldo($sql1);
			$habeninsgesamt = $sollinsgesamt*100;
		}

		$HTML.=$self-&gt;TR([$self-&gt;sfont("&lt;CENTER&gt;".$total."&lt;/CENTER&gt;"),$self-&gt;sfont("&lt;CENTER&gt;".$countins."&lt;/CENTER&gt;"),$self-&gt;sfont(sprintf("%0.2f",($sollinsgesamt))),$self-&gt;sfont(sprintf("%0.2f",($habeninsgesamt/100)))]);		
		$HTML.="&lt;/CENTER&gt;&lt;/TABLE&gt;&lt;HR&gt;";
		$self-&gt;printhtml($TITLE,$HTML);
		$self-&gt;exit;
}


####################################################################
####         Gibt die Standardmaske aus
####         Argumente  : Emergency und Logtext
####         Returnwert : -
####################################################################
sub getbearb {
	my $self = shift;
	my ($knr, $pin, $trans);
	#my ($knr, $pin, $pass, $trans);
	$self-&gt;log(4,"Entering: admin:getbearb");

	#Zurück zur Administrationsmaske

	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU47") || $baseq::VARS{ibut} eq $self-&gt;trans("BU47")) {
		$self-&gt;{knr} = $baseq::VARS{knr};
		$self-&gt;load;
		$self-&gt;htmladmin;
	}

	#Button Hilfe
	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU24") ){
	$self-&gt;{knr} = $baseq::VARS{knr};
	$self-&gt;loadtmp;
	$self-&gt;hilfe;}


	#Button Online-Panel Statistik
	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU50") ){
	$self-&gt;{knr} = $baseq::VARS{knr};
		my $HTML="";
		$stats=pdat-&gt;init($self);
		$HTML.=$stats-&gt;statistik."&lt;HR&gt;\n".
		$self-&gt;SMrow( ["bbut","bbut"] , ["BU47","BU11"] );
		$self-&gt;loadtmp;
		$self-&gt;printhtml($self-&gt;trans("TI23"),$HTML);
		$self-&gt;exit;
	}


	#Teilnehmerdaten - Maske Doppelte

	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU48")) {
		my $HTML="";
		$HTML.=$self-&gt;htmldoppelte;
		$self-&gt;printhtml($self-&gt;trans("TI22"),$HTML);
		$self-&gt;exit;
	}

		#Werbeprämien kontrollieren

	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU61")) {
		my $HTML="";
		$HTML.=$self-&gt;htmlwerbepraem;
		$self-&gt;printhtml($self-&gt;trans("BU61"),$HTML);
		$self-&gt;exit;
	}
	
	#Teilnehmerdaten - Doppeltvorhandene Teilnehmer bearbeiten

	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU49")) {
		
		if ($baseq::VARS{npin1} == 0 || $baseq::VARS{npin2} ==0) {
			$self-&gt;log(2,"Beide PINs müssen angegeben werden");
			$self-&gt;{warntext}="Beide PINs müssen angegeben werden";
		}
		else{
			my $sql = "select sum(betrag) from kasse where pin=$baseq::VARS{npin1}";
			($self-&gt;{sum}) = $self-&gt;sqlselect($sql);
			if (!defined $self-&gt;{sum}) {
			$self-&gt;{warntext}="Es gibt nichts zu Übertragen";
			$self-&gt;log(2,"Es gibt nichts zu Übertragen");
			} 

			my $sql = "select betrag,umfid from kasse where pin=$baseq::VARS{npin1} order by umfid";
			my $sth= $self-&gt;sqlprepare($sql);
			while ( @liste=$sth-&gt;fetchrow_array ) {
			$self-&gt;log(4,"Liste=".join ("--",@liste));
					#Auszahlungen übertragen
					if ($liste[1]==0) {
						$sql="update kasse set pin=$baseq::VARS{npin2}, changed=changed where pin=$baseq::VARS{npin1} and umfid=$liste[1]";
						$self-&gt;sqldo($sql);
						$self-&gt;{warntext}="Alle Daten der Teilnehmer PIN=$baseq::VARS{npin1} sind auf Teilnehmer PIN=$baseq::VARS{npin2} übertragen worden&lt;BR&gt;Teilnehmer PIN=$baseq::VARS{npin1} muß noch gelöscht werden.";
					}

					#Hat der Teilnehmer an dieselbe Umfrage teilgenommen?
					$sql="select betrag from kasse where pin=$baseq::VARS{npin2} and umfid=$liste[1]";
					my $nbetrag=$self-&gt;sqldo($sql);
					$self-&gt;log(2,"nbetrag - $nbetrag, umfid - $liste[1], pin -$baseq::VARS{npin2}");
					if (!defined $nbetrag || $nbetrag == "") {
						$sql="update ergebnis set pin=$baseq::VARS{npin2}, changed=changed where pin=$baseq::VARS{npin1} and umfid=$liste[1]";
						$self-&gt;sqldo($sql);
						$sql="update kasse set pin=$baseq::VARS{npin2}, changed=changed where pin=$baseq::VARS{npin1} and umfid=$liste[1]";
						$self-&gt;sqldo($sql);
						$self-&gt;{warntext}="Alle Daten der Teilnehmer PIN=$baseq::VARS{npin1} sind auf Teilnehmer PIN=$baseq::VARS{npin2} übertragen worden&lt;BR&gt;Teilnehmer PIN=$baseq::VARS{npin1} muß noch gelöscht werden.";
					}
					#Wenn der Betrag kleiner ist - &gt;kleineren löschen 
					if ($nbetrag &lt; $liste[0]) {
						$sql="delete from ergebnis where pin=$baseq::VARS{npin2} and umfid=$liste[0]";
						$self-&gt;sqldo($sql);
						$sql="delete from kasse where pin=$baseq::VARS{npin2} and umfid=$liste[0]";
						$self-&gt;sqldo($sql);
						$sql="update ergebnis set pin=$baseq::VARS{npin2}, changed=changed where pin=$baseq::VARS{npin1}";
						$self-&gt;sqldo($sql);
						$sql="update kasse set pin=$baseq::VARS{npin2}, changed=changed where pin=$baseq::VARS{npin1}";
						$self-&gt;sqldo($sql);
						$self-&gt;{warntext}="Alle Daten der Teilnehmer PIN=$baseq::VARS{npin1} sind auf Teilnehmer PIN=$baseq::VARS{npin2} übertragen worden&lt;BR&gt;Teilnehmer PIN=$baseq::VARS{npin1} muß noch gelöscht werden.";
					}
			}
		}

			my $HTML="";
			$HTML.=$self-&gt;htmldoppelte;
			$self-&gt;printhtml($self-&gt;trans("TI22"),$HTML);
			$self-&gt;exit;
		
	}

		
	#Teilnehmerdaten - Maske löschen

	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU41")) {
		$self-&gt;loadtmp;
		$self-&gt;htmlloesch;
	}
	
	#Teilnehmerdatenlöschen

	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU40")) {$self-&gt;log(4,$self-&gt;trans("BU40"));

		$self-&gt;{id} = $baseq::VARS{pin}+0;
		$self-&gt;loadtmp;
		$self-&gt;delete;
		$self-&gt;htmlloesch;
		$self-&gt;exit;
	}

	#Teilnehmerdaten für die Administration abrufen - leere Maske
	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU42")) {
		my $HTML="";
		$HTML.=$self-&gt;htmlanzeig;
		$self-&gt;printhtml($self-&gt;trans("TI22"),$HTML);
		$self-&gt;exit;
	}

		
	#Teilnehmerdaten für die Administration abrufen - Button Ausführen
	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU43")) {
		$TITEL=$self-&gt;trans("BU42");

		$baseq::VARS{pin}=$baseq::VARS{npin};
		$baseq::VARS{nnname}="";
		if ($baseq::VARS{npin} == 0 &amp;&amp; $baseq::VARS{nmail} ne "") {
			my $sql = "select pin from benutzer where email='$baseq::VARS{nmail}'";
			$baseq::VARS{npin}=$self-&gt;{pin}=$self-&gt;sqlselect($sql);

		}
		if ($baseq::VARS{npin} != 0) {
			my $sql = "select pin from benutzer where pin=$baseq::VARS{npin}";
			$self-&gt;{pin} = $self-&gt;sqlselect($sql);

		}
		if (! defined $self-&gt;{pin}){
			$self-&gt;log(2,"Kunde ist nicht vorhanden");
			$self-&gt;{warntext}="Teilnehmer PIN-$baseq::VARS{npin} ist nicht vorhanden";
			my $HTML=$self-&gt;htmlanzeig;
			$self-&gt;printhtml($TITEL,$HTML);
			$self-&gt;exit;
			}
		else{
			$baseq::VARS{pin}=$baseq::VARS{npin};
			$benutzer=pdat-&gt;init($self, $baseq::VARS{npin});
			$benutzer-&gt;load;
			my $HTML=$self-&gt;htmlanzeig.$benutzer-&gt;htmlbearb;
			$self-&gt;printhtml($TITEL,$HTML);
			$self-&gt;exit;

			}

	}
	#Teilnehmerliste nach Name drucken
	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU34")) {

			my $HTML=$self-&gt;htmlanzeig;

			my $sql="select pin,vname,nname,email from benutzer where nname='$baseq::VARS{nnname}'";
			my $sth= $self-&gt;sqlprepare($sql);

			$HTML.="&lt;TABLE WIDTH='80%' BORDER=1&gt;".$self-&gt;TR([$self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI53a")."&lt;\B&gt;"),$self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI56")."&lt;\B&gt;"),$self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI57")."&lt;\B&gt;"),$self-&gt;sfont("&lt;B&gt;".$self-&gt;trans("HI62")."&lt;\B&gt;")]);

			while ( @L=$sth-&gt;fetchrow_array ) {
			$self-&gt;log(4,"Liste=".join ("--",@L));
			$HTML.=$self-&gt;TR([$self-&gt;sfont($L[0]),$self-&gt;sfont($L[1]),$self-&gt;sfont($L[2]),$self-&gt;sfont($L[3])]);
			}
			$HTML.="&lt;/TABLE&gt;";
			$baseq::VARS{nnname}="";
			$self-&gt;printhtml($TITEL,$HTML);
			$self-&gt;exit;

	}
	


	#Kontoauszug vorbereiten

	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU51")) {
		my $HTML="";
		$HTML.=$self-&gt;htmlvorauszug;
		$self-&gt;printhtml($self-&gt;trans("BU51"),$HTML);
		$self-&gt;exit;
	}

	#Kontoauszug drucken

	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU52")) {

		if ($baseq::VARS{pin} == 0) {
				$self-&gt;{warntext}="PIN-Nummer muß angegeben werden";	
				my $HTML=$self-&gt;htmlvorauszug;
				$self-&gt;printhtml($TITEL,$HTML);
				$self-&gt;exit;
		}

		my $sql = "select pin from benutzer where pin=$baseq::VARS{pin}";
		my $npin = $self-&gt;sqlselect($sql);

		if (defined $npin) {	
				my $HTML="";
				$HTML.=$self-&gt;htmlauszug;
				$self-&gt;printhtml($self-&gt;trans("BU51"),$HTML);
				$self-&gt;exit;
		}
		else {
			$self-&gt;{warntext}="Teilnehmer  PIN-Nummer ".$baseq::VARS{pin}." existiert nicht!";
			my $HTML=$self-&gt;htmlvorauszug;
			$self-&gt;printhtml($TITEL,$HTML);
			$self-&gt;exit;
			}
	}

	
	#Beenden
	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU11")) {
		my $exiturl='http://www.prorata.de';
		$self-&gt;redirect($exiturl);
		}


	#Speichern
	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU1")) {

			$self-&gt;log(4,"Entering Speichern");
			$TITEL=$self-&gt;trans("BU42");
			$benutzer=pdat-&gt;init($self,$baseq::VARS{pin});
			$benutzer-&gt;getvars;
			$benutzer-&gt;store;
			$benutzer-&gt;load;
			my $HTML=$self-&gt;htmlanzeig.$benutzer-&gt;htmlbearb;
			$self-&gt;printhtml($TITEL,$HTML);
			$self-&gt;exit;

	}

	#Konto abrufen
	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU35")) {
			$self-&gt;log(4,"Kontostand wird abgerufen");
			$self-&gt;{id}=$baseq::VARS{npin};
			$kasse=kasse-&gt;init($self);			
			$kasse-&gt;{warntext}=$kasse-&gt;trans("WA22");
			my $HTML=$self-&gt;htmlanzeig.
			$self-&gt;afont("&lt;P ALIGN='CENTER'&gt;".$self-&gt;trans("TI16")." Benutzer - $baseq::VARS{pin}&lt;/P&gt;").
			$kasse-&gt;kontohtml($baseq::VARS{pin})."\n";
			$self-&gt;printhtml($self-&gt;trans("TI16")." Benutzer - $baseq::VARS{pin}",$HTML);
		    $self-&gt;exit;
	}

	#Kassenstand
	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU45")) {


			my $sql  = "delete from kasse where pin=0";
			$self-&gt;sqldo($sql);
			$self-&gt;loadtmp;
			my $kasse = kasse-&gt;init($self,$baseq::VARS{knr},$baseq::VARS{kpass});
			my $HTML=$kasse-&gt;ingehtml;
			$kasse-&gt;printhtml($kasse-&gt;trans("TI16") , $HTML);
			$self-&gt;exit;
		}

	#Kassenstand aktualisieren, Auszahlen

	if ($baseq::VARS{ibut} eq $self-&gt;trans("BU27")) {
			
			$self -&gt;loadtmp;
			my $kasse = kasse-&gt;init($self,$baseq::VARS{knr},$baseq::VARS{kpass},$baseq::VARS{ibetrag},$baseq::VARS{iauszahl},$baseq::VARS{ipin});
			$kasse-&gt;auszahlung($baseq::VARS{iauszahl},$baseq::VARS{ipin});
			$HTML.=$kasse-&gt;ingehtml;	
			$kasse-&gt;printhtml($kasse-&gt;trans("TI16") , $HTML);
			$self-&gt;exit;
	
	}

	#Button Zufallsgenerator-Maske aufrufen
	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU53") ){
			$self-&gt;{knr} = $baseq::VARS{knr};
			$self-&gt;loadtmp;
			$self-&gt;printhtml($self-&gt;htmlzufallsgen);
			$self-&gt;exit;
	}


	#Button Zufallsgenerator--Generieren
	if ($baseq::VARS{bbut} eq $self-&gt;trans("BU54") ){
			$self-&gt;{knr} = $baseq::VARS{knr};
			$self-&gt;loadtmp;
			my $Zahl1=$baseq::VARS{zahl1};
			my $Zahl2=$baseq::VARS{zahl2};
			
			#1) my $Zahl = (int(rand()*$Zahl2))+$Zahl1;
			my $Zahl = int($Zahl1 + ($Zahl2 - $Zahl1 + 1) *rand());
			#3)my $Zahl = int(rand($Zahl1,$Zahl2));

			$self-&gt;log(4,"Entering:   localisation  admin.pl - Zufallsgeherator zahl1=$Zahl1");
			$self-&gt;log(4,"Entering:   localisation  admin.pl - Zufallsgeherator zahl2=$Zahl2");
			$self-&gt;log(4,"Entering:   localisation  admin.pl - Zufallsgeherator zahl=$Zahl");
			$self-&gt;{warntext}="Ausgewählte Zahl ist - $Zahl";
			$self-&gt;htmlzufallsgen;
			$self-&gt;exit;
	}

		#Kein Button: Login

		else {
		$self-&gt;{id}=$baseq::VARS{apin};
		$self-&gt;loadtmp;
		$baseq::VARS{knr}=$baseq::VARS{apin};
		$baseq::VARS{kpass}= crypt($baseq::VARS{apass},"xy");
		$self-&gt;log(4,"Entering: localisation admin.pl, knr = $baseq::VARS{knr}");		
		my $erg=$self-&gt;checkpass($baseq::VARS{knr}, $baseq::VARS{kpass} );
		$self-&gt;log(4,"Entering:   localisation  admin.pl erg= $erg");
		if ($erg==4) {
			$self-&gt;{knr}=$baseq::VARS{apin};
			$self-&gt;load;
			$self-&gt;printhtml($self-&gt;trans("TI22") , $self-&gt;htmladmin($baseq::VARS{pin}));
			$self-&gt;exit;}
		else {$self-&gt;login;$self-&gt;exit;}
		
		}

}
</pre></body></html>