getRepository('ChamiloCoreBundle:TrackEExercises') ->find(intval($_REQUEST['id'])); if ( $trackedExercise->getExeUserId() != intval($_REQUEST['user']) || $trackedExercise->getExeExoId() != intval($_REQUEST['exercise']) ) { api_not_allowed(true); exit; } $attemps = $em->getRepository('ChamiloCoreBundle:TrackEAttempt') ->findBy([ 'exeId' => $trackedExercise->getExeId(), 'userId' => $trackedExercise->getExeUserId() ]); $newResult = 0; foreach ($attemps as $attemp) { $questionId = $attemp->getQuestionId(); $question = $em->find('ChamiloCourseBundle:CQuizQuestion', $questionId); if (!$question) { continue; } $answers = $em->getRepository('ChamiloCourseBundle:CQuizAnswer')->findBy([ 'questionId' => $questionId, 'correct' => 1 ]); $newMarks = 0; foreach ($answers as $answer) { if ($answer->getId() != $attemp->getAnswer()) { continue; } $newMarks += $answer->getPonderation(); } $newResult += $newMarks; $attemp->setMarks($newMarks); $em->merge($attemp); } $trackedExercise->setExeResult($newResult); $em->merge($trackedExercise); $em->flush();