From 8cd5afe1887421fe1c59c836c2d6c8f3985b4fa4 Mon Sep 17 00:00:00 2001 From: Rene Krenn Date: Wed, 30 Sep 2020 11:55:23 +0200 Subject: [PATCH] TT#95252 fix callist error with clir_scope & terminated subs Change-Id: Icf9ce91770a316b3cdcdb1a9c39a5b0d12dc1c9a (cherry picked from commit ed01e2931b08dd6a9ad634abcc8b8a750b9306e4) --- lib/NGCP/Panel/Utils/CallList.pm | 61 +++++++++++++++----------------- 1 file changed, 28 insertions(+), 33 deletions(-) diff --git a/lib/NGCP/Panel/Utils/CallList.pm b/lib/NGCP/Panel/Utils/CallList.pm index 7a7fc8dabd..2865ccc177 100644 --- a/lib/NGCP/Panel/Utils/CallList.pm +++ b/lib/NGCP/Panel/Utils/CallList.pm @@ -83,40 +83,35 @@ sub process_cdr_item { my $anonymize; my $prefs; - my $sub_pref = $item->source_subscriber->provisioning_voip_subscriber->voip_usr_preferences->search( - { - 'attribute.attribute' => 'calllist_clir_scope', - }, - { - join => 'attribute', - } - )->first; + my $source_subscriber = $item->source_subscriber; + my $source_prov_subscriber = undef; + $source_prov_subscriber = $source_subscriber->provisioning_voip_subscriber if $source_subscriber; + my $sub_pref; + $sub_pref = $source_prov_subscriber->voip_usr_preferences->search({ + 'attribute.attribute' => 'calllist_clir_scope', + },{ + join => 'attribute', + })->first if $source_prov_subscriber; if ($sub_pref) { $prefs = $sub_pref; - } - else { - my $ct_pref = $item->source_subscriber->contract->voip_contract_preferences->search( - { - 'attribute.attribute' => 'calllist_clir_scope', - }, - { - join => 'attribute', - } - )->first; - if ($ct_pref) { - $prefs = $ct_pref; - } - else { - my $dom_pref = $item->source_subscriber->domain->provisioning_voip_domain->voip_dom_preferences->search( - { - 'attribute.attribute' => 'calllist_clir_scope', - }, - { - join => 'attribute', - } - )->first; - if ($dom_pref) { - $prefs = $dom_pref; + } else { + if ($source_subscriber) { + my $ct_pref = $source_subscriber->contract->voip_contract_preferences->search({ + 'attribute.attribute' => 'calllist_clir_scope', + },{ + join => 'attribute', + })->first; + if ($ct_pref) { + $prefs = $ct_pref; + } else { + my $dom_pref = $source_subscriber->domain->provisioning_voip_domain->voip_dom_preferences->search({ + 'attribute.attribute' => 'calllist_clir_scope', + },{ + join => 'attribute', + })->first; + if ($dom_pref) { + $prefs = $dom_pref; + } } } } @@ -134,7 +129,7 @@ sub process_cdr_item { my ($source_cli_suppression,$destination_user_in_suppression) = _get_suppressions($c,$item); my ($src_sub, $dst_sub); - my $billing_src_sub = $item->source_subscriber; + my $billing_src_sub = $source_subscriber; my $billing_dst_sub = $item->destination_subscriber; if($billing_src_sub && $billing_src_sub->provisioning_voip_subscriber) { $src_sub = $billing_src_sub->provisioning_voip_subscriber;