feat: auto assign matching job profiles when adding trainings
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Controller\Admin\Teamer\TrainingAttendance;
|
||||
|
||||
use App\Entity\JobProfile;
|
||||
use App\Entity\Teamer;
|
||||
use App\Entity\Training;
|
||||
use App\Entity\TrainingAttendance;
|
||||
@@ -54,6 +55,7 @@ class CreateController extends AbstractController
|
||||
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$this->entityManager->persist($attendance);
|
||||
$this->assignJobProfiles($teamer, $attendance);
|
||||
$this->entityManager->flush();
|
||||
|
||||
$this->addFlash('success', 'Die Teilnahme wurde hinzugefügt');
|
||||
@@ -74,4 +76,25 @@ class CreateController extends AbstractController
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
private function assignJobProfiles(Teamer $teamer, TrainingAttendance $attendance): void
|
||||
{
|
||||
$qb = $this
|
||||
->entityManager
|
||||
->getRepository(JobProfile::class)
|
||||
->createQueryBuilder('job_profile')
|
||||
;
|
||||
|
||||
$jobProfiles = $qb
|
||||
->leftJoin('job_profile.requiredTrainings', 'required_trainings')
|
||||
->where($qb->expr()->in('required_trainings', ':training'))
|
||||
->setParameter('training', $attendance->getTraining())
|
||||
->getQuery()
|
||||
->getResult()
|
||||
;
|
||||
|
||||
foreach ($jobProfiles as $jobProfile) {
|
||||
$teamer->addJobProfile($jobProfile);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user