use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Help qw(Do);
use Fehler qw(problem);
use Loader qw( edit_wartungsvertraege edit_wartungsvertrag_zuordnung
  line_in log_update
  set_wartungsvertrag_zuordnung_datum );

sub add_wartungsvertrag_zuordnung($$;$) {
	my ($typ, $idi, $kn) = @_;
	defined( my $wartungsvertrag = edit_wartungsvertraege $kn, 1 ) or return;
	defined( my $beginn = set_wartungsvertrag_zuordnung_datum $typ, undef, 'beginn', $kn ) or return;
	         my $ende   = set_wartungsvertrag_zuordnung_datum $typ, undef, 'ende'  , $kn;
	return problem 'Das Enddatum darf nicht vor dem Startdatum liegen.'
	  if $ende ne 'NULL' && $beginn > $ende;

	my $id = Do <<_;
	INSERT INTO wartungsvertrag_$typ
	SET	$typ           =$idi,
	    wartungsvertrag=$wartungsvertrag,
	    beginn         =$beginn,
	    ende           =$ende
_
	log_update "wartungsvertrag_$typ" => id => $id, undef, '*';
	log_update "wartungsvertrag" => id => $wartungsvertrag, undef, "wartungsvertrag_$typ",'*', undef, $id;
	edit_wartungsvertrag_zuordnung $typ, $id, $kn;
}

1;
