/** * @Route("/usuario/{id}/sala/{id_sala}/{accion}", name="usuario_asignar_sala", options={"expose"=true}) * @ParamConverter("sala", class="IndicadoresBundle:GrupoIndicadores", options={"id" = "id_sala"}) */ public function asignarSala(User $usuario, GrupoIndicadores $sala, $accion) { $em = $this->getDoctrine()->getManager(); if ($accion == 'add') { $salaUsuario = new UsuarioGrupoIndicadores(); $salaUsuario->setUsuario($usuario); $salaUsuario->setGrupoIndicadores($sala); $em->persist($salaUsuario); } else { $salaUsuario = $em->getRepository('IndicadoresBundle:UsuarioGrupoIndicadores')->findOneBy(array('usuario' => $usuario, 'grupoIndicadores' => $sala)); $em->remove($salaUsuario); } $em->flush(); return new Response(); }
/** * @Route("/sala/{id}/set_usuario/{id_usuario}/{accion}", name="sala_set_usuario", options={"expose"=true}) */ public function setUsuarioSala(GrupoIndicadores $sala, $id_usuario, $accion) { $em = $this->getDoctrine()->getManager(); if ($accion == 'borrar') { $usuarios_asignados = $em->getRepository('IndicadoresBundle:UsuarioGrupoIndicadores')->findOneBy(array('usuario' => $id_usuario, 'grupoIndicadores' => $sala)); $em->remove($usuarios_asignados); } else { $usuario = $em->find('IndicadoresBundle:User', $id_usuario); $usuarioSala = new UsuarioGrupoIndicadores(); $usuarioSala->setGrupoIndicadores($sala); $usuarioSala->setUsuario($usuario); $usuarioSala->setUsuarioAsigno($this->getUser()); $em->persist($usuarioSala); } $em->flush(); return new Response(); }
/** * @Route("/sala/guardar", name="sala_guardar", options={"expose"=true}) */ public function guardarSala() { $em = $this->getDoctrine()->getManager(); $req = $this->getRequest(); $resp = array(); $sala = json_decode($req->get('datos')); $em->getConnection()->beginTransaction(); try { if ($sala->id != '') { $grupoIndicadores = $em->find('IndicadoresBundle:GrupoIndicadores', $sala->id); //Borrar los indicadores antiguos de la sala foreach ($grupoIndicadores->getIndicadores() as $ind) { $em->remove($ind); } $em->flush(); //$grupoIndicadores->removeIndicadore($ind); } else { $grupoIndicadores = new \MINSAL\IndicadoresBundle\Entity\GrupoIndicadores(); } $grupoIndicadores->setNombre($sala->nombre); foreach ($sala->datos_indicadores as $grafico) { if (!empty($grafico->id_indicador)) { $indG = new \MINSAL\IndicadoresBundle\Entity\GrupoIndicadoresIndicador(); $ind = $em->find('IndicadoresBundle:FichaTecnica', $grafico->id_indicador); $indG->setDimension($grafico->dimension); $indG->setFiltro($grafico->filtros); $indG->setFiltroPosicionDesde($grafico->filtro_desde); $indG->setFiltroPosicionHasta($grafico->filtro_hasta); $indG->setFiltroElementos($grafico->filtro_elementos); $indG->setIndicador($ind); $indG->setPosicion($grafico->posicion); if (property_exists($grafico, 'orden')) { $indG->setOrden($grafico->orden); } $indG->setTipoGrafico($grafico->tipo_grafico); $indG->setGrupo($grupoIndicadores); $grupoIndicadores->addIndicadore($indG); } } $em->persist($grupoIndicadores); $em->flush(); if ($sala->id == '') { $usuarioGrupoIndicadores = new \MINSAL\IndicadoresBundle\Entity\UsuarioGrupoIndicadores(); $usuarioGrupoIndicadores->setUsuario($this->getUser()); $usuarioGrupoIndicadores->setEsDuenio(true); $usuarioGrupoIndicadores->setGrupoIndicadores($grupoIndicadores); $em->persist($usuarioGrupoIndicadores); $em->flush(); } $resp['estado'] = 'ok'; $em->getConnection()->commit(); } catch (Exception $e) { $em->getConnection()->rollback(); $em->close(); $resp['estado'] = 'error'; throw $e; } $resp['id_sala'] = $grupoIndicadores->getId(); return new Response(json_encode($resp)); }