diff --git a/src/Activity/ActivityStatisticService.php b/src/Activity/ActivityStatisticService.php index 251cf3c1f..d95017a57 100644 --- a/src/Activity/ActivityStatisticService.php +++ b/src/Activity/ActivityStatisticService.php @@ -273,19 +273,17 @@ class ActivityStatisticService $activities = $qb->getQuery()->getResult(); // pre-cache project objects instead of joining them - $loader = new ActivityLoader($this->activityRepository->createQueryBuilder('a')->getEntityManager(), false, false, false); + $loader = new ActivityLoader($this->activityRepository->createQueryBuilder('a')->getEntityManager()); $loader->loadResults($activities); return $activities; } /** - * @param User $user * @param Activity[] $activities - * @param DateTime $today * @return ActivityViewModel[] */ - public function getActivityView(User $user, array $activities, DateTime $today): array + public function getActivityView(User $user, array $activities, DateTimeInterface $today): array { $factory = DateTimeFactory::createByUser($user); $today = clone $today; @@ -315,12 +313,13 @@ class ActivityStatisticService ->addSelect('COALESCE(SUM(t.rate), 0) AS rate') ->andWhere($tplQb->expr()->in('t.activity', ':activity')) ->groupBy('t.activity') - ->setParameter('activity', array_values($activityIds)) + ->setParameter('activity', $activityIds) ; $qb = clone $tplQb; $qb->addSelect('MAX(t.date) as lastRecord'); + /** @var array $result */ $result = $qb->getQuery()->getScalarResult(); foreach ($result as $row) { $activityView[$row['id']]->setDurationTotal($row['duration']); @@ -339,6 +338,7 @@ class ActivityStatisticService ->setParameter('start_date', $today, Types::DATETIME_MUTABLE) ; + /** @var array $result */ $result = $qb->getQuery()->getScalarResult(); foreach ($result as $row) { $activityView[$row['id']]->setDurationDay($row['duration'] ?? 0); @@ -352,6 +352,7 @@ class ActivityStatisticService ->setParameter('end_date', $endOfWeek, Types::DATETIME_MUTABLE) ; + /** @var array $result */ $result = $qb->getQuery()->getScalarResult(); foreach ($result as $row) { $activityView[$row['id']]->setDurationWeek($row['duration']); @@ -365,6 +366,7 @@ class ActivityStatisticService ->setParameter('end_date', $endMonth, Types::DATETIME_MUTABLE) ; + /** @var array $result */ $result = $qb->getQuery()->getScalarResult(); foreach ($result as $row) { $activityView[$row['id']]->setDurationMonth($row['duration']); @@ -377,6 +379,8 @@ class ActivityStatisticService ->addGroupBy('t.exported') ->addGroupBy('t.billable') ; + + /** @var array $result */ $result = $qb->getQuery()->getScalarResult(); foreach ($result as $row) { /** @var ActivityViewModel $view */ diff --git a/src/Reporting/ActivityView/ActivityViewQuery.php b/src/Reporting/ActivityView/ActivityViewQuery.php index ec1f8e61e..f83a5cef5 100644 --- a/src/Reporting/ActivityView/ActivityViewQuery.php +++ b/src/Reporting/ActivityView/ActivityViewQuery.php @@ -22,7 +22,7 @@ final class ActivityViewQuery { } - public function getUser(): ?User + public function getUser(): User { return $this->user; } diff --git a/src/Repository/ActivityRepository.php b/src/Repository/ActivityRepository.php index 13177916a..6101967c0 100644 --- a/src/Repository/ActivityRepository.php +++ b/src/Repository/ActivityRepository.php @@ -94,7 +94,7 @@ class ActivityRepository extends EntityRepository /** * @param array $teams */ - private function addPermissionCriteria(QueryBuilder $qb, ?User $user = null, array $teams = [], bool $globalsOnly = false): void + public function addPermissionCriteria(QueryBuilder $qb, ?User $user = null, array $teams = [], bool $globalsOnly = false): void { $permissions = $this->getPermissionCriteria($qb, $user, $teams, $globalsOnly); if ($permissions->count() > 0) {