=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,$id,$kn) = @_;
	return undef unless valid_person($id);

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

	my $ozeit = DoFn("select diff from persomonat where person=$id and monat=$monat") || 0;

	log_update("persomonat","monat",$monat,"person",$id,undef,"diff",undef,
		iso_intervall($ozeit,4));
	Do("update persomonat set diff=$zeit where person=$id and monat=$monat");
	Do("update perso set ueberstunde=ueberstunde+$zeit-$ozeit")
}
1;
