package kunde;

use template;
use pivot;
use stichprobe;
#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}    = "";	
	$self->{umftyp}  = 0;
	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->{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;
	$self->log(4,"Entering: kunde:new");
	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;
	$self->log(4,"Entering: kunde:store");
	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;
	$self->log(4,"Entering: kunde:delete");
	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, "[Kunde] $TEXT");
}

####################################################################
####         Gibt die Standardmaske aus
####         Argumente  : Emergency und Logtext
####         Returnwert : -
####################################################################
sub htmlbearb {
	my $self = shift;
	$self->{buttonwidth}=21;
	$self->log(4,"Entering: kunde:htmlbearb");
        #my $TITLE=$self->trans("TI1");
		my $TITLE=$self->trans("TI22a");
        if ( $baseq::VARS{kumfrage}==0 && $baseq::VARS{umfid} != 0 ) {$baseq::VARS{kumfrage}=$baseq::VARS{umfid};}
	$HTML=	"<TABLE width=100%>\n".
		$self->TR([ $self->sfont($self->trans("HI22").":"),
			    $self->sfont($self->{name}." bei ".$self->{firma}),
			    $self->SM("kbut","BU24")    ]).
		"</TABLE>\n".
		
		"<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->{umftyp}),
			$self->DDtemp('ktemplate',$self->{template},1),
	    	$self->DDsprache('ksprache',$self->{sprache})   ]).
        $self->TR([	
			$self->SM('kbut',"BU16",25),
			$self->SM('tbut',"BU17",25),
		    $self->SM('kbut',"BU20",25)  ]).

		$self->TR([
			$self->SM('kbut',"BU15",25),
			$self->SM('kbut',"BU18",25),
			$self->SM('kbut',"BU57",25) ]).

		$self->TR([
			$self->SM('kbut',"BU14",25), 
		   	$self->SM('kbut',"BU19",25),
			$self->SM('kbut',"BU55",25)  ]).
		
		$self->TR([
			$self->SM('kbut',"BU11",25),
		   	$self->SM('tbut',"BU21",25)  ]).


		"</TABLE>";
       $self->{helpkontext}="kunde"; 	 
       $self->printhtml($TITLE,$HTML);
}


####################################################################
####         Gibt die Standardmaske aus
####         Argumente  : Emergency und Logtext
####         Returnwert : -
####################################################################
sub getbearb {
	my $self = shift;
	my ($umf, $trans);
	$self->log(4,"Entering: kunde:getbearb");
	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->checkpass($baseq::VARS{knr}, $baseq::VARS{pass}) != 4) {$baseq::VARS{knr}=0; $self->login; $self->exit;};
    
	$self->load;
	
	if ( ($baseq::VARS{lbut} eq "") && ($baseq::VARS{kbut} eq "") ) {
		if (($baseq::VARS{but} ne "") || ($baseq::VARS{stbut} eq $self->trans("BU11"))) {
			$umf=umfrage->init($self, $baseq::VARS{umfid}); $umf->load; $umf->getbearb;$umf->exit;
		}
       	if ($baseq::VARS{pbut} ne ""){$piv=pivot->init($self, $baseq::VARS{umfid}); $piv->load; $piv->getbearb;$piv->exit;}
		if ($baseq::VARS{tbut} ne ""){$tm=template->init($self, $baseq::VARS{ktemplate}); $tm->loadtmp; $tm->getbearb;$tm->exit;}
		foreach (keys %baseq::VARS) {
			$self->log(4,"KEY=$_");
			if (/stbut/) {
				$umf=umfrage->init($self, $baseq::VARS{umfid});
				$umf->load; 
				$umf->statistik; 
				$self->exit;
			}
		}	
		if ($baseq::VARS{sbut} eq $self->trans("BU11") ) {$umf=umfrage->init($self, $baseq::VARS{umfid});$umf->load; $umf->getbearb;$umf->exit;}
		elsif ($baseq::VARS{sbut} ne "") { 
			$self->log(4,"Kunde sieht Stichprobe"); 
			my $stich=stichprobe->init;
			$stich->getbearb;
			$stich->exit;
	    }
	}
	elsif ($baseq::VARS{kbut} eq $self->trans("BU55") ){$umf=umfrage->init($self, $baseq::VARS{kumfrage});$umf->load; $umf->delete;$self->htmlbearb;}
	elsif ($baseq::VARS{kbut} eq $self->trans("BU57") ){$self->{umftyp}=2; $self->htmlbearb}
	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->{template}=$baseq::VARS{ktemplate};$tm->loadtmp; $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("BU24") ){$self->hilfe;}
	elsif ($baseq::VARS{kbut} eq $self->trans("BU14") ){$umf=umfrage->init($self, $baseq::VARS{kumfrage});$umf->load;$umf->statistik;$umf->exit;}
	else {$self->htmlbearb;}
}
