use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Help qw(DoFn);
use Fehler qw(report_fehler problem);
use Loader qw( line_in
  list_wartungsvertrag
  print_wartungsvertrag
  delete_wartungsvertrag
  log_view
  set_wartungsvertrag_ansprechpartner
  set_wartungsvertrag_beschreibung
  set_wartungsvertrag_name
  set_wartungsvertrag_sla
  valid_wartungsvertrag
  strip_kn );

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

	return unless valid_wartungsvertrag($id);

	$kn = strip_kn($kn) . "Wartungsvertrag #$id";
	while () {
		my $in = line_in "$kn >" or return;
		if ( $in eq '?' ) { print <<_; next; }
l	Wartungsvertrag anzeigen
n	Name ändern
s	SLA ändern
a	Ansprechpartner setzen oder ändern
b	Beschreibung ändern
p	Beschreibung ausgeben
H	History anzeigen
del	Wartungsvertrag löschen
_
		elsif ( $in eq 'l' ) { list_wartungsvertrag $id, $kn; next }
		elsif ( $in eq 'p' ) { print_wartungsvertrag $id, $kn; next }
		elsif ( $in eq 'n' ) { set_wartungsvertrag_name $id, $kn; next }
		elsif ( $in eq 's' ) { set_wartungsvertrag_sla $id, $kn; next }
		elsif ( $in eq 'a' ) { set_wartungsvertrag_ansprechpartner $id, $kn; next }
		elsif ( $in eq 'b' ) { set_wartungsvertrag_beschreibung $id, $kn; next }
		elsif ( $in eq 'H' ) { log_view $kn, wartungsvertrag => id => $id; next }
		elsif ( $in eq 'del' ) { delete_wartungsvertrag($id, $kn) ? return : next }
		problem "Aktion '$in' kenne ich nicht. Liste mit '?'.";
		next;
		fehler: report_fehler(4);
	}
}

1;
