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) {
/** @var JobProfile $profile */
$jobProfileIsSelectable = false;
$requiredTrainingsSatisfied = false;
if (0 === $profile->getRequiredTrainings()->count()) {
$requiredTrainingsSatisfied = true;
}
foreach ($profile->getRequiredTrainings() as $training) {
if (null !== $teamer->getTrainingAttendance($training)) {
$jobProfileIsSelectable = true;
$requiredTrainingsSatisfied = true;
break;
}
}
$requiredLicensesSatisfied = false;
if (0 === count($profile->getRequiredLicenses())) {
$requiredLicensesSatisfied = true;
}
foreach ($profile->getRequiredLicenses() as $license) {
if (null !== $teamer->getLicenseOfType($license)) {
$jobProfileIsSelectable = true;
$requiredLicensesSatisfied = true;
break;
}
}
$selectableJobProfiles[$profile->getId()] = $jobProfileIsSelectable;
$selectableJobProfiles[$profile->getId()] = $requiredTrainingsSatisfied && $requiredLicensesSatisfied;
}
$form = $this->createForm(TeamerJobProfileType::class, $teamer, ['job_profiles' => $jobProfiles, 'selectable_job_profiles' => $selectableJobProfiles]);