=head1 list_zustands

Listet einen Teil einer Zustandstabelle auf.

=head2 Argumente

=over 4

=item $typ

Name der Tabelle (ohne "zustand" hintendran).

=item $kn

Standard-Prompt.

Wird hier ignoriert.

=back

=head2 Ergebnis

Nix.

=cut

use utf8;
use warnings; no warnings "redefine";
use strict;
use Loader qw(line_printer);
use Dbase::Help qw(DoSelect);
use Dbase::Globals qw(flag_names get_descr);

sub list_zustands($$;$$$) {
	my($typ,$von,$flag,$kn,$tkn) = @_;
	$flag=0 unless defined $flag;
	my %dienst;
	my $hdr;

	line_printer;
	my $vn=($flag&1) ? "von  " : "Event";

	my $res = DoSelect {
		my($erkannt,$rs,$nach,$tstatus,$status,$aktionen) = @_;
		my $vtext;

		print $Db::pr_fh <<END unless $hdr++;
R $vn             nach             TStatus  Flags      Text
END

		goto out unless 
		printf $Db::pr_fh "%1s %-16s  %-16s %-8s %-10s %-22.22s\n",
			$rs,get_descr("${typ}status",$erkannt), $nach?get_descr("${typ}status",$nach):"-", $tstatus?get_descr("tickets",$tstatus):"-", scalar flag_names($aktionen,"${typ}aktion"), (defined $status)?$status:"";
	} "select ".(($flag&1)?"von":"erkannt").",reseller,nach,ticketstatus,statusinfo,aktionen from ${typ}zustand where ".(($flag&1)?"erkannt":"von")." = $von order by ".(($flag&1)?"von":"erkannt")
		or print "(leer)\n";
out:
	$res;
}
1;
