summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlevinse <levinse>2011-06-21 03:16:59 +0000
committerlevinse <levinse>2011-06-21 03:16:59 +0000
commit2431a359ebac3576ab7875f787e731a0e63211d9 (patch)
tree71dc63f40e1894c0d6715c701a199af31d163ac1
parentca12a227e21d6d2597f2dce860604aea02257621 (diff)
improve performance of DID provisioning status report, RT10988
-rw-r--r--FS/FS/Schema.pm1
-rw-r--r--FS/FS/phone_avail.pm10
-rw-r--r--httemplate/search/phone_inventory_provisioned.html54
3 files changed, 43 insertions, 22 deletions
diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm
index 65ec2a8..035965e 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 44421ff..cd4b4b6 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 5d4b421..6302144 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 ',
+ });
}
</%init>