use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Help qw(Do DoSelect);
use Fehler qw(problem);
use Loader qw(log_update);

sub delete_wartungsvertrag($;$) {
	my ( $id, $kn ) = @_;
	{
		my @assoc;
		DoSelect { push @assoc, "\u$_#" . shift } <<_ for qw(hardware leitung);
	SELECT id FROM wartungsvertrag_$_ WHERE wartungsvertrag = $id ORDER BY id
_
		return problem
		  "Dieser Wartungsvertrag kann nicht gelöscht werden,\nda er "
		  . ( @assoc == 1
			? 'einem anderen Objekt'
			: @assoc . ' anderen Objekten' )
		  . " zugeordnet ist:\n"
		  . join ', ', @assoc
		  if @assoc;
	}
	log_update( wartungsvertrag => id => $id, undef, '-' );
	Do "DELETE FROM wartungsvertrag WHERE id = $id";
}

1;
