=head4 set_perso_anfang

C<set_perso_anfang( Person [Prompt] )>

Stellt ein, ab wann die Überstundenliste zählt und welche Rest-Überstunden
er/sie mitschleppt(e).

=cut

use utf8;
use warnings; no warnings "redefine";
use strict;
use Loader qw(select_date log_update);
use Dbase::Help qw(Do DoFn isodate);

sub set_perso_anfang($;$) {
	my($id,$kn) = @_;
	my($ostart,$ostunden) = DoFn("select anfangsmonat,anfangsueber from perso where person=$id");
	my $nchg = 0;

	my $start = select_date(1024|4,"Start:");
	if(defined $start and $start ne "") {
		if($start > 0) {
			my @dt = isodate $start; $start = 100*$dt[0]+$dt[1];
		} else {
			$start = "NULL";
		}
	} else {
		$start = $ostart;
		$nchg |= 1;
	}
	$ostart = defined($ostart) ? sprintf("%4d-%02d",$ostart/100,$ostart%100) : "-";
	my $stunden = select_date(1024|2|64|128,"Stunden:");
	if(defined $stunden and $stunden ne "") {
		$stunden = "NULL" if $stunden == 0;
	} else {
		$stunden = $ostunden;
		$nchg |= 2;
	}

	return if $nchg == 3;

	log_update("perso","person",$id,undef,"anfangsmonat","anfangsueber",undef,$ostart,$ostunden);
	Do("update perso set anfangsmonat=$start,anfangsueber=$stunden where person=$id");
	1;
}
1;
