Presenter: Funktion format_man_days()
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 11 Mar 2013 10:27:46 +0000 (11:27 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 11 Mar 2013 11:57:04 +0000 (12:57 +0100)
SL/Presenter/Text.pm
locale/de/all

index bcae2f9..637bff6 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 use parent qw(Exporter);
 
 use Exporter qw(import);
-our @EXPORT = qw(simple_format truncate);
+our @EXPORT = qw(format_man_days simple_format truncate);
 
 use Carp;
 
@@ -32,6 +32,21 @@ sub simple_format {
   return '<p>' . $text;
 }
 
+sub format_man_days {
+  my ($self, $value, %params) = @_;
+
+  return '---' if $params{skip_zero} && !$value;
+
+  return $self->escape($::locale->text('#1 h', $::form->format_amount(\%::myconfig, $value, 2))) if 8.0 > $value;
+
+  $value     /= 8.0;
+  my $output  = $::locale->text('#1 MD', int($value));
+  my $rest    = ($value - int($value)) * 8.0;
+  $output    .= ' ' . $::locale->text('#1 h', $::form->format_amount(\%::myconfig, $rest)) if $rest > 0.0;
+
+  return $self->escape($output);
+}
+
 1;
 __END__
 
@@ -53,6 +68,15 @@ SL::Presenter::Text - Presenter module for assorted text helpers
 
 =over 4
 
+=item C<format_man_days $value, [%params]>
+
+C<$value> is interpreted to mean a number of hours (for C<$value> < 8)
+/ man days (if >= 8). Returns a translated, human-readable version of
+it, e.g. C<2 PT 2 h> for the value C<18> and German.
+
+If the parameter C<skip_zero> is trueish then C<---> is returned
+instead of the normal formatting if C<$value> equals 0.
+
 =item C<truncate $text, [%params]>
 
 Returns the C<$text> truncated after a certain number of
index cc83308..ded0869 100644 (file)
@@ -14,6 +14,8 @@ $self->{texts} = {
   ' Part Number missing!'       => ' Artikelnummer fehlt!',
   ' missing!'                   => ' fehlt!',
   '#1 (custom variable)'        => '#1 (benutzerdefinierte Variable)',
+  '#1 MD'                       => '#1 PT',
+  '#1 h'                        => '#1 h',
   '#1 of #2 importable objects were imported.' => '#1 von #2 importierbaren Objekten wurden importiert.',
   '#1 prices were updated.'     => '#1 Preise wurden aktualisiert.',
   '* there are restrictions for the perpetual method, look at chapter "Bemerkungen zu Bestandsmethode"  in' => ' für die Bestandsmethode gibt es Einschränkungen, siehe Kapitel "Bemerkungen zu Bestandsmethode"  in',