src/Noahtech/Sistemas/FuszionBundle/Handler/McCursoHandler.php line 172

Open in your IDE?
  1. <?php
  2. namespace Noahtech\Sistemas\FuszionBundle\Handler;
  3. use Noahtech\Sistemas\FuszionBundle\Entity\McCurso;
  4. use Noahtech\Sistemas\FuszionBundle\Utils\Constants;
  5. use Noahtech\Sistemas\FuszionBundle\Utils\EmailsMessages;
  6. use Noahtech\Sistemas\FuszionBundle\Utils\Encrypt;
  7. use DateInterval;
  8. use DateTime;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use Symfony\Component\DependencyInjection\ContainerInterface;
  11. use Symfony\Component\HttpKernel\Exception\HttpException;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\Response;
  14. class McCursoHandler extends BaseHandler {
  15.     public function __construct(ContainerInterface $containerEntityManagerInterface $entityManager) {
  16.         $this->container $container;
  17.         $this->entityManager $entityManager;
  18.         $this->repository $entityManager->getRepository(McCurso::class);
  19.     }
  20.     
  21.     public function search($offset$limit$sortField$sortDirection$searchParam) {
  22.         $lp $this->repository->search($offset$limit$sortField$sortDirection$searchParam);
  23.         $cursos $this->toarray($lp->getListado(), 'curso');
  24.         $lp->setListado($cursos);
  25.         return $lp;
  26.     }
  27.     public function buscarCursosWeb($offset$limit$sortField$sortDirection$searchParam) {
  28.         $lp $this->repository->buscarCursosWeb($offset$limit$sortField$sortDirection$searchParam);
  29.         $cursos $this->toarray($lp->getListado(), 'curso');
  30.         return $cursos;
  31.     }
  32.     public function saveImageFile(&$archivo){
  33.         $data['result'] = false;
  34.         $path $this->getPathFiles();
  35.         //Crea la carpeta si no existe
  36.         if (!file_exists($path)) {
  37.             mkdir($path0777true);
  38.         }
  39.         $info pathinfo($archivo['name']);
  40.         $ext $info['extension']; // get the extension of the file
  41.         $name $info['filename'];
  42.         
  43.         $nameMd5 md5($name.time());
  44.         $nameFileMd5 "$nameMd5.$ext";
  45.         $nameFileMd5File "$nameMd5.$ext";
  46.         $pathFile $path.$nameFileMd5;
  47.         
  48.         $archivo['result'] = true;
  49.         move_uploaded_file($archivo['tmp_name'], $pathFile);
  50.         $archivo['name_md5']=$nameMd5;
  51.         $archivo['name_file_Md5'] = $nameFileMd5;
  52.         $archivo['path_file']=$pathFile;
  53.         $archivo['path_only']=$path;
  54.         return $pathFile;
  55.     }
  56.     private function getPathFiles(){
  57.         $basePath $this->container->getParameter('kernel.root_dir');
  58.         $basePath str_replace('/app''/web'$basePath);        
  59.         
  60.         $basePath $basePath $this->container->getParameter('path_files_cursos');
  61.         $path "$basePath/";
  62.         return $path;
  63.     }
  64.     private function deleteFile($pathFile) {
  65.         try {
  66.             unlink($pathFile);
  67.         } catch (Exception $e) {
  68.         }
  69.         return $pathFile;
  70.     }
  71.     public function comprobarArchivo($archivo) {
  72.         //Sección que almadena el archivo relacionado                
  73.         if (!is_null($archivo) && $archivo['name'] !== '') {
  74.             $pathFile $this->saveImageFile($archivo);           
  75.             if ($archivo['result']) {            
  76.                 $archivo $archivo['name_file_Md5'];            
  77.             } else {
  78.                 $this->deleteFile($pathFile);            
  79.             }
  80.         } else {
  81.             $archivo null;
  82.         } 
  83.         return $archivo;  
  84.         // fin carga de archivo
  85.     }
  86.     public function getCursoFromRequest(Request $request$archivo$id=null):McCurso {                
  87.         $nombre $request->request->get('nombre');
  88.         $carga_horaria $request->request->get('carga_horaria');
  89.         $director $request->request->get('director');
  90.         $dirigido $request->request->get('dirigido');   
  91.         $duracion $request->request->get('duracion');
  92.         $datetimeF = new \DateTime($request->request->get('fecha_finalizacion'));
  93.         $datetimeF->setTime(120000);
  94.         $fecha_finalizacion $datetimeF;
  95.         $datetimeI = new \DateTime($request->request->get('fecha_inicio'));
  96.         $datetimeI->setTime(120000);
  97.         $fecha_inicio $datetimeI;
  98.         // $fecha_finalizacion = $request->request->get('fecha_finalizacion');   
  99.         // $fecha_inicio = $request->request->get('fecha_inicio');
  100.         $foto_curso $request->request->get('foto_curso');   
  101.         $lugar_dictado $request->request->get('lugar_dictado');
  102.         $modalidad $request->request->get('modalidad');   
  103.         $metodologia $request->request->get('metodologia');
  104.         $precio $request->request->get('precio');
  105.         $descripcion $request->request->get('descripcion');
  106.         $aprender $request->request->get('aprender');
  107.         $web $request->request->get('web');
  108.         if (!is_null($web)) {
  109.             $web 1;
  110.         }
  111.         if (is_null($id)) {
  112.             $curso = new McCurso();
  113.             $archivoAux $this->comprobarArchivo($archivo);
  114.             //$curso->setFechaCreacion(new DateTime());            
  115.         } else {
  116.             $curso $this->repository->findOneById($id);
  117.             $archivoBD $curso->getFotoCurso();
  118.             $archivoAux $this->comprobarArchivo($archivo);
  119.             if (is_null($archivoAux)) {
  120.                 $archivoAux $archivoBD;
  121.             }
  122.             //$curso->setFechaActualizacion(new DateTime());
  123.         }       
  124.         
  125.         $curso->setNombre($nombre);
  126.         $curso->setCargaHoraria($carga_horaria);
  127.         $curso->setDirector($director);
  128.         $curso->setDirigido($dirigido);
  129.         $curso->setDuracion($duracion);
  130.         $curso->setFechaFinalizacion($fecha_finalizacion);
  131.         $curso->setFechaInicio($fecha_inicio);
  132.         $curso->setFotoCurso($archivoAux);
  133.         $curso->setLugarDictado($lugar_dictado);
  134.         $curso->setModalidad($modalidad);
  135.         $curso->setMetodologia($metodologia);
  136.         $curso->setPrecio($precio);
  137.         $curso->setDescripcion($descripcion);
  138.         $curso->setAprender($aprender);
  139.         $curso->setWeb($web);
  140.         return $curso;
  141.     }
  142.    
  143.     public function save(McCurso $curso) {
  144.         $curso $this->repository->save($curso);        
  145.         $curso $this->toarray($curso"curso");
  146.         return $curso;
  147.     }
  148.     public function update(McCurso $cursoDB) {
  149.         $cursoDB $this->repository->update($cursoDB);        
  150.         $cursoDB $this->toarray($cursoDB"curso");
  151.         return $cursoDB;
  152.     }
  153.     public function getById($cursoId) {
  154.         $curso $this->repository->findOneById($cursoId);
  155.         return $this->toarray($curso'curso');
  156.     }
  157.     public function getCursoById($id) {
  158.         return $this->repository->findOneById($id);
  159.     }
  160.     
  161.     public function getCursos() {
  162.         $cursos $this->repository->findAll();
  163.         $cursos $this->toarray($cursos'curso');
  164.         return $cursos;
  165.     }
  166.     public function asignarProfesorToCurso($cursoId$profesorId) {
  167.         $usuario $this->container->get("Noahtech\Sistemas\FuszionBundle\Handler\McUsuarioHandler")->getUsuarioById($profesorId);
  168.         $curso $this->repository->findOneById($cursoId);
  169.         //Corroboro que el profesor no este asignado ya al curso
  170.         $asignar true;
  171.         if (COUNT($curso->getUsuarios()) > 0) {
  172.             foreach ($curso->getUsuarios() as $user) {
  173.                 if ($user == $usuario->getId()) {
  174.                     $asignar false;
  175.                 }
  176.             }
  177.         }
  178.         
  179.         if ($asignar) {
  180.             $curso->addUsuario($usuario);
  181.             $curso $this->repository->save($curso);
  182.             return $this->toarray($curso'curso'); 
  183.         } else {
  184.             throw new HttpException(409"Ya esta asignado el profesor al curso seleccionado.");
  185.         }      
  186.     }
  187.     public function quitarProfesorToCurso($cursoId$profesorId) {
  188.         $usuario $this->container->get("Noahtech\Sistemas\FuszionBundle\Handler\McUsuarioHandler")->getUsuarioById($profesorId);
  189.         $curso $this->repository->findOneById($cursoId);
  190.         $curso->removeUsuario($usuario);
  191.         $curso $this->repository->save($curso);
  192.         $cursos $this->toarray($curso'curso');
  193.         return $cursos;
  194.          
  195.     }
  196.     public function getCursoByProfesor($cursoId$profesorId) {
  197.         $curso $this->repository->getCursoAsignadoProfesor($cursoId$profesorId);
  198.         return $this->toarray($curso'curso');
  199.     }
  200.     public function getCursosWeb() {
  201.         $cursos $this->repository->findBy(array('web'=> 1));
  202.         $cursos $this->toarray($cursos'curso');
  203.         return $cursos;
  204.     }
  205.   
  206. }