/**
  * @ORM\PrePersist
  * @ORM\PreUpdate
  * @param Ticket $ticket
  * @param LifecycleEventArgs $event
  */
 public function prePersistHandler(Ticket $ticket, LifecycleEventArgs $event)
 {
     if ($ticket->getSequenceNumber()->getValue()) {
         return;
     }
     $em = $event->getEntityManager();
     $query = $em->createQuery("SELECT MAX(t.sequenceNumber) FROM DiamanteDeskBundle:Ticket t WHERE t.branch = :branchId")->setParameter('branchId', $ticket->getBranch()->getId());
     $ticketSequenceNumberValue = $query->getSingleScalarResult();
     $ticketSequenceNumberValue++;
     $ticketSequenceNumber = $ticket->getSequenceNumber();
     $ref = new \ReflectionClass($ticketSequenceNumber);
     $property = $ref->getProperty(self::TICKET_SEQUENCE_NUMBER_FIELD_TO_UPDATE);
     $property->setAccessible(true);
     $property->setValue($ticketSequenceNumber, $ticketSequenceNumberValue);
     $property->setAccessible(false);
 }
예제 #2
0
 public function testCreates()
 {
     $branch = $this->createBranch();
     $reporter = $this->createReporter();
     $assignee = $this->createAssignee();
     $ticket = new Ticket(new UniqueId('unique_id'), new TicketSequenceNumber(null), self::TICKET_SUBJECT, self::TICKET_DESCRIPTION, $branch, $reporter, $assignee, new Source(Source::PHONE), new Priority(Priority::PRIORITY_LOW), new Status(Status::OPEN));
     $this->assertEquals(new UniqueId('unique_id'), $ticket->getUniqueId());
     $this->assertEquals('Subject', $ticket->getSubject());
     $this->assertEquals('Description', $ticket->getDescription());
     $this->assertEquals($branch, $ticket->getBranch());
     $this->assertEquals('open', $ticket->getStatus()->getValue());
     $this->assertEquals($reporter, $ticket->getReporter());
     $this->assertEquals($assignee, $ticket->getAssignee());
     $this->assertEquals(Source::PHONE, $ticket->getSource()->getValue());
     $this->assertNull($ticket->getSequenceNumber()->getValue());
     $this->assertNull($ticket->getKey());
 }
 public static function create(Branch $branch, Ticket $ticket)
 {
     return new TicketKey($branch->getKey(), $ticket->getSequenceNumber()->getValue());
 }