use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Globals qw(beendet);
use Dbase::Help qw(DoFn DoSelect isodate DoTime);
use Loader qw(line_printer);

sub list_rechnungsdatum($;$$) {
	my($id,$kn,$tid) = @_;
	my $next = DoFn("select zuletzt from kunde where id = $id");
	$next = "-noch keine-" if $next eq "";
	line_printer;

	print $Db::pr_fh "Kunde #$id: $next; Tarife:\n";
	my $time = DoTime;

	DoSelect {
		my($anf,$end,$wann) = @_;

		goto out unless
		print $Db::pr_fh "R:", svdaterange($anf,$end)." am ".isodate($wann)."\n";
	} "select knextrech.beginn,knextrech.ende,rechnungen.datum from knextrech,rechnungen where knextrech.kunde = $id and rechnungen.rnr=knextrech.rnr order by knextrech.beginn";
	my $res = DoSelect {
		my($tid,$tar,$next,$ende) = @_;
		return if not $tid and $ende > 0 and $ende < 10;
		if($next == 0) {
			$next = "noch nicht berechnet";
		} else {
			$next = isodate $next;
		}
		$ende = !$tid && beendet($ende);
		print $Db::pr_fh "T$tid: $next $tar$ende\n";

		DoSelect {
			my($anf,$end,$wann) = @_;

			goto out unless
			print $Db::pr_fh " "x(length($tid)-3),svdaterange($anf,$end)." am ".isodate($wann)."\n";
		} "select nextrech.beginn,nextrech.ende,rechnungen.datum from nextrech,knextrech,rechnungen where nextrech.tarifkunde=$tid and nextrech.knextrech=knextrech.id and knextrech.rnr=rechnungen.rnr order by nextrech.beginn";
	} "select tarifkunde.id,tarifname.name,tarifkunde.nextrech,tarifkunde.ende from tarifkunde,tarifname where tarifkunde.tarifname=tarifname.id and ".($tid ? "id = $tid" : "tarifkunde.kunde = $id and tarifkunde.anzahl > 0")." order by tarifkunde.id"
		or print "(leer)\n";

out:
	$res;
}
1;
