use utf8;
use warnings; no warnings "redefine";
use strict;

use Dbase::Help qw(Do DoFn qquote);
use Dbase::Globals qw(content def_or_minus);
use Fehler qw(problem);
use Loader qw(line_in log_update);

sub set_mail_ip($$$) {
	my ( $kunde_id, $tabelle, $id ) = @_;

	content( my $neue_mail_ip = line_in('Mail-IP: ') ) or return;
	$neue_mail_ip =~ s/^\*\.//;
	return problem(
		'Hier sind nur ganzzahlige Werte zwischen 1 und 254 erlaubt.')
	  if $neue_mail_ip ne '-'
	  and $neue_mail_ip =~ /\D/ || $neue_mail_ip < 1 || $neue_mail_ip > 254;

	my $alte_mail_ip = DoFn("SELECT mail_ip FROM $tabelle where id = $id");

	return
	  if $neue_mail_ip eq '-'
	  ? !defined $alte_mail_ip
	  : defined $alte_mail_ip && $alte_mail_ip == $neue_mail_ip;

	log_update(
		$tabelle =>
		  id        => $id,
		undef,
		mail_ip => undef,
		def_or_minus($alte_mail_ip)
	);
	Do(     "UPDATE $tabelle SET mail_ip = "
		  . qquote( $neue_mail_ip, 1 )
		  . " WHERE id = $id" );
	Do("UPDATE kunde SET geaendert = UNIX_TIMESTAMP(NOW()) WHERE id = $kunde_id"
	);
}

1;
