add phone number search report, RT10464
authorlevinse <levinse>
Tue, 9 Nov 2010 02:51:51 +0000 (02:51 +0000)
committerlevinse <levinse>
Tue, 9 Nov 2010 02:51:51 +0000 (02:51 +0000)
httemplate/elements/menu.html
httemplate/search/phone_avail.html
httemplate/search/report_phone_avail.html [new file with mode: 0755]

index 1909d90..19cd2d8 100644 (file)
@@ -191,8 +191,8 @@ foreach my $svcdb ( FS::part_svc->svc_tables() ) {
   }
 
   if ( $svcdb eq 'svc_phone' ) {
-    $report_svc{"Avaialble phone numbers (DIDs)"} =
-      [ $fsurl."search/phone_avail.html", '' ];
+    $report_svc{"Phone number (DID) availability"} =
+      [ $fsurl."search/report_phone_avail.html", '' ];
   }
 
   $report_services{$name} = [ \%report_svc, $longname ];
index 2388d25..2ef3dcd 100644 (file)
@@ -16,6 +16,8 @@
               'header'        => [ '#',
                                    'State',
                                    'Phone Number',
+                                  'Rate Center',
+                                  'Batch',
                                    'Export',
                                    'Service',
                                     FS::UI::Web::cust_header(),
                       '+'. $pn->countrycode. ' '.
                         $pn->npa. ' '.  $pn->nxx. '-'. $pn->station;
                     },
+               'name',
+               'availbatch',
                 'exportnum', #XXX
                 #sub { },
                 'svcnum', #XXX
                 \&FS::UI::Web::cust_fields,
               ],
-              'align'         => 'rllll'.FS::UI::Web::cust_aligns(),
+              'align'         => 'rllllll'.FS::UI::Web::cust_aligns(),
               'links'         => [
                 '',
                 '',
+               '',
+               '',
                 '',
                 '', #XXX #$export_link
                 '', #XXX #$svc_link
@@ -46,6 +52,8 @@
               'color' => [ 
                            '',
                            '',
+                          '',
+                          '',
                            '',
                            '',
                            '',
@@ -54,6 +62,8 @@
               'style' => [ 
                            '',
                            '',
+                          '',
+                          '',
                            '',
                            '',
                            '',
@@ -68,9 +78,28 @@ die "access denied"
 
 my @search = ();
 
-if ( $cgi->param('availbatch') =~ /^([\w\/\:\-\.]+)$/ ) {
-  push @search, "availbatch = '$1'";
-}
+push @search, "availbatch = '$1'" 
+    if ( $cgi->param('availbatch') =~ /^([\w\d \/\:\-\.]+)$/ ); 
+  
+push @search, "countrycode = '$1'" 
+    if ( $cgi->param('countrycode') =~ /^(\d{1,3})$/ );
+
+push @search, "phone_avail.state = '$1'" 
+    if ( $cgi->param('state') =~ /^(\w{2})$/ );
+
+# i know that the regexps match more than NPA/NXX, but this is good enough now
+push @search, "npa = '$1'" 
+    if ( $cgi->param('npa') =~ /^(\d{3})$/ ); 
+push @search, "nxx = '$1'" 
+    if ( $cgi->param('npa') =~ /^\d{3}$/ && $cgi->param('nxx') =~ /^(\d{3})$/ ); 
+
+push @search, "name = '$1'" 
+    if ( $cgi->param('ratecenter') =~ /^([\w \-\.]+)$/ );
+
+push @search, "svcnum is null" 
+    if ( $cgi->param('avail_status') eq 'AVAIL' );
+push @search, "svcnum is not null" 
+    if ( $cgi->param('avail_status') eq 'UNAVAIL' );
 
 #  #here is the agent virtualization
 #  push @search, $FS::CurrentUser::CurrentUser->agentnums_sql;
diff --git a/httemplate/search/report_phone_avail.html b/httemplate/search/report_phone_avail.html
new file mode 100755 (executable)
index 0000000..c81206a
--- /dev/null
@@ -0,0 +1,92 @@
+<% include('/elements/header.html', 'Phone number (DID) Availability Report' ) %>
+
+<FORM ACTION="phone_avail.html" METHOD="GET">
+
+  <TABLE BGCOLOR="#cccccc" CELLSPACING=0>
+
+    <TR>
+      <TH CLASS="background" COLSPAN=2 ALIGN="left"><FONT SIZE="+1">Search options</FONT></TH>
+    </TR>
+
+    <% include( '/elements/tr-input-text.html',
+                   'id' => 'countrycode',
+                   'field' => 'countrycode',
+                   'label' => 'Country Code',
+                   'maxlength' => 3,
+                   'size' => 3,
+             )
+    %>
+    
+    <% include( '/elements/tr-input-text.html',
+                   'id' => 'state',
+                   'field' => 'state',
+                   'label' => 'State',
+                   'maxlength' => 2,
+                   'size' => 2,
+             )
+    %>
+    
+    <% include( '/elements/tr-input-text.html',
+                   'id' => 'npa',
+                   'field' => 'npa',
+                   'label' => 'NPA',
+                   'maxlength' => 3,
+                   'size' => 3,
+             )
+    %>
+    
+    <% include( '/elements/tr-input-text.html',
+                   'id' => 'nxx',
+                   'field' => 'nxx',
+                   'label' => 'NXX',
+                   'maxlength' => 3,
+                   'size' => 3,
+             )
+    %>
+    
+    <% include( '/elements/tr-input-text.html',
+                   'id' => 'ratecenter',
+                   'field' => 'ratecenter',
+                   'label' => 'Rate Center',
+                   'size' => 80,
+             )
+    %>
+
+    
+    <% include( '/elements/tr-input-text.html',
+                   'id' => 'availbatch',
+                   'field' => 'availbatch',
+                   'label' => 'Batch Name',
+                   'size' => 80,
+             )
+    %>
+
+    <TR>
+       <TD ALIGN="RIGHT">Status</TD>
+       <TD>
+           <INPUT TYPE="RADIO" NAME="avail_status" value="BOTH" CHECKED>Available &amp; Unavailable
+           Numbers
+           <INPUT TYPE="RADIO" NAME="avail_status" value="AVAIL">Available Numbers Only
+           <INPUT TYPE="RADIO" NAME="avail_status" value="UNAVAIL">Unavailable Numbers Only
+       </TD>
+    </TR>
+
+
+  </TABLE>
+
+<BR>
+<INPUT TYPE="submit" VALUE="Get Report">
+
+</FORM>
+
+<% include('/elements/footer.html') %>
+<%init>
+
+die "access denied"
+  unless ( $FS::CurrentUser::CurrentUser->access_right('List customers') &&
+           $FS::CurrentUser::CurrentUser->access_right('List packages')
+         );
+
+my $conf = new FS::Conf;
+
+</%init>