From: Moritz Bunkus Date: Thu, 3 Dec 2020 10:05:10 +0000 (+0100) Subject: Order-Controller: Umwandlung: Berechnung bereits gelieferter/abgerechneter Mengen... X-Git-Tag: kivitendo-mebil_0.1-0~9^2~579 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;ds=sidebyside;h=c4a8cd8ca761b16e89fa7ed5616d0e3fd888b82f;hp=-c;p=kivitendo-erp.git Order-Controller: Umwandlung: Berechnung bereits gelieferter/abgerechneter Mengen gefixt In $::form steht der Wert für die gelieferte Menge in `ship_$row`. Dieser Wert wird überall im Programm als unformatiert angenommen, nur bisher in der Methode nicht, die berechnet, wie viel von jeder Position bereits abgerechnet/geliefert war. Ergebnis war, dass ein unformatierter Wert noch mal durch `$::form->parse_amount` gejagt wurde. Für einen Wert mit Nachkommaanteil ist das dann problematisch. Wurden bereits z.B. 123,45 geliefert, so steht in `$::form->{ship_1}` der Wert `123.45`, einmal durch `parse_amount` ergibt `12345`, was um einen Faktor 100 zu viel ist. --- c4a8cd8ca761b16e89fa7ed5616d0e3fd888b82f diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl index 555822a2f..d2cceeaf3 100644 --- a/bin/mozilla/oe.pl +++ b/bin/mozilla/oe.pl @@ -2246,7 +2246,7 @@ sub _remove_full_delivered_rows { next unless $::form->{"id_$row"}; my $base_factor = SL::DB::Manager::Unit->find_by(name => $::form->{"unit_$row"})->base_factor; my $base_qty = $::form->parse_amount(\%::myconfig, $::form->{"qty_$row"}) * $base_factor; - my $ship_qty = $::form->parse_amount(\%::myconfig, $::form->{"ship_$row"}) * $base_factor; + my $ship_qty = $::form->{"ship_$row"} * $base_factor; #$main::lxdebug->message(LXDebug->DEBUG2(),"shipto=".$ship_qty." qty=".$base_qty); if (!$ship_qty || ($ship_qty < $base_qty)) {