From b996f6ca8984a5c0983fd9541f607ee7307e7182 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Tue, 17 Feb 2015 13:39:04 +0100 Subject: [PATCH] =?utf8?q?SL::DB::CustomVariable:=20value=5Fas=5Ftext()=20?= =?utf8?q?f=C3=BCr=20customer/vendor/part=20vereinheitlicht?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- SL/DB/CustomVariable.pm | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/SL/DB/CustomVariable.pm b/SL/DB/CustomVariable.pm index 3f1f7a2e3..03fd5cad5 100644 --- a/SL/DB/CustomVariable.pm +++ b/SL/DB/CustomVariable.pm @@ -95,24 +95,11 @@ sub value_as_text { return $::locale->reformat_date( { dateformat => 'yy-mm-dd' }, $self->timestamp_value->ymd, $::myconfig{dateformat}); } elsif ($type eq 'number') { return $::form->format_amount(\%::myconfig, $self->number_value, $cfg->processed_options->{PRECISION}); - } elsif ( $type eq 'customer' ) { - require SL::DB::Customer; - - my $id = int($self->number_value); - my $customer = $id ? SL::DB::Customer->new(id => $id)->load() : 0; - return $customer ? $customer->name : ''; - } elsif ( $type eq 'vendor' ) { - require SL::DB::Vendor; - - my $id = int($self->number_value); - my $vendor = $id ? SL::DB::Vendor->new(id => $id)->load() : 0; - return $vendor ? $vendor->name : ''; - } elsif ( $type eq 'part' ) { - require SL::DB::Part; - - my $id = int($self->number_value); - my $part = $id ? SL::DB::Part->new(id => $id)->load() : 0; - return $part ? $part->description : ''; + } elsif ( $type =~ m{^(?:customer|vendor|part)$}) { + my $class = "SL::DB::" . ucfirst($type); + eval "require $class"; + my $object = $class->_get_manager_class->find_by(id => int($self->number_value)); + return $object ? $object->displayable_name : ''; } goto &text_value; # text, textfield and select -- 2.20.1