package kunde;

use template;
use umfrage;
#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->{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");
}

####################################################################
####         Gibt die Standardmaske aus
####         Argumente  : Emergency und Logtext
####         Returnwert : -
####################################################################
sub htmlbearb {
	my $self = shift;
        my $TITLE=$self->trans("TI1");

	$HTML=	$self->sfont($self->trans("HI22").": ".$self->{name}." bei ".$self->{firma})."<HR><BR>\n<TABLE cellspacing=10>\n".
		$self->TR([ $self->sfont($self->trans("HI23")),$self->sfont($self->trans("HI42")),$self->sfont($self->trans("HI1")) ]).
                $self->TR([
			$self->DDumfrage('kumfrage',$baseq::VARS{kumfrage}),
			$self->DDtemp('ktemplate',$self->{template},1),
	       		$self->DDsprache('ksprache',$self->{sprache})   ]).
                $self->TR([
	                $self->SM('kbut',"BU14"),
			$self->SM('tbut',"BU17"),
		        $self->SM('kbut',"BU20")  ]).
                $self->TR([
			$self->SM('kbut',"BU15"),
			$self->SM('kbut',"BU18"),
			$self->SM('kbut',"BU11")  ]).
                $self->TR([
			$self->SM('kbut',"BU16"),
		     	$self->SM('kbut',"BU19"),
		     	$self->SM('tbut',"BU21"), ]).

		"</TABLE>";

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


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

	else {$self->htmlbearb;}
}
