public function deactivation(PassModule $passModule, $finishTime = null) { $em = $this->doctrine->getManager(); $moduleUser = $em->getRepository('AppBundle:ModuleUser')->find($passModule->getModuleUser()); $module = $em->getRepository('AppBundle:Module')->find($moduleUser->getModule()); if ($finishTime) { $passModule->setTimeFinish($finishTime); } $passModule->setIsActive(false); $em->flush(); if ($passModule->getPercentResult() >= $module->getPersentSuccess()) { $moduleUser->setStatus(ModuleUser::STATUS_SUCCESS); $moduleUser->setRating($passModule->getRating()); } else { if ($moduleUser->getCountPassModules() >= $module->getAttempts()) { $moduleUser->setStatus(ModuleUser::STATUS_FAILED); } } $em->flush(); }