use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Help qw(DoFn DoCopy);
use Dbase::Globals qw(find_descr);
use Loader qw(edit_personen);
use Fehler qw(problem warnung);

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

	my($pers,$kid,$art) = DoFn("select person.id,person.kunde,stundenliste.art from person,stundenliste where stundenliste.id = $id and person.id = stundenliste.person");

	my $npers = edit_personen($kid,1,'für');
	return undef unless defined $npers;
	return $npers if $npers == $pers;
	{
		my($kunde_id, $kunde_name) = DoFn <<_;
			SELECT kunde.id, kunde.name
			FROM   kunde, person
			WHERE  person.kunde = kunde.id
			   AND person.id = $npers
_
		return problem "Konnte nicht ermitteln, zu welchem Kunden Person #$npers gehört!?"
			unless defined $kunde_id && defined $kunde_name;
		return problem "Diese Person gehört zu einem anderen Kunden (#$kunde_id:$kunde_name)."
			if $kunde_id != $kid;
	}
	return problem "Es existiert bereits ein Eintrag für Endabrechnung!"
		if $art == find_descr("std_liste","ende") and
			DoFn("select count(*) from stundenliste where person=$npers and art=$art");

	my $nid = DoCopy("stundenliste","id = $id", id=>undef, person=>$npers);

	print "Eintrag umkopiert (neu: #$nid)\n";
	$nid;
}
1;
