use utf8;
use warnings; no warnings "redefine";
use strict;
use Loader qw(line_in log_update);
use Dbase::Help qw(Do DoFn isodate unixdate);
use Dbase::Globals qw(find_descr content);
use Fehler qw(problem warnung);

sub set_stundenliste_zeitraum($;$) {
	my($id,$kn) = @_;

	my $art = DoFn("select art from stundenliste where id=$id");
	return problem "Dies ist eine monatliche Benachrichtigungart."
		if $art >= find_descr("std_liste","monat");

	content ( my $zeitraum = line_in "wie oft(Tage) ('-'=monatlich) :" ) or return;
	if($zeitraum eq "-") {
		my($ozr,$oletzt) = DoFn("select zeitraum,zuletzt from stundenliste where id=$id");
		my($j,$m,$t) = isodate($oletzt);
		if($t != 1) {
			my $letzt = unixdate($j,$m,1);
			warnung "Letztes Mailing auf den Monatsersten gesetzt.";
			log_update("stundenliste","id",$id,undef,"zeitraum","zuletzt",undef,$ozr,scalar isodate $oletzt);
			Do("update stundenliste set zuletzt=$letzt,zeitraum=NULL where id=$id");
			return;
		}
	} else {
		return problem "'$zeitraum' ist keine Zahl"
			if $zeitraum !~ /^\d+$/;
	}
	log_update("stundenliste","id",$id,undef,"zeitraum",undef,
		DoFn("select zeitraum from stundenliste where id=$id"));
	Do("update stundenliste set zeitraum=$zeitraum where id=$id");
}
1;
