Artikelstammdatenmaske: bei "Erneuern" Fließkommazahlen exakt einmal parsen
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 29 Jul 2013 14:19:50 +0000 (16:19 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 29 Jul 2013 14:19:50 +0000 (16:19 +0200)
Fixt #2341.

bin/mozilla/ic.pl
bin/mozilla/io.pl

index cfe6451..267c427 100644 (file)
@@ -1773,14 +1773,18 @@ sub update {
 
   # parse pricegroups. and no, don't rely on check_form for this...
   map { $form->{"price_$_"} = $form->parse_amount(\%myconfig, $form->{"price_$_"}) } 1 .. $form->{price_rows};
-  $form->{sellprice} = $form->parse_amount(\%myconfig, $form->{sellprice});
+  $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) for qw(sellprice listprice ve gv);
+
+  if ($form->{item} eq 'part') {
+    $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) for qw(weight rop);
+  }
 
   # same for makemodel lastcosts
   # but parse_amount not necessary for assembly component lastcosts
   unless ($form->{item} eq "assembly") {
     map { $form->{"lastcost_$_"} = $form->parse_amount(\%myconfig, $form->{"lastcost_$_"}) } 1 .. $form->{"makemodel_rows"};
-  };
-  $form->{listprice} = $form->parse_amount(\%myconfig, $form->{listprice});
+    $form->{lastcost} = $form->parse_amount(\%myconfig, $form->{lastcost});
+  }
 
   if ($form->{item} eq "assembly") {
     my $i = $form->{assembly_rows};
index 0ca15d4..8f2882e 100644 (file)
@@ -669,11 +669,7 @@ sub check_form {
   my $count = 0;
 
   # remove any makes or model rows
-  if ($form->{item} eq 'part') {
-    map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
-      qw(listprice sellprice lastcost weight rop);
-
-  } elsif ($form->{item} eq 'assembly') {
+  if ($form->{item} eq 'assembly') {
 
     # fuer assemblies auskommentiert. seiteneffekte? ;-) wird die woanders benoetigt?
     #$form->{sellprice} = 0;
@@ -706,10 +702,7 @@ sub check_form {
     $form->redo_rows(\@flds, \@a, $count, $form->{assembly_rows});
     $form->{assembly_rows} = $count;
 
-  } elsif ($form->{item} eq 'service') {
-    map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(listprice sellprice lastcost);
-
-  } else {
+  } elsif ($form->{item} !~ m{^(?:part|service)$}) {
     remove_emptied_rows(1);
 
     $form->{creditremaining} -= &invoicetotal;