/** * @param JobNursery $jobNursery * @param ArrayCollection $originalPeriods * @param bool $flush */ public function cleanPeriods(JobNursery $jobNursery, ArrayCollection $originalPeriods, $flush = true) { foreach ($originalPeriods as $period) { if (false === $jobNursery->getPeriods()->contains($period)) { $this->manager->remove($period); } } if ($flush) { $this->manager->flush(); } }
/** * @param JobNursery $jobNursery * @param Request $request * * @return JsonResponse * * @Route("/{id}/deactivate", requirements={"id": "^\d+$"}, name="app_job_nurseries_deactivate", methods="PATCH") * @Security("has_role('ROLE_CALD_NURS_ACTIV')") */ public function deactivateAction(JobNursery $jobNursery, Request $request) { $this->assertXmlHttpRequest($request); $jobNursery->setActive(false); $this->get('doctrine.orm.entity_manager')->flush(); return new JsonResponse(['message' => $this->get('translator')->trans('job_nurseries.message.inactive')]); }
/** * @param ExecutionContextInterface $context * * @Assert\Callback */ public function validatePeriods(ExecutionContextInterface $context) { if ($this->jobNursery->isSerial() !== $this->isSerialType()) { $context->buildViolation('job_nursery.period_serial')->atPath('type')->addViolation(); } }