entityManager = $entityManager; $this->placesQuery = $placesQuery; } /** * @param int $id [description] * * @return bool|Exception [description] */ public function read(int $id) { $result = []; $repo = $this->entityManager->getRepository(VersionExport::class); $workflowRepo = $this->entityManager->getRepository(Transition::class); $versionExport = $repo->findOneBy(["id" => $id]); if(!empty($versionExport)){ $groups = []; $steps = []; foreach($versionExport->getGroups() as $group){ $groups[] = $group->getGroup(); } if(!$versionExport->getVersionWorkflowOptions()->isEmpty()){ foreach($versionExport->getVersionWorkflowOptions() as $versionWorkflowOption){ $workflowOption = $versionWorkflowOption->getWorkflowProjectOption(); $steps[] = [ "id" => $workflowOption->getStepId(), "name" => $versionWorkflowOption->getStepName(), "users" => $versionWorkflowOption->getUsers(), "dateFin" => $versionWorkflowOption->getDateFin() ? $versionWorkflowOption->getDateFin()->format('m/d/Y'): "" , "workflowOptionId" => $workflowOption->getId() ]; } } else { if(!empty($versionExport->getExport()->getWorkflowProjects()) && !empty($versionExport->getExport()->getWorkflowProjects()->getWorkflow()) ){ $workflowProj = $versionExport->getExport()->getWorkflowProjects(); $places = $this->placesQuery->getPlaces($workflowProj->getWorkflow(), $workflowProj->getPage()); if (!empty($places) && isset($places['places'])) { foreach ($places['places'] as $place) { if($place->name != "workflowEnd"){ $i = 0; $found = false; $option = null; while ($i < count($workflowProj->getOptions()) && !$found) { if ($workflowProj->getOptions()[$i]->getStepId() === $place->id) { $option = $workflowProj->getOptions()[$i]; $found = true; } ++$i; } $users = []; $transition = $workflowRepo->findOneBy(["startPlace" => $place->id]); if(!empty($transition)){ $users = $transition->getUsers(); } $steps[] = [ "id" => $place->id, "name" => $place->name, "dateFin" => $option && $option->getDateFin() ? $option->getDateFin()->format('Y-m-d') : null, "users" => $users, "workflowOptionId" => $option->getId() ]; } } } } } $result = new VersionGroupView( $id, $versionExport->getName(), $groups, $steps ); } return $result; } }