<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

namespace CmBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use CmBundle\Entity\Profesores;
use CmBundle\Entity\Cursos;
use CmBundle\Entity\Empleados;

date_default_timezone_set('America/Mexico_City');

/**
 * Description of ProfesorController
 *
 * @author omar
 */
class ProfesorController extends Controller {

    //put your code here
    public function gProfesorAction(Request $request) {
        $session = $request->getSession();
        if ($session->has("idEmpleado") && ($session->get("rol") == 2 || $session->get("rol") == 1)) {
            $session->set("vista", "profesor");
            if ($request->getMethod() == "POST") {

                $em = $this->getDoctrine()->getManager();

                $rfc = $request->get('rfc');
                $apePat = $request->get('apePat');
                $apeMat = $request->get('apeMat');
                $nomPro = $request->get('nomPro');
                $usuario = $rfc;
                $password = $rfc;
                $estatus = 1;

                $profesor = new Profesores();
                $profesor->setRfc($rfc);
                $profesor->setApePat($apePat);
                $profesor->setApeMat($apeMat);
                $profesor->setNomPro($nomPro);
                $profesor->setUsuario($usuario);
                $profesor->setPassword($password);
                $profesor->setEstatus($estatus);

                $em->persist($profesor);
                $em->flush();

                /* $estatus = $em->getRepository('CmBundle:Estatus')
                  ->findOneBy(array('cveEst' => 'E1'));
                 * 
                 */

                /* $empleado = new Empleados();
                  $empleado->setNomEmp($nombre);
                  $empleado->setApePat("");
                  $empleado->setApeMat("");
                  $empleado->setCveEmp($rfc);
                  $empleado->setRolEmp(1);
                  $empleado->setCargo('PROFESOR');
                  $empleado->setPass('0000');
                  $empleado->setCamPass(0);
                  $empleado->setTelefono("");
                  $empleado->setCorreo("");
                  $empleado->setCalle("");
                  $empleado->setColLoc("");
                  $empleado->setMunDel("");
                  $empleado->setEdo("");
                  $empleado->setCp("");
                  $empleado->setFecIng(new \DateTime( date('Y-m-d') ));
                  $empleado->setEstatus($estatus);
                  $empleado->setFecMov(new \DateTime( date('Y-m-d') ));
                  $empleado->setCveUsu($session->get('idEmpleado'));

                  $em->persist($empleado);
                  $em->flush(); */

                return $this->redirect($this->generateUrl('consulta_profesor'));
            } else {
                // Renderizar formulario de RS
                $em = $this->getDoctrine()->getManager();

                return $this->render('CmBundle:Profesor:alta-profesor.html.twig');
            }
        } else {
            return $this->render('CmBundle:Seguridad:login.html.twig');
        }
    }

    public function cProfesorAction(Request $request) {
        $session = $request->getSession();
        if ($session->has("idEmpleado") && ($session->get("rol") == 2 || $session->get("rol") == 1)) {
            $session->set("vista", "profesor");

            $em = $this->getDoctrine()->getManager();
            $listaProfesores = $em->getRepository('CmBundle:Profesores')
                    ->findAll();
            return $this->render('CmBundle:Profesor:consulta-profesor.html.twig', array('profesores' => $listaProfesores));
        } else {
            return $this->render('CmBundle:Seguridad:login.html.twig');
        }
    }

