public function pAgregarComentarioCuestionarioAction(Request $request) { if (strcmp(filter_input(INPUT_SERVER, 'HTTP_X_REQUESTED_WITH', FILTER_SANITIZE_STRING), 'XMLHttpRequest') == 0) { $user = $this->get('security.context')->getToken()->getUser(); $em = $this->getDoctrine()->getManager(); $idCuestionario = $request->request->get('idCuestionario'); $cuestionario = $em->getRepository('UciBaseDatosBundle:Cuestionario')->find($idCuestionario); $usuario = $em->getRepository('UciBaseDatosBundle:Usuario')->find($user); $idUsuario = $usuario->getId(); $comentarios = $request->request->get('comentarios'); $em->getConnection()->beginTransaction(); try { foreach ($comentarios as $comentario) { $usuarioCorrige = new UsuarioCorrigePregunta(); $idPregunda = $comentario['id']; $texto = $comentario['texto']; $usuarioCorrigeExistente = $em->getRepository('UciBaseDatosBundle:UsuarioCorrigePregunta')->createQueryBuilder('u')->innerJoin('u.cuestionario', 'c')->innerJoin('u.usuario', 'p')->innerJoin('u.pregunta', 'r')->where('c.id = :idCuest')->andWhere('p.id = :idUser')->andWhere('r.id = :idPreg')->setParameter('idCuest', $idCuestionario)->setParameter('idUser', $idUsuario)->setParameter('idPreg', $idPregunda)->getQuery()->getResult(); if ($usuarioCorrigeExistente == null) { $pregunta = $em->getRepository('UciBaseDatosBundle:Pregunta')->find($idPregunda); $usuarioCorrige->setComentario($texto); $usuarioCorrige->setCuestionario($cuestionario); $usuarioCorrige->setPregunta($pregunta); $usuarioCorrige->setUsuario($usuario); } else { $usuarioCorrige = $usuarioCorrigeExistente[0]; $usuarioCorrige->setComentario($texto); } $em->persist($usuarioCorrige); $noBorrar[] = $usuarioCorrige->getId(); $em->clear($usuarioCorrige); } $correccionesBorrar = $em->getRepository('UciBaseDatosBundle:UsuarioCorrigePregunta')->createQueryBuilder('p')->where('p.id NOT IN (:miarray2)')->setParameter('miarray2', $noBorrar)->getQuery()->getResult(); foreach ($correccionesBorrar as $correccion) { $em->remove($correccion); $em->clear($correccion); } $em->flush(); $em->commit(); return new JsonResponse(array('resultado' => 1)); } catch (\Doctrine\ORM\ORMException $e) { $em->getConnection()->rollback(); return new JsonResponse(array('resultado' => 0)); } catch (\Exception $e) { $em->getConnection()->rollback(); return new JsonResponse(array('resultado' => 0)); } return new JsonResponse(array('resultado' => 0)); } }
public function aVerCuestionarioObservadoAction(Request $request, $id) { $em = $this->getDoctrine()->getManager(); $cuestionario = $em->getRepository('UciBaseDatosBundle:Cuestionario')->createQueryBuilder('u')->innerJoin('u.curso', 'g')->andWhere('u.id = :id')->setParameter('id', $id)->getQuery()->getSingleResult(); $preguntas = $cuestionario->getPregunta(); $idCuestionario = $cuestionario->getId(); foreach ($preguntas as $pregunta) { $usuarioCorrige = $em->getRepository('UciBaseDatosBundle:UsuarioCorrigePregunta')->createQueryBuilder('u')->innerJoin('u.cuestionario', 'c')->innerJoin('u.usuario', 'p')->innerJoin('u.pregunta', 'r')->where('c.id = :idCuest')->andWhere('r.id = :idPreg')->setParameter('idCuest', $idCuestionario)->setParameter('idPreg', $pregunta->getId())->getQuery()->getResult(); if ($usuarioCorrige == null) { $usuarioCorrige = new UsuarioCorrigePregunta(); $usuarioCorrige->setComentario(''); $usuarioCorrige->setPregunta($pregunta); } else { $usuarioCorrige = $usuarioCorrige[0]; } $preguntasComentario[] = $usuarioCorrige; } return $this->render('UciAdministradorBundle:VistaObservacion:verObservacion.html.twig', array('entity' => $cuestionario, 'preguntasComentario' => $preguntasComentario)); }