/** * @param Ticket $ticket * @param User $user * @param null $type * * @return bool */ public function scheduleTicket(Ticket $ticket, User $user, $type = null) { if (is_null($type)) { $type = 'estimated'; } $funcTime = 'get' . ucfirst(strtolower($type)) . 'Time'; $time = $ticket->{$funcTime}(); if ($time == 0) { return false; } if (is_null($ticket->getDueDate())) { return false; } try { $events = $this->googleApiService->schedule($user, $time, sprintf('[%s] #%d', $ticket->getProject()->getName(), $ticket->getId()), sprintf('https://projets.preview-app.net/project/%d/issues/kanban?issue=%d %s %s', $ticket->getProject()->getId(), $ticket->getId(), chr(10), $ticket->getDescription())); return $events; } catch (\Exception $e) { var_dump($e->getMessage()); } return false; }
/** * @param User $user * @param Ticket $ticket * * @return bool */ protected function checkClientRead(User $user, Ticket $ticket) { return in_array($user, $ticket->getProject()->getClients()->toArray()); }
/** * @param Ticket $ticket */ private function importTicketActivities(Ticket $ticket) { $activities = $this->previewService->getTicketActivity($ticket->getProject()->getId(), $ticket->getId()); $activitiesDb = $ticket->getActivities(); foreach ($activities as $activity) { if ($activity->spread_identifier != 'UserChangeStateIssue') { continue; } $create = true; foreach ($activitiesDb as $activityDb) { if ($activity->spread_identifier == $activityDb->getAction() && $activity->created == $activityDb->getCreated()->getTimestamp() && $activity->value == $activityDb->getValue()) { $create = false; break; } } if ($create == true) { $author = $this->entityManager->getRepository('ProjectPreviewUserBundle:User')->find($activity->author->id); $activityNew = new Activity(); $activityNew->setAuthor($author); $activityNew->setCreated(new \DateTime('@' . $activity->created)); $activityNew->setAction($activity->spread_identifier); $activityNew->setValue($activity->value); $activityNew->setTicket($ticket); $this->entityManager->persist($activityNew); } if ($ticket->getStatus() == 'Fermé' && $activity->spread_identifier == 'UserChangeStateIssue') { $ticket->setClosed(new \DateTime('@' . $activity->created)); $this->entityManager->persist($ticket); } } }
/** * @param Ticket $ticket * * @return int */ private function calcTotalTime(Ticket $ticket) { return $ticket->getDesignTime() + $ticket->getUxTime() + $ticket->getFrontTime() + $ticket->getBackTime(); }