use utf8;
use warnings; no warnings "redefine";
use strict;
use Loader qw(line_in line_printer log_view log_update strip_kn);
use Fehler qw(report_fehler fehler problem);
use Dbase::Help qw(Do DoSelect DoFn qquote isotime);
use Dbase::Globals qw(get_descr content);

sub edit_ausgabe($;$) {
	my($idi,$kn) = @_;
	my $id = DoFn("select ausgabe from ausgabe where id = $idi");
	fehler "Datensatz nicht gefunden" unless defined $id;
	my $idk = get_descr("ausgabe",$id);
	$kn = strip_kn($kn)."Ausgabe_$id:$idk";

	while(1) {
		my $act = line_in "$kn >",4; last if $act eq "";
		if($act eq '?') {
			print <<'END';
l   Befehl ausgeben
e   Befehl editieren
del Befehl löschen
END
			next;
		}
		if($act eq "H") { log_view($kn,"ausgabe","ausgabe",$id); next; }
		if($act eq 'e') {
			my $odata = DoFn("select befehl from ausgabe where id = $idi");
			$odata = "-" unless defined $odata;
			my $data = line_in("Befehl:",0,$odata);
			next unless content $data;

			log_update("ausgabe","ausgabe",$id,undef,"befehl",undef,$odata);
			Do("update ausgabe set befehl = ${\qquote $data,1} where id = $idi");
			next;
		}
		if($act eq 'l') {
			line_printer;
			DoSelect {
				my($idx,$cmd,$timestamp) = @_;
	    			print $Db::pr_fh "ID       : $idi\n";
					print $Db::pr_fh "Timestamp: ".isotime($timestamp)."\n";
					print $Db::pr_fh "Ausgabe  : $idx:".get_descr("ausgabe",$idx)."\n";
	    			print $Db::pr_fh "Befehl   : $cmd\n" if defined $cmd and $cmd ne "";
			} "select ausgabe,befehl,timestamp from ausgabe where id = $idi"
				or problem "...keine Daten.";
			next;
		}
		if($act eq 'del') {
			log_update("ausgabe","ausgabe",$id,undef,"-");
			Do("delete from ausgabe where id = $idi");
			return undef;
		}
		print "Aktion '$act' kenne ich nicht. Liste mit '?'.\n";
		next; fehler: report_fehler(4);
	}
}
1;

