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

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

	my($art,$zeitraum,$zuletzt) = DoFn("select art,zeitraum,zuletzt from stundenliste where id=$id");

	warnung "Hinweis: Der Perso-Datensatz wurde nicht geändert."
		if $art == find_descr("std_liste","ende");

	my($j,$m,$t) = isodate($zuletzt);
	if(defined $zeitraum) {
		($j,$m,$t)=Add_Delta_Days($j,$m,$t,-$zeitraum);
	} else {
		$j--,$m=12 if --$m == 0;
	}
	my $nz = unixdate($j,$m,$t);

	log_update("stundenliste","id",$id,undef,"zuletzt",undef,scalar isodate $zuletzt);
	Do("update stundenliste set zuletzt=$nz where id=$id");
	print "Zurück auf ".isodate($nz).".\n";
}
1;
