use utf8;
use warnings; no warnings "redefine";
use strict;
use Loader qw(line_in log_update update_arechnung check_perm);
use Dbase::Help qw(Do DoFn);
use Dbase::Globals qw(find_descr content rund);
use Fehler qw(problem);

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

	return undef unless check_perm("verwaltung");

	my($orabt,$obetr) = DoFn("select mrabatt,betrag from buchung where rnr=$rech and seq=$seq");
	my $betr = $obetr;
	$orabt=1000 if not $orabt;

	content ( my $rabt = line_in "Rabatt-%: " ) or return undef;
	return undef unless defined $rabt;
	if($rabt eq "-") {
		$rabt = "NULL";
	} else {
		return problem "'$rabt' ist keine Zahl.\n" if $rabt !~ /^-?\d+(?:\.\d+)?$/;
		$rabt = rund(1000-10*$rabt);
		$betr = rund($obetr * $rabt/$orabt) if $orabt and $rabt and $obetr;
	}
	$betr="NULL" unless defined $betr;
	
	log_update("buchung","rnr",$rech,"seq",$seq,undef,"mrabatt","betrag",undef,$orabt,$obetr);
	Do("update buchung set mrabatt=$rabt, betrag=$betr where rnr=$rech and seq=$seq");
	update_arechnung($rech);
}
1;
