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

use Fehler qw(problem);
use Loader qw(line_printer);
use Dbase::Help qw(isotime DoSelect);
use Dbase::Globals qw(mpersinfo name_kunde name_dienst iso_intervall
	flag_names);

# Flag
# 1 Anzahl/Dienste mit auflisten
sub list_tarifklasse($;$$) {
	my($id,$kn,$flag) = @_; 
	$flag=0 unless defined $flag;
	line_printer;

	DoSelect {
		my($timestamp,$tnid,$name,$kunde,$klassen,$obs,$laufz,$verl,$knd) = @_;

		print $Db::pr_fh "ID         : $id\n";
		print $Db::pr_fh "Timestamp  : ".isotime($timestamp)."\n";
		print $Db::pr_fh "Name       : #$tnid $name\n";
		print $Db::pr_fh "Kunde      : ".((defined $kunde) ? ("#$kunde ".name_kunde($kunde)) : "- (alle)")."\n";

		print $Db::pr_fh "Laufzeit   : $laufz Monate (ab Abschluss)\n" if $laufz;
		if(defined $verl) {
			if($verl) {
				if($laufz) {
					print $Db::pr_fh "verlängern : $verl Monate (danach)\n";
				} else {
					print $Db::pr_fh "verlängern : $verl Monate\n";
				}
				print $Db::pr_fh "Frist      : $knd Tage\n" if defined $knd;
			} else {
				print $Db::pr_fh "verlängern : nein\n";
			}
		} elsif($laufz) {
			print $Db::pr_fh "verlängern : <nicht eingetragen>\n";
		}
		print $Db::pr_fh "Klassen    : ".flag_names($klassen,"tarifklasse")."\n";
		print $Db::pr_fh "Achtung    : Der Tarif ist als Altlast markiert!\n" if $obs eq "j";
		if($flag&1) {
			DoSelect {
				my($dien,$num) = @_;
				$dien = name_dienst $dien;
				printf $Db::pr_fh "Tarife  %03d: $dien\n";
			} "select dienst,count(*) from tarif where klasse=$id group by dienst"
			or 
				print $Db::pr_fh "Tarife     : - keine\n";
		}
	} <<_
	SELECT tarifklasse.timestamp,
	       tarifname.id,
	       tarifname.name,
	       tarifklasse.kunde,
	       tarifklasse.klassen,
	       tarifklasse.obsolet,
	       tarifklasse.laufzeit,
	       tarifklasse.verlaengern,
	       tarifklasse.kuendigung
	FROM   tarifklasse, tarifname
	WHERE  tarifklasse.id = $id AND tarifname.id = tarifklasse.tarifname
_
		or problem "Tarifklasse '$id' unbekannt";
}

1;
