add Excel and CSV download of templated reports and clean up their HTML formatting...
[freeside.git] / httemplate / search / cust_main.cgi
index b2f8bef..a325667 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,12 +279,13 @@ 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";
     my $referral_custnum = $1;
     my $cust_main = qsearchs('cust_main', { custnum => $referral_custnum } );
-    print '<FORM METHOD=POST>'.
+    print '<FORM METHOD="GET">'.
           qq!<INPUT TYPE="hidden" NAME="referral_custnum" VALUE="$referral_custnum">!.
           'referrals of <A HREF="'. popurl(2).
           "view/cust_main.cgi?$referral_custnum\">$referral_custnum: ".
@@ -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,47 @@ 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><FONT SIZE=-1>";
+      if ( $addl_col eq 'tickets' ) {
+        if ( @custom_priorities ) {
+          print &itable('', 0);
+          foreach my $priority ( @custom_priorities, '' ) {
+          
+            my $num =
+              FS::TicketSystem->num_customer_tickets($custnum,$priority);
+            my $ahref = '';
+            $ahref= '<A HREF="'.
+                    FS::TicketSystem->href_customer_tickets($custnum,$priority).
+                    '">'
+              if $num;
+
+            print '<TR>'.
+                  "  <TD ALIGN=right><FONT SIZE=-1>$ahref$num</A></FONT></TD>".
+                  "<TD ALIGN=left><FONT SIZE=-1>$ahref".
+                  ( $priority || '<i>(none)</i>' ).
+                  "</A></FONT></TD></TR>";
+
+          }
+          print '<TR><TD BGCOLOR="#000000" COLSPAN=2></TD></TR>'.
+                '<TR><TD ALIGN=right><FONT SIZE=-1>';
+        }
+
+        my $ahref = '';
+        $ahref = '<A HREF="'.
+                    FS::TicketSystem->href_customer_tickets($custnum).
+                    '">'
+          if $cust_main->get($addl_col);
+
+        print $ahref. $cust_main->get($addl_col). '</A>';
+        print "</FONT></TD><TD ALIGN=left>".
+              "<FONT SIZE=-1>${ahref}Total</A><FONT>".
+              "</TD></TR></TABLE>"
+          if @custom_priorities;
+
+      } else {
+        print $cust_main->get($addl_col);
+      }
+      print "</FONT></TD>";
     }
 
     my($n1)='';