slightly more sane names for customer tickets hash, display ticket owners on customer...
authorivan <ivan>
Thu, 24 Jan 2008 21:16:42 +0000 (21:16 +0000)
committerivan <ivan>
Thu, 24 Jan 2008 21:16:42 +0000 (21:16 +0000)
FS/FS/TicketSystem/RT_External.pm
fs_selfservice/FS-SelfService/cgi/myaccount.html
httemplate/view/cust_main/tickets.html

index 066798f..d1c9ebf 100644 (file)
@@ -73,15 +73,19 @@ sub customer_tickets {
   $limit ||= 0;
 
   my( $from_sql, @param) = $self->_from_customer( $custnum, $priority );
-  my $sql="SELECT Tickets.*, Queues.name, ".
-          "position(Tickets.status in 'newopenstalledresolvedrejecteddeleted')".
-         " AS svalue " .
-          ( length($priority) ? ", objectcustomfieldvalues.content" : '' ).
-          " $from_sql ".
-          " ORDER BY svalue, ".
-          "          priority ". ( $priority_reverse ? 'ASC' : 'DESC' ). ", ".
-          "          id DESC ".
-          " LIMIT $limit";
+  my $sql = "
+    SELECT Tickets.*,
+           Queues.Name AS Queue,
+           Users.Name  AS Owner,
+           position(Tickets.Status in 'newopenstalledresolvedrejecteddeleted')
+             AS svalue
+           ". ( length($priority) ? ", ObjectCustomFieldValues.Content" : '' )."
+      $from_sql
+      ORDER BY svalue,
+               Priority ". ( $priority_reverse ? 'ASC' : 'DESC' ). ",
+               id DESC
+      LIMIT $limit
+  ";
   warn "$me $sql (@param)" if $DEBUG;
   my $sth = $dbh->prepare($sql) or die $dbh->errstr. "preparing $sql";
   $sth->execute(@param)         or die $sth->errstr. "executing $sql";
@@ -101,7 +105,7 @@ sub _from_customer {
   if ( defined($priority) ) {
 
     my $queue_sql = " ObjectCustomFields.ObjectId = ( SELECT id FROM Queues
-                                                       WHERE Queues.name = ? )
+                                                       WHERE Queues.Name = ? )
                       OR ( ? = '' AND ObjectCustomFields.ObjectId = 0 )";
 
     my $customfield_sql =
@@ -110,7 +114,7 @@ sub _from_customer {
                   JOIN ObjectCustomFields
                     ON ( CustomFields.id = ObjectCustomFields.CustomField )
          WHERE LookupType = 'RT::Queue-RT::Ticket'
-           AND name = ?
+           AND Name = ?
            AND ( $queue_sql )
        )";
 
@@ -133,15 +137,15 @@ sub _from_customer {
       $join = "JOIN ObjectCustomFieldValues
                  ON ( Tickets.id = ObjectCustomFieldValues.ObjectId )";
       
-      $where = " AND content = ?
-                 AND ObjectCustomFieldValues.disabled != 1
+      $where = " AND Content = ?
+                 AND ObjectCustomFieldValues.Disabled != 1
                  AND ObjectType = 'RT::Ticket'
                  AND $customfield_sql";
 
     } else {
 
       $where =
-               "AND 0 = ( SELECT count(*) FROM ObjectCustomFieldValues
+               "AND 0 = ( SELECT COUNT(*) FROM ObjectCustomFieldValues
                            WHERE ObjectId    = Tickets.id
                              AND ObjectType  = 'RT::Ticket'
                              AND $customfield_sql
@@ -153,11 +157,12 @@ sub _from_customer {
 
   my $sql = "
                     FROM Tickets
-                    JOIN Queues ON ( Tickets.queue = Queues.id )
-                    JOIN Links ON ( Tickets.id = Links.localbase )
+                    JOIN Queues ON ( Tickets.Queue = Queues.id       )
+                    JOIN Links  ON ( Tickets.id    = Links.LocalBase )
+                    JOIN Users  ON ( Tickets.Owner = Users.id        )
                     $join 
-       WHERE ( ". join(' OR ', map "status = '$_'", $self->statuses ). " )
-         AND target = 'freeside://freeside/cust_main/$custnum'
+       WHERE ( ". join(' OR ', map "Status = '$_'", $self->statuses ). " )
+         AND Target = 'freeside://freeside/cust_main/$custnum'
          $where
   ";
 
@@ -269,7 +274,7 @@ sub href_ticket {
 sub queues {
   my($self) = @_;
 
-  my $sql = "SELECT id, name FROM Queues WHERE disabled = 0";
+  my $sql = "SELECT id, Name FROM Queues WHERE Disabled = 0";
   my $sth = $dbh->prepare($sql) or die $dbh->errstr. " preparing $sql";
   $sth->execute()               or die $sth->errstr. " executing $sql";
 
@@ -282,7 +287,7 @@ sub queue {
 
   return '' unless $queueid;
 
-  my $sql = "SELECT name FROM Queues WHERE id = ?";
+  my $sql = "SELECT Name FROM Queues WHERE id = ?";
   my $sth = $dbh->prepare($sql) or die $dbh->errstr. " preparing $sql";
   $sth->execute($queueid)       or die $sth->errstr. " executing $sql";
 
@@ -310,8 +315,8 @@ sub _retrieve_single_value {
 sub transaction_creator {
   my( $self, $transaction_id ) = @_;
 
-  my $sql = "SELECT name from transactions JOIN users ON ".
-            "transactions.creator=users.id WHERE transactions.id = ".
+  my $sql = "SELECT Name FRP< Transactions JOIN Users ON ".
+            "Transactions.Creator=Users.id WHERE Transactions.id = ".
             $transaction_id;
 
   $self->_retrieve_single_value($sql);
@@ -320,7 +325,7 @@ sub transaction_creator {
 sub transaction_ticketid {
   my( $self, $transaction_id ) = @_;
 
-  my $sql = "SELECT objectid from transactions WHERE transactions.id = ".
+  my $sql = "SELECT ObjectId FROM Transactions WHERE Transactions.id = ".
             $transaction_id;
   
   $self->_retrieve_single_value($sql);
@@ -329,8 +334,8 @@ sub transaction_ticketid {
 sub transaction_subject {
   my( $self, $transaction_id ) = @_;
 
-  my $sql = "SELECT subject from Transactions JOIN Tickets ON objectid=".
-            "Tickets.id WHERE transactions.id = ".  $transaction_id;
+  my $sql = "SELECT Subject FROM Transactions JOIN Tickets ON ObjectId=".
+            "Tickets.id WHERE Transactions.id = ".  $transaction_id;
   
   $self->_retrieve_single_value($sql);
 }
@@ -338,8 +343,8 @@ sub transaction_subject {
 sub transaction_status {
   my( $self, $transaction_id ) = @_;
 
-  my $sql = "SELECT status from Transactions JOIN Tickets ON objectid=".
-            "Tickets.id WHERE transactions.id = ".  $transaction_id;
+  my $sql = "SELECT Status FROM Transactions JOIN Tickets ON ObjectId=".
+            "Tickets.id WHERE Transactions.id = ".  $transaction_id;
   
   $self->_retrieve_single_value($sql);
 }
index 65b9842..d1f5671 100644 (file)
@@ -79,7 +79,7 @@ Hello <%= $name %>!<BR><BR>
         "<TR>$td". $ticket->{'id'}. "</TD>".
         $td. $ticket->{'subject'}. "</TD>".
         $td. ($ticket->{'content'} || $ticket->{'priority'}). "</TD>".
-        $td. $ticket->{'name'}. "</TD>".
+        $td. $ticket->{'queue'}. "</TD>".
         $td. $ticket->{'status'}. "</TD>".
         '</TR>';
       $col = $col eq $col1 ? $col2 : $col1;
index c9c3b6d..b5d581d 100644 (file)
@@ -1,30 +1,25 @@
-%
-%  my( $cust_main ) = @_;
-%  my( @tickets )  = $cust_main->tickets;
-%
-
 <A NAME="tickets"><FONT SIZE="+2">Tickets</FONT></A>
 <BR>
 
-(<A HREF="<% FS::TicketSystem->href_customer_tickets($cust_main->custnum) %>">View <% join('/', FS::TicketSystem->statuses ) %> tickets for this customer</A>)
-(<A HREF="<% FS::TicketSystem->href_customer_tickets($cust_main->custnum, { 'statuses' => [ 'resolved' ] } ) %>">View resolved tickets for this customer</A>)
+(<A HREF="<% $open_link %>">View <% $openlabel %> tickets for this customer</A>)
+(<A HREF="<% $res_link  %>">View resolved tickets for this customer</A>)
 <BR>
-(<A HREF="<% FS::TicketSystem->href_new_ticket($cust_main, join(', ', grep { $_ !~ /^(POST|FAX)$/ } $cust_main->invoicing_list ) ) %>">Create new ticket for this customer</A>)
+(<A HREF="<% $new_link  %>">Create new ticket for this customer</A>)
 
 <% include("/elements/table-grid.html") %>
 % my $bgcolor1 = '#eeeeee';
 %   my $bgcolor2 = '#ffffff';
 %   my $bgcolor = '';
-%
-
 
 <TR>
   <TH CLASS="grid" BGCOLOR="#cccccc">#</TH>
   <TH CLASS="grid" BGCOLOR="#cccccc">Subject</TH>
-  <TH CLASS="grid" BGCOLOR="#cccccc">Priority</TH>
-  <TH CLASS="grid" BGCOLOR="#cccccc">Queue</TH>
   <TH CLASS="grid" BGCOLOR="#cccccc">Status</TH>
+  <TH CLASS="grid" BGCOLOR="#cccccc">Queue</TH>
+  <TH CLASS="grid" BGCOLOR="#cccccc">Owner</TH>
+  <TH CLASS="grid" BGCOLOR="#cccccc">Priority</TH>
 </TR>
+
 % foreach my $ticket ( @tickets ) {
 %     my $href = FS::TicketSystem->href_ticket($ticket->{id});
 %     if ( $bgcolor eq $bgcolor1 ) {
 %     } else {
 %       $bgcolor = $bgcolor1;
 %     }
-%
 
+  <TR>
+  
+    <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+      <A HREF=<%$href%>><% $ticket->{id} %></A>
+    </TD>
+  
+    <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+      <A HREF=<%$href%>><% $ticket->{subject} %></A>
+    </TD>
+  
+    <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+      <% $ticket->{status} %>
+    </TD>
+  
+    <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+      <% $ticket->{queue} %>
+    </TD>
+  
+    <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+      <% $ticket->{owner} %>
+    </TD>
+  
+    <TD ALIGN="right" CLASS="grid" BGCOLOR="<% $bgcolor %>">
+      <% $ticket->{content}
+           ? $ticket->{content}.' ('.$ticket->{priority}.')'
+           : $ticket->{priority}
+      %>
+    </TD>
+  
+  </TR>
 
-<TR>
+% } 
 
-  <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF=<%$href%>><% $ticket->{id} %></A></TD>
+</TABLE>
 
-  <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF=<%$href%>><% $ticket->{subject} %></A></TD>
+<%init>
 
-  <TD ALIGN="right" CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $ticket->{content} || $ticket->{priority} %></TD>
+my( $cust_main ) = @_;
+my( @tickets )  = $cust_main->tickets;
 
-  <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $ticket->{name} %></TD>
+my $open_link = FS::TicketSystem->href_customer_tickets($cust_main->custnum);
+my $openlabel = join('/', FS::TicketSystem->statuses );
 
-  <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $ticket->{status} %></TD>
+my $res_link  = FS::TicketSystem->href_customer_tickets(
+                  $cust_main->custnum,
+                  { 'statuses' => [ 'resolved' ] }
+                );
 
-</TR>
-% } 
-
-
-</TABLE>
+my $new_link = FS::TicketSystem->href_new_ticket(
+                 $cust_main,
+                 join(', ', $cust_main->invoicing_list_emailonly )
+               );
 
+</%init>