this should fix the occasional extra ticket showing up on wrong customer record
authorivan <ivan>
Wed, 23 Sep 2009 23:47:25 +0000 (23:47 +0000)
committerivan <ivan>
Wed, 23 Sep 2009 23:47:25 +0000 (23:47 +0000)
FS/FS/TicketSystem/RT_External.pm

index c788c03..8ccc937 100644 (file)
@@ -156,14 +156,16 @@ sub _from_customer {
   }
 
   my $sql = "
-                    FROM Tickets
-                    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
+    FROM Tickets
+      JOIN Queues ON ( Tickets.Queue = Queues.id )
+      JOIN Users  ON ( Tickets.Owner = Users.id  )
+      JOIN Links  ON ( Tickets.id    = Links.LocalBase
+                       AND Links.Base LIKE '%/ticket/' || Tickets.id )
+      $join 
+
+    WHERE ( ". join(' OR ', map "Status = '$_'", $self->statuses ). " )
+      AND Target = 'freeside://freeside/cust_main/$custnum'
+      $where
   ";
 
   ( $sql, @param );