use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Help qw(DoFn);
use Loader qw(current_user);

sub check_vorgesetzter($$) {
	my ( $vorgesetzter_id, $mitarbeiter_id ) = @_;
	my %seen;
	$vorgesetzter_id = current_user() unless defined $vorgesetzter_id;
	return 1 if $vorgesetzter_id == $mitarbeiter_id;
	my $id = $mitarbeiter_id;
	while ( $id = DoFn "SELECT vorgesetzter FROM perso WHERE person = $id" )
	{
		last     if $seen{$id}++;
		return 1 if $id == $vorgesetzter_id;
	}
	return '';
}

1

__END__

=head1 check_vorgesetzter

überprüft, ob eine Person der (ggf. indirekte) Vorgesetzte einer anderen Person
ist.

=head2 Argumente

=over 4

=item $vorgesetzter_id

Personen-ID des mutmaßlichen Vorgesetzten; Default: der aktuelle Benutzer

=item $mitarbeiter_id

Personen-ID des mutmaßlichen Mitarbeiters

=back

=head2 Ergebnis

I<Wahr>, falls die erstgannte Person (ggf. indirekter) Vorgesetzter der
zweitgenannten Person oder die Person selbst ist.

=back

=cut
