use utf8;
use warnings; no warnings "redefine";
use strict;
use Loader qw(line_printer select_date db_stunden_konflikt);
use Dbase::Help qw(DoFn isotime DoTime);
use Dbase::Globals qw(name_kunde iso_intervall);

sub list_person_stunden($;$) {
	my($id,$kn) = @_;
	line_printer;

	my $beginn = select_date(256|512,"Beginn",undef,qw(= jetzt x alles));
	return unless defined $beginn;
	$beginn = DoTime if $beginn eq "=";
	$beginn = 0 if $beginn eq "x";
	
	my $ende = select_date(256|512,"Ende",undef,qw(= jetzt x alles));
	return unless defined $ende;
	$ende = DoTime if $ende eq "=";
	$ende = 2<<31-1 if $ende eq "x";

	my $hdr;
	my $res = db_stunden_konflikt($id,undef,$beginn,$ende, sub {
		my($sid) = @_;
		print $Db::pr_fh <<END unless $hdr++;
  ID Kunde      Dauer     Start
END
		my($beg,$dau,$kunde,$txt) = DoFn("select beginn,ende,kunde,infotext from stunden where id = $sid");
		$kunde = name_kunde($kunde) || "-";

		goto out unless
		printf $Db::pr_fh "%04d %-10s %-10s %-5s %s\n",$sid,$kunde,scalar isotime($beginn),iso_intervall($dau),$txt;
	})
		or print "(leer)\n";
out:
	$res;
}
1;
