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

sub delete_mailrule($) {
	my ($id) = @_;

	content( my $quelle = line_in('Quelladresse: ') ) or return;

	my ( $id_mailrule, $typ, $ziel );

	if ( $quelle ne '*' ) {
		( $id_mailrule, my $id_kunde, $typ, $ziel ) = DoFn(<<_);
	SELECT id, kunde, typ, ziel 
	FROM   mailrules
	WHERE  quelle = ${\ qquote(puny_encode($quelle,4)) }
_
		return problem( "Diese Regel gehört zu Kunde #$id_kunde:"
			  . name_kunde($id_kunde)
			  . '.' )
		  if defined $id_kunde && $id_kunde != $id;
	}
	else {
		( $id_mailrule, $typ, $ziel ) =
		  DoFn("SELECT id FROM mailrules WHERE kunde = $id AND quelle IS NULL");
	}
	return problem('Für diese Adresse gibt es gar keine Regel.')
	  unless defined $id_mailrule;

	log_update(
		mailrules =>
		  kunde   => $id,
		undef,
		qw(quelle typ ziel -),
		undef,
		$quelle,
		get_descr( mailrules => $typ ), $ziel
	);
	log_update( kunde => id => $id, undef, mailrules => '-', undef, $quelle );
	Do("DELETE FROM mailrules WHERE id = $id_mailrule");
}

1;
