use utf8;
use warnings; no warnings "redefine";
use strict;

use Loader qw(line_in valid_kunde check_perm current_user
	list_stunden list_stunden_hotline add_stunde log_view edit_stunde);
use Fehler qw(report_fehler);
use Dbase::Globals qw(ist_unterkunde);

=head4 edit_kunde_stunden

C<edit_kunde_stunden( Kunde [Prompt] )>

Editiert die Stundenliste für einen Kunden.

Funktionen:

=over 4

=item l

Auflisten, nach Zeit und Person.

=item a

Eintrag (für die aktuell eingeloggte Person) hinzufügen.

=item ID

Den Eintrag mit dieser ID bearbeiten.

=back

Nicht-Verwalter können nur die eigenen Zeiten einsehen, es sei denn
die Angaben betreffen einen Kunden.

=cut

sub edit_kunde_stunden($;$) {
	my($id,$kn) = @_;
	my $pers;

	return unless valid_kunde($id);

	if (check_perm("perso",1)) {
		$pers = undef;
	} elsif(ist_unterkunde($id)) {
		print STDERR "Hinweis: Du siehst hier nur deine eigenen Stunden.\n";
		$pers = current_user();
	} else {
		$pers = undef;
	}
	persk: while(1) {
		my $act = line_in "$kn Stunden >",4; last if $act eq "";
		if($act eq "?") {
			print <<'END';
l     auflisten    c  auflisten als CSV   lh  Liste der Hotline-Einträge
a     hinzufügen
###   bearbeiten
END
			next;
		}
		if($act eq "l") { list_stunden($pers,$id); next; }
		if($act eq "lh") { list_stunden_hotline($pers,$id); next; }
		if($act eq 'c') { list_stunden($pers,$id,undef,undef,undef,undef,1); next; }
		if($act eq "a") { add_stunde($pers,$id,$kn); next; }
		if($act eq "H") { log_view($kn,"stunden"); next; }
		if($act =~ /^\d+$/) {
			$act = edit_stunde($act,$pers,$id,$kn);
			next;
		}
		print "Aktion '$act' kenne ich nicht.\n";
		next; fehler: report_fehler(4);
	}
	undef;
}

1;
