use utf8;
use warnings; no warnings "redefine";
use strict;
use Cf qw($MWST);
use Loader qw(log_update);
use Dbase::Globals qw(stunden_bereich);
use Dbase::Help qw(DoTrans Do unixdate isodate);
use Loader qw(add_persomonat);

# Addiert die ersten 30 Minuten (max) der Hotlinestunden eines Monats
# und speichert sie in persomonat.hotline

sub update_hotline_cache($$$) {
	my($pers,$beginn,$dauer) = @_;
	DoTrans {
		my($y,$m,$d) = isodate $beginn;
		$beginn = unixdate($y,$m,1);
		my $mon = $y*100+$m;
		if(++$m == 13) { $m=1; $y++; }
		my $ende = unixdate($y,$m,1);
		my $mid = add_persomonat($pers,$mon);
		my $sum = 0;

		stunden_bereich($pers,undef,$beginn,$ende,4, sub {
			my($id,$beg,$dau) = @_;
			if($dau > 30*60) { $dau = 30*60; } # erste halbe Stunde
			$sum += $dau;
		});
		Do "update persomonat set hotline=$sum where id=$mid";
	};

}

1;
