use utf8;
use warnings; no warnings "redefine";
use strict;
use Loader qw(line_in delete_rechstep log_view list_rechstep
	valid_rechstep strip_kn warn_arbeit list_recheinheiten
	set_rechstep_dienst set_rechstep_step set_rechstep_kunde
	set_rechstep_flags set_rechstep_info edit_recheinheiten);
use Fehler qw(report_fehler);
use Dbase::Help qw(DoFn);
use Dbase::Globals qw(name_dienst);

sub ers_kn($$) {
	my($okn,$id) = @_;
	my($s,$d) = DoFn("select step,dienst from rechstep where id=$id");
	$d = name_dienst $d;
	return $okn."Schritt_$s:$d";
}

sub edit_rechstep($;$) {
	my($id,$kn) = @_;
	return unless valid_rechstep($id);

	my $okn = strip_kn($kn);
	$kn = ers_kn($okn,$id);
	my $work = warn_arbeit("rechstep",$id,"*",$kn);

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

s   Schrittnummer ändern     nk  auf anderen Kunden duplizieren
f   Flags ändern             d   Dienst ändern
i   Infotext ändern          eb  Einheiten (Bytes) bearbeiten
                             ep  Einheiten (Paketzahl)

del löschen

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

		if($act eq "l") { list_rechstep($id,$kn); next; }
		if($act eq "ll") {
			list_rechstep($id,$kn);
			list_recheinheiten($id,'b',$kn);
			list_recheinheiten($id,'p',$kn);
			next; }
		if($act eq "d") { set_rechstep_dienst($id,$kn);
			$kn = ers_kn($okn,$id); next; }
		if($act eq "s") { set_rechstep_step($id,$kn);
			$kn = ers_kn($okn,$id); next; }
		if($act eq "f") { set_rechstep_flags($id,$kn); next; }
		if($act eq "i") { set_rechstep_info($id,$kn); next; }
		if($act eq "eb") { edit_recheinheiten($id,"b",2,"$kn:Bytes"); next; }
		if($act eq "ep") { edit_recheinheiten($id,"p",2,"$kn:Pakete"); next; }
		if($act eq "nk") { set_rechstep_kunde($id,$kn); next; }
		print "Aktion '$act' kenne ich nicht. Liste mit '?'.\n";
		next; fehler: report_fehler(4);
	}
	$id;
}
1;
