package kunde;

use template;
use umfrage;
#use CGI;
#use strict;

@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->{vars}     = shift;	
	$self->{pass}     = 0;
	$self->{template} = 0;
	$self->{sprache}  = 0;
	$self->{name}     = "";
	$self->{firma}    = "";	
	return $self;
}

####################################################################
####         Datenbanklader der Kundenklasse
####         Argumente  : knr
####         Returnwert : -
####################################################################
sub load {
	my $self = shift;	
	# Kunde aus der Datenbank laden
	my $sql = "select pass, name, firma, template, sprache from kunden where knr=$self->{knr}";
	($self->{pass}, $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;
}

####################################################################
####         Ermittelt eine neue umfid und speichert sich
####         Argumente  : -
####         Returnwert : -
####################################################################
sub new {
	my $self = shift;
	my $sql1 = "select max(knr) from kunden";
	($self->{id}) = ($self->sqlselect($sql1))+1;
        my $sql2 = "insert into kunden values ( $self->{knr} ,'$self->{pass}', '$self->{name}', '$self->{firma}', $self->{template}, $self->{sprache})";
	$self->sqldo($sql2);
}

####################################################################
####         Speichert sich mit Update
####         Argumente  : -
####         Returnwert : -
####################################################################
sub store {
	my $self = shift;
	my $sql = "update kunden set pass='$self->{pass}', name='$self->{name}', ".
		  "firma='$self->{firma}', ".
		  "template=$self->{template}, sprache=$self->{sprache} where knr=$self->{knr}";
	$self->sqldo($sql);
}

####################################################################
####         Löscht sich und alle seine Fragen aus der DB
####         Argumente  : evtl Fragentext und Fragentyp
####         Returnwert : -
####################################################################
sub delete {
	my $self = shift;
	my $sql1  = "delete from kunden where knr=$self->{knr}";
	my $sql2  = "delete from palette where knr=$self->{knr}";
	my $sql3  = "delete from template where knr=$self->{knr}";
	$self->sqldo($sql1);
	$self->sqldo($sql2);
	$self->sqldo($sql3);
	$self->{knr} = undef;
}

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


####################################################################
####         Schreibt ins Logfile
####         Argumente  : Emergency und Logtext
####         Returnwert : -
####################################################################
sub login {
	my $self = shift;
        my $TITLE=$self->trans("TI2");
	$self->{warntext}=shift;
	my $query=$self->{query};
	my $HTML = "<TABLE>\n".
	        $self->TR([$self->sfont($self->trans("HI21")),"<INPUT type='textfield' name='kknr'>" ]) .
		$self->TR([$self->sfont($self->trans("HI18")), "<INPUT type='password' name='kpass'>" ]) .
		"</TABLE>\n<BR><BR>\n".
    	$self->sfont( "\n".
    	$query->submit('kbut',$self->trans("BU12")) ."&nbsp;&nbsp;\n".
    	$query->submit('kbut',$self->trans("BU11"))."\n" );
	
	$self->printhtml($self->trans("TI12"), $HTML);
        $self->exit;
}


####################################################################
####         Gibt die Standardmaske aus
####         Argumente  : Emergency und Logtext
####         Returnwert : -
####################################################################
sub htmlbearb {
	my $self = shift;
        my $TITLE=$self->trans("TI1");
	my $query=$self->{query};
        my %val=$self->{vars};
	my $htemp=$self->templatehash(1);
        my @ntemp= keys %$htemp;
	my $humf=$self->umfragenhash;
        my @numf= keys %$humf;
	my $hspr=$self->sprachenhash;
        my @nspr= keys %$hspr;

	$HTML=	$self->sfont($self->trans("HI22").": ".$self->{name}." bei ".$self->{firma})."<HR><BR>\n<TABLE>\n".
		$self->TR([ $self->sfont($self->trans("HI23")),$self->sfont($self->trans("HI24")),$self->sfont($self->trans("HI1")) ]).
                $self->TR([
			$query->popup_menu('kumfrage',\@numf,$val{kumfrage},$humf),
			$query->popup_menu('ktemplate',\@ntemp,$self->{template},$htemp),
	       		$query->popup_menu('ksprache',\@nspr,$self->{sprache},$hspr),   ]).
                $self->TR([
	                $query->submit('kbut',$self->trans("BU14")),
			$query->submit('tbut',$self->trans("BU17")),
		        $query->submit('kbut',$self->trans("BU20"))  ]).
                $self->TR([
			$query->submit('kbut',$self->trans("BU15")),
			$query->submit('kbut',$self->trans("BU18")),
			$query->submit('kbut',$self->trans("BU11"))  ]).
                $self->TR([
			$query->submit('kbut',$self->trans("BU16")),
		     	$query->submit('kbut',$self->trans("BU19")),
		     	$query->submit('tbut',$self->trans("BU21")), ]).

		"</TABLE>";

       $self->printhtml($TITLE,$HTML);
}


####################################################################
####         Gibt die Standardmaske aus
####         Argumente  : Emergency und Logtext
####         Returnwert : -
####################################################################
sub getbearb {
	my $self = shift;
        my $vars=$self->{vars};
	my $umf;
	my %val= %$vars;
	if ($val{kbut} eq $self->trans("BU12")) {
		$self->{knr}=$val{kknr};
		$$vars{knr}=$val{kknr};
		$$vars{pass}=crypt($val{kpass},"xy");
	}
	my %val = %$vars;
	$self->log(4,"kbut=$val{kbut} but=$val{but} umfid=$val{umfid} template=$val{ktemplate} knr=$self->{knr}");
	if ($self->checkkunde($val{knr},$val{pass}) == 1) {$self->login;};
        $self->load;
	if ($val{kbut} eq "") {
		if ($val{but} ne ""){$umf=umfrage->init($self, $val{umfid}); $umf->load; $umf->getbearb;$umf->exit;}
        	if ($val{tbut} ne ""){$tm=template->init($self, $val{ktemplate}); $tm->loadtmp; $tm->getbearb;$tm->exit;}
	}
        elsif ($val{kbut} eq $self->trans("BU14") ){$umf=umfrage->init($self, $val{kumfrage});$umf->load; $umf->kstatistik;$umf->exit;}
        elsif ($val{kbut} eq $self->trans("BU15") ){$umf=umfrage->init($self, $val{kumfrage});$umf->load; $umf->getbearb;$umf->exit;}
	elsif ($val{kbut} eq $self->trans("BU16") ){$umf=umfrage->init($self);$umf->loadtmp; $umf->new; $umf->getbearb;$umf->exit;}
	elsif ($val{kbut} eq $self->trans("BU18") ){$tm=template->init($self); $tm->new; $tm->getbearb; $tm->exit;}
	elsif ($val{kbut} eq $self->trans("BU19") ){$self->{template}=$val{ktemplate}; $self->store; $self->load; $self->htmlbearb}
	elsif ($val{kbut} eq $self->trans("BU20") ){$self->{sprache}=$val{ksprache}; $self->store; $self->load; $self->htmlbearb}
	elsif ($val{kbut} eq $self->trans("BU11") ){print $self->{query}->redirect("http://www.prorata.de"); $self->exit;}

	else {$self->htmlbearb;}
}
