Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c4a8cd8c

Von Moritz Bunkus vor etwa 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
2246 2246
    next unless $::form->{"id_$row"};
2247 2247
    my $base_factor = SL::DB::Manager::Unit->find_by(name => $::form->{"unit_$row"})->base_factor;
2248 2248
    my $base_qty = $::form->parse_amount(\%::myconfig, $::form->{"qty_$row"}) *  $base_factor;
2249
    my $ship_qty = $::form->parse_amount(\%::myconfig, $::form->{"ship_$row"}) *  $base_factor;
2249
    my $ship_qty = $::form->{"ship_$row"} *  $base_factor;
2250 2250
    #$main::lxdebug->message(LXDebug->DEBUG2(),"shipto=".$ship_qty." qty=".$base_qty);
2251 2251

  
2252 2252
    if (!$ship_qty || ($ship_qty < $base_qty)) {

Auch abrufbar als: Unified diff