    public function eProfesorAction(Request $request) {
        $session = $request->getSession();
        if ($session->has("idEmpleado") && ($session->get("rol") == 2 || $session->get("rol") == 1)) {
            if ($request->getMethod() == 'POST') {
                $em = $this->getDoctrine()->getManager();

                $profe = $em->getRepository('CmBundle:Profesores')
                        ->findOneBy(array('idePro' => $request->get('idePro')));

                $especialidad = $em->getRepository('CmBundle:Licenciaturas')
                        ->findOneBy(array('ideLic' => $request->get('cveLic')));

                $profe->setEmail($request->get('email'));
                $profe->setCelular($request->get('celular'));
                $profe->setCedula($request->get('cedula'));
                $profe->setNomPro($request->get('nomPro'));
                $profe->setApePat($request->get('apePat'));
                $profe->setApeMat($request->get('apeMat'));

                if ($especialidad != null) {
                    $profe->setCveLic($especialidad);
                } else {
                    
                }

                $em->persist($profe);
                $em->flush();

                return $this->redirect($this->generateUrl('editar_profesor', array('idePro' => $profe->getIdePro())));
            } else {
                $em = $this->getDoctrine()->getManager();
                $profe = $em->getRepository('CmBundle:Profesores')
                        ->findOneBy(array('idePro' => $request->get('idePro')));
                $especialidades = $em->getRepository('CmBundle:Licenciaturas')
                        ->findBy(array('cveNivAca' => array(3, 4, 5)), array('cveNivAca' => 'ASC'));

                return $this->render('CmBundle:Profesor:actualizarDatosProfesor.html.twig', array(
                            'profe' => $profe,
                            'especialidades' => $especialidades
                ));
            }
        } else {
            return $this->render('CmBundle:Seguridad:login.html.twig');
        }
    }

    public function ajaxProfesorAction(Request $request) {
        $session = $request->getSession();
        if ($session->has("idEmpleado") && ($session->get("rol") == 2 || $session->get("rol") == 1)) {
            if ($request->getMethod() == 'POST') {
                $em = $this->getDoctrine()->getManager();

                $profe = $em->getRepository('CmBundle:Profesores')
                        ->findOneBy(array('rfc' => $request->get('rfc')));

                $banderaExiste = 0;

                if ($profe != null) {
                    //SI EXISTE
                    $banderaExiste = 1;
                } else {
                    //NO EXISTE
                    $banderaExiste = 0;
                }

                return $this->render('CmBundle:Profesor:rfcExiste.html.twig', array('ban' => $banderaExiste));
            } else {
                
            }
        } else {
            return $this->render('CmBundle:Seguridad:login.html.twig');
        }
    }

    public function vCalificacionAction(Request $request) {
        $session = $request->getSession();
        if ($session->has("idEmpleado") && ($session->get("rol") == 2 || $session->get("rol") == 1)) {
            $session->set("vista", "profesor");

            $em = $this->getDoctrine()->getManager();
            $listaProfesores = $em->getRepository('CmBundle:Profesores')
                    ->findAll();
            return $this->render('CmBundle:Profesor:vista-calificacion.html.twig', array('profesores' => $listaProfesores));
        } else {
            return $this->render('CmBundle:Seguridad:login.html.twig');
        }
    }

    public function vistaDatosGeneralProfesorMoodleAction(Request $request) {
        $session = $request->getSession();

        $em = $this->getDoctrine()->getManager();

        $profesor = $em->getRepository('CmBundle:Profesores')
                ->findOneBy(array('idePro' => $session->get('idEmpleado')));
        return $this->render('CmBundle:ProfesorMoodle:datosGeneralesProfesor.html.twig', array('p' => $profesor));
    }

    public function vistaCursoProfesorMoodleAction(Request $request) {
        $session = $request->getSession();

        $em = $this->getDoctrine()->getManager();

        $profesor = $em->getRepository('CmBundle:Profesores')
                ->findOneBy(array('idePro' => $session->get('idEmpleado')));
        $cursos = $em->getRepository('CmBundle:Cursos')
                ->findBy(array('cvePro' => $session->get('idEmpleado')));

        return $this->render('CmBundle:ProfesorMoodle:vistaCursosProfesorMoodle.html.twig', array('p' => $profesor, 'cursos' => $cursos));
    }

    public function detallesCursoProfesorMoodleAction(Request $request) {
        $session = $request->getSession();

        $em = $this->getDoctrine()->getManager();

        $ideCur = $request->get('ideCur');

        $profesor = $em->getRepository('CmBundle:Profesores')
                ->findOneBy(array('idePro' => $session->get('idEmpleado')));
        $curso = $em->getRepository('CmBundle:Cursos')
                ->findOneBy(array('ideCurso' => $ideCur));
        $curriculas = $em->getRepository('CmBundle:Curriculas')
                ->findBy(array('cveLic' => $curso->getCveLic()), array('clave' => 'ASC'));

        return $this->render('CmBundle:ProfesorMoodle:detallesCursosProfesorMoodle.html.twig', array(
                    'p' => $profesor,
                    'c' => $curso,
                    'curriculas' => $curriculas
        ));
    }

