=head4 set_perso_monat_diff

C<set_perso_monat_diff( Monat Person [Prompt] )>

Ändert die Überstundendifferenz für eine Person+Monat.
Dabei wird auch der Personendatensatz angepasst.

=cut

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

sub set_perso_monat_diff($$;$) {
	my($monat,$pers,$kn) = @_;
	return undef if $pers and not valid_person($pers);
	my $sel = $pers ? "person=$pers" : "person IS NULL";
	$sel .= " AND monat=$monat";

	my $zeit = select_date(2+64+128,"Stunden");
	return undef unless defined $zeit;

	my $ozeit = DoFn("select diff from persomonat where $sel") || 0;

	log_update("persomonat","monat",$monat,"person",$pers||0,undef,"diff",undef,
		iso_intervall($ozeit,4));
	Do("update persomonat set diff=$zeit where $sel and monat=$monat");
#	if($pers) {
#		Do("update perso set ueberstunde=ueberstunde+$zeit-$ozeit where person=$pers");
#		print "...Ueberstunden angepasst.\n";
#	}
}
1;
