/** * This function takes all the cost versions grouped by a project version. By toggling the toArray * a special array is produced for displaying purposes. * * @param Project $project * @param Version $version * * @return Effort\Version[]|array */ public function findEffortVersionByProjectPerWorkpackageByVersion(Project $project, Version $version) { $effortByWorkpackage = []; $versionService = new VersionService(); foreach ($project->getWorkpackage() as $workpackage) { if (!is_null($workpackage->getDateEnd())) { continue; } $effortVersion = $this->getEntityManager()->getRepository($this->getFullEntityName('Effort\\Version'))->findEffortVersionByWorkpackageAndVersion($workpackage, $version); $effortByWorkpackage[$workpackage->getId()] = ['workpackage' => $workpackage, 'effort' => $versionService->parseCostOrEffortVersionAsArray($effortVersion)]; } return $effortByWorkpackage; }