package kasse;

use template;

@ISA = qw ( template );

my $TESTPIN=100;


####################################################################
####         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;
}

####################################################################
####         Prüft das Passwort
####         Argumente  : pin und encrypted passwd
####         Returnwert : 0=OK, 1=Pass falsch
####################################################################

sub checkpass {
	my $self = shift;
	my $pin = shift;
	my $pass = shift;
	$pin+=0;
	 my $dbpass = $self->sqlselect("select pass from benutzer where pin=$pin");
   	$dbpass=crypt($dbpass,"xy");
        if ($dbpass ne $pass) {$self->log(2,"Falsches Passwort von $pin");return 1;}
	return 0;
}

####################################################################
####         Konstruktor der Kassenklasse
####         Argumente  : pin, umfid, umfrage(umfragen), betrag, changed
####         Returnwert : -
####################################################################

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);
}

####################################################################
####         Alle Beträge pro pin
####         Argumente  : 
####         Returnwert : pin, sum(betrag)
####################################################################

sub kontostandalle {
	my $self = shift;
	my $sql="select pin,sum(betrag) from kasse group by pin order by pin";
	return $self->sqlselect($sql);
}

####################################################################
####        Beschreibung aus Umfragen -Tabelle laden
####         Argumente  : umfid
####         Returnwert : -umfrage
####################################################################

sub loadbeschreibung {
	my $self = shift;
	my $umfid=shift;
	my $sql = "select umfrage from umfragen where umfid=$umfid";
	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);
}

####################################################################
####         War schon mal diese Umfrage beantwortet?
####         Argumente  : umfid
####         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);
}

####################################################################
####         Kontostand anzeigen
####         Argumente  : -pin
####         Returnwert : -betrag
####################################################################
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")]);
 
	my $sql2="SELECT umfragen.umfrage, kasse.changed, kasse.betrag FROM umfragen LEFT JOIN kasse ON umfragen.umfid = kasse.umfid WHERE pin=$pin";
	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);
		

	}
	$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")."</A>\n";
    $self->printhtml($self->trans("TI16") , $HTML);

 }
##################################################################





