use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Globals qw(content);
use Dbase::Help qw(DoFn qquote);
use Fehler qw(report_fehler);
use Loader qw(
  add_messstelle
  edit_messstelle
  edit_messverbraucher
  line_in
  list_messstellen
  list_messverbrauchers
  strip_kn
);

# idi = hardware.id
sub edit_messstellen($;$) {
    my ( $kn ) = @_;

    my $okn = strip_kn($kn);
    $kn = $okn . 'Messstellen';
    while ( content( my $act = line_in "$kn >", 4 ) ) {
        if ( $act eq '?' ) {
            print <<_3;
l    zeigt alle Messstellen an, die keinem Verbraucher zugeordnet sind
L    zeigt alle Messstellen an, auch die die einem Verbraucher zugeordnet sind

a    Legt eine neue Messstelle an
###  Wählt eine Messstelle aus

_3
            next;
        }
        if ( $act eq 'l' ) { list_messstellen(4); next; }
        if ( $act eq 'L' ) { list_messstellen(2); next; }
        if ( $act eq 'a' ) { add_messstelle( $kn, ); next; }
        if ( $act =~ /^\d+$/) {
            if ( DoFn "SELECT 1 FROM mess_stelle WHERE id = $act" ) {
                edit_messstelle( $act, $okn );
            }
            else {
                print "Messstelle #$act nicht gefunden.\n";
            }
            next;
        }
        print "Aktion '$act' unbekannt.\n";
        next;
        report_fehler(4);
    }
    undef;
}

1;
