use utf8;
use warnings; no warnings "redefine";
use strict;
use Loader qw(line_in delete_recheinheit log_view list_recheinheit
	valid_recheinheit strip_kn warn_arbeit
	set_recheinheit_info set_recheinheit_faktor set_recheinheit_start
	set_recheinheit_name);
use Fehler qw(report_fehler);
use Dbase::Help qw(DoFn);
use Dbase::Globals qw(get_descr);

sub edit_recheinheit($;$$) {
	my($id,$okn,$sid) = @_;
	return unless valid_recheinheit($id);

	my $kn = $okn."_".(DoFn("select name from recheinheit where id=$id")||"-");
	my $work = warn_arbeit("recheinheit",$id,"*",$kn);

	if(defined $sid) {
		my $rsid = DoFn("select rechstep from recheinheit where id=$id");
    	print <<END if $sid != $rsid;

*** Vorsicht: Du bearbeitest gerade Schritt $sid.
              Dieser Eintrag gehört aber zu Schritt #$rsid!
END
	}

	while(1) {
		my $act = line_in "$kn >",4; last if $act eq "";
		if($act eq '?') {
			print <<'END';
l   auflisten

n   Namen ändern          s   Startwert ändern
i   Infotext ändern       f   Umrechnungsfaktor ändern

del löschen

END
			next;
		}
		if($act eq "del") { return undef if delete_recheinheit($id); next; }
		if($act eq "H") { log_view($kn,"recheinheit","id",$id); next; }

		if($act eq "l") { list_recheinheit($id,$kn); next; }
		if($act eq "s") { set_recheinheit_start($id,$kn); next; }
		if($act eq "f") { set_recheinheit_faktor($id,$kn); next; }
		if($act eq "n") { set_recheinheit_name($id,$kn);
			$kn = $okn."_".(DoFn("select name from recheinheit where id=$id")||"-");
			next; }
		if($act eq "i") { set_recheinheit_info($id,$kn); next; }
		if($act eq "k") { return undef if defined set_recheinheit_kunde($id,$kn);
			next; }
		print "Aktion '$act' kenne ich nicht. Liste mit '?'.\n";
		next; fehler: report_fehler(4);
	}
	$id;
}
1;
