X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FTemplate%2FPlugin%2FLxERP.pm;h=40bf195f205f2569b422ed92448fcf621e6c3f7b;hb=c6ab4d998bb67369edaa4141a89d1c06c42a7e15;hp=ed2287b429833104b67dc84fa4104f9289b91337;hpb=d1e4ee7951b4ea788fcfd6bf882865f1b2724966;p=kivitendo-erp.git diff --git a/SL/Template/Plugin/LxERP.pm b/SL/Template/Plugin/LxERP.pm index ed2287b42..40bf195f2 100644 --- a/SL/Template/Plugin/LxERP.pm +++ b/SL/Template/Plugin/LxERP.pm @@ -3,6 +3,12 @@ package SL::Template::Plugin::LxERP; use base qw( Template::Plugin ); use Template::Plugin; +use List::Util qw(min); + +use SL::AM; + +use strict; + sub new { my $class = shift; my $context = shift; @@ -11,15 +17,33 @@ sub new { } sub format_amount { + my ($self, $var, $places, $skip_zero, $dash) = @_; + + return $main::form->format_amount(\%main::myconfig, $var * 1, $places, $dash) unless $skip_zero && $var == 0; + return ''; +} + +sub round_amount { my ($self, $var, $places, $skip_zero) = @_; - return $main::form->format_amount(\%main::myconfig, $var * 1, $places) unless $skip_zero && $var == 0; + return $main::form->round_amount($var * 1, $places) unless $skip_zero && $var == 0; return ''; } +sub format_amount_units { + my ($self, $amount, $amount_unit, $part_unit) = @_; + + return $main::form->format_amount_units('amount' => $amount, + 'part_unit' => $part_unit, + 'amount_unit' => $amount_unit, + 'conv_units' => 'convertible_not_smaller'); +} + sub format_percent { my ($self, $var, $places, $skip_zero) = @_; + $places ||= 2; + return $self->format_amount($var * 100, $places, $skip_zero); } @@ -32,5 +56,61 @@ sub escape_br { return $var; } -1; +sub format_string { + my $self = shift; + my $string = shift; + + return $main::form->format_string($string, @_); +} + +sub numtextrows { + my $self = shift; + + return $main::form->numtextrows(@_); +} +sub _turn90_word { + my $self = shift; + my $word = shift || ""; + + return join '
', map { $main::locale->quote_special_chars('HTML', $_) } split(m//, $word); +} + +sub turn90 { + my $self = shift; + my $word = shift; + my $args = shift; + + $args ||= { }; + $word ||= ""; + + $args->{split_by} ||= 'chars'; + $args->{class} = " class=\"$args->{class}\"" if ($args->{class}); + + if ($args->{split_by} eq 'words') { + my @words = split m/\s+/, $word; + + if (1 >= scalar @words) { + return $self->_turn90_word($words[0]); + } + + return qq|| . join('', map { '' } @words) . qq|
{class} . '>' . $self->_turn90_word($_) . '
|; + + } else { + return $self->_turn90_word($word); + } +} + +sub abs { + my $self = shift; + my $var = shift; + + return $var < 0 ? $var * -1 : $var; +} + +sub t8 { + my ($self, $text, @args) = @_; + return $::locale->text($text, @args) || $text; +} + +1;