use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Help qw(DoSelect isotime);
use Dbase::Globals qw(name_kunde get_descr content);
use Fehler qw(problem);
use Loader qw(line_printer);

sub list_buchung($$;$) {
	my($rech,$seq,$kn) = @_;
	line_printer;

	DoSelect {
	    my($timestamp,$beginn,$ende,$betrag,$inhalt,$konto,$kunde,$mtext,$meinheit,$manzahl,$mrabatt) = @_;
	    my $ebetrag = $betrag;
		$ebetrag = $ebetrag*1000/$mrabatt if $mrabatt;
		$ebetrag = $ebetrag*1000/$manzahl if $manzahl;

	    print $Db::pr_fh "ID       : $rech.$seq\n";
		print $Db::pr_fh "Timestamp: ".isotime($timestamp)."\n";
	    print $Db::pr_fh "Kunde    : #$kunde ".name_kunde($kunde)."\n" if $kunde;
	    print $Db::pr_fh "Inhalt   : $inhalt\n" if content $inhalt;
	    print $Db::pr_fh "Konto    : $konto\n" if $konto;
	    print $Db::pr_fh "Beginn   : ".isotime($beginn)."\n" if $beginn;
	    print $Db::pr_fh "Ende     : ".isotime($ende)."\n" if $ende;
	    print $Db::pr_fh "Anzahl   : ".($manzahl/1000)."\n" if $manzahl;
	    print $Db::pr_fh "Einheit  : ".get_descr("einheit",$meinheit)."\n" if $meinheit;
	    printf$Db::pr_fh "EBetrag  : %.2f\n",$ebetrag/100 if $ebetrag != $betrag;
	    printf$Db::pr_fh "GBetrag  : %.2f\n",$betrag/100;
	    print $Db::pr_fh "Rabatt   : ".((1000-$mrabatt)/10)." %\n" if defined $mrabatt and $mrabatt != 1000;
	    print $Db::pr_fh "Text     : ".join("\n         : ", split(/\|/,$mtext)). "\n" if $mtext;
	} "select timestamp,beginn,ende,betrag,buchtext,konto,kunde,mtext,meinheit,manzahl,mrabatt from buchung where rnr = $rech and seq = $seq"
		or problem "Buchung '$rech/$seq' unbekannt";
}
1;
