From: levinse Date: Tue, 18 Jan 2011 00:59:02 +0000 (+0000) Subject: added DID availability/inventory/provisioning report, RT10988 X-Git-Tag: freeside_2_3_0~746 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=13a5d5ea7770ef1868e1d9af95a27065008484b7 added DID availability/inventory/provisioning report, RT10988 --- diff --git a/httemplate/elements/menu.html b/httemplate/elements/menu.html index 0f621709a..710850cc2 100644 --- a/httemplate/elements/menu.html +++ b/httemplate/elements/menu.html @@ -199,6 +199,8 @@ foreach my $svcdb ( FS::part_svc->svc_tables() ) { if ( $svcdb eq 'svc_phone' ) { $report_svc{"Phone number (DID) availability"} = [ $fsurl."search/report_phone_avail.html", '' ]; + $report_svc{"Inventory/Provisioning Status"} = + [ $fsurl."search/phone_inventory_provisioned.html", '' ]; } $report_services{$name} = [ \%report_svc, $longname ]; diff --git a/httemplate/search/phone_inventory_provisioned.html b/httemplate/search/phone_inventory_provisioned.html new file mode 100644 index 000000000..c3de38f37 --- /dev/null +++ b/httemplate/search/phone_inventory_provisioned.html @@ -0,0 +1,87 @@ +<% include( 'elements/search.html', + 'title' => 'Phone Number (DID) Search Results', + 'name_singular' => 'phone number', + 'query' => { + 'table' => 'phone_avail', + 'hashref' => {}, + 'select' => 'distinct npa||nxx as npanxx' + }, + 'count_query' => 'SELECT COUNT(distinct npa||nxx) FROM phone_avail', + 'header' => [ 'NPANXX', + 'Available', + 'Provisioned', + 'Have Usage', + ], + 'fields' => [ + 'npanxx', + sub { + my $npanxx = shift->npanxx; + my @dids = qsearch('phone_avail', + { 'svcnum' => '', + 'npa' => substr($npanxx,0,3), + 'nxx' => substr($npanxx,3,3), + } + ); + return scalar(@dids); + }, + sub { + my $npanxx = shift->npanxx; + my @dids = provisioned_dids($npanxx); + return scalar(@dids); + }, + sub { + my $npanxx = shift->npanxx; + my @dids = provisioned_dids($npanxx); + 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); + } + $count; + }, + ], + 'align' => 'lccc', + 'links' => [ + '', + '', + '', + '', + ], + 'color' => [ + '', + '', + '', + '', + ], + 'style' => [ + '', + '', + '', + '', + ], + ) +%> +<%init> + +die "access denied" + unless ( $FS::CurrentUser::CurrentUser->access_right('List inventory') + && $FS::CurrentUser::CurrentUser->access_right('List services') + ); + +# XXX: agent virtualize + +sub provisioned_dids { + my $npanxx = shift; + qsearch({ 'table' => 'phone_avail', + 'hashref' => { + 'npa' => substr($npanxx,0,3), + 'nxx' => substr($npanxx,3,3), + }, + 'extra_sql' => ' and svcnum is not null ', + }); +} + +