X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FPresenter%2FText.pm;h=637bff6b652f7b8188153aafff4a35d5bb50dbd1;hb=3c6e133b2e272859f39c7541c8b10eb567831989;hp=bcae2f96f4ceb5fa0f2678f410543f38b39bca90;hpb=4f15b8f0ee316711afb118db91f057eec5924d43;p=kivitendo-erp.git diff --git a/SL/Presenter/Text.pm b/SL/Presenter/Text.pm index bcae2f96f..637bff6b6 100644 --- a/SL/Presenter/Text.pm +++ b/SL/Presenter/Text.pm @@ -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 '

' . $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 + +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 is trueish then C<---> is returned +instead of the normal formatting if C<$value> equals 0. + =item C Returns the C<$text> truncated after a certain number of