    public function altaCursoProfesorMoodleAction(Request $request) {
        $session = $request->getSession();
        if ($request->getMethod() == 'POST') {
            $em = $this->getDoctrine()->getManager();

            $profesor = $em->getRepository('CmBundle:Profesores')
                    ->findOneBy(array('idePro' => $request->get('idePro')));
            $nombre = $request->get('nomCurso');
            $cveLic = $em->getRepository('CmBundle:Licenciaturas')
                    ->findOneBy(array('ideLic' => $request->get('cveLic')));
            $cvePer = $em->getRepository('CmBundle:Periodos')
                    ->findOneBy(array('idePer' => $request->get('cvePer')));
            $estatus = $request->get('estatus');


            $curso = new Cursos();
            $curso->setNombre($nombre);
            $curso->setCveLic($cveLic);
            $curso->setEstatus($estatus);
            $curso->setCvePer($cvePer);
            $curso->setCvePro($profesor);

            $em->persist($curso);
            $em->flush();

            return $this->redirect($this->generateUrl('vista_cursos_profesor_moodle'));
        } else { // NO FUE POST
            $em = $this->getDoctrine()->getManager();

            $profesor = $em->getRepository('CmBundle:Profesores')
                    ->findOneBy(array('idePro' => $session->get('idEmpleado')));
            $especialidades = $em->getRepository('CmBundle:Licenciaturas')
                    ->findBy(array('cveNivAca' => array(3, 4, 5, 6, 7, 8, 9)), array('cveNivAca' => 'ASC', 'nomLic' => 'ASC'));
            $periodos = $em->getRepository('CmBundle:Periodos')
                    ->findBy(array('estatus' => 1));
            return $this->render('CmBundle:ProfesorMoodle:altaCursoMoodle.html.twig', array(
                        'p' => $profesor,
                        'especialidades' => $especialidades,
                        'periodos' => $periodos
                            )
            );
        }
    }

    public function verTemasProfesorMoodleAction(Request $request) {
        $session = $request->getSession();

        $em = $this->getDoctrine()->getManager();

        $curricula = $request->get('ideCur');

        $temas = $em->getRepository('CmBundle:Temas')
                ->findBy(array('cveCur' => $curricula));
        $profesor = $em->getRepository('CmBundle:Profesores')
                ->findOneBy(array('idePro' => $session->get('idEmpleado')));
        $curso = $em->getRepository('CmBundle:Cursos')
                ->findOneBy(array('ideCurso' => $request->get('cveCur')));
        $asignatura = $em->getRepository('CmBundle:Curriculas')
                ->findOneBy(array('ideCur' => $curricula));

        return $this->render('CmBundle:ProfesorMoodle:vistaTemasProfesorMoodle.html.twig', array(
                    'p' => $profesor,
                    'temas' => $temas,
                    'c' => $curso,
                    'a' => $asignatura
        ));
    }

    public function verSubtemasProfesorMoodleAction(Request $request) {
        $session = $request->getSession();

        $em = $this->getDoctrine()->getManager();

        //$curricula = $request->get('cveCur');
        $tema = $request->get('ideTem');

        $temaA = $em->getRepository('CmBundle:Temas')
                ->findOneBy(array('ideTem' => $tema));
        $subtemas = $em->getRepository('CmBundle:Subtemas')
                ->findBy(array('cveTem' => $tema));
        $profesor = $em->getRepository('CmBundle:Profesores')
                ->findOneBy(array('idePro' => $session->get('idEmpleado')));
        $curso = $em->getRepository('CmBundle:Cursos')
                ->findOneBy(array('ideCurso' => $request->get('ideCur')));

        return $this->render('CmBundle:ProfesorMoodle:vistaSubtemasProfesorMoodle.html.twig', array(
                    'p' => $profesor,
                    'tema' => $temaA,
                    'c' => $curso,
                    'subtemas' => $subtemas
        ));
    }

}
