use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Help qw(DoFn Do qquote);
use Dbase::Globals qw(get_descr);
use Loader qw(select_descr log_update);

sub set_hardware_lieferant($;$$) {
	my ( $idi, $kn, $template ) = @_;

	defined(
		my $lieferant = select_descr
		  lieferant => 4,
		'', 'Lieferant' . ( !defined $idi && ' (optional)' ), '!hide', $template
	  )
	  or return;
	$lieferant = $lieferant eq '-' ? 'NULL' : qquote $lieferant;
	return $lieferant unless defined $idi;

	my ( $kunde, $oliefer ) =
	  DoFn "SELECT kunde, lieferant FROM hardware WHERE id=$idi";
	log_update hardware =>
	  id                => $idi,
	  undef, 'lieferant', undef, get_descr( lieferant => $oliefer, 1 );
	Do "UPDATE hardware SET lieferant = $lieferant WHERE id=$idi";

	Do "UPDATE kunde SET geaendert=UNIX_TIMESTAMP(NOW()) WHERE id=$kunde"
	  if $kunde;
}

1;
