X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fsearch%2Fphone_avail.html;h=faf354420aa46ba3fad8913a04a97be720ccfe19;hp=2388d25fffee2a34fd3a5c2794950e0cf4b7e8fc;hb=949a80c148a8bbeeeec54c5a0be5d73b292423a5;hpb=a0f9f87f67b494b9786d7c1ad453e4a21b9e229b diff --git a/httemplate/search/phone_avail.html b/httemplate/search/phone_avail.html index 2388d25ff..faf354420 100644 --- a/httemplate/search/phone_avail.html +++ b/httemplate/search/phone_avail.html @@ -1,9 +1,9 @@ -<% include( 'elements/search.html', +<& elements/search.html, 'title' => 'Phone Number (DID) Search Results', 'name_singular' => 'phone number', 'query' => { 'table' => 'phone_avail', - 'hashref' => {}, + 'hashref' => $hashref, 'select' => join(', ', 'phone_avail.*', 'cust_main.custnum', @@ -16,6 +16,8 @@ 'header' => [ '#', 'State', 'Phone Number', + 'Rate Center', + 'Batch', 'Export', 'Service', FS::UI::Web::cust_header(), @@ -27,50 +29,90 @@ '+'. $pn->countrycode. ' '. $pn->npa. ' '. $pn->nxx. '-'. $pn->station; }, - 'exportnum', #XXX - #sub { }, - 'svcnum', #XXX + sub { shift->get('name') }, + 'availbatch', + sub { + my $pa = shift; + return '' unless $pa->part_export; + $pa->part_export->exportname; + }, + sub { + my $pa = shift; + return '' unless $pa->cust_svc; + my($label,$value) = $pa->cust_svc->label; + $label . ": " . $value; + }, \&FS::UI::Web::cust_fields, + '', ], - 'align' => 'rllll'.FS::UI::Web::cust_aligns(), + 'align' => 'rllllllc'.FS::UI::Web::cust_aligns(), 'links' => [ '', '', + '', + '', '', - '', #XXX #$export_link - '', #XXX #$svc_link + '', #XXX #$export_link - to what exactly? + $svc_link, ( map { $_ ne 'Cust. Status' ? $link_cust : '' } FS::UI::Web::cust_header() ), + '', ], 'color' => [ '', '', + '', + '', '', '', '', FS::UI::Web::cust_colors(), + '', ], 'style' => [ '', '', + '', + '', '', '', '', FS::UI::Web::cust_styles(), + '', ], - ) -%> + +&> <%init> die "access denied" - unless $FS::CurrentUser::CurrentUser->access_right('Import'); + unless ( $FS::CurrentUser::CurrentUser->access_right('List inventory') + ); 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; @@ -83,14 +125,19 @@ my $search = scalar(@search) my $addl_from = ' LEFT JOIN cust_svc USING ( svcnum ) '. #' LEFT JOIN part_svc USING ( svcpart ) '. ' LEFT JOIN cust_pkg USING ( pkgnum ) '. - ' LEFT JOIN cust_main USING ( custnum ) '; + FS::UI::Web::join_cust_main('cust_pkg', 'cust_pkg'); my $count_query = "SELECT COUNT(*) FROM phone_avail $search"; #$addl_from? +# All of these relationships are left joined in the many-to-one direction, +# so including $addl_from won't affect the count. Logic! + +my $hashref = {}; +$hashref->{'ordernum'} = $1 if $cgi->param('ordernum') =~ /^(\d+)$/; my $link_cust = sub { my $phone_avail = shift; if ( $phone_avail->svcnum ) { - my $cust_svc = $phone_avail->svc_phone->cust_svc; + my $cust_svc = $phone_avail->cust_svc; if ( $cust_svc->pkgnum ) { #my $cust_main = $cust_svc->cust_pkg->cust_main; return [ "${p}view/cust_main.cgi?", 'custnum' ]; @@ -99,4 +146,13 @@ my $link_cust = sub { ''; }; +my $svc_link = sub { + my $phone_avail = shift; + my $cust_svc = $phone_avail->cust_svc; + if ( $cust_svc ) { + return [ "${p}view/svc_phone.cgi?", 'svcnum']; + } + ''; +}; +