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->init(@_);
	bless $self, $class;	
	$self->{knr}      = shift;
	$self->{query}    = shift;
	$self->{kpass}     = "";
	$self->{pass}     = "";
	$self->{template} = 0;
	$self->{sprache}  = 0;
	$self->{name}     = "";
	$self->{firma}    = "";	
	$self->{nnname} ="";
	return $self;
}

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

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

		my $summe=$self->{betrag};

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

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

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

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

}

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

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

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

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

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

				my $sql1="SELECT email, tel, anrede, vname, nname, pin FROM benutzer WHERE email='$hasn[$n]->{lmail}'";			
				my $nsth=$self->sqlprepare($sql1);
				while(@nliste=$nsth->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]="&nbsp;"}

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

		$HTML.="</TABLE>\n<BR><HR>\n";

		
		return $HTML;

}

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

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

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

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

		#Persönliche angaben aus pdat-modul

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

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

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

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

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

		#Haben in der Kasse
		 $sql1="select betrag from kasse where pin=$werbpin and umfid=1";
		my $habenbetrag=$self->sqlselect($sql1);
		
		$self->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->sqldo($sql1);
				$habenbetrag =$sollbetrag*100;
		}

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

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

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

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

		$HTML.=$self->TR([$self->sfont("<CENTER>".$total."</CENTER>"),$self->sfont("<CENTER>".$countins."</CENTER>"),$self->sfont(sprintf("%0.2f",($sollinsgesamt))),$self->sfont(sprintf("%0.2f",($habeninsgesamt/100)))]);		
		$HTML.="</CENTER></TABLE><HR>";
		$self->printhtml($TITLE,$HTML);
		$self->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->log(4,"Entering: admin:getbearb");

	#Zurück zur Administrationsmaske

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

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


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


	#Teilnehmerdaten - Maske Doppelte

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

		#Werbeprämien kontrollieren

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

	if ($baseq::VARS{bbut} eq $self->trans("BU49")) {
		
		if ($baseq::VARS{npin1} == 0 || $baseq::VARS{npin2} ==0) {
			$self->log(2,"Beide PINs müssen angegeben werden");
			$self->{warntext}="Beide PINs müssen angegeben werden";
		}
		else{
			my $sql = "select sum(betrag) from kasse where pin=$baseq::VARS{npin1}";
			($self->{sum}) = $self->sqlselect($sql);
			if (!defined $self->{sum}) {
			$self->{warntext}="Es gibt nichts zu Übertragen";
			$self->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->sqlprepare($sql);
			while ( @liste=$sth->fetchrow_array ) {
			$self->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->sqldo($sql);
						$self->{warntext}="Alle Daten der Teilnehmer PIN=$baseq::VARS{npin1} sind auf Teilnehmer PIN=$baseq::VARS{npin2} übertragen worden<BR>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->sqldo($sql);
					$self->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->sqldo($sql);
						$sql="update kasse set pin=$baseq::VARS{npin2}, changed=changed where pin=$baseq::VARS{npin1} and umfid=$liste[1]";
						$self->sqldo($sql);
						$self->{warntext}="Alle Daten der Teilnehmer PIN=$baseq::VARS{npin1} sind auf Teilnehmer PIN=$baseq::VARS{npin2} übertragen worden<BR>Teilnehmer PIN=$baseq::VARS{npin1} muß noch gelöscht werden.";
					}
					#Wenn der Betrag kleiner ist - >kleineren löschen 
					if ($nbetrag < $liste[0]) {
						$sql="delete from ergebnis where pin=$baseq::VARS{npin2} and umfid=$liste[0]";
						$self->sqldo($sql);
						$sql="delete from kasse where pin=$baseq::VARS{npin2} and umfid=$liste[0]";
						$self->sqldo($sql);
						$sql="update ergebnis set pin=$baseq::VARS{npin2}, changed=changed where pin=$baseq::VARS{npin1}";
						$self->sqldo($sql);
						$sql="update kasse set pin=$baseq::VARS{npin2}, changed=changed where pin=$baseq::VARS{npin1}";
						$self->sqldo($sql);
						$self->{warntext}="Alle Daten der Teilnehmer PIN=$baseq::VARS{npin1} sind auf Teilnehmer PIN=$baseq::VARS{npin2} übertragen worden<BR>Teilnehmer PIN=$baseq::VARS{npin1} muß noch gelöscht werden.";
					}
			}
		}

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

		
	#Teilnehmerdaten - Maske löschen

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

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

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

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

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

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

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

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

			}

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

			my $HTML=$self->htmlanzeig;

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

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

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

	}
	


	#Kontoauszug vorbereiten

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

	#Kontoauszug drucken

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

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

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

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

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


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

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

	}

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

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


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

	#Kassenstand aktualisieren, Auszahlen

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

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


	#Button Zufallsgenerator--Generieren
	if ($baseq::VARS{bbut} eq $self->trans("BU54") ){
			$self->{knr} = $baseq::VARS{knr};
			$self->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->log(4,"Entering:   localisation  admin.pl - Zufallsgeherator zahl1=$Zahl1");
			$self->log(4,"Entering:   localisation  admin.pl - Zufallsgeherator zahl2=$Zahl2");
			$self->log(4,"Entering:   localisation  admin.pl - Zufallsgeherator zahl=$Zahl");
			$self->{warntext}="Ausgewählte Zahl ist - $Zahl";
			$self->htmlzufallsgen;
			$self->exit;
	}

		#Kein Button: Login

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

}
