added project filter in user-list reports (#4615)

This commit is contained in:
Kevin Papst
2024-02-07 18:00:29 +01:00
committed by GitHub
parent e98732f44a
commit 7abe787778
13 changed files with 139 additions and 60 deletions

View File

@@ -0,0 +1,57 @@
<?php
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace App\Repository\Query;
use App\Entity\Project;
use App\Entity\User;
final class TimesheetStatisticQuery
{
private ?Project $project = null;
/**
* @param array<User> $users
*/
public function __construct(
private readonly \DateTimeInterface $begin,
private readonly \DateTimeInterface $end,
private array $users
)
{
}
public function getBegin(): \DateTimeInterface
{
return $this->begin;
}
public function getEnd(): \DateTimeInterface
{
return $this->end;
}
/**
* @return User[]
*/
public function getUsers(): array
{
return $this->users;
}
public function getProject(): ?Project
{
return $this->project;
}
public function setProject(?Project $project): void
{
$this->project = $project;
}
}

View File

@@ -53,7 +53,7 @@ class UserRepository extends EntityRepository implements UserLoaderInterface, Us
* @throws ORMException
* @throws \Doctrine\ORM\OptimisticLockException
*/
public function saveUser(User $user)
public function saveUser(User $user): void
{
$entityManager = $this->getEntityManager();
$entityManager->persist($user);
@@ -397,7 +397,7 @@ class UserRepository extends EntityRepository implements UserLoaderInterface, Us
* @param UserQuery $query
* @return User[]
*/
public function getUsersForQuery(UserQuery $query): iterable
public function getUsersForQuery(UserQuery $query): array
{
$qb = $this->getQueryBuilderForQuery($query);
@@ -408,8 +408,9 @@ class UserRepository extends EntityRepository implements UserLoaderInterface, Us
* @param QueryBuilder $qb
* @return User[]
*/
protected function getHydratedResultsByQuery(QueryBuilder $qb): iterable
protected function getHydratedResultsByQuery(QueryBuilder $qb): array
{
/** @var array<User> $results */
$results = $qb->getQuery()->getResult();
$loader = new UserLoader($qb->getEntityManager());