/** * @param Ticket $ticket * @param $previewTicket * * @return bool */ private function updateTicketFromPreview(Ticket $ticket, $previewTicket) { $author = $this->entityManager->getRepository('ProjectPreviewUserBundle:User')->find($previewTicket->author->id); if (is_null($author)) { $this->output->writeln('no author'); return false; } $ticket->setAuthor($author); if (isset($previewTicket->assigned_user->id)) { $assign = $this->entityManager->getRepository('ProjectPreviewUserBundle:User')->find($previewTicket->assigned_user->id); $ticket->setAssigned($assign); } else { $ticket->setAssigned(null); } $sprint = $this->entityManager->getRepository('ProjectPreviewPreviewBundle:Sprint')->find($previewTicket->sprint->id); if (is_null($sprint)) { $this->output->writeln('nosprint'); return false; } $ticket->setSprint($sprint); $ticket->setDescription($previewTicket->description); $ticket->setStatus($previewTicket->issue_state->name); $ticket->setPriority($previewTicket->priority->name); $ticket->setTracker($previewTicket->tracker->name); $ticket->setType($previewTicket->type); $ticket->setArchive($previewTicket->archived); $ticket->setCreated(new \DateTime('@' . $previewTicket->created)); $ticket->setDueDate(!empty($previewTicket->due_date) ? new \DateTime('@' . $previewTicket->due_date) : null); if (isset($previewTicket->estimated_time->design)) { $ticket->setDesignTime($previewTicket->estimated_time->design); } if (isset($previewTicket->estimated_time->ux)) { $ticket->setUxTime($previewTicket->estimated_time->ux); } if (isset($previewTicket->estimated_time->front)) { $ticket->setFrontTime($previewTicket->estimated_time->front); } if (isset($previewTicket->estimated_time->back)) { $ticket->setBackTime($previewTicket->estimated_time->back); } $ticket->setEstimatedTime($previewTicket->estimated_time->total); $ticket->setUpdated(new \DateTime()); return true; }