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_personen log_update);

sub set_leitung_ref2person($$;$) {
	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_personen( $kunde, 1 + 4 + 128, $kn ) )
	  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;
