X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FTemplate%2FPlugin%2FLxERP.pm;h=66424fc6332a7b0d3ccc52c2c313aa43da497d1d;hb=1d99e3e9537f75342a9f20f1e89a3e8cb4bb5444;hp=a6bd06a80ab2e5aa326c9e747464b1980f47611c;hpb=8c7e44938a661e035f62840e1e177353240ace5d;p=kivitendo-erp.git diff --git a/SL/Template/Plugin/LxERP.pm b/SL/Template/Plugin/LxERP.pm index a6bd06a80..66424fc63 100644 --- a/SL/Template/Plugin/LxERP.pm +++ b/SL/Template/Plugin/LxERP.pm @@ -1,12 +1,15 @@ package SL::Template::Plugin::LxERP; use base qw( Template::Plugin ); +use Scalar::Util qw(); use Template::Plugin; use List::Util qw(min); use SL::AM; +use strict; + sub new { my $class = shift; my $context = shift; @@ -14,25 +17,35 @@ sub new { bless { }, $class; } +sub is_rdbo { + my ($self, $obj, $wanted_class) = @_; + + $wanted_class = !$wanted_class ? 'Rose::DB::Object' + : $wanted_class =~ m{::} ? $wanted_class + : "SL::DB::${wanted_class}"; + + return Scalar::Util::blessed($obj) ? $obj->isa($wanted_class) : 0; +} + sub format_amount { - my ($self, $var, $places, $skip_zero) = @_; + my ($self, $var, $places, $skip_zero, $dash) = @_; - return $main::form->format_amount(\%main::myconfig, $var * 1, $places) unless $skip_zero && $var == 0; + return $main::form->format_amount(\%main::myconfig, $var * 1, $places, $dash) unless $skip_zero && $var == 0; return ''; } -sub format_amount_units { - my ($self, $amount, $amount_unit, $part_unit) = @_; +sub round_amount { + my ($self, $var, $places, $skip_zero) = @_; - return $main::form->format_amount_units('amount' => $amount, - 'part_unit' => $part_unit, - 'amount_unit' => $amount_unit, - 'conv_units' => 'convertible_not_smaller'); + return $main::form->round_amount($var * 1, $places) unless $skip_zero && $var == 0; + return ''; } sub format_percent { my ($self, $var, $places, $skip_zero) = @_; + $places ||= 2; + return $self->format_amount($var * 100, $places, $skip_zero); } @@ -62,7 +75,7 @@ sub _turn90_word { my $self = shift; my $word = shift || ""; - return join '
', map { $main::form->quote_html($_) } split(m//, $word); + return join '
', map { $main::locale->quote_special_chars('HTML', $_) } split(m//, $word); } sub turn90 { @@ -90,4 +103,16 @@ sub turn90 { } } +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;