X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FRecordLinks.pm;h=d421714157e085920695c4bef4e371131332fc3c;hb=20bb56c1d57dde9492fef150edbfe0149a07ff08;hp=fb451a801489bbc6774d52f07aefbc4436d54206;hpb=00738f6f4e43355ae9e70cd5350d7c75c1533f5f;p=kivitendo-erp.git diff --git a/SL/RecordLinks.pm b/SL/RecordLinks.pm index fb451a801..d42171415 100644 --- a/SL/RecordLinks.pm +++ b/SL/RecordLinks.pm @@ -9,7 +9,7 @@ sub create_links { my $self = shift; my %params = @_; - if ($params{mode} && ($params{mode} eq 'string')) { + if ($params{mode} && ($params{mode} eq 'ids')) { Common::check_params_x(\%params, [ qw(from_ids to_ids) ]); } else { @@ -19,12 +19,17 @@ sub create_links { my @links; - if ($params{mode} && ($params{mode} eq 'string')) { + if ($params{mode} && ($params{mode} eq 'ids')) { my ($from_to, $to_from) = $params{from_ids} ? qw(from to) : qw(to from); - my %ids = ( $from_to => [ grep { $_ } map { $_ * 1 } split m/\s+/, $params{"${from_to}_ids"} ] ); + my %ids; + + if ('ARRAY' eq ref $params{"${from_to}_ids"}) { + $ids{$from_to} = $params{"${from_to}_ids"}; + } else { + $ids{$from_to} = [ grep { $_ } map { $_ * 1 } split m/\s+/, $params{"${from_to}_ids"} ]; + } if (my $num = scalar @{ $ids{$from_to} }) { - $main::lxdebug->message(0, "3"); $ids{$to_from} = [ ($params{"${to_from}_id"}) x $num ]; @links = map { { 'from_table' => $params{from_table}, 'from_id' => $ids{from}->[$_],