/** * @param Project $project */ private function updateProjectTickets(Project $project) { $this->output->write(sprintf('%-30s', ' - Updating Tickets')); $previewTickets = $this->previewService->getTickets($project->getId()); $zapped = 0; $created = 0; $updated = 0; $missed = 0; foreach ($previewTickets as $previewTicket) { $ticket = $this->entityManager->getRepository('ProjectPreviewPreviewBundle:Ticket')->find($previewTicket->id); if (!is_null($ticket) && $ticket->getUpdated()->getTimestamp() >= $previewTicket->updated && !$this->input->getOption('full-resync')) { $zapped++; continue; } if (is_null($ticket)) { $ticket = new Ticket(); $ticket->setId($previewTicket->id); $created++; } else { $updated++; } $ticket->setProject($project); if ($this->updateTicketFromPreview($ticket, $previewTicket)) { $this->entityManager->persist($ticket); $this->importTicketActivities($ticket); } else { $missed++; } } $this->entityManager->flush(); $this->output->writeln(sprintf('done (total: % 4d, created: % 4d, updated: % 4d, zapped: % 4d, missed: % 4d)', $created + $updated + $zapped, $created, $updated, $zapped, $missed)); }