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

use Loader qw(line_printer);
use Dbase::Globals qw(find_descr get_descr name_kunde timerange);
use Dbase::Help qw(DoSelect);
use Fehler qw(problem);
use noris::Table;
use noris::Ticket::API qw(get_pooled_connection);

use constant COL2HEAD => {
	created       => 'angelegt',
	kunde         => 'Kunde',
	status        => 'Status',
	ticket_number => 'Nummer',
	title         => 'Titel',
};

sub list_tickets_kurz($;$$) {
	my ( $id, $kn, $status_list ) = @_;

	my %query;
	$query{kunde} = name_kunde($id) if $id;
	$query{status} = [ in => @$status_list ] if $status_list;

	my @cols = qw(ticket_number title created);
	push @cols, 'kunde' unless $id;
	push @cols, 'status' unless $status_list && @$status_list == 1;

	line_printer;

	my $select_result =
	  get_pooled_connection()
	  ->select_tickets( query => \%query, attributes => \@cols );

	my @tickets;
	$select_result->foreach_row(
		sub {
			my %record;
			@record{@cols} = @_;
			push @tickets, \%record;
		}
	);
	if (@tickets) {
		my $table = noris::Table->new->titel( @{ +COL2HEAD }{@cols} );
		$table->daten( @{$_}{@cols} ) for sort {
			$a->{created} cmp $b->{created}
			  || $a->{ticket_number} cmp $b->{ticket_number}
		} @tickets;
		$table->drucken;
	}
	else { print "(leer)\n" }

	scalar @tickets;
}

1;
