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 rund);
use Fehler qw(problem);

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

	return undef unless check_perm("verwaltung");

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

	my $anz = line_in "Anzahl: ";
	return undef unless defined $anz;
	if($anz eq "-") {
		$anz = "NULL";
	} else {
		$anz=1 if $anz eq "";
		return problem "'$anz' ist keine Zahl.\n" if $anz !~ /^-?\d+(?:\.\d+)?$/;

		$anz = rund($anz*1000);
		$betr = rund($betr * $anz/$oanz) if $oanz and $anz and $obetr;
	}
	$betr="NULL" unless defined $betr;
	
	log_update("buchung","rnr",$rech,"seq",$seq,undef,"manzahl","betrag",undef,$oanz,$obetr);
	Do("update buchung set manzahl=$anz, betrag=$betr where rnr=$rech and seq=$seq");
	update_arechnung($rech);
}
1;
