use utf8;
use warnings; no warnings "redefine";
use strict;
use Cf qw($CHANGE_VP_NOTIFY $MAILDOM $MODE);
use Loader qw(edit_personen log_update get_mailadr);
use Fehler qw(problem);
use Dbase::Help qw(Do DoFn);
use Dbase::Globals qw(kkpersinfo name_kunde sendmail);

sub set_kunde_ansprechpartner($$$;$) {
	my($name, $kunde_id, $feld, $ist_ap) = @_;

	defined( my $ap = edit_personen($ist_ap ? 1 : $kunde_id, 1 | 4, $name) )
	  or return;

	if ($ap eq '-') { $ap = 'NULL' }
	elsif($ist_ap and (my $kunde = DoFn("SELECT kunde FROM person WHERE id = $ap")) != 1
		and not $ENV{TESTING2})
	{
		return problem("Diese Person gehört zu Kunde #$kunde:"
			  . name_kunde($kunde). ".",
			"als Ansprechpartner sind aber nur zu POP gehörende Personen erlaubt.");
	}

	if ( $feld eq 'ap_vertrieb' ) {
		my @to   = split ';', $CHANGE_VP_NOTIFY;
		my $user = get_mailadr();
		sendmail( <<END, $user, @to );
Subject: ${\( $MODE ne 'production' && "[$MODE] " )}Kunde AP Vertrieb geändert: #$kunde_id
From: $user

Soeben hat '$user' ${\(
$MODE ne 'production' && "in der $MODE-Umgebung " )}
den Ansprechpartner des Kunden #$kunde_id geändert.
END
	}

	my $ap_bisher = DoFn("SELECT $feld FROM kunde WHERE id = $kunde_id");
	log_update(
		kunde => id => $kunde_id,
		undef, $feld,$feld, undef, $ap_bisher, kkpersinfo($ap_bisher, 2)
	);
	Do("UPDATE kunde SET $feld = $ap WHERE id = $kunde_id");
}

1;
