use utf8;
use warnings; no warnings "redefine";
use strict;
use Loader qw(log_update check_perm);
use Dbase::Help qw(Do DoFn);
use Dbase::Globals qw(find_descr bignum);
use Fehler qw(fehler);

sub delete_arechnung($;$) {
	my($id,$kn) = @_;

	return undef unless check_perm("rechnung");

    my $rflags = DoFn("select flags from rechnungen where rnr=$id");

	fehler "Diese Rechnung ist bereits gebucht!",$id
		if $rflags&(bignum(1)<<find_descr("rstatus","gebucht"));

	DoTrans {
		log_update("rechnungen","kunde",DoFn("select kunde from rechnungen where rnr=$id"),undef,"rnr","-",undef,$id);
		Do("delete from buchung where rnr = $id");
		Do("delete nextrech from nextrech,knextrech where nextrech.knextrech=knextrech.id and knextrech.rnr = $id");
		Do("delete from knextrech where rnr = $id");
		Do("delete from rechnungen where rnr = $id");
	};
}
1;
