entityManager = $entityManager; $this->container = $container; } public function createWithoutFlush(EntityManagerInterface $entityManager, WorkflowProject $workflowProject) { $entityManager->persist($workflowProject); return $entityManager; } /** * @param int $id * * @return WorkflowProject|null */ public function findByExportId(int $id): ?WorkflowProject { return $this->entityManager->createQueryBuilder() ->select('wp') ->from(WorkflowProject::class, 'wp') ->innerJoin('wp.export', 'e') ->where('e.id = :id') ->andWhere('wp.deleted = false') ->setParameter('id', $id) ->getQuery()->getOneOrNullResult(); } /** * @param int $workflowProject_id * * @return bool */ public function delete(int $workflowProject_id): bool { try { $connection = $this->container->get('doctrine.dbal.projects_connection'); $sql = ' UPDATE export_workflow SET export_id = null, deleted = true WHERE id = ' . $workflowProject_id; $stmt = $connection->prepare($sql); $stmt->execute(); return true; } catch (Exception $exception) { return false; } } public function findByWorkflowAndPage(int $workflow_id, bool $page): array { try { return $this->entityManager->createQueryBuilder() ->select('wp') ->from(WorkflowProject::class, 'wp') ->where('wp.workflow = :id') ->andWhere('wp.page = :page') ->setParameters(['id'=> $workflow_id, 'page' => $page]) ->getQuery()->getResult(); } catch (Exception $e) { return []; } } /** * @param int $workflowProject_id * * @return bool */ public function remove(string $workflowProject_ids): bool { try { $connection = $this->container->get('doctrine.dbal.projects_connection'); $sql = ' UPDATE export_workflow SET workflow_id = null WHERE id IN (' . $workflowProject_ids . ')'; $stmt = $connection->prepare($sql); $stmt->execute(); return true; } catch (Exception $exception) { return false; } } public function getColor(string $status) { return $this->entityManager ->createQueryBuilder() ->select('pc.color') ->from(Places::class, 'pc') ->where('pc.key = :key') ->setParameters([':key' => $status]) ->getQuery() ->getOneOrNullResult() ; } /** * @param string $key [description] * * @return array [description] */ public function findByPlace(string $key): array { return $this->entityManager ->createQueryBuilder() ->select('wp') ->from(WorkflowProject::class, 'wp') ->where('wp.currentPlace = :key') ->setParameter('key', $key) ->getQuery() ->getResult(); } public function changeCurrentPlaceKey(string $currentKey, string $newKey) { try { $query = $this->entityManager->createQuery(); $query->setDQL( "UPDATE ".WorkflowProject::class." wp SET wp.currentPlace = '" . $newKey . "' WHERE wp.currentPlace = '" . $currentKey . "'" ); $query->execute(); return true; } catch (Exception $exception) { return false; } } }