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

sub set_deskr_gruppe($$;$) {
	my($desc,$id,$kn) = @_;
	my $dname = DoFn "select name from descr_typ where id=$desc";

	my $gid = DoFn("select id from descr_typ where name=${\qquote $dname.'_ident'}");
	unless(defined $gid) {
		print "Es gibt noch keine Deskriptoren Typ '${dname}_ident'.\n";
		$gid = Do("insert into descr_typ set name=${\qquote $dname.'_ident'}");
		edit_deskrip($gid,2,$kn);
		return undef if DoFn("select count(*) from descr where typ = $gid") == 0;
	}

	my $gname = DoFn("select gruppe from descr where typ=$desc and descr=$id");
	my $grp = select_flags($gname,"${dname}_ident","$kn Gruppen","!hide");
	return undef unless defined $grp;

	log_update("descr","typ",$desc,"descr",$id,undef,"gruppe",undef,
		scalar flag_names($grp,$gname,DoFn("select gruppe from descr where typ=$desc and descr=$id")));
	Do("update descr set gruppe = $grp where typ=$desc and descr=$id");
}
1;
