

package kasse;

use template;

@ISA = qw ( template );


####################################################################
####         Konstruktor der Kassenklasse
####         Argumente  : -
####         Returnwert : -
####################################################################
sub init {
	my $that = shift;
	my $class = ref($that) || $that;
	my $self = template->init(@_);
	bless $self, $class;	
	$self->{template} = $self->{parent}->{template}+0;
	$self->{sprache}  = $self->{parent}->{sprache}+0;
	$self->loadtmp;
	return $self;
}


####################################################################
####         Schreibt ins Logfile
####         Argumente  : Emergency und Logtext
####         Returnwert : -
####################################################################
sub log {
	my $self = shift;
        my $emer = shift;
	my $TEXT = shift;
	$self->printlog($emer, "[Kasse] $TEXT");
}

####################################################################
####         Konstruktor der Kassenklasse
####         Argumente  : pin
####         Returnwert : Gesamtverdienst
####################################################################
sub kontostand {
	my $self = shift;
	my $pin=shift;
	if ($pin == 0) {$pin=$baseq::VARS{pin};}
	if ($pin==0) {$self->log(1,"Achtung keine Pin gefunden");}
	my $sql = "select sum(betrag) from kasse where pin=$pin";
	return $self->sqlselect($sql);
}

####################################################################
####        Kosten einer Umfrage
####         Argumente  : umfid
####         Returnwert : sum(betrag)
####################################################################
sub umfragekosten {
	my $self = shift;
	my $umfid =shift;
	my $sql="select sum(betrag) from kasse where umfid=$umfid";
	return $self->sqlselect($sql);
}

####################################################################
####         Kosten aller Umfragen
####         Argumente  : -
####         Returnwert : sum(betrag)
####################################################################
sub sumbetrag {
	my $self = shift;
	my $sql="select sum(betrag) from kasse";
	return $self->sqlselect($sql);
}

####################################################################
####         Kosten aller Umfragen + Kontostande mit Betrag "x"
####         Argumente  : -
####         Returnwert : sum(betrag); Tabelle
####################################################################
sub ingehtml {
	my $self = shift;
	my $ibetrag=$baseq::VARS{ibetrag};
	my ($day,$mon,$year) = (localtime(time))[3,4,5];
    my $datum=$day.".".($mon+1).".".($year+1900);
	if ($ibetrag==0)	{$ibetrag=25;}
	my $summe=$self->sumbetrag;
	my $HTML="Kassenstand am $datum ist: ".($summe / 100)." Euro&nbsp;/ ".($summe *0.0195583)." DM <BR><BR>\n".
		"Panelteilnehmer, deren Kontostand ".$self->TF("ibetrag",$ibetrag,5)." Euro &uuml;bersteigt.<BR><BR>\n".
		"<TABLE border=1>\n".$self->betragx($ibetrag)."</TABLE>\n<BR><BR>\n".
       "Auszahlung von Euro: ".$self->TF("iauszahl","",5)." an PIN: ".$self->TF("ipin","",5)."&nbsp;&nbsp;".$self->SM("ibut","BU27")."<BR><BR>\n";
	$self->{warntext}="";
	 $self->printhtml($self->trans("TI16") , $HTML);
     return;
}
####################################################################
####         Auszahlung
####         Argumente  : Betrag der ausgezahlt wird, und Pin des Beguenstigten
####         Returnwert : -
####################################################################
sub auszahlung {
	my $self  = shift;
	my $iauszahl = shift()*-100;
	my $ipin = shift;
	if ($ipin ==0 || $iauszahl==0) {return;}
	my $sql="insert into kasse values($ipin,0,$iauszahl,NULL)";
	$self->sqldo($sql);
	return;
}	

####################################################################
####         Betrag > X Euro
####         Argumente  : Betrag in Euro
####         Returnwert :  HTML liste der Benutzer
####################################################################
sub betragx {
	my $self = shift;
	my $betrag=shift()*100; 
	my $HTML=$self->TR( [ "PIN","Anrede","Vorname","Nachname","Straße","PLZ","Stadt","Land","Zahlungsart","Bank","BLZ","Kontonummer","Betrag" ] );
	my $sql="select  kasse.pin, anrede, vname, nname,strasse,plz, stadt,land, lohnart,bank,blz,kontonr, sum(betrag)/100 ".
				    " from benutzer left join kasse on benutzer.pin=kasse.pin group by kasse.pin having sum(betrag)>=$betrag";
	my $sth=$self->sqlprepare($sql);

    while (@X=$sth->fetchrow_array) {	
		$X[1]=$baseq::HF[$X[1]];	
		$X[7]=$baseq::LK[$X[7]];
		$HTML.=$self->TR(\@X);   }
		return $HTML;
}

####################################################################
####         Wenn jemand bei einer Umfrage Geld auf sein Konto bekommt
####         Argumente  : pin, umfid , verdienter Betrag
####         Returnwert : sum(betrag)
####################################################################
sub haben {
	my $self  = shift;
	my $pin = shift;
	my $umfid = shift;
	my $geld = shift;
	my $sql2;
	my $sql1="select betrag from kasse where pin=$pin and umfid=$umfid";
	my $betrag=$self->sqlselect($sql1);
		if (!defined $betrag) {$sql2="insert into kasse values($pin, $umfid, $geld, NULL)";
			}else{
			 $sql2="update kasse set betrag=$geld where pin=$pin and umfid=$umfid";
		 }
	$self->sqldo($sql2);
	return
}
####################################################################
####         Kontostand anzeigen und Ausgabe
####         Argumente  : pin
####         Returnwert : -
####################################################################
sub kontohtml {	
	my $self= shift;
	my $pin = shift;
	
	my $sum=0;
	my $HTML;
	
	my $sql1="select vname,nname from benutzer where pin=$pin";
	my @person=$self->sqlselect($sql1);
	$self->{warntext}=$person[0]."  ".$person[1];
	my $HTML="<BR><BR>\n<TABLE BORDER='2'>\n".
	                    $self ->TR([ $self->sfont("Umfrage"),$self->sfont( "Datum"), $self->sfont("Betrag in EURO")],"align=\"center\"");
 
	my $sql2="SELECT umfragen.umfrage, kasse.changed, kasse.betrag FROM umfragen LEFT JOIN kasse ON umfragen.umfid = kasse.umfid WHERE pin=$pin order by kasse.changed";
	my $sth= $self->sqlprepare($sql2);
	while(@liste=$sth->fetchrow_array){

		$sum+=$liste[2];
		$liste[0]=$self->sfont($liste[0]);
		$liste[1]=$self->sfont($self->timestamp($liste[1]) );
		$liste[2]=$self->sfont(sprintf("%0.2f",$liste[2]/100) );
		$HTML.=$self->TR(\@liste,"bgcolor=\"#ffffff\"",["","","align=right"]);
		

	}
	$HTML.="</TABLE><BR>".$self->sfont("Gesamtbetrag: ".sprintf("%0.2f",$sum/100)." EURO/ ".sprintf("%0.2f",$sum/51.129)." DM")."<BR><BR>\n";
	$HTML.="<A HREF='javascript:history.back();'>Zurück</A>";
	#$HTML.=$self->SM('but',"BU13")."\n";
    $self->printhtml($self->trans("TI16") , $HTML);

 }
##################################################################





