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

use Fehler qw(problem);
use Loader qw(line_printer);
use Dbase::Globals qw(is_dienst get_descr name_kunde timerange
	name_dienst);
use Dbase::Help qw(DoSelect isotime);

sub list_tarifacct($$;$) {
	my($tid,$id,$kn) = @_;
	my $ksel = $id ? "tarifacct.kunde=$id" : "tarifacct.kunde is null";
	line_printer;

	DoSelect {
		my($timestamp,$name,$dienst,$ziel,$quelle,$faktor,$direkt,$beginn,$ende,$ddienst,$dkunde) = @_;
		my($dien,$zz);
		if( defined $dienst ) {
			$dien = name_dienst $dienst;
			if($ziel > 0) {
				if(is_dienst($dien,"nic")) {
					$zz = get_descr('acctinfo',$ziel);
				} else {
					$zz = get_descr($dien,$ziel);
				}
				$zz = get_descr('ziel',$ziel) if not defined $zz;
			}
		} elsif ( defined $ziel ) {
			$zz = get_descr( ziel => $ziel );
		}
		if($direkt ne "") {
			my $dir = get_descr('direkt',"'$direkt'");
			$direkt = $dir if $dir ne "";
		}
		
		print $Db::pr_fh "ID        : $id-$tid\n";
		print $Db::pr_fh "Timestamp : ".isotime($timestamp)."\n";
		print $Db::pr_fh "Tarif     : $name\n" if defined $name;
		print $Db::pr_fh "Dienst    : $dien\n" if defined $dienst;
		print $Db::pr_fh "Ziel      : $zz\n" if defined $ziel;
		print $Db::pr_fh "Quelle    : ".get_descr("quelle",$quelle)."\n" if defined $quelle;
		print $Db::pr_fh "Faktor    : $faktor\n" if defined $faktor;
		print $Db::pr_fh "Art       : $direkt\n" if defined $direkt;
		print $Db::pr_fh "Zieldienst: ${\name_dienst $ddienst}\n" if defined $ddienst;
		print $Db::pr_fh "Zielkunde : ".name_kunde($dkunde)."\n" if defined $dkunde;
		print $Db::pr_fh "Geltung   : ".timerange($beginn,$ende)."\n" if $beginn or $ende;
	} "select tarifacct.timestamp,tarifname.name, tarifacct.dienst,tarifacct.ziel,tarifacct.quelle,tarifacct.faktor,tarifacct.direkt,tarifacct.beginn,tarifacct.ende,tarifacct.ddienst,tarifacct.dkunde from tarifacct left join tarifname on tarifname.id = tarifacct.tarifname where tarifacct.id = $tid and $ksel"
		or problem "tarifacct $tid/$id unbekannt";
}

1;
