Revision c4a8cd8c
Von Moritz Bunkus vor mehr als 4 Jahren hinzugefügt
bin/mozilla/oe.pl | ||
---|---|---|
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)) {
|
Auch abrufbar als: Unified diff
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.