Fix: Properly determine if job profiles requirements are met by teamer

This commit is contained in:
Björn Fromme
2023-10-12 14:29:54 +02:00
parent b0f57cdcaa
commit 46f39888b5
@@ -36,20 +36,27 @@ class SkillsController extends AbstractController
foreach ($jobProfiles as $profile) { foreach ($jobProfiles as $profile) {
/** @var JobProfile $profile */ /** @var JobProfile $profile */
$jobProfileIsSelectable = false; $requiredTrainingsSatisfied = false;
if (0 === $profile->getRequiredTrainings()->count()) {
$requiredTrainingsSatisfied = true;
}
foreach ($profile->getRequiredTrainings() as $training) { foreach ($profile->getRequiredTrainings() as $training) {
if (null !== $teamer->getTrainingAttendance($training)) { if (null !== $teamer->getTrainingAttendance($training)) {
$jobProfileIsSelectable = true; $requiredTrainingsSatisfied = true;
break; break;
} }
} }
$requiredLicensesSatisfied = false;
if (0 === count($profile->getRequiredLicenses())) {
$requiredLicensesSatisfied = true;
}
foreach ($profile->getRequiredLicenses() as $license) { foreach ($profile->getRequiredLicenses() as $license) {
if (null !== $teamer->getLicenseOfType($license)) { if (null !== $teamer->getLicenseOfType($license)) {
$jobProfileIsSelectable = true; $requiredLicensesSatisfied = true;
break; break;
} }
} }
$selectableJobProfiles[$profile->getId()] = $jobProfileIsSelectable; $selectableJobProfiles[$profile->getId()] = $requiredTrainingsSatisfied && $requiredLicensesSatisfied;
} }
$form = $this->createForm(TeamerJobProfileType::class, $teamer, ['job_profiles' => $jobProfiles, 'selectable_job_profiles' => $selectableJobProfiles]); $form = $this->createForm(TeamerJobProfileType::class, $teamer, ['job_profiles' => $jobProfiles, 'selectable_job_profiles' => $selectableJobProfiles]);