=head4 add_stunde

C<add_stunde( [Person] [Kunde] [Prompt] )>

Fügt einen Stundeneintrag hinzu.

Wenn I<Person> C<undef> ist, wird nachgefragt.

=cut

use utf8;
use warnings; no warnings "redefine";
use strict;
use Loader qw(edit_stunde edit_personen log_update select_date);
use Dbase::Help qw(DoFn DoSeq DoTime Do);
use Dbase::Globals qw(flush_std_cache);
use Fehler qw(problem);

sub add_stunde(;$$$) {
	my($pid,$kid,$kn) = @_;
	$pid = edit_personen(1,1,"") unless $pid;
	return undef unless $pid;

	my $art = DoFn("select id from stunden_art where name='normal'") || 
	DoFn("select id from stunden_art order by id limit 1");

	$kid = DoFn("select kunde from person where id = $pid") unless $kid;

    	my $beginn = select_date(8,"Beginn");
	return undef unless defined $beginn;
	my $dauer = select_date(2,"Arbeitszeit",undef,qw(- löschen));
	return unless defined $dauer;
	return problem "Stundeneinträge ohne Dauer sind Unfug" if $dauer eq "-";

	my $id = Do("insert into stunden set kunde=$kid, person=$pid, beginn=$beginn, dauer=$dauer, art=$art");
	flush_std_cache($pid,$beginn,$dauer);

	log_update("stunden","id",$id,undef,"person","*",undef,$pid);
	DoSeq("stdupdate");

	return edit_stunde($id,$pid,$kid,$kn);
}
1;
