use utf8;
use warnings; no warnings "redefine";
use strict;
use Loader qw(line_in log_update line_printer);
use Dbase::Help qw(Do DoFn DoSelect qquote);

# Flags:
# 1 nur nicht-obsolete Tarife
# 2 aktuell ungenutzte Tarife
# 4 Tarifnamen(Klassen) ohne Verlängerungszeitraum
# 8 Tarifnamen(Klassen) ohne Tarif drin
# 16 aktuell genutzte Tarife
# 32 nur obsolete Tarife

sub list_tarife_kurz($;$$) {
	my($kid,$kn,$flags) = @_;
	$flags=0 unless defined $flags;

	my $sterntarif = DoFn("select id from tarifname where name='*'") || 0;
	my $sel;
	if($kid) {
		$sel="and tarifklasse.kunde=$kid"
	} elsif(defined $kid) {
		$sel="and tarifklasse.kunde is null"
	}
	$sel .= " and tarifklasse.obsolet='n'" if $flags&1;
	$sel .= " and tarifklasse.tarifname not in (select tarifkunde.tarifname from tarifkunde,kunde where tarifkunde.kunde=kunde.id and (tarifkunde.ende is null or tarifkunde.ende > UNIX_TIMESTAMP(NOW())) and (kunde.ende is null or kunde.ende > UNIX_TIMESTAMP(NOW())) )" if $flags&2;
	$sel .= " and tarifklasse.verlaengern is null" if $flags&4;
	$sel .= " and tarifklasse.id not in (select klasse from tarif)" if $flags&8;
	$sel .= " and ( tarifklasse.tarifname in (select tarifkunde.tarifname from tarifkunde,kunde where tarifkunde.kunde=kunde.id and (tarifkunde.ende is null or tarifkunde.ende > UNIX_TIMESTAMP(NOW())) and (kunde.ende is null or kunde.ende > UNIX_TIMESTAMP(NOW())) ) or tarifklasse.tarifname = $sterntarif )" if $flags&16;
	$sel .= " and tarifklasse.obsolet!='n'" if $flags&32;

	line_printer;
	my $len = 0;
	my $res = DoSelect {
		my($tnid,$tn) = @_;
		if(length($tn)+$len > 70) {
			print $Db::pr_fh "\n" if $len;
			$len=0;
		} else {
			print $Db::pr_fh "  " if $len;
			$len += 2;
		}
		print $Db::pr_fh "$tnid:$tn";
		$len += length("$tnid:$tn");
	} "select distinct tarifklasse.id,tarifname.name from tarifname,tarifklasse where tarifklasse.tarifname=tarifname.id $sel order by tarifname.name"
		or print $Db::pr_fh "(keine Daten)";
	print $Db::pr_fh "\n" if $len;

}
1;
