use utf8;
use warnings; no warnings "redefine";
use strict;

use Loader qw(line_in line_printer log_update log_view valid_queue);
use Fehler qw(report_fehler problem);
use Dbase::Help qw(Do DoFn DoSelect DoSeq qquote);

sub edit_queue_areas($;$) {
	my($q,$kn) = @_;
	return unless valid_queue($q);

	while(1) {
		my $act = line_in "$kn Addr >",4; last if $act eq "";
		if($act eq "?") {
			print <<'END';
l     auflisten
NAME  hinzufügen / löschen
END
			next;
		}
		if($act eq "H") { log_view($kn,"queue_areas","queue",$q); next; }
		if($act eq "l") {
			line_printer;
			DoSelect {
				no warnings 'once';
            	my($str) = @_;
			    print $Db::pr_fh "$str\n";
			} "select name from queue_areas where queue=$q" or print "(leer)\n";
			next;
		}
		my $res = 0;
		my $qq = DoFn("select id from queue_areas where queue=$q and name=${\qquote $act}");
		if(not defined $qq) {
			log_update("queue_areas","queue",$q,undef,"area","*",undef,$act);
			Do("insert into queue_areas set queue=$q, name=${\qquote $act}");
			DoSeq("rtupdate");
			print "...eingefügt.\n";
		} else {
			my $cnt = DoFn("select count(*) from ticket where queue_area=$qq");
			if($cnt) {
				problem "Es gibt noch $cnt Tickets in dieser Area!";
				next;
			}
			log_update("queue_areas","queue",$q,undef,"area","-",undef,$act);
			Do("delete from queue_areas where id=$qq");
			DoSeq("rtupdate");
			print "...gelöscht.\n";
		}
		next; fehler: report_fehler(4);
	}
	$q;
}

1;
