taskLifecycleStateMachine->getDefinition()->getPlaces(); $metas = $this->taskLifecycleStateMachine->getMetadataStore(); if (empty($places)) { return $stats; } foreach ($places as $place => $id) { $stats[$place] = array_merge($metas->getPlaceMetadata($place), [ 'value' => 0, ]); } $max = 0; foreach ($project->getTasks() as $task) { $stats[$task->getStatus()]['value'] += 1; $max += 1; } if ($max === 0) { return $stats; } $stats = array_map(function ($data) use ($max) { $data['max'] = $max; $data['percentage'] = ((float) $data['value'] * 100.0) / $max; return $data; }, $stats); return $stats; } }