Neues Feature: Wenn die Anzahl Dezimalstellen bei format_amount() negativ ist, dann...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 12 Feb 2007 09:41:22 +0000 (09:41 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 12 Feb 2007 09:41:22 +0000 (09:41 +0000)
SL/Form.pm

index df17c4b..44d857c 100644 (file)
@@ -653,7 +653,18 @@ sub format_amount {
   }
   my $neg = ($amount =~ s/-//);
 
-  $amount = $self->round_amount($amount, $places) if ($places =~ /\d/);
+  if (defined($places)) {
+    if ($places < 0) {
+      $amount *= 1;
+      $places *= -1;
+
+      my ($actual_places) = ($amount =~ /\.(\d+)/);
+      $actual_places = length($actual_places);
+      $places = $actual_places > $places ? $actual_places : $places;
+    }
+
+    $amount = $self->round_amount($amount, $places);
+  }
 
   my @d = map { s/\d//g; reverse split // } my $tmp = $myconfig->{numberformat}; # get delim chars
   my @p = split(/\./, $amount); # split amount at decimal point