X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FCVar.pm;h=1b83121bf0340584968cbfdbd90445da4576ba6b;hb=bf8db146f807d3f374334f9b91671d32592c5974;hp=e91a2366dbb0cb6bab9b9b214cb79a988b9ceec8;hpb=9a941d5ec0d9db936c85b16bedd39f1d3aae835f;p=kivitendo-erp.git diff --git a/SL/CVar.pm b/SL/CVar.pm index e91a2366d..1b83121bf 100644 --- a/SL/CVar.pm +++ b/SL/CVar.pm @@ -3,6 +3,7 @@ package CVar; use strict; use List::Util qw(first); +use Scalar::Util qw(blessed); use Data::Dumper; use SL::DBUtils; @@ -574,7 +575,7 @@ sub add_custom_variables_to_report { $cfg->{type} eq 'date' ? $ref->{date_value} : $cfg->{type} eq 'timestamp' ? $ref->{timestamp_value} : $cfg->{type} eq 'number' ? $form->format_amount($myconfig, $ref->{number_value} * 1, $cfg->{precision}) - : $cfg->{type} eq 'customer' ? SL::DB::Manager::Customer->find_by(id => 1* $ref->{number_value})->name + : $cfg->{type} eq 'customer' ? (SL::DB::Manager::Customer->find_by(id => 1*$ref->{number_value}) || SL::DB::Customer->new)->name : $cfg->{type} eq 'bool' ? ($ref->{bool_value} ? $locale->text('Yes') : $locale->text('No')) : $ref->{text_value}; } @@ -706,6 +707,25 @@ sub custom_variables_validity_by_trans_id { return sub { !$invalids{+shift} }; } +sub parse { + my ($self, $value, $config) = @_; + + return $::form->parse_amount(\%::myconfig, $value) if $config->{type} eq 'number'; + return DateTime->from_lxoffice($value) if $config->{type} eq 'date'; + return !ref $value ? SL::DB::Manager::Customer->find_by(id => $value * 1) : $value if $config->{type} eq 'customer'; + return $value; +} + +sub format_to_template { + my ($self, $value, $config) = @_; + # stupid template expects everything formated. except objects + # do not use outside of print routines for legacy templates + + return $::form->parse_amount(\%::myconfig, $value) if $config->{type} eq 'number'; + return $value->to_lxoffice if $config->{type} eq 'date' && blessed $value && $value->can('to_lxoffice'); + return $value; +} + 1; __END__