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

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

	my ( $kunde, $old ) = DoFn("SELECT kunde, $feld FROM leitung WHERE id=$id")
	  or return problem("Leitung #$id nicht gefunden.");

	defined( my $new = edit_hardwares( $kunde, $kn, 1 ) )
	  or return undef;

	if ( $new eq '-' ) {
		return unless defined $old;
		$new = 'NULL';
	}
	else { return if defined $old && $old == $new }

	log_update( leitung => id => $id, undef, $feld, undef, def_or_minus($old) );
	Do("UPDATE leitung SET $feld = $new WHERE id = $id");
	Do("UPDATE kunde SET geaendert = UNIX_TIMESTAMP(NOW()) WHERE id = $kunde");
}

1;
