Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c4a8cd8c

Von Moritz Bunkus vor mehr als 4 Jahren hinzugefügt

  • ID c4a8cd8ca761b16e89fa7ed5616d0e3fd888b82f
  • Vorgänger 2f105e47
  • Nachfolger becf01a3

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.

Unterschiede anzeigen:

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