use utf8;
use warnings; no warnings "redefine";
use strict;
use Loader qw(log_view line_in line_printer log_update edit_ausgabe
		select_descr);
use Fehler qw(report_fehler);
use Dbase::Help qw(DoFn Do DoSelect);
use Dbase::Globals qw(get_descr);

sub edit_ausgaben(;$) {
	my($kn) = @_;

	while(1) {
		my $id = select_descr("ausgabe",65536+32768+128+256,<<END,"$kn Ausgabe","!hide");
l    auflisten
END
		return undef unless $id;

		if($id == -3) { log_view($kn,"ausgabe"); next; }
		if($id == -1) {
			my $hdr;
			line_printer;

			DoSelect {
				my($id,$cmd) = @_;
				$cmd="-" unless defined $cmd;

				print $Db::pr_fh <<END unless $hdr++;
 ID Name             Befehl
END

				printf $Db::pr_fh "%3d %-16.16s %s\n",$id,get_descr("ausgabe",$id),$cmd;
			} "select ausgabe,befehl from ausgabe order by ausgabe"
				or print "(leer)\n";
			next;
		}
		my $idi = DoFn("select id from ausgabe where ausgabe = $id");
		unless($idi) {
			$idi = Do("insert into ausgabe set ausgabe=$id");
			log_update("ausgabe","ausgabe",$id,undef,"*");
			print "...nicht gefunden, neu anglegt.\n";
		}
		edit_ausgabe($idi,$kn);
		next; fehler: report_fehler(4);
	}
}
1;
