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)); }