/** * Технический фильтр по параметрам * @param array $filter * @return array|mixed|\PropelObjectCollection */ public function filter($filter = array()) { $this->filter = $filter; $query = TicketQuery::create(); if (isset($this->filter['is_done']) && $this->filter['is_done']) { $query->filterByIsDone($this->filter['is_done']); } if (isset($this->filter['is_done']) && !$this->filter['is_done']) { $query->filterByIsDone(null, \Criteria::ISNULL); } if (isset($this->filter['resolution']) && $this->filter['resolution']) { $query->filterByTicketResolutionId(null, \Criteria::ISNOTNULL); } if (isset($this->filter['resolution']) && !$this->filter['resolution']) { $query->filterByTicketResolutionId(null, \Criteria::ISNULL); } $query->filterByIsDeleted(null, \Criteria::ISNULL); $query->orderByCreatedAt(\Criteria::DESC); return $query->find(); }
/** * Получение списка доступных операций для статуса и роли * @Route("/operation", name="operation") * @param Request $request * @return JsonResponse */ public function operationAction(Request $request) { $id = $request->get('id'); if (!$id) { throw $this->createNotFoundException('Page not found'); } $ticket_service = $this->get('app.ticket_service'); $ticket = TicketQuery::create()->findOneById($id); if (!$ticket instanceof Ticket) { throw $this->createNotFoundException('Ticket not found'); } return $ticket_service->generateActionResponse($ticket); }