From 2431a359ebac3576ab7875f787e731a0e63211d9 Mon Sep 17 00:00:00 2001 From: levinse Date: Tue, 21 Jun 2011 03:16:59 +0000 Subject: [PATCH] improve performance of DID provisioning status report, RT10988 --- FS/FS/Schema.pm | 1 + FS/FS/phone_avail.pm | 10 ++++ httemplate/search/phone_inventory_provisioned.html | 54 +++++++++++++--------- 3 files changed, 43 insertions(+), 22 deletions(-) diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index 65ec2a8b7..035965e37 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -3156,6 +3156,7 @@ sub tables_hashref { [ 'exportnum', 'countrycode', 'npa', 'nxx', 'station' ], # # [ 'svcnum' ], [ 'availbatch' ], + [ 'latanum' ], ], }, diff --git a/FS/FS/phone_avail.pm b/FS/FS/phone_avail.pm index 44421ff57..cd4b4b6ba 100644 --- a/FS/FS/phone_avail.pm +++ b/FS/FS/phone_avail.pm @@ -182,6 +182,16 @@ sub part_export { qsearchs('part_export', { 'exportnum' => $self->exportnum }); } +=item lata + +=cut + +sub lata { + my $self = shift; + return '' unless $self->latanum; + qsearchs('lata', { 'latanum' => $self->latanum }); +} + =item msa2msanum Translate free-form MSA name to a msa.msanum diff --git a/httemplate/search/phone_inventory_provisioned.html b/httemplate/search/phone_inventory_provisioned.html index 5d4b4217e..6302144f8 100644 --- a/httemplate/search/phone_inventory_provisioned.html +++ b/httemplate/search/phone_inventory_provisioned.html @@ -1,43 +1,53 @@ <% include( 'elements/search.html', - 'title' => 'Phone Number (DID) Search Results', - 'name_singular' => 'phone number', + 'title' => 'LATA Search Results', + 'name_singular' => 'LATA', 'query' => { 'table' => 'phone_avail', 'hashref' => {}, 'select' => 'distinct latanum', }, 'count_query' => 'SELECT COUNT(distinct latanum) FROM phone_avail', - 'header' => [ 'LATA #', + 'header' => [ 'LATA', 'Available', 'Provisioned', 'Have Usage', ], 'fields' => [ - 'latanum', - sub { + sub { # LATA + my $did_order = shift; + my $lata = $did_order->lata; + $lata = $lata ? $lata->description : ''; + $did_order->latanum . " - " . $lata; + }, + sub { # Available my $latanum = shift->latanum; my @dids = qsearch('phone_avail', - { 'svcnum' => '', - 'latanum' => $latanum, - } - ); + { 'svcnum' => '', + 'latanum' => $latanum, + } + ); return scalar(@dids); }, - sub { + sub { # Provisioned my $latanum = shift->latanum; my @dids = provisioned_dids($latanum); return scalar(@dids); }, - sub { + sub { # Have Usage my $latanum = shift->latanum; my @dids = provisioned_dids($latanum); + + warn "have usage ".time; + return ''; # XXX disabled temporarily + my $count = 0; foreach my $did ( @dids ) { - next unless $did->cust_svc; - my $svc_phone = $did->cust_svc->svc_x; - next unless $svc_phone; - my @cdrs = $svc_phone->get_cdrs; - $count++ if scalar(@cdrs); + next unless $did->cust_svc; + my $svc_phone = $did->cust_svc->svc_x; + warn "inside loop ".time; + next unless $svc_phone; + my @cdrs = $svc_phone->get_cdrs; + $count++ if scalar(@cdrs); } $count; }, @@ -65,6 +75,8 @@ %> <%init> +warn "started @ ".time; + die "access denied" unless ( $FS::CurrentUser::CurrentUser->access_right('List inventory') && $FS::CurrentUser::CurrentUser->access_right('List services') @@ -74,12 +86,10 @@ die "access denied" sub provisioned_dids { my $latanum = shift; - qsearch({ 'table' => 'phone_avail', - 'hashref' => { - 'latanum' => $latanum, - }, - 'extra_sql' => ' and svcnum is not null ', - }); + qsearch({ 'table' => 'phone_avail', + 'hashref' => { 'latanum' => $latanum, }, + 'extra_sql' => ' and svcnum is not null ', + }); } -- 2.11.0