fix svc_broadband search by svcpart (links from browse/part_svc, in particular
[freeside.git] / httemplate / search / svc_broadband.cgi
index 1bbdbfc..c61bc8a 100755 (executable)
@@ -5,9 +5,18 @@
 %
 %my @svc_broadband = ();
 %my $sortby=\*svcnum_sort;
+%#XXX agent-virtualization needs to be finished :/
+%my $agentnums_sql = $FS::CurrentUser::CurrentUser->agentnums_sql( 
+%                      'null_right' => 'View/link unlinked services'
+%                    );
+%
 %if ( $cgi->param('magic') =~ /^(all|unlinked)$/ ) {
 %
-%  @svc_broadband=qsearch('svc_broadband',{});
+%  @svc_broadband = qsearch(
+%    'table'     => 'svc_broadband',
+%    'hashref'   => {},
+%    #needs the join first 'extra_sql' => "WHERE $agentnums_sql",
+%  );
 %
 %  if ( $cgi->param('magic') eq 'unlinked' ) {
 %    @svc_broadband = grep { qsearchs('cust_svc', {
@@ -17,7 +26,7 @@
 %                                    )
 %                          }
 %                    @svc_broadband;
-%  }
+%  } else {
 %
 %  if ( $cgi->param('sortby') =~ /^(\w+)$/ ) {
 %    my $sortby = $1;
 %
 %} elsif ( $cgi->param('svcpart') =~ /^(\d+)$/ ) {
 %
-%  @svc_broadband =
-%    qsearch( 'svc_broadband', {}, '',
-%               " WHERE $1 = ( SELECT svcpart FROM cust_svc ".
-%               "              WHERE cust_svc.svcnum = svc_external.svcnum ) "
-%    );
+%  @svc_broadband = qsearch( {
+%                              'table'     => 'svc_broadband',
+%                              'addl_from' => 'LEFT JOIN cust_svc USING svcnum',
+%                              'extra_sql' => "WHERE svcpart = $1",
+%                            }
+%                          );
 %
 %} elsif ( $cgi->param('ip_addr') =~ /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/ ) {
 %  my $ip_addr = $1;
 
 <!-- mason kludge -->
 %
-%  eidiot "No matching ip address found!\n";
+%  eidiot "No matching broadband services found!\n";
 %} else {
 %
 
 <!-- mason kludge -->
 %
 %  my($total)=scalar(@svc_broadband);
-%  print header("IP Address Search Results",''), <<END;
+%  print header("Broadband Search Results",''), <<END;
 %
 %    $total matching broadband services found
 %    <TABLE BORDER=4 CELLSPACING=0 CELLPADDING=0>