From cb50e57168381417c9e3db756167ea6d64bc2b71 Mon Sep 17 00:00:00 2001 From: Wilmer Ramones Date: Wed, 13 Jul 2016 15:34:36 -0400 Subject: [PATCH] se incluyo en adscripcionController todo lo que tiene que ver con adscripcion --- src/AppBundle/Controller/AdscripcionController.php | 142 +++++++++++++++++++++ 1 file changed, 142 insertions(+) diff --git a/src/AppBundle/Controller/AdscripcionController.php b/src/AppBundle/Controller/AdscripcionController.php index 665ad79..1d1ba45 100644 --- a/src/AppBundle/Controller/AdscripcionController.php +++ b/src/AppBundle/Controller/AdscripcionController.php @@ -15,6 +15,8 @@ use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Request; use AppBundle\Entity\Adscripcion; use AppBundle\Entity\DocenteEscala; +use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; +use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; class AdscripcionController extends Controller { @@ -208,6 +210,146 @@ class AdscripcionController extends Controller array('form' => $form->createView()) ); } + + + /** + * Muestra las Solicitudes de Adscripción. Por defecto las creadas (estatus = 2) + * + * @Route("/solicitudes/adscripcion/{estatus}", name="cea_adscripciones") + * @Method({"GET", "POST"}) + * @Security("has_role('ROLE_COORDINADOR')") + */ + public function verSolicitudesAdscripcionAction($estatus = 2, Request $request) + { + + if ($request->getMethod() != 'POST') { + $adscripciones = $this->getDoctrine()->getRepository('AppBundle:Adscripcion')->findBy(array('idEstatus' => $estatus)); + switch ($estatus){ + case 1: + $mensaje = "activas"; + break; + case 2: + $mensaje = "en espera"; + break; + case 3: + $mensaje = "rechazadas"; + break; + } + }else{ + + $persona = $this->getDoctrine()->getRepository('AppBundle:Persona') + ->findOneByCedulaPasaporte($request->get('docente')); + + if (!$persona) { + $this->addFlash('danger', 'Docente ' . $request->get('docente') . ' no Registrado en la Base de Datos del Centro de Estudios.'); + return $this->render('cea/index.html.twig', array ( + 'adscrito' => true + )); + } + + //1. obtener el rol-institucion-persona + $rol = $this->getDoctrine()->getRepository( + 'AppBundle:RolInstitucion')->findOneByIdRol( + $this->getDoctrine()->getRepository( + 'AppBundle:Rol')->findOneByIdPersona($persona)); + + //si no existe el rol del docente, enviar correo al encargado de la región para verificar. + if (!$rol) { + $this->addFlash('danger', 'Docente no Registrado en la Base de Datos del Centro de Estudios. Por Favor'); + return $this->render('cea/index.html.twig'); + } + + + $adscripciones = $this->getDoctrine()->getRepository('AppBundle:Adscripcion')->findByIdRolInstitucion($rol->getId()); + $mensaje = "Busqueda : " . $request->get('docente'); + } + return $this->render('cea/solicitudes.html.twig', array( + 'adscripciones' => $adscripciones, + 'estatus_adscripciones' => $mensaje + )); + } + + /** + * Encuentra y muestra una entidad de tipo Adscripción. + * + * @Route("/solicitudes/{id}", name="cea_solicitudes_show") + * @Method("GET") + * @Security("has_role('ROLE_COORDINADOR')") + */ + public function solicitudesAdscripcionShowAction(Adscripcion $adscripcion) + { + //$deleteForm = $this->createDeleteForm($usuario); + $escala = $this->getDoctrine()->getRepository('AppBundle:DocenteEscala')->findBy(array( + 'idRolInstitucion' => $adscripcion->getIdRolInstitucion()->getId() + )); + + return $this->render('cea/solicitudes_mostar.html.twig', array( + 'adscripcion' => $adscripcion, + 'escalas' => $escala + )); + } + + + /** + * Encuentra y muestra una entidad de tipo Adscripción. + * + * @Route("/solicitudes/actualizar/{id}/{estatus}", name="cea_solicitudes_actualizar") + * @Method({"GET", "POST"}) + * @Security("has_role('ROLE_COORDINADOR')") + */ + public function solicitudesAdscripcionEditAction(Adscripcion $adscripcion, $estatus) + { + + $adscripciones = $this->getDoctrine()->getRepository('AppBundle:Adscripcion')->findOneById($adscripcion->getId()); + + if($estatus == "true") { + $adscripciones->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(1)); + $user = $this->getDoctrine()->getRepository('AppBundle:Usuarios')->findOneByIdRolInstitucion($adscripcion->getIdRolInstitucion()); + $user->addRol($this->getDoctrine()->getRepository('AppBundle:Role')->findOneByName("ROLE_ADSCRITO")); + + }else{ + $adscripciones->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(3)); + $user = $this->getDoctrine()->getRepository('AppBundle:Usuarios')->findOneByIdRolInstitucion($adscripcion->getIdRolInstitucion()); + $user->removeRol($this->getDoctrine()->getRepository('AppBundle:Role')->findOneByName("ROLE_ADSCRITO")); + } + + $em = $this->getDoctrine()->getManager(); + $em->persist($adscripciones); + $em->persist($user); + $em->flush(); + + $message = \Swift_Message::newInstance() + ->setSubject('Resultado Adscripcion CEA@UBV') + ->setFrom('wilmer.ramones@gmail.com') + ->setTo($user->getEmail()) + ->setBody( + $this->renderView( + 'correos/actualizar_adscripcion.html.twig', + array( + 'nombres' => $user->getUsername(), + 'estatus' => $adscripciones->getIdEstatus() + ) + ), + 'text/html' + ) + ; + $this->get('mailer')->send($message); + + $this->addFlash('notice', 'Solicitud Actualizada Correctamente, hemos enviado un correo al docente notificandole los cambios.'); + + $escala = $this->getDoctrine()->getRepository('AppBundle:DocenteEscala')->findBy(array( + 'idRolInstitucion' => $adscripciones->getIdRolInstitucion()->getId() + )); + + return $this->render('cea/solicitudes_mostar.html.twig', array( + 'adscripcion' => $adscripciones, + 'escalas' => $escala + )); + + } + + + } /*funcion para crear miniaturas de las imagenes y carga más rapido la página */ -- 2.0.0