Variablen in Druckvorlagen optional unformatiert ausgeben lassen
authorMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 2 Nov 2011 17:10:15 +0000 (18:10 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 2 Nov 2011 17:10:15 +0000 (18:10 +0100)
SL/Template/Simple.pm
bin/mozilla/io.pl

index 9960908..d29ec8f 100644 (file)
@@ -125,10 +125,12 @@ sub substitute_vars {
 
   while ($text =~ /$self->{substitute_vars_re}/) {
     my ($tag_pos, $tag_len) = ($-[0], $+[0] - $-[0]);
-    my ($var, @options)     = split(/\s+/, $1);
+    my ($var, @option_list) = split(/\s+/, $1);
+    my %options             = map { ($_ => 1) } @option_list;
 
     my $value               = $self->_get_loop_variable($var, 0, @indices);
-    $value                  = $self->format_string($value) unless (grep(/^NOESCAPE$/, @options));
+    $value                  = $form->parse_amount({ numberformat => $::myconfig{output_numberformat} || $::myconfig{numberformat} }, $value) if     $options{NOFORMAT};
+    $value                  = $self->format_string($value)                                                                                   unless $options{NOESCAPE};
 
     substr($text, $tag_pos, $tag_len, $value);
   }
index 2d23c76..62cdfdd 100644 (file)
@@ -1341,6 +1341,10 @@ sub print_form {
     $output_longdates = 1;
   }
 
+  # Store the output number format so that the template modules know
+  # how to parse the amounts back if requested.
+  $myconfig{output_numberformat} = $output_numberformat;
+
   ($form->{employee}) = split /--/, $form->{employee};
 
   # create the form variables