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_status($;$) {
	my ( $idi, $kn ) = @_;

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

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

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

1;
