feat: feedback export to excel
addresses #869dv9k9z
This commit is contained in:
@@ -9,6 +9,7 @@ use App\Model\FeedbackFilterDto;
|
||||
use App\Repository\Traits\QueryHelperTrait;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\ORM\Query;
|
||||
use Doctrine\ORM\QueryBuilder;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
||||
/**
|
||||
@@ -38,6 +39,38 @@ class FeedbackRepository extends ServiceEntityRepository
|
||||
->innerJoin('teamer.user', 'user')
|
||||
;
|
||||
|
||||
$this->applyFilterCriteria($qb, $filterDto);
|
||||
|
||||
return $qb->getQuery();
|
||||
}
|
||||
|
||||
/**
|
||||
* Published feedback matching the given filter, one row per record, with the
|
||||
* FeedbackSet eagerly loaded and rows grouped per teamer and ordered by season.
|
||||
*/
|
||||
public function getExportQuery(FeedbackFilterDto $filterDto): Query
|
||||
{
|
||||
$qb = $this->createQueryBuilder('feedback');
|
||||
|
||||
$qb
|
||||
->select('feedback', 'teamer', 'user', 'feedbackSet')
|
||||
->innerJoin('feedback.teamer', 'teamer')
|
||||
->innerJoin('teamer.user', 'user')
|
||||
->innerJoin('feedback.feedbackSet', 'feedbackSet')
|
||||
->andWhere($qb->expr()->eq('feedback.status', ':status'))
|
||||
->setParameter('status', Feedback::STATUS_PUBLISHED)
|
||||
->orderBy('teamer.lastName', 'ASC')
|
||||
->addOrderBy('teamer.firstName', 'ASC')
|
||||
->addOrderBy('feedback.assignmentDateFrom', 'ASC')
|
||||
;
|
||||
|
||||
$this->applyFilterCriteria($qb, $filterDto);
|
||||
|
||||
return $qb->getQuery();
|
||||
}
|
||||
|
||||
private function applyFilterCriteria(QueryBuilder $qb, FeedbackFilterDto $filterDto): void
|
||||
{
|
||||
if (null !== $teamer = $filterDto->getTeamer()) {
|
||||
$qb
|
||||
->andWhere($qb->expr()->eq('feedback.teamer', ':teamer'))
|
||||
@@ -73,8 +106,6 @@ class FeedbackRepository extends ServiceEntityRepository
|
||||
->setParameter('dateTo', $dateTo)
|
||||
;
|
||||
}
|
||||
|
||||
return $qb->getQuery();
|
||||
}
|
||||
|
||||
public function getNew(int $limit = 5): array
|
||||
|
||||
Reference in New Issue
Block a user