use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Help qw(Do DoFn DoSelect qquote);
use Dbase::Globals qw(content);
use Fehler qw(report_fehler warnung);
use Loader qw(line_in log_update);

sub set_hardware_seriennr($;$) {
	my ( $idi, $kn ) = @_;
	content( my $seriennr =
		  line_in 'SerienNr.' . ( !defined $idi && ' (optional)' ) . ': ' )
	  or return defined $idi ? () : 'NULL';
	if ( $seriennr eq '-' ) { $seriennr = 'NULL' }
	else {
		$seriennr = qquote($seriennr);
		DoSelect {
			my ( $id, $name ) = @_;
			warnung "Diese Seriennummer ist bereits bekannt (#$id:$name).";
		} "SELECT id, name FROM hardware WHERE seriennr = $seriennr"
		  . ( defined $idi && " AND id != $idi" );
	}
	return $seriennr unless defined $idi;
	log_update hardware => id => $idi, undef, 'seriennr', undef,
		DoFn("select seriennr from hardware WHERE id=$idi");
	Do "UPDATE hardware SET seriennr=$seriennr WHERE id=$idi";
}

1;
