use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Help qw(Do qquote DoFn);
use Dbase::Globals qw(content);
use Fehler qw(problem);
use Loader qw(line_in log_update);

sub set_messstelle_name($;$) {
    my ( $idi, $kn ) = @_;
    content( my $name = line_in 'Name: ' ) or return;
    return problem "Das ist ein Pflichtfeld und kann daher nicht gelöscht werden.\n"
      if $name eq '-';

    $name = qquote $name;
    return $name unless defined $idi;

    my ($snmp_host, $typ) = DoFn "SELECT snmp_host, typ FROM mess_stelle WHERE id = $idi";
    my ($other_msid) = DoFn <<_;
SELECT mess_stelle.id
  FROM mess_stelle
 WHERE mess_stelle.name = ${\qquote $name}
   AND mess_stelle.id != $idi
   AND mess_stelle.snmp_host = ${\qquote $snmp_host}
   AND mess_stelle.typ = ${\qquote $typ}
 LIMIT 1
_

    if ( defined $other_msid ) {
        return problem("Die Kombination von Name, SNMP Host und Typ ist schon in der Messstelle #$other_msid vergeben.");
    }

    log_update mess_stelle => id => $idi, undef, 'name', undef,
        DoFn("SELECT name FROM mess_stelle WHERE id = $idi");
    Do "UPDATE mess_stelle SET name = $name WHERE id = $idi";
}

1;
