fix: don't present unavailable assignments to teamers on their dashboard

This commit is contained in:
Björn Fromme
2025-12-03 09:41:37 +01:00
parent 222c6e5aee
commit 306a3abc48
+3 -7
View File
@@ -270,6 +270,8 @@ class AssignmentRepository extends ServiceEntityRepository
public function getNewMatchingTeamerProfile(Teamer $teamer, int $limit = 5): array
{
$availableAssignmentsIds = $this->getAvailableAssignmentsIds();
$qb = $this->createQueryBuilder('assignment');
$qb
@@ -280,21 +282,15 @@ class AssignmentRepository extends ServiceEntityRepository
->leftJoin('assignment.applications', 'application', Join::WITH, $qb->expr()->eq('application.teamer', ':teamer'))
->leftJoin('assignment.dispositions', 'disposition', Join::WITH, $qb->expr()->eq('disposition.teamer', ':teamer'))
->where($qb->expr()->andX(
$qb->expr()->eq('assignment.status', ':status'),
$qb->expr()->neq('assignment.staffingStatus', ':staffingStatus'),
$qb->expr()->in('assignment.jobProfile', ':jobProfiles'),
$qb->expr()->isNull('application'),
$qb->expr()->isNull('disposition'),
$qb->expr()->orX(
$qb->expr()->gt('assignment.dateFrom', ':dateFrom'),
$qb->expr()->gt('destination.dateFrom', ':dateFrom')
)
$qb->expr()->in('assignment.id', $availableAssignmentsIds)
))
->setParameter('status', Assignment::STATUS_PUBLISHED)
->setParameter('staffingStatus', Assignment::STATUS_STAFFED)
->setParameter('jobProfiles', $teamer->getJobProfiles())
->setParameter('teamer', $teamer)
->setParameter('dateFrom', new \DateTimeImmutable())
;
if (0 === $teamer->getTrainingAttendances()->count() && 0 === $teamer->getLicenses()->count()) {