package benutzer;

use template;
#use strict;

@ISA = qw ( template );


####################################################################
####         Konstuktor der Antwortenklasse
####         Argumente  : Umfid , fid , Antworttext
####         Returnwert : Referenz auf das neue Antwortobjekt
####################################################################
sub init {
	my $that = shift;
	my $class = ref($that) || $that;
	my $self = template->init(@_);
	bless $self, $class;	
	return $self;
}

####################################################################
####         Konstuktor der Antwortenklasse
####         Argumente  : Umfid , fid , aid
####         Returnwert : Referenz auf das neue Antwortobjekt
####################################################################
sub load {
	my $self = shift;
	return;
	$self->log(4,"Entering: antwort:load");
        my $sql = "select antwort, nextfid, typ, tlang from antworten where umfid=$self->{umfid} and fid=$self->{fid} and aid=$self->{id} ";
        ($self->{name}, $self->{nextfid}, $self->{typ}, $self->{tlang}) = $self->sqlselect($sql);
	if (! defined $self->{nextfid}) { $self->log(2, "Konnte Antwort nicht laden"); return;}
	return $self;
}

####################################################################
####         ermittelt eine neue ID und speichert die Antwort mit dieser
####         Argumente  -
####         Returnwert -
####################################################################
sub new {
	my $self = shift;
	return;
	$self->log(4,"Entering: antwort:new");
	my $sql1 = "select max(aid) from antworten where umfid=$self->{umfid} and fid=$self->{fid}";
	$self->{id} = ($self->sqlselect($sql1))+1;                # größte ID+1
    my $sql2 = "insert into antworten set umfid=$self->{umfid}, fid=$self->{fid}, aid=$self->{id}, antwort='$self->{name}', ".
		       "nextfid='$self->{nextfid}', typ='$self->{typ}', tlang=$self->{tlang}";
	$self->sqldo($sql2);	                           # gleich in die Datenbank speichern !!
}

####################################################################
####         Speichert die Antwort mit "Update" in der DB
####         Argumente  : evtl eine neue ID
####         Returnwert : -
####################################################################
sub store {
	my $self = shift;
	return;
	$self->log(4,"Entering: antwort:store");
	my $sql = "update antworten set antwort='$self->{name}', nextfid=$self->{nextfid}, ".
              "typ=$self->{typ}, tlang=$self->{tlang} where umfid=$self->{umfid} and fid=$self->{fid} and aid=$self->{id}";
	$self->sqldo($sql);
    return;
}

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

####################################################################
####         Löscht sich aus der Datenbank und setzt seine ID auf UNDEF
####         Argumente  : -
####         Returnwert : -
####################################################################
sub delete {
	return;
	my $self = shift;
	$self->log(4,"Entering: antwort:delete");
	my $sql = "delete from antworten where umfid=$self->{umfid} and fid=$self->{fid} and aid=$self->{id} ";
	$self->sqldo($sql);
        $self->{id} = undef;
}

####################################################################
####         Gibt eine Dropdown der Anreden zurueck
####         Argumente  : -
####         Returnwert : -
####################################################################
sub DDanrede {
	my ($self, $name, $val)=@_;
	my ($x, @L, %H);
	if ($name eq "") {$name="anrede";}
	if ($val eq "") {$val=$self->{anrede};}
	for ($x=1; $x<3; $x++) {push @L,$x; $H{$x}=$baseq::HF[$x];}
	return $self->DD($name,\@L,$val,\%H);
}

####################################################################
####         Gibt eine Dropdown der Familienstaende zurueck
####         Argumente  : -
####         Returnwert : -
####################################################################
sub DDfamilie {
	my ($self, $name, $val)=@_;
	my ($x, @L, %H);
	if ($name eq "") {$name="famstand";}
	if ($val eq "") {$val=$self->{famstand};}
	for ($x=0; $x<3; $x++) {push @L,$x; $H{$x}=$baseq::FS[$x];}
	return $self->DD($name,\@L,$val,\%H);
}

####################################################################
####         Gibt eine Dropdown der Bildungen zurueck
####         Argumente  : -
####         Returnwert : -
####################################################################
sub DDbildung {
	my ($self, $name, $val)=@_;
	my ($x, @L, %H);
	if ($name eq "") {$name="bildung";}
	if ($val eq "") {$val=$self->{bildung};}
	for ($x=0; $x<8; $x++) {push @L,$x; $H{$x}=$baseq::BI[$x];}
	return $self->DD($name,\@L,$val,\%H);
}

####################################################################
####         Gibt eine Dropdown der Beschaeftigungen zurueck
####         Argumente  : -
####         Returnwert : -
####################################################################
sub DDarbeit {
	my ($self, $name, $val)=@_;
	my ($x, @L, %H);
	if ($name eq "") {$name="arbeit";}
	if ($val eq "") {$val=$self->{arbeit};}
	for ($x=0; $x<7; $x++) {push @L,$x; $H{$x}=$baseq::BS[$x];}
	return $self->DD($name,\@L,$val,\%H);
}

####################################################################
####         Gibt die Kriterientabellen zurueck
####         Argumente  : -
####         Returnwert : Kategorien, Hobbies
####################################################################
sub krittable {
	my ($self, $klicked)=@_;
	my ($num, $retl);
	my $ret="<TABLE BORDER=1>\n";
        my $xa=3; my @L=();
	for ($x=1; $x<49 ;$x++) {
        if ($baseq::KRIT[$x] eq "") {next}
	    push @L, $self->sfont($self->CB("pk$x",1,$baseq::VARS{"pk$x"} ).$baseq::KRIT[$x]);
        $xa--; if ($xa==0 || $x==25 || $x==48) {$xa=3; $ret.=$self->TR(\@L); @L=()}
        if ($x==25) {$retl=$ret."</TABLE>\n"; $ret="<TABLE BORDER=1>\n";}
	}
	return ($retl, $ret."</TABLE>\n");
}

####################################################################
####         Gibt die Versandhaus-Tabelle zurueck
####         Argumente  : -
####         Returnwert : Versandhauser
####################################################################
sub vhtable {
	my ($self, $klicked)=@_;
	my $vh;
	my $ret="<TABLE BORDER=1>\n";
        my $xa=3; my @L=();
	for ($x=0; $x<20 ;$x++) {
         if ($baseq::VH[$x] eq "") {next}
         push @L, $self->sfont($self->CB("vh$x",1,$baseq::VARS{"vh$x"} ).$baseq::VH[$x]);
         $xa--; if ($xa==0 || $x==19) {$xa=3; $ret.=$self->TR(\@L); @L=()}
	}
	return $ret."</TABLE>\n"; 
}

