diff --git a/lib/NGCP/Panel/Role/API/CallLists.pm b/lib/NGCP/Panel/Role/API/CallLists.pm index f48dc47574..23256198aa 100644 --- a/lib/NGCP/Panel/Role/API/CallLists.pm +++ b/lib/NGCP/Panel/Role/API/CallLists.pm @@ -18,14 +18,7 @@ use NGCP::Panel::Utils::API::Calllist qw(); sub _item_rs { my ($self, $c) = @_; - my $item_rs = $c->model('DB')->resultset('cdr')->search_rs( - undef, - { - join => 'cdr_mos_data', - '+select' => [qw/cdr_mos_data.mos_average cdr_mos_data.mos_average_packetloss cdr_mos_data.mos_average_jitter cdr_mos_data.mos_average_roundtrip/], - '+as' => [qw/mos_average mos_average_packetloss mos_average_jitter mos_average_roundtrip/], - } - ); + my $item_rs = $c->model('DB')->resultset('cdr'); if($c->user->roles eq "admin") { } elsif($c->user->roles eq "reseller") { diff --git a/lib/NGCP/Panel/Utils/CallList.pm b/lib/NGCP/Panel/Utils/CallList.pm index 77e6a0cf55..ef61ecdac6 100644 --- a/lib/NGCP/Panel/Utils/CallList.pm +++ b/lib/NGCP/Panel/Utils/CallList.pm @@ -50,13 +50,12 @@ sub process_cdr_item { $params //= $c->req->params; - foreach my $field (qw/id call_id call_type mos_average mos_average_packetloss mos_average_jitter mos_average_roundtrip/) { - if ($item->can('has_column') && $item->has_column($field)) { - $resource->{$field} = $item->get_column($field); - } elsif ($item->can($field)) { - $resource->{$field} = $item->$field; - } + map { $resource->{$_} = $item->get_column($_); } qw/id call_id call_type/; + if (my $mos_data = $item->cdr_mos_data) { + my %mos_data_res = $mos_data->get_inflated_columns; + map { $resource->{$_} = $mos_data_res{$_}; } qw/mos_average mos_average_packetloss mos_average_jitter mos_average_roundtrip/; } + my $intra = 0; if($item->source_user_id && $item->source_account_id == $item->destination_account_id) { $resource->{intra_customer} = JSON::true;