use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Globals qw(timerange name_kunde kpersinfo);
use Dbase::Help qw(DoSelect in_list);
use noris::Table;

# Flag 1: auch beendete Leitungen

sub list_leitungen(;$$@) {
	my ( $id, $flag, @where ) = @_;
	$flag = 0 unless defined $flag;

    my $mehrere_kunden;
    if ( ref $id ) {
        push @where, in_list( kunde => '', @$id );
        $mehrere_kunden = 1;
    }
    elsif ( defined $id ) {
        push @where, "kunde = $id";
    }
    else {
        $mehrere_kunden = 1;
    }
	push @where, '( ende IS NULL or ende > UNIX_TIMESTAMP(NOW()) )'
	  unless $flag & 1;

	my $t = noris::Table->new()->titel(qw(ID Kunde Name Carrier Zeitraum));
	$t->skip(2) unless $mehrere_kunden;
	$t->skip(5) unless $flag & 1;
	$t->ausrichten(right => 1);

	DoSelect {
		my ( $id, $kunde, $name, $carrier, $name_carrier, $beginn, $ende ) = @_;
		$kunde = name_kunde($kunde) if $mehrere_kunden;
		my $timerange = timerange( $beginn, $ende );
		$name_carrier = "?" unless defined $name_carrier;
		if($carrier) {
			$carrier = kpersinfo($carrier);
			$name_carrier .= " @ $carrier";
		}
		$t->daten($id,$kunde,$name, $name_carrier,  $timerange);
	}
	'SELECT id, kunde, name, carrier, name_carrier, beginn, ende FROM leitung'
	  . ( @where > 0 && ' WHERE ' . join ' AND ', @where )
	  . ' ORDER BY name, ende';
	$t->drucken();
}

1;
