Esempio n. 1
0
 function importarExamenAction($idPortafolio)
 {
     //Se inserta la fecha actual como fecha de creacion
     // $date = new \DateTime('NOW');
     //$date = new \DateTime('NOW', new \DateTimeZone('America/Caracas'));
     $date = new \DateTime();
     $date->setTimezone(new \DateTimeZone('America/Caracas'));
     //se reciben los datos
     $idExamen = (int) $this->getRequest()->request->get('form_examen');
     $duracion = new \DateTime($this->getRequest()->request->get('form_duracion'));
     $fechaCierre = new \DateTime($this->getRequest()->request->get('form_fechaCierre'));
     $horaCierre = new \DateTime($this->getRequest()->request->get('form_horaCierre'));
     $tipo = (int) $this->getRequest()->request->get('form_tipo');
     $porcentaje = $this->getRequest()->request->get('form_porcentaje');
     $em = $this->getDoctrine()->getManager();
     $examen = $em->getRepository('ProfesorBundle:Examen')->find($idExamen);
     $portafolio = $em->getRepository('ProfesorBundle:Portafolio')->find($idPortafolio);
     //$breadcrumbs = $this->get("white_october_breadcrumbs");
     $breadcrumbs = $this->get("white_october_breadcrumbs");
     // Add "homepage" route link to begin of breadcrumbs
     $breadcrumbs->prependRouteItem("Home", "inicio");
     $breadcrumbs->addRouteItem("Portafolios", "portafolios");
     $breadcrumbs->addItem($portafolio->getSeccion()->getMateria()->getNombre());
     $breadcrumbs->addItem($portafolio->getSeccion()->getCodigo());
     $breadcrumbs->addItem("Exámenes");
     if ($this->validarExamen($examen) == 1) {
         //Se chequea si no ha sido importado el examen al portafolio
         $aux = $em->getRepository('ProfesorBundle:ExamenPortafolio')->findBy(array('examen' => $examen, 'portafolio' => $portafolio));
         if (empty($aux)) {
             $registro = new ExamenPortafolio();
             $registro->setFechaCierre($fechaCierre);
             $registro->setFechaInicio($date);
             $registro->setExamen($examen);
             $registro->setPortafolio($portafolio);
             $registro->setDuracion($duracion);
             $registro->setHoraCierre($horaCierre);
             $registro->setPorcentaje($porcentaje);
             if ($tipo == 0) {
                 //si la opcion es individual
                 $registro->setTipo($tipo);
             } else {
                 //si la opcion es grupal, se debe verificar q el portafolio es de tipo mixto
                 if ($portafolio->getTipo() == 'mixto') {
                     $registro->setTipo($tipo);
                 } else {
                     $this->getRequest()->getSession()->getFlashBag()->add('warning', 'El portafolio debe ser Mixto para los examenes grupales');
                     return $this->render('ProfesorBundle:Default:viewExamenes.html.twig', array('portafolio' => $portafolio));
                 }
             }
             $em->persist($registro);
             $em->flush();
             //se debe agregar de forma automatica un evento al calendario
             $evento = new Evento();
             $evento->setTitulo($examen->getTitulo());
             $evento->setDetalle($examen->getDescripcion());
             $evento->setTipo('event-important');
             $evento->setSeccion($portafolio->getSeccion());
             $evento->setExamenPortafolio($registro);
             $evento->setVisible(1);
             $auxInicio = strtotime($date->format('Y-m-d H:i')) * 1000;
             $auxFin = strtotime($this->getRequest()->request->get('form_fechaCierre') . ' ' . $this->getRequest()->request->get('form_horaCierre')) * 1000;
             // var_dump('FechaCierre ' . $this->getRequest()->request->get('form_fechaCierre') . ' ' . $this->getRequest()->request->get('form_horaCierre'));
             //var_dump('FechaInicio  ' . $date->format('Y-m-d H:i'));
             $evento->setInicio($auxInicio);
             $evento->setFin($auxFin);
             $em->persist($evento);
             $em->flush();
         } else {
             $this->getRequest()->getSession()->getFlashBag()->add('warning', 'El examen ya existe en el portafolio');
             return $this->render('ProfesorBundle:Default:viewExamenes.html.twig', array('portafolio' => $portafolio));
         }
         $this->getRequest()->getSession()->getFlashBag()->add('notice', 'Examen importado');
         return $this->render('ProfesorBundle:Default:viewExamenes.html.twig', array('portafolio' => $portafolio));
     }
     $this->getRequest()->getSession()->getFlashBag()->add('warning', 'Faltan respuestas y/o preguntas al examen. Diríjase a Editar Examen');
     return $this->render('ProfesorBundle:Default:viewExamenes.html.twig', array('portafolio' => $portafolio));
 }