<?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\Horarios;
use CmBundle\Entity\AlumnosCurriculas;

date_default_timezone_set('America/Mexico_City');

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

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

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

                $ideCurricula = $request->get('id');
                $ideEspecialidad = $request->get('especialidad');
                $modalidad = $request->get('modalidad');
                $numero = $request->get('numero');
                $ideGrupo = $request->get('grupo');

                $hi = $request->get('hi');
                $hf = $request->get('hf');
                $ideProfesor = $request->get('profesor');


                $cveGru = $em->getRepository('CmBundle:Grupos')
                        ->findOneBy(
                        array(
                            'ideGru' => $ideGrupo
                ));

                $cveCur = $em->getRepository('CmBundle:Curriculas')
                        ->findOneBy(
                        array(
                            'ideCur' => $ideCurricula
                ));

                $cvePro = $em->getRepository('CmBundle:Profesores')
                        ->findOneBy(
                        array(
                            'idePro' => $ideProfesor
                ));

                $horario = new Horarios();
                $horario->setCveGru($cveGru);
                $horario->setCveCur($cveCur);
                $horario->setHoraInicio(new \DateTime($hi));
                $horario->setHoraFin(new \DateTime($hf));
                $horario->setCvePro($cvePro);
                $horario->setEstatus(1);
                $horario->setFecMov(new \DateTime(date('Y-m-d')));
                $horario->setHorMov(new \DateTime(date('H:i:s')));
                $horario->setCveUsu($session->get('identificador'));

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

                /**
                 * CREAR LAS MATERIAS CORRESPONDIENTES A LOS ALUMNOS QUE ESTEN ASIGNADOS A DICHO GRUPO
                 * PASO 1: BUSCAR A TODOS LOS ALUMNOS DEL GRUPO
                 * PASO 2: AGREGAR LA MATERIA A SU INSCRIPCION
                 */
//                $alumnos = $em->getRepository('CmBundle:AlumnosGrupos')
//                        ->findBy(
//                        array(
//                            'cveGru' => $ideGru
//                ));
//
//                foreach ($alumnos as $key => $value) {
//
//                    $alumnoCurricula = new AlumnosCurriculas();
//                    $alumnoCurricula->setCveAlu($value->getCveAlu());
//                    $alumnoCurricula->setCveCur($cveCur);
//                    $alumnoCurricula->setCalUno(0);
//                    $alumnoCurricula->setCalDos(0);
//                    $alumnoCurricula->setCalTres(0);
//                    $alumnoCurricula->setCalFinal(0);
//
//                    $em->persist($alumnoCurricula);
//                    $em->flush();
//                }

                return $this->render('CmBundle:Horarios:correcto.html.twig');
            } else { // NO FUE POST
                // Renderizar formulario de Estatus
                $em = $this->getDoctrine()->getManager();

                $licenciaturas = $em->getRepository('CmBundle:Licenciaturas')
                        ->findBy(array(), array('cveNivAca' => 'ASC', 'nomLic' => 'ASC'));
                $profesores = $em->getRepository('CmBundle:Profesores')
                        ->findAll();

                $plantel = $em->getRepository('CmBundle:Planteles')
                        ->findOneBy(array('cvePla' => $session->get('plantel')));

                $periodos = $em->getRepository('CmBundle:Periodos')
                        ->findBy(array('cvePla' => $plantel, 'estatus' => 1));
                $grupos = $em->getRepository('CmBundle:Grupos')
                        ->findBy(array('periodo' => $periodos));
                $horarios = $em->getRepository('CmBundle:Horarios')
                        ->findBy(array('cveGru' => $grupos));

                return $this->render('CmBundle:Horarios:alta-horario.html.twig', array(
                            'licenciaturas' => $licenciaturas,
                            'profesores' => $profesores,
                            'horarios' => $horarios
                ));
            }
        } else {
            return $this->render('CmBundle:Seguridad:login.html.twig');
        }
    }

    public function cargarGruposAction(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();

                $ideLic = $request->get('ideLic');
                $numero = $request->get('numero');
                $bandera = $request->get('bandera');
                $asignaturas = 0;
                $grupos = 0;

                $auxPlantel = $em->getRepository('CmBundle:Planteles')
                        ->findOneBy(array('cvePla' => $session->get('plantel')));

                $periodos = $em->getRepository('CmBundle:Periodos')
                        ->findBy(array('estatus' => 1));

                if ($bandera == 1) { // SEMESTRAL
                    $asignaturas = $em->getRepository('CmBundle:Curriculas')
                            ->findBy(
                            array(
                                'cveLic' => $ideLic,
                                'numSem' => $numero
                    ));
                    $grupos = $em->getRepository('CmBundle:Grupos')
                            ->findBy(
                            array(
                                'cveLic' => $ideLic,
                                'semestre' => $numero,
                                'periodo' => $periodos,
                                'cvePla' => $auxPlantel
                    ));
                } else { // CUATRIMESTRAL
                    $asignaturas = $em->getRepository('CmBundle:Curriculas')
                            ->findBy(
                            array(
                                'cveLic' => $ideLic,
                                'numCua' => $numero
                    ));

                    $grupos = $em->getRepository('CmBundle:Grupos')
                            ->findBy(
                            array(
                                'cveLic' => $ideLic,
                                'cuatrimestre' => $numero,
                                'periodo' => $periodos,
                                'cvePla' => $auxPlantel
                    ));
                }

                $profesores = $em->getRepository('CmBundle:Profesores')
                        ->findBy(array(), array('apePat' => 'ASC', 'apeMat' => 'ASC', 'nomPro' => 'ASC'));

                return $this->render('CmBundle:Horarios:ajax-grupo_asignaturas.html.twig', array(
                            'grupos' => $grupos,
                            'curriculas' => $asignaturas,
                            'profesores' => $profesores,
                            'periodos' => $periodos
                ));
            }
        } else {
            return $this->render('CmBundle:Seguridad:login.html.twig');
        }
    }

}
