deuglify
[freeside.git] / httemplate / search / cust_main.cgi
index c4b0ce0..9ef3847 100755 (executable)
@@ -71,7 +71,7 @@ if ( $cgi->param('browse')
     } elsif ( $query eq 'tickets' ) {
       $sortby = \*tickets_sort;
       $orderby = "ORDER BY tickets DESC";
-      push @select, FS::TicketSystem->sql_customer_tickets. " as tickets";
+      push @select, FS::TicketSystem->sql_num_customer_tickets. " as tickets";
       push @addl_headers, 'Tickets';
       push @addl_cols, 'tickets';
     } else {
@@ -279,6 +279,7 @@ if ( scalar(@cust_main) == 1 && ! $cgi->param('referral_custnum') ) {
     }
     print ' cancelled customers</a> )';
   }
+
   if ( $cgi->param('referral_custnum') ) {
     $cgi->param('referral_custnum') =~ /^(\d+)$/
       or eidiot "Illegal referral_custnum\n";
@@ -314,6 +315,13 @@ END
           '</FORM>';
   }
 
+  my @custom_priorities = ();
+  if ( $conf->config('ticket_system-custom_priority_field')
+       && @{[ $conf->config('ticket_system-custom_priority_field-values') ]} ) {
+    @custom_priorities =
+      $conf->config('ticket_system-custom_priority_field-values');
+  }
+
   print "<BR><BR>". $pager. &table(). <<END;
       <TR>
         <TH></TH>
@@ -339,7 +347,6 @@ print <<END;
 END
 
   my(%saw,$cust_main);
-  my $p = popurl(2);
   foreach $cust_main (
     sort $sortby grep(!$saw{$_->custnum}++, @cust_main)
   ) {
@@ -391,9 +398,36 @@ END
     }
 
     foreach my $addl_col ( @addl_cols ) {
-      print qq!<TD ROWSPAN=$rowspan><A HREF="XXXnotyetXXX">!.
-              $cust_main->get($addl_col).
-            "</A></TD>";
+      print "<TD ROWSPAN=$rowspan ALIGN=right>";
+      if ( $addl_col eq 'tickets' ) {
+        if ( @custom_priorities ) {
+          print '<TABLE>';
+          foreach my $priority ( @custom_priorities, '' ) {
+            my $ahref =
+              '<A HREF="'.
+                FS::TicketSystem->href_customer_tickets($custnum,$priority).
+              '">';
+            print "<TR><TD ALIGN=right>$ahref".
+                    FS::TicketSystem->num_customer_tickets($custnum,$priority).
+                  "</A></TD>".
+                  "<TD ALIGN=left>$ahref".
+                  ( $priority || '<i>(none)</i>' ).
+                  "</A></TD></TR>";
+          }
+          print '<TR><TD BGCOLOR="#000000" COLSPAN=2></TD></TR>'.
+                '<TR><TD ALIGN=right>';
+        }
+        my $ahref =
+          '<A HREF="'.
+            FS::TicketSystem->href_customer_tickets($custnum).
+          '">';
+        print $ahref. $cust_main->get($addl_col). '</A>';
+        print "</TD><TD ALIGN=left>${ahref}Total</A></TD></TR></TABLE>"
+          if @custom_priorities;
+      } else {
+        print $cust_main->get($addl_col);
+      }
+      print "</TD>";
     }
 
     my($n1)='';
@@ -451,7 +485,7 @@ sub custnum_sort {
 }
 
 sub tickets_sort {
-  $a->getfield('tickets') <=> $b->getfield('tickets');
+  $b->getfield('tickets') <=> $a->getfield('tickets');
 }
 
 sub custnumsearch {