<?php
namespace App\EventListener;
use App\Event\Appraisal\AppraisalCycleStartedEvent;
use App\Service\Appraisal\AppraisalService;
use App\Service\User\UserHelper;
use Doctrine\ORM\EntityManagerInterface;
class AppraisalCycleStartedListener
{
private $em;
private $appraisalService;
public function __construct(EntityManagerInterface $em, AppraisalService $appraisalService)
{
$this->em = $em;
$this->appraisalService = $appraisalService;
}
public function onAppraisalCycleStarted(AppraisalCycleStartedEvent $event)
{
$appraisalCycle = $event->getCycle();
if ($appraisalCycle->getHasAssessments()) {
return;
}
$users = UserHelper::getAllUsersWithJobAssignment($this->em);
foreach ($users as $user) {
if (!$manager = $user->getManager()) {
continue;
}
$this->appraisalService->createMSCOnlyAppraisal($user, $manager, $appraisalCycle);
}
}
}