use utf8;
use warnings; no warnings "redefine";
use strict;
use Cf qw($MWST);
use Loader qw(log_update);
use Dbase::Globals qw(find_descr rund);
use Dbase::Help qw(DoFn Do);

my $flag_keine_ust = find_descr kunde => 'keine_ust', 1;

sub update_arechnung($;$) {
	my($rech,$kn) = @_;
	my $pr = DoFn("select sum(betrag) from buchung where rnr = $rech");
	my($kunde, $opr) = DoFn("select kunde,betrag from rechnungen where rnr = $rech");
	if($pr != $opr) {
		my $st = DoFn("SELECT 1 FROM kunde WHERE id=$kunde AND flags & (1<<$flag_keine_ust)") ? 0 : rund($pr*$MWST);
		log_update("rechnungen","rnr",$rech,undef,"betrag","steuer",undef,
			DoFn("select betrag,steuer from rechnungen where rnr=$rech"));
		Do("update rechnungen set betrag=$pr, steuer=$st where rnr=$rech");
	}
	$rech;
}

1;
