X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDB%2FHelper%2FLinkedRecords.pm;h=182f3bdcc68121175b18450fa41ad3b6629b9b14;hb=f16c552035ab973a9aed4a1dc29d0e16be7ff541;hp=b75597abb0881ed30b25b4f36429ff832cc2a8bb;hpb=4f7837d76dff9243196ac8fb3c4099215e32c514;p=kivitendo-erp.git diff --git a/SL/DB/Helper/LinkedRecords.pm b/SL/DB/Helper/LinkedRecords.pm index b75597abb..182f3bdcc 100644 --- a/SL/DB/Helper/LinkedRecords.pm +++ b/SL/DB/Helper/LinkedRecords.pm @@ -148,14 +148,20 @@ sub _linked_records_implementation { ORDER BY ${wanted}_table, ${wanted}_id, depth ASC; my $links = selectall_hashref_query($::form, $::form->get_standard_dbh, $query, $self->id, $self->meta->table); + + return [] unless @$links; + my $link_objs = SL::DB::Manager::RecordLink->get_all(query => [ id => [ map { $_->{id} } @$links ] ]); my @objects = map { $get_objects->($_) } @$link_objs; if ($params{save_path}) { my %links_by_id = map { $_->{id} => $_ } @$links; for (@objects) { - $_->{_record_link_path} = $links_by_id{$_->{_record_link}->id}->{path}; - $_->{_record_link_depth} = $links_by_id{$_->{_record_link}->id}->{depth}; + my $link = $links_by_id{$_->{_record_link}->id}; + my $intermediate_links = SL::DB::Manager::RecordLink->get_all(query => [ id => $link->{path} ]); + $_->{_record_link_path} = $link->{path}; + $_->{_record_link_obj_path} = [ map { $get_objects->($_) } @$intermediate_links ]; + $_->{_record_link_depth} = $link->{depth}; } }