use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Help qw(DoFn);
use Dbase::Globals qw(find_descr content bignum);
use Fehler qw(fehler);
use Loader qw(print_adresse);

my $eigene_re;

sub person_record($$) {
	my($id,$what) = @_;
#Blubb GmbH
#Herr Frank Blafasel, Abt. Fubar
#Grummelstr. 78
#D-12345 Untertupfenhausen
	my(%pers);
	my($ret);

	$eigene_re = bignum(1)<<find_descr("kunde","eigene_re")
		if not $eigene_re;

	my($oberkunde,$flags,$kundep,$adminp) = DoFn("select kunde,flags,hauptperson,$what from kunde where id=$id");
	while($oberkunde and not ($kundep and $adminp)) {
		$id=$oberkunde;
		my($kp,$ap);
		($oberkunde,$flags,$kp,$ap) = DoFn("select kunde,flags,hauptperson,$what from kunde where id=$id");
		$kundep = $kp unless $kundep;
		$adminp = $ap unless $adminp or not $flags & $eigene_re;
	}
	fehler "Der Kunde hat keine Hauptperson",$id unless $kundep;
	
	my($temp, $temp2);
	$temp = DoFn("select name from person where id=$kundep");
	$ret .= ($temp ne "") ? "$temp\n" : "?UNBEKANNT?";

	if($adminp and $adminp != $kundep) {
		$temp = DoFn("select name from person where id=$adminp");
		if($temp ne "") {
			$temp =~ s/^Herr\s+/z. H. Herrn /;
			$temp =~ s/^Frau\s+/z. H. Frau /;
		}
	} else {
		$temp = "";
	}

	$temp2 = DoFn("select abt from person where id=$adminp")
		if $adminp;
	$temp2 = DoFn("select abt from person where id=$kundep")
		if not defined $temp2;

	$ret .= "$temp\n" if defined $temp and $temp ne "";
	$ret .= "$temp2\n" if defined $temp2 and $temp2 ne "";

	$temp = undef;
# rt#338293: das geht (aktuell) nicht
#	$temp = DoFn("select adresse from person where id=$adminp")
#		if $adminp;
	$temp = DoFn("select adresse from person where id=$kundep")
		unless $temp;
	$ret .= print_adresse($temp)."\n" if $temp;

	$ret;
}

1;
