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

sub add_dienst(;$$) {
	my($kn,$name) = @_;
	my $no_edit=0;

	if (not defined $name) {
		content ( $name = line_in "Name: " ) or return;
		# ($name eq "-" or $name eq "*") and return problem "Dienstname '$name' geht nicht.\n";
	} else {
		$no_edit=1;
	}

	my $id = DoFn("select id from dienst where name=${\qquote lc $name}");
	if(defined $id) {
		return problem "Einen Dienst namens '$name' gibt es bereits."
			unless defined $ENV{'TESTING2'};
		# der folgende Code ist hier, weil es den Testskripts egal ist,
		# ob es den Dienst schon gibt
		edit_dienst($id,$kn) unless $no_edit;
		return undef;
	}

	$id = Do("insert into dienst set name=${\qquote lc $name}");

	log_update("dienst","id",$id,undef,"name","*",undef,$name);
	unless($no_edit) {
		print <<END;

Achtung: Wenn für diesen Dienst Accountingdaten anfallen, müssen zwingend
Berechnungsschritte angelegt werden. Das geht mit 'b'; vgl. RT#416172.

END
		edit_dienst($id,$kn) unless $no_edit;
	}
}
1;
