<?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 Symfony\Component\HttpFoundation\Response;
use CmBundle\Controller\PDFServiciosEscolares;
use Symfony\Component\HttpFoundation\ResponseHeaderBag;

date_default_timezone_set('America/Mexico_City');

/**
 * Description of ServiciosEscolaresController
 *
 * @author OMAR
 */
class ServiciosEscolaresController extends Controller
{

    //put your code here
    public function alumnosConsultarBGAction(Request $request)
    {
        $session = $request->getSession();
        if ($session->has("idEmpleado")) {

            if ($request->getMethod() == "POST") {

            } else {// NO FUE POST
                $em = $this->getDoctrine()->getManager();


                $alumnos = $em->getRepository('CmBundle:Alumnos')
                    ->findBy(
                        array(
                            'cvePla' => array(1, 2, 3, 4, 13),
                            'tipoAlumno' => array(1, 3, 4, 5),
                            'estatus' => 1
                        ), array(
                            'cvePla' => 'ASC',
                            'tipoAlumno' => 'DESC',
                            'cveLic' => 'ASC',
                            'numero' => 'DESC',
                            'apePat' => 'ASC',
                            'apeMat' => 'ASC',
                            'nomAlu' => "ASC"
                        )
                    );


                $hoy = new \DateTime(date('Y-m-d'));
                $hoy = $hoy->modify('last day of this month');

                $listaAlumnos = [];
                foreach ($alumnos as $key => $value) {
                    $array = [$value];

                    /*
                     * CHECAR SI ESTE ALUMNO TIENE UNA CUENTA EN EXAMEN UNICO
                     */
                    $auxEU = $em->getRepository('CmBundle:Alumnos')->findOneBy(array('curp' => $value->getCurp(), 'tipoAlumno' => 2));

                    if ($auxEU != null & $value->getCurp() != "") {
                        $array[] = $auxEU;
                    } else {
                        $array[] = "NO";
                    }


                    $listaAlumnos[] = $array;
                }

                return $this->render('CmBundle:SE:estadisticas-activos.html.twig', array('alumnos' => $listaAlumnos));
            }
        } else {

        }
    }

    public function exportarSEAction(Request $request)
    {
        $session = $request->getSession();
        if ($session->has("idEmpleado")) {

            if ($request->getMethod() == "POST") {

            } else {// NO FUE POST
                $em = $this->getDoctrine()->getManager();


                $p1 = $request->get("p1");
                $p2 = $request->get("p2");
                $p3 = $request->get("p3");
                $p4 = $request->get("p4");
                $p5 = $request->get("p5");


                $reporte = new PDFServiciosEscolares('P', 'mm', 'Letter');
                $reporte->SetFont('Arial', '', 10);
                $reporte->AliasNbPages();
                $reporte->AddPage();
                $reporte->SetAutoPageBreak(true, 15); //SE MIDE EN milimetros

                $alumnos = null;
                $dql = "SELECT a FROM CmBundle:Alumnos a WHERE ";

                if ($p5 != "default") {
                    //TIPO DE REPORTE

                    if ($p1 == "" & $p2 == "" & $p3 == "" & $p4 == "") {
                        $alumnos = $em->getRepository('CmBundle:Alumnos')
                            ->findBy(
                                array(
                                    'cvePla' => array(1, 2, 3, 4, 13),
                                    'tipoAlumno' => array(1, 3, 4, 5),
                                    'estatus' => 1
                                ), array(
                                    'cvePla' => 'ASC',
                                    'tipoAlumno' => 'DESC',
                                    'cveLic' => 'ASC',
                                    'numero' => 'DESC',
                                    'apePat' => 'ASC',
                                    'apeMat' => 'ASC',
                                    'nomAlu' => "ASC"
                                )
                            );
                    } else {
                        $bP1 = 0;
                        $bP2 = 0;
                        $bP3 = 0;
                        $auxCveNivAca = null;

                        if ($p1 != "") {
                            //NIVEL ACADEMICO
                            $auxCveNivAca = $em->getRepository("CmBundle:NivelesAcademicos")->findOneBy(array('nombre' => $p1));

                            $dql = $dql . "a.tipoAlumno = " . $auxCveNivAca->getIdeNivAca();
                            $bP1 = 1;
                        } else {
                            $dql = $dql . "a.tipoAlumno IN(1,3,4,5) ";
                            $bP1 = 1;
                        }

                        if ($p2 != "") {
                            //ESPECIALIDAD
                            if ($bP1 == 1 & $auxCveNivAca != null) {
                                $auxCveLic = $em->getRepository("CmBundle:Licenciaturas")->findOneBy(array('cveNivAca' => $auxCveNivAca, 'nomLic' => $p2));

                                $dql = $dql . " AND a.cveLic = " . $auxCveLic->getIdeLic();
                            } else {
                                $auxCveLic = $em->getRepository("CmBundle:Licenciaturas")->findBy(array('nomLic' => $p2));
                                $auxLic = [];
                                foreach ($auxCveLic as $key => $value) {
                                    $auxLic[] = $value->getIdeLic();
                                }

                                $auxLic = implode(",", $auxLic);

                                $dql = $dql . " AND a.cveLic IN (" . $auxLic . " ) ";
                            }


                            $bP2 = 1;
                        }

                        if ($p3 != "") {
                            //NÚMERO DE CUATRIMESTRE

                            if (strlen($p3) >= 4) {
                                $p3 = substr($p3, 0, 2);
                            } else {
                                $p3 = substr($p3, 0, 1);
                            }


                            if ($bP1 == 1 | $bP2 == 1) {

                                $dql = $dql . " AND a.numero = " . $p3;
                            } else {

                                $dql = $dql . "a.numero = " . $p3;
                            }

                            $bP3 = 1;
                        }

                        if ($p4 != "") {
                            //PLANTEL
                            $auxCvePla = $em->getRepository('CmBundle:Planteles')->findOneBy(array('nomPla' => $p4));

                            if ($bP1 == 1 | $bP2 == 1 | $bP3 == 1) {
                                $dql = $dql . " AND a.cvePla = " . $auxCvePla->getIdePla();
                            } else {

                                $dql = $dql . "a.cvePla = " . $auxCvePla->getIdePla();
                            }
                        } else {

                            $dql = $dql . " AND a.cvePla IN(1,2,3,4,13) ";
                        }

                        $dql = $dql . " AND a.estatus = 1 ORDER BY a.cvePla ASC, a.tipoAlumno DESC, a.cveLic ASC, a.numero DESC, a.apePat ASC, a.apeMat ASC, a.nomAlu ASC";


//                        print_r($dql);
//                        die();

                        $query = $em->createQuery($dql);
                        $alumnos = $query->getResult();
                    }


                    if ($p5 == 1) {

                        $datosGenerales = [];

                        foreach ($alumnos as $k => $a) {

                            $documentos = [];
                            $documentos = [];
                            $documentos = [];

                            $tipoAlumno = $a->getTipoAlumno();
                            $hoy = new \DateTime(date("Y-m-d"));

                            $actaNacimiento = "archivo/" . $a->getCveCtl() . "-an.pdf";
                            $certificadoSecundaria = "archivo/" . $a->getCveCtl() . "-cs.pdf";
                            $certificadoBachillerato = "archivo/" . $a->getCveCtl() . "-cb.pdf";
                            $certificadoTotalLicenciatura = "archivo/" . $a->getCveCtl() . "-ctl.pdf";
                            $cedulaLic = "archivo/" . $a->getCveCtl() . "-cedLic.pdf";
                            $certificadoTotalMaestria = "archivo/" . $a->getCveCtl() . "-ctm.pdf";
                            $tituloLicenciatura = "archivo/" . $a->getCveCtl() . "-tl.pdf";
                            $tituloMaestria = "archivo/" . $a->getCveCtl() . "-tm.pdf";
                            $cedulaMae = "archivo/" . $a->getCveCtl() . "-cedMae.pdf";
                            $ifeIne = "archivo/" . $a->getCveCtl() . "-ine.pdf";
                            $curp = "archivo/" . $a->getCveCtl() . "-curp.pdf";
                            $comprobanteDomiciliario = "archivo/" . $a->getCveCtl() . "-comDom.pdf";


                            switch ($tipoAlumno) {
                                case 3: //LICENCIATURA
                                    //VALIDAR MÍNIMO 3 AÑOS

                                    /*
                                     * VERIFCIAR QUE EXISTA LA DOCUMENTACIÓN DE LICENCIATURA
                                     */


                                    if (file_exists($actaNacimiento)) {
                                        //array_push($documentos, array("A.N." => $actaNacimiento));
                                        $documentos["A.N."] = $actaNacimiento;
                                    } else {
                                        //array_push($documentos, array("A.N." => "NO"));
                                        $documentos["A.N."] = "NO";
                                    }
                                    if (file_exists($certificadoBachillerato)) {
                                        //array_push($documentos, array("C.B." => $certificadoBachillerato));
                                        $documentos["C.B."] = $certificadoBachillerato;
                                    } else {
                                        //array_push($documentos, array("C.B." => "NO"));
                                        $documentos["C.B."] = "NO";
                                    }
                                    if (file_exists($curp)) {
                                        //array_push($documentos, array("CURP" => $curp));
                                        $documentos["CURP"] = $curp;
                                    } else {
                                        //array_push($documentos, array("CURP" => "NO"));
                                        $documentos["CURP"] = "NO";
                                    }
                                    /*
                                     * TERMINA LA VERIFICACIÓN DE DOCUMENTACIÓN LICENCIATURA
                                     */

                                    if ($a->getFecTer() != null) {
                                        $fecBachillerato = $a->getFecTer();
                                        $dif = $hoy->diff($fecBachillerato);
                                        $datosGenerales[] = array($a, $dif->y, $dif->m, $dif->d, "X", $documentos);
                                    } else {
                                        $datosGenerales[] = array($a, 0, 0, 0, "X", $documentos);
                                    }

                                    //var_dump($resultadosLic[0][5]);


                                    break;
                                case 4:
                                    //VALIDAR MÍNIMO 3 AÑOS

                                    /*
                                     * VERIFCIAR QUE EXISTA LA DOCUMENTACIÓN DE MAESTRÍA
                                     */

                                    if (file_exists($actaNacimiento)) {
                                        //array_push($documentos, array("A.N." => $actaNacimiento));
                                        $documentos["A.N."] = $actaNacimiento;
                                    } else {
                                        //array_push($documentos, array("A.N." => "NO"));
                                        $documentos["A.N."] = "NO";
                                    }
                                    if (file_exists($certificadoTotalLicenciatura)) {
                                        //array_push($documentos, array("C.L." => $certificadoTotalLicenciatura));
                                        $documentos["C.L."] = $certificadoTotalLicenciatura;
                                    } else {
                                        //array_push($documentos, array("C.L." => "NO"));
                                        $documentos["C.L."] = "NO";
                                    }
                                    if (file_exists($curp)) {
                                        //array_push($documentos, array("CURP" => $curp));
                                        $documentos["CURP"] = $curp;
                                    } else {
                                        //array_push($documentos, array("CURP" => "NO"));
                                        $documentos["CURP"] = "NO";
                                    }
                                    /*
                                     * TERMINA LA VERIFICACIÓN DE DOCUMENTACIÓN MAESTRÍA
                                     */

                                    if ($a->getFecTer() != null) {
                                        $fecBachillerato = $a->getFecTer();
                                        $dif = $hoy->diff($fecBachillerato);
                                        $datosGenerales[] = array($a, $dif->y, $dif->m, $dif->d, "X", $documentos);
                                    } else {
                                        $datosGenerales[] = array($a, 0, 0, 0, "X", $documentos);
                                    }


                                    break;
                                case 5:
                                    //VALIDAR MÍNIMO 3 AÑOS

                                    /*
                                     * VERIFCIAR QUE EXISTA LA DOCUMENTACIÓN DE DOCTORADO
                                     */

                                    if (file_exists($actaNacimiento)) {
                                        //array_push($documentos, array("A.N." => $actaNacimiento));
                                        $documentos["A.N."] = $actaNacimiento;
                                    } else {
                                        //array_push($documentos, array("A.N." => "NO"));
                                        $documentos["A.N."] = "NO";
                                    }
                                    if (file_exists($certificadoTotalLicenciatura)) {
                                        //array_push($documentos, array("C.L." => $certificadoTotalLicenciatura));
                                        $documentos["C.L."] = $certificadoTotalLicenciatura;
                                    } else {
                                        //array_push($documentos, array("C.L." => "NO"));
                                        $documentos["C.L."] = "NO";
                                    }
                                    if (file_exists($certificadoTotalMaestria)) {
                                        //array_push($documentos, array("C.M." => $certificadoTotalMaestria));
                                        $documentos["C.M."] = $certificadoTotalMaestria;
                                    } else {
                                        //array_push($documentos, array("C.M." => "NO"));
                                        $documentos["C.M."] = "NO";
                                    }
                                    if (file_exists($curp)) {
                                        //array_push($documentos, array("CURP" => $curp));
                                        $documentos["CURP"] = $curp;
                                    } else {
                                        //array_push($documentos, array("CURP" => "NO"));
                                        $documentos["CURP"] = "NO";
                                    }
                                    /*
                                     * TERMINA LA VERIFICACIÓN DE DOCUMENTACIÓN DE DOCTORADO
                                     */

                                    if ($a->getFecTer() != null) {
                                        $fecBachillerato = $a->getFecTer();
                                        $dif = $hoy->diff($fecBachillerato);
                                        $datosGenerales[] = array($a, $dif->y, $dif->m, $dif->d, "X", $documentos);
                                    } else {
                                        $datosGenerales[] = array($a, 0, 0, 0, "X", $documentos);
                                    }

                                    break;
                            }
                        }//FIN FOREACH ALUMNOS


                        $reporte->ReporteDocumentos($datosGenerales);
                        return new Response($reporte->Output('repDocumentos.pdf', 'I'), 200, array('Content-Type' => 'application/pdf'));
                    } else {
                        $reporte->ReporteCalificaciones($alumnos);
                        return new Response($reporte->Output('repCalificaciones.pdf', 'I'), 200, array('Content-Type' => 'application/pdf'));
                    }
                } else {

                    $reporte->ReporteBlanco();
                    return new Response($reporte->Output('repDocumentos.pdf', 'I'), 200, array('Content-Type' => 'application/pdf'));
                }


                //return $this->render('CmBundle:SE:estadisticas-activos.html.twig', array('alumnos' => $listaAlumnos));
            }
        } else {

        }
    }

    public function vistaUnoSEAction(Request $request)
    {
        $session = $request->getSession();
        if ($session->has("idEmpleado")) {

            if ($request->getMethod() == "POST") {

                $idePla = $request->get('p');
                $em = $this->getDoctrine()->getEntityManager();

                if ($idePla == "GENERAL") {

                    $datos = $this->cuadroGeneral();

                    $zina = $datos[0];
                    $matrizZina = $datos[1];
                    $plantel = $datos[2];
                    $sumaColumnas = $datos[3];

                    return $this->render('CmBundle:SE:vistaUnoSEGLOBAL.html.twig', array('zina' => $zina, 'cuadroZ' => $matrizZina, 'plantel' => $plantel, 'columnas' => $sumaColumnas));
                } else {

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

                    /**
                     * VER CUANTOS ALUMNOS ACTIVOS HAY EN SISTEMA, Y POR PLANTEL
                     * PLANTELES:
                     *      01: ZINACANTEPEC
                     *      02: TOLUCA PINO SUAREZ
                     *      03: VALLE DE BRAVO
                     *      04: TOLUCA CENTRO
                     *
                     * EXTERNOS:
                     *      05: GUALUPITA
                     *      06: NEZAHUALCOYOTL
                     */
                    // ZINACANTEPEC: 01


                    $alumnosZina = $em->getRepository('CmBundle:Alumnos')
                        ->findBy(
                            array(
                                'cvePla' => 1, 'estatus' => 1, 'tipoAlumno' => array(1, 3, 4, 5, 9, 10, 11, 12, 13)
                            ), array(
                                'tipoAlumno' => 'DESC', 'numero' => 'DESC', 'apePat' => 'ASC', 'apeMat' => 'ASC', 'nomAlu' => 'ASC'
                            )
                        );


                    //print_r("CALCULÓ ALUMNOS ACTIVOS DE: " . $plantel->getIdePla());
                    //die();

                    $dql = "SELECT "
                        . "IDENTITY(a.cveLic) as cveLic, "
                        . "a.numero, "
                        . "IDENTITY(a.cvePla), "
                        . "l.nomLic, "
                        . "a.tipoAlumno, "
                        . "COUNT(a.numero) as total "
                        . "FROM "
                        . "CmBundle:Alumnos a, "
                        . "CmBundle:Licenciaturas l "
                        . "WHERE "
                        . "a.cveLic = l.ideLic "
                        . "AND "
                        . "a.estatus = 1 "
                        . "AND "
                        . "a.cvePla = " . $plantel->getIdePla()
                        . " AND "
                        . "a.tipoAlumno IN(1,3,4,5,9,10,11,12,13) "
                        . "GROUP BY "
                        . "a.cveLic, "
                        . "a.numero,"
                        . "a.cvePla,"
                        . "l.nomLic,"
                        . "a.tipoAlumno,"
                        . "total "
                        . "ORDER BY "
                        . "a.tipoAlumno , "
                        . "l.nomLic , "
                        . "a.numero ";
                    $query = $em->createQuery($dql);
                    $cuatriZina = $query->getResult();

                    // FORMAR MATRIZ DEL CUADRO DE ALUMNOS POR CUATRIMESTRE
                    $cuadroZina = [];
                    $x = 0;
                    $nomLic = "";
                    $tipoEsp = "";
                    //OBTENER ESPECIALIDADES DEL PLANTEL
                    foreach ($cuatriZina as $key => $value) {
                        // [1], [nomLic],[2], [tipoAlumno], [numero], [total]
                        if ($nomLic == $value['nomLic'] & $tipoEsp == $value['tipoAlumno']) {
                            continue;
                        } else {
                            $prefijo = "";
                            switch ($value['tipoAlumno']) {
                                case 1:
                                    $prefijo = "BACH. ";
                                    break;
                                case 3:
                                    $prefijo = "LIC. ";
                                    break;
                                case 4:
                                    $prefijo = "MATRÍA. ";
                                    break;
                                case 5:
                                    $prefijo = "DOC. ";
                                    break;
                                case 9:
                                    //$prefijo = "MAT. ";
                                    $prefijo = "";
                                    break;
                                case 10:
                                    //$prefijo = "PREE. ";
                                    $prefijo = "";
                                    break;
                                case 11:
                                    //$prefijo = "PRI. ";
                                    $prefijo = "";
                                    break;
                                case 12:
                                    //$prefijo = "SEC. ";
                                    $prefijo = "";
                                    break;
                                case 13:
                                    $prefijo = "ESP. ";
                                    break;
                            }
                            $nomLic = $value['nomLic'];
                            $tipoEsp = $value['tipoAlumno'];
                            $nomLicAux = $prefijo . $value['nomLic'];

                            $cuadroZina[0][$x] = array($nomLicAux, $value['cveLic'], $plantel->getIdePla());
                            $x++;
                        }
                    }
                    //ASIGNAR TOTALES POR CUATRIMESTRE Y ESPECIALIDAD
                    $x = -1;
                    $nomLic = "";
                    $tipoEsp = "";
                    foreach ($cuatriZina as $key => $value) {
                        // [1], [nomLic],[2], [tipoAlumno], [numero], [total]
                        if ($nomLic == $value['nomLic'] & $tipoEsp == $value['tipoAlumno']) {
                            $cuadroZina[$value['numero']][$x] = $value['total'];
                        } else {
                            //$nomLic = $prefijo . $value['nomLic'];
                            $nomLic = $value['nomLic'];
                            $tipoEsp = $value['tipoAlumno'];

                            $x++;

                            $cuadroZina[$value['numero']][$x] = $value['total'];
                        }
                    }

                    ////INICIA IMPRESION
//                print "<p>Matriz inicial:</p>\n";
//                print "\n";
//                print "<pre>\n";
//                print_r($cuadroZina);
//                print "</pre>\n";
//                print "\n";
//
//
//                print_r(count($cuadroZina, COUNT_RECURSIVE));
//                print_r("<br>");
//                print_r("<br>");
//
//                foreach ($cuadroZina as $key => $value) {
//                    foreach ($value as $k => $v) {
//                        print_r("[$key,$k]=$v");
//                        print_r(" - ");
//                    }
//                    print_r("<br>");
//                }
                    /////TERMINA IMPRESION


                    $contAux = 0;
                    if (isset($cuadroZina[0]) != null) {
                        $contAux = count($cuadroZina[0]);
                    } else {
                        $contAux = 0;
                    }

                    $matrizZina = [];
                    for ($i = 0; $i <= 15; $i++) {
                        for ($j = 0; $j < $contAux; $j++) {

                            if (isset($cuadroZina[$i][$j])) {
                                if ($i > 0) {
                                    // $matrizZina[$i][$j] = array(Total, Ide_Lic, No. Cuatri);
                                    $matrizZina[$i][$j] = array($cuadroZina[$i][$j], $cuadroZina[0][$j][1], $i, $plantel->getIdePla());
                                } else {
                                    $matrizZina[$i][$j] = $cuadroZina[$i][$j];
                                }
                            } else {
                                $matrizZina[$i][$j] = array(0, 0, 0);
                            }
//                        print_r("[" . $i . "-" . $j . "]");
//                        print_r(" -- ");
                        }
//                    print_r("<br>");
                    }


                    $auxContMat = 0;
                    if (isset($matrizZina[0]) != null) {
                        $auxContMat = count($matrizZina[0]);
                    } else {
                        $auxContMat = 0;
                    }


                    $sumaColumnas = [];
                    $auxSumaCol = 0;
                    for ($j = 0; $j < $auxContMat; $j++) {
                        for ($i = 0; $i <= 15; $i++) {
                            //print_r($matrizZina[$i][$j]);
                            //print_r("[" . $i . "," . $j . "] ");
                            //print_r("|");
                            if ($i != 0) {
                                $auxSumaCol = $auxSumaCol + ($matrizZina[$i][$j][0] * 1);
                            } else {
                                $auxSumaCol = $auxSumaCol + 0;
                            }
                        }
                        $sumaColumnas[$j] = $auxSumaCol;
                        $auxSumaCol = 0;
                        //print_r("<br>");
                    }

                    //print_r($sumaColumnas);


                    $zina = [];
                    $zina[0] = $alumnosZina;
                    $zina[1] = $cuatriZina;


                    return $this->render('CmBundle:SE:vistaUnoSE.html.twig', array('zina' => $zina, 'cuadroZ' => $matrizZina, 'plantel' => $plantel, 'columnas' => $sumaColumnas));

                }// TERMINA ELSE VALIDACIÓN: GENERAL

            } else {// ES GET

            }
        } else {

        }
    }


    public function cuadroGeneral()
    {

        $em = $this->getDoctrine()->getEntityManager();
        $plantel = "GLOBAL";

        /**
         * VER CUANTOS ALUMNOS ACTIVOS HAY EN SISTEMA, Y POR PLANTEL
         * PLANTELES:
         *      01: ZINACANTEPEC
         *      02: TOLUCA PINO SUAREZ
         *      03: VALLE DE BRAVO
         *      04: TOLUCA CENTRO
         *
         * EXTERNOS:
         *      05: GUALUPITA
         *      06: NEZAHUALCOYOTL
         */
        // ZINACANTEPEC: 01


        $alumnosZina = $em->getRepository('CmBundle:Alumnos')
            ->findBy(
                array(
                    'cvePla' => 1, 'estatus' => 1, 'tipoAlumno' => array(1, 3, 4, 5)
                ), array(
                    'tipoAlumno' => 'DESC', 'numero' => 'DESC', 'apePat' => 'ASC', 'apeMat' => 'ASC', 'nomAlu' => 'ASC'
                )
            );


        //print_r("CALCULÓ ALUMNOS ACTIVOS DE: " . $plantel->getIdePla());
        //die();

        $dql = "SELECT "
            . "IDENTITY(a.cveLic) as cveLic, "
            . "a.numero, "
            . "IDENTITY(a.cvePla), "
            . "l.nomLic, "
            . "a.tipoAlumno, "
            . "COUNT(a.numero) as total "
            . "FROM "
            . "CmBundle:Alumnos a, "
            . "CmBundle:Licenciaturas l "
            . "WHERE "
            . "a.cveLic = l.ideLic "
            . "AND "
            . "a.estatus = 1 "
            //. "AND "
            //. "a.cvePla = " . $plantel->getIdePla()
            . " AND "
            . "a.tipoAlumno IN(1,3,4,5) "
            . "GROUP BY "
            . "a.cveLic, "
            . "a.numero,"
            . "a.cvePla,"
            . "l.nomLic,"
            . "a.tipoAlumno,"
            . "total "
            . "ORDER BY "
            . "a.tipoAlumno , "
            . "l.nomLic , "
            . "a.numero ";
        $query = $em->createQuery($dql);
        $cuatriZina = $query->getResult();

        // FORMAR MATRIZ DEL CUADRO DE ALUMNOS POR CUATRIMESTRE
        $cuadroZina = [];
        $x = 0;
        $nomLic = "";
        $tipoEsp = "";
        //OBTENER ESPECIALIDADES DEL PLANTEL
        foreach ($cuatriZina as $key => $value) {
            // [1], [nomLic],[2], [tipoAlumno], [numero], [total]
            if ($nomLic == $value['nomLic'] & $tipoEsp == $value['tipoAlumno']) {
                continue;
            } else {
                $prefijo = "";
                switch ($value['tipoAlumno']) {
                    case 1:
                        $prefijo = "BACH. ";
                        break;
                    case 3:
                        $prefijo = "LIC. ";
                        break;
                    case 4:
                        $prefijo = "MATRÍA. ";
                        break;
                    case 5:
                        $prefijo = "DOC. ";
                        break;
                }
                $nomLic = $value['nomLic'];
                $tipoEsp = $value['tipoAlumno'];
                $nomLicAux = $prefijo . $value['nomLic'];

                $cuadroZina[0][$x] = array($nomLicAux, $value['cveLic'], $plantel);
                $x++;
            }
        }
        //ASIGNAR TOTALES POR CUATRIMESTRE Y ESPECIALIDAD
        $x = -1;
        $nomLic = "";
        $tipoEsp = "";
        foreach ($cuatriZina as $key => $value) {
            // [1], [nomLic],[2], [tipoAlumno], [numero], [total]
            if ($nomLic == $value['nomLic'] & $tipoEsp == $value['tipoAlumno']) {
                $cuadroZina[$value['numero']][$x] = $value['total'];
            } else {
                //$nomLic = $prefijo . $value['nomLic'];
                $nomLic = $value['nomLic'];
                $tipoEsp = $value['tipoAlumno'];

                $x++;

                $cuadroZina[$value['numero']][$x] = $value['total'];
            }
        }

        ////INICIA IMPRESION
//                print "<p>Matriz inicial:</p>\n";
//                print "\n";
//                print "<pre>\n";
//                print_r($cuadroZina);
//                print "</pre>\n";
//                print "\n";
//
//
//                print_r(count($cuadroZina, COUNT_RECURSIVE));
//                print_r("<br>");
//                print_r("<br>");
//
//                foreach ($cuadroZina as $key => $value) {
//                    foreach ($value as $k => $v) {
//                        print_r("[$key,$k]=$v");
//                        print_r(" - ");
//                    }
//                    print_r("<br>");
//                }
        /////TERMINA IMPRESION


        $contAux = 0;
        if (isset($cuadroZina[0]) != null) {
            $contAux = count($cuadroZina[0]);
        } else {
            $contAux = 0;
        }

        $matrizZina = [];
        for ($i = 0; $i <= 15; $i++) {
            for ($j = 0; $j < $contAux; $j++) {

                if (isset($cuadroZina[$i][$j])) {
                    if ($i > 0) {
                        // $matrizZina[$i][$j] = array(Total, Ide_Lic, No. Cuatri);
                        $matrizZina[$i][$j] = array($cuadroZina[$i][$j], $cuadroZina[0][$j][1], $i, $plantel);
                    } else {
                        $matrizZina[$i][$j] = $cuadroZina[$i][$j];
                    }
                } else {
                    $matrizZina[$i][$j] = array(0, 0, 0);
                }
//                        print_r("[" . $i . "-" . $j . "]");
//                        print_r(" -- ");
            }
//                    print_r("<br>");
        }


        $auxContMat = 0;
        if (isset($matrizZina[0]) != null) {
            $auxContMat = count($matrizZina[0]);
        } else {
            $auxContMat = 0;
        }


        $sumaColumnas = [];
        $auxSumaCol = 0;
        for ($j = 0; $j < $auxContMat; $j++) {
            for ($i = 0; $i <= 15; $i++) {
                //print_r($matrizZina[$i][$j]);
                //print_r("[" . $i . "," . $j . "] ");
                //print_r("|");
                if ($i != 0) {
                    $auxSumaCol = $auxSumaCol + ($matrizZina[$i][$j][0] * 1);
                } else {
                    $auxSumaCol = $auxSumaCol + 0;
                }
            }
            $sumaColumnas[$j] = $auxSumaCol;
            $auxSumaCol = 0;
            //print_r("<br>");
        }

        //print_r($sumaColumnas);


        $zina = [];
        $zina[0] = $alumnosZina;
        $zina[1] = $cuatriZina;

        return array($zina, $matrizZina, $plantel, $sumaColumnas);
    }

    public function consultaUnoSEAction(Request $request)
    {
        $session = $request->getSession();
        if ($session->has("idEmpleado")) {
            if ($request->getMethod() == "POST") {

            } else {//ES GET
                $ideLic = $request->get('l');
                $idePla = $request->get('p');
                $numCua = $request->get('c');

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

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

                $cvePla = null;
                $aluAct = null;

                if ($session->get('rol') == '500') { //SOLO TRABAJO SOCIAL
                    $cvePla = $em->getRepository('CmBundle:Planteles')
                        ->findOneBy(array('cvePla' => $session->get('plantel')));
                    $aluAct = $em->getRepository('CmBundle:Alumnos')
                        ->findBy(
                            array('cveLic' => $cveLic, 'numero' => $numCua, 'estatus' => 1, 'recargos' => 1),
                            array('apePat' => 'ASC', 'apeMat' => 'ASC', 'nomAlu' => 'ASC')
                        );
                } else {
                    $cvePla = $em->getRepository('CmBundle:Planteles')
                        ->findOneBy(array('idePla' => $idePla));
                    $aluAct = $em->getRepository('CmBundle:Alumnos')
                        ->findBy(
                            array('cvePla' => $cvePla, 'cveLic' => $cveLic, 'numero' => $numCua, 'estatus' => 1),
                            array('apePat' => 'ASC', 'apeMat' => 'ASC', 'nomAlu' => 'ASC')
                        );
                }


                return $this->render('CmBundle:SE:consultaUnoSE.html.twig', array('alumnos' => $aluAct, 'lic' => $cveLic, 'pla' => $cvePla, 'num' => $numCua));
            }
        } else {

        }
    }

    public function consultaDosSEAction(Request $request)
    {
        $session = $request->getSession();
        if ($session->has("idEmpleado")) {
            if ($request->getMethod() == "POST") {

            } else {//ES GET
                $ideLic = $request->get('l');
                $idePla = $request->get('p');
                $numCua = $request->get('c');

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

                $cveLic = $em->getRepository('CmBundle:Licenciaturas')
                    ->findOneBy(array('ideLic' => $ideLic));
                $cvePla = null;
                $aluAct = null;

                if ($session->get('rol') == '500') {
                    $cvePla = $em->getRepository('CmBundle:Planteles')
                        ->findOneBy(array('cvePla' => $session->get('plantel')));
                    $aluAct = $em->getRepository('CmBundle:Alumnos')
                        ->findBy(
                            array('cveLic' => $cveLic, 'numero' => $numCua, 'estatus' => 1, 'recargos' => 1),
                            array('apePat' => 'ASC', 'apeMat' => 'ASC', 'nomAlu' => 'ASC')
                        );
                } else {
                    $cvePla = $em->getRepository('CmBundle:Planteles')
                        ->findOneBy(array('idePla' => $idePla));
                    $aluAct = $em->getRepository('CmBundle:Alumnos')
                        ->findBy(
                            array('cvePla' => $cvePla, 'cveLic' => $cveLic, 'numero' => $numCua, 'estatus' => 1),
                            array('apePat' => 'ASC', 'apeMat' => 'ASC', 'nomAlu' => 'ASC')
                        );
                }


                $datosGenerales = [];

                foreach ($aluAct as $k => $a) {

                    $tipoAlumno = $a->getTipoAlumno();

                    if ($tipoAlumno == 8) {
                        $rutaExpediente = "archivo/";
                    } else {
                        $rutaExpediente = "archivo/" . $a->getCvePla()->getIdePla() . "/" . $a->getIdeAlu() . "/";
                    }


                    $documentos = [];


                    $hoy = new \DateTime(date("Y-m-d"));

                    $actaNacimiento = $rutaExpediente . $a->getCveCtl() . "-an.pdf";
                    $certificadoSecundaria = $rutaExpediente . $a->getCveCtl() . "-cs.pdf";
                    $certificadoBachillerato = $rutaExpediente . $a->getCveCtl() . "-cb.pdf";
                    $certificadoTotalLicenciatura = $rutaExpediente . $a->getCveCtl() . "-ctl.pdf";
                    $cedulaLic = $rutaExpediente . $a->getCveCtl() . "-cedLic.pdf";
                    $certificadoTotalMaestria = $rutaExpediente . $a->getCveCtl() . "-ctm.pdf";
                    $tituloLicenciatura = $rutaExpediente . $a->getCveCtl() . "-tl.pdf";
                    $tituloMaestria = $rutaExpediente . $a->getCveCtl() . "-tm.pdf";
                    $cedulaMae = $rutaExpediente . $a->getCveCtl() . "-cedMae.pdf";
                    $ifeIne = $rutaExpediente . $a->getCveCtl() . "-ine.pdf";
                    $curp = $rutaExpediente . $a->getCveCtl() . "-curp.pdf";
                    $comprobanteDomiciliario = $rutaExpediente . $a->getCveCtl() . "-comDom.pdf";


                    switch ($tipoAlumno) {
                        case 1: //BACHILLERATO
                            /*
                             * VERIFCIAR QUE EXISTA LA DOCUMENTACIÓN DE LICENCIATURA
                             */


                            if (file_exists($actaNacimiento)) {
                                $documentos["A.N."] = $actaNacimiento;
                            } else {
                                $documentos["A.N."] = "NO";
                            }
                            if (file_exists($certificadoSecundaria)) {
                                $documentos["C.S."] = $certificadoSecundaria;
                            } else {
                                $documentos["C.S."] = "NO";
                            }
                            if (file_exists($curp)) {
                                $documentos["CURP"] = $curp;
                            } else {
                                $documentos["CURP"] = "NO";
                            }
                            if (file_exists($ifeIne)) {
                                $documentos["INE"] = $ifeIne;
                            } else {
                                $documentos["INE"] = "NO";
                            }
                            /*
                             * TERMINA LA VERIFICACIÓN DE DOCUMENTACIÓN LICENCIATURA
                             */

                            $datosGenerales[] = array($a, $documentos);

                            break;

                        case 3: //LICENCIATURA
                            /*
                             * VERIFCIAR QUE EXISTA LA DOCUMENTACIÓN DE LICENCIATURA
                             */


                            if (file_exists($actaNacimiento)) {
                                //array_push($documentos, array("A.N." => $actaNacimiento));
                                $documentos["A.N."] = $actaNacimiento;
                            } else {
                                //array_push($documentos, array("A.N." => "NO"));
                                $documentos["A.N."] = "NO";
                            }
                            if (file_exists($certificadoBachillerato)) {
                                //array_push($documentos, array("C.B." => $certificadoBachillerato));
                                $documentos["C.B."] = $certificadoBachillerato;
                            } else {
                                //array_push($documentos, array("C.B." => "NO"));
                                $documentos["C.B."] = "NO";
                            }
                            if (file_exists($curp)) {
                                //array_push($documentos, array("CURP" => $curp));
                                $documentos["CURP"] = $curp;
                            } else {
                                //array_push($documentos, array("CURP" => "NO"));
                                $documentos["CURP"] = "NO";
                            }
                            if (file_exists($ifeIne)) {
                                //array_push($documentos, array("CURP" => $curp));
                                $documentos["INE"] = $ifeIne;
                            } else {
                                //array_push($documentos, array("CURP" => "NO"));
                                $documentos["INE"] = "NO";
                            }
                            /*
                             * TERMINA LA VERIFICACIÓN DE DOCUMENTACIÓN LICENCIATURA
                             */

                            $datosGenerales[] = array($a, $documentos);

                            break;
                        case 4://MAESTRÍA
                            /*
                             * VERIFCIAR QUE EXISTA LA DOCUMENTACIÓN DE MAESTRÍA
                             */

                            if (file_exists($actaNacimiento)) {
                                //array_push($documentos, array("A.N." => $actaNacimiento));
                                $documentos["A.N."] = $actaNacimiento;
                            } else {
                                //array_push($documentos, array("A.N." => "NO"));
                                $documentos["A.N."] = "NO";
                            }
                            if (file_exists($certificadoTotalLicenciatura)) {
                                //array_push($documentos, array("C.L." => $certificadoTotalLicenciatura));
                                $documentos["C.L."] = $certificadoTotalLicenciatura;
                            } else {
                                //array_push($documentos, array("C.L." => "NO"));
                                $documentos["C.L."] = "NO";
                            }
                            if (file_exists($curp)) {
                                //array_push($documentos, array("CURP" => $curp));
                                $documentos["CURP"] = $curp;
                            } else {
                                //array_push($documentos, array("CURP" => "NO"));
                                $documentos["CURP"] = "NO";
                            }
                            if (file_exists($cedulaLic)) {
                                //array_push($documentos, array("CURP" => $curp));
                                $documentos["CED.L."] = $cedulaLic;
                            } else {
                                //array_push($documentos, array("CURP" => "NO"));
                                $documentos["CED.L."] = "NO";
                            }
                            if (file_exists($tituloLicenciatura)) {
                                //array_push($documentos, array("CURP" => $curp));
                                $documentos["TIT.L."] = $tituloLicenciatura;
                            } else {
                                //array_push($documentos, array("CURP" => "NO"));
                                $documentos["TIT.L."] = "NO";
                            }
                            if (file_exists($ifeIne)) {
                                //array_push($documentos, array("CURP" => $curp));
                                $documentos["INE"] = $ifeIne;
                            } else {
                                //array_push($documentos, array("CURP" => "NO"));
                                $documentos["INE"] = "NO";
                            }
                            /*
                             * TERMINA LA VERIFICACIÓN DE DOCUMENTACIÓN MAESTRÍA
                             */

                            $datosGenerales[] = array($a, $documentos);

                            break;
                        case 5://DOCTORADO
                            /*
                             * VERIFCIAR QUE EXISTA LA DOCUMENTACIÓN DE DOCTORADO
                             */

                            if (file_exists($actaNacimiento)) {
                                //array_push($documentos, array("A.N." => $actaNacimiento));
                                $documentos["A.N."] = $actaNacimiento;
                            } else {
                                //array_push($documentos, array("A.N." => "NO"));
                                $documentos["A.N."] = "NO";
                            }
                            if (file_exists($certificadoTotalLicenciatura)) {
                                //array_push($documentos, array("C.L." => $certificadoTotalLicenciatura));
                                $documentos["C.L."] = $certificadoTotalLicenciatura;
                            } else {
                                //array_push($documentos, array("C.L." => "NO"));
                                $documentos["C.L."] = "NO";
                            }
                            if (file_exists($certificadoTotalMaestria)) {
                                //array_push($documentos, array("C.M." => $certificadoTotalMaestria));
                                $documentos["C.M."] = $certificadoTotalMaestria;
                            } else {
                                //array_push($documentos, array("C.M." => "NO"));
                                $documentos["C.M."] = "NO";
                            }
                            if (file_exists($curp)) {
                                //array_push($documentos, array("CURP" => $curp));
                                $documentos["CURP"] = $curp;
                            } else {
                                //array_push($documentos, array("CURP" => "NO"));
                                $documentos["CURP"] = "NO";
                            }
                            if (file_exists($ifeIne)) {
                                //array_push($documentos, array("CURP" => $curp));
                                $documentos["INE"] = $ifeIne;
                            } else {
                                //array_push($documentos, array("CURP" => "NO"));
                                $documentos["INE"] = "NO";
                            }
                            /*
                             * TERMINA LA VERIFICACIÓN DE DOCUMENTACIÓN DE DOCTORADO
                             */

                            $datosGenerales[] = array($a, $documentos);

                            break;
                    }
                }//FIN FOREACH ALUMNOS


                return $this->render('CmBundle:SE:consultaDosSE.html.twig', array('datos' => $datosGenerales, 'lic' => $cveLic, 'pla' => $cvePla, 'num' => $numCua));
            }
        } else {

        }
    }

    public function consultaTresSEAction(Request $request)
    {
        $session = $request->getSession();
        if ($session->has("idEmpleado")) {
            if ($request->getMethod() == "POST") {

            } else {//ES GET
                $ideLic = $request->get('l');
                $idePla = $request->get('p');
                $numCua = $request->get('c');

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

                $cveLic = $em->getRepository('CmBundle:Licenciaturas')
                    ->findOneBy(array('ideLic' => $ideLic));
                $cvePla = $em->getRepository('CmBundle:Planteles')
                    ->findOneBy(array('idePla' => $idePla));
                $aluAct = $em->getRepository('CmBundle:Alumnos')
                    ->findBy(
                        array('cvePla' => $cvePla, 'cveLic' => $cveLic, 'numero' => $numCua, 'estatus' => 1),
                        array('apePat' => 'ASC', 'apeMat' => 'ASC', 'nomAlu' => 'ASC')
                    );

                return $this->render('CmBundle:SE:consultaUnoSE.html.twig', array('alumnos' => $aluAct, 'lic' => $cveLic, 'pla' => $cvePla, 'num' => $numCua));
            }
        } else {

        }
    }

    public function consultaCuatroSEAction(Request $request)
    {
        $session = $request->getSession();
        if ($session->has("idEmpleado")) {
            if ($request->getMethod() == "POST") {

            } else {//ES GET
                $ideLic = $request->get('l');
                $idePla = $request->get('p');
                $numCua = $request->get('c');

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

                $cveLic = $em->getRepository('CmBundle:Licenciaturas')
                    ->findOneBy(array('ideLic' => $ideLic));
                $cvePla = $em->getRepository('CmBundle:Planteles')
                    ->findOneBy(array('idePla' => $idePla));
                $aluAct = $em->getRepository('CmBundle:Alumnos')
                    ->findBy(
                        array('cvePla' => $cvePla, 'cveLic' => $cveLic, 'numero' => $numCua, 'estatus' => 1),
                        array('apePat' => 'ASC', 'apeMat' => 'ASC', 'nomAlu' => 'ASC')
                    );

                $datos = [];
                foreach ($aluAct as $k => $v) {
//                    $cal = $em->getRepository('CmBundle:AlumnosCurriculas')
//                            ->findBy(array('cveAlu' => $v));

                    $dql = "SELECT ac "
                        . "FROM CmBundle:AlumnosCurriculas ac, CmBundle:Curriculas c "
                        . "WHERE ac.cveCur = c.ideCur "
                        . "AND ac.cveAlu = " . $v->getIdeAlu() . " "
                        . "AND c.numCua <= $numCua ";
                    $query = $em->createQuery($dql);

                    $cal = $query->getResult();

                    $numAsig = count($cal);
                    $asigCal = 0;
                    $sumCal = 0;
                    $promedio = "";
                    foreach ($cal as $c) {
                        if ($c->getCalFinal() != null | $c->getCalFinal() != "") {
                            $asigCal = $asigCal + 1;
                            $sumCal = $sumCal + ($c->getCalFinal());
                        }
                    }

                    if ($asigCal > 0) {
                        $promedio = bcdiv(strval($sumCal), strval($asigCal), 2); //REQUERIDO
                    } else {
                        $promedio = ""; //REQUERIDO
                    }

                    if ($promedio == 10) {
                        $promedio = 10;
                    }


                    $datos[] = array($v, $cal, $numAsig, $asigCal, $promedio);
                }

                /*
                 * GENERAR PROMEDIOS
                 */
                /*
                $promedios = [];
                for ($i = 0; $i < count($datos[$i][1]); $i++) {
                    $suma = 0;
                    for ($j = 0; $j < count($datos); $j++) {
                        print_r($j . ",");

                        if ($datos[$j][$i] != "" | $datos[$j][1][$i] != null) {
                            //print_r($datos[$j][1][$i]);
                            //print_r("<br>");
                            $suma = $suma + ($datos[$j][1][$i] * 1);
                        } else {
                            $suma = $suma + 0;
                        }


                    }
                    $promedios[] = $suma;
                    print_r($promedios);
                }
                */

                $promedios = null;

                return $this->render('CmBundle:SE:consultaCuatroSE.html.twig',
                    array(
                        'datos' => $datos, 'lic' => $cveLic, 'pla' => $cvePla,
                        'num' => $numCua, 'numeroColumnas' => (5 + $numAsig + $numCua),
                        'promedios' => $promedios
                    )
                );
            }
        } else {

        }
    }

    public function consultaCincoSEAction(Request $request)
    {
        $session = $request->getSession();
        if ($session->has("idEmpleado")) {
            if ($request->getMethod() == "POST") {

            } else {//ES GET
                $ideLic = $request->get('l');
                $idePla = $request->get('p');
                $numCua = $request->get('c');

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

                $cveLic = $em->getRepository('CmBundle:Licenciaturas')
                    ->findOneBy(array('ideLic' => $ideLic));
                $cvePla = $em->getRepository('CmBundle:Planteles')
                    ->findOneBy(array('idePla' => $idePla));
                $aluAct = $em->getRepository('CmBundle:Alumnos')
                    ->findBy(
                        array('cvePla' => $cvePla, 'cveLic' => $cveLic, 'numero' => $numCua, 'estatus' => 1),
                        array('apePat' => 'ASC', 'apeMat' => 'ASC', 'nomAlu' => 'ASC')
                    );

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

                $auxGru = $em->getRepository('CmBundle:Grupos')
                    ->findBy(array('periodo' => $auxPer, 'cveLic' => $cveLic, 'cvePla' => $cvePla, 'cuatrimestre' => $numCua));

                $aluGru = $em->getRepository('CmBundle:AlumnosGrupos')
                    ->findBy(array('cveGru' => $auxGru));

                $datos = [];
                foreach ($aluGru as $k => $v) {
//                    $cal = $em->getRepository('CmBundle:AlumnosCurriculas')
//                            ->findBy(array('cveAlu' => $v));

                    $dql = "SELECT ac "
                        . "FROM CmBundle:AlumnosCurriculas ac, CmBundle:Curriculas c, CmBundle:Alumnos a "
                        . "WHERE ac.cveCur = c.ideCur "
                        . "AND a.ideAlu = ac.cveAlu "
                        . "AND ac.cveAlu = " . $v->getCveAlu()->getIdeAlu() . " "
                        . "AND c.numCua <= $numCua ";
                    $query = $em->createQuery($dql);

                    $cal = $query->getResult();


                    $datos[] = array($v, $cal);
                }

                return $this->render('CmBundle:SE:consultaCincoSE.html.twig', array('datos' => $datos, 'lic' => $cveLic, 'pla' => $cvePla, 'num' => $numCua));
            }
        } else {

        }
    }

    public function preinscritosSEAction(Request $request)
    {
        $session = $request->getSession();
        if ($session->has("idEmpleado")) {

            if ($request->getMethod() == "POST") {
                $em = $this->getDoctrine()->getManager();

                $alumno = $em->getRepository('CmBundle:Alumnos')
                    ->findOneBy(array('ideAlu' => $request->get('a')));
                $estatus = $em->getRepository('CmBundle:Estatus')
                    ->findOneBy(array('ideEst' => $request->get('e')));

                $alumno->setEstatus($estatus);
                $em->persist($alumno);
                $em->flush();

                return $this->render('CmBundle:SE:correctoEstatusSE.html.twig');
            } else {// NO FUE POST
                $em = $this->getDoctrine()->getManager();

                $alumnos = $em->getRepository('CmBundle:Alumnos')
                    ->findBy(
                        array('estatus' => 14, 'tipoAlumno' => array(1, 3, 4, 5, 9, 10, 11, 12, 13)),
                        array('cvePla' => 'ASC', 'tipoAlumno' => 'DESC', 'cveLic' => 'ASC', 'numero' => 'DESC', 'apePat' => 'ASC', 'apeMat' => 'ASC', 'nomAlu' => "ASC")
                    );
                $estatus = $em->getRepository('CmBundle:Estatus')
                    ->findBy(array('tipEst' => 4));

                return $this->render('CmBundle:SE:consulta-alumno-preinscritosSE.html.twig', array('alumnos' => $alumnos, 'estatus' => $estatus));
            }
        } else {

        }
    }

    public function bajasOtrosSEAction(Request $request)
    {
        $session = $request->getSession();
        if ($session->has("idEmpleado")) {

            if ($request->getMethod() == "POST") {
                $em = $this->getDoctrine()->getManager();

                $alumno = $em->getRepository('CmBundle:Alumnos')->findOneBy(array('ideAlu' => $request->get('a')));
                $estatus = $em->getRepository('CmBundle:Estatus')->findOneBy(array('ideEst' => $request->get('e')));

                $alumno->setEstatus($estatus);
                $em->persist($alumno);
                $em->flush();

                return $this->render('CmBundle:SE:correctoEstatusSE.html.twig');
            } else {// NO FUE POST
                $em = $this->getDoctrine()->getManager();

                $alumnos = $em->getRepository('CmBundle:Alumnos')
                    ->findBy(
                        array('estatus' => array(11, 10, 9, 6), 'tipoAlumno' => array(1, 3, 4, 5, 9, 10, 11, 12)),
                        array('cvePla' => 'ASC', 'tipoAlumno' => 'DESC', 'cveLic' => 'ASC', 'numero' => 'DESC', 'apePat' => 'ASC', 'apeMat' => 'ASC', 'nomAlu' => "ASC")
                    );
                $estatus = $em->getRepository('CmBundle:Estatus')
                    ->findBy(array('tipEst' => 4));

                return $this->render('CmBundle:SE:consulta-alumno-bajasSE.html.twig', array('alumnos' => $alumnos, 'estatus' => $estatus));
            }
        } else {

        }
    }

    public function preinscritosCEAction(Request $request)
    {
        $session = $request->getSession();
        if ($session->has("idEmpleado")) {

            if ($request->getMethod() == "POST") {

            } else {// NO FUE POST
                $em = $this->getDoctrine()->getManager();

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

                $alumnos = $em->getRepository('CmBundle:Alumnos')
                    ->findBy(
                        array('cvePla' => $idePla->getIdePla(), 'estatus' => 14, 'tipoAlumno' => array(1, 3, 4, 5, 9, 10, 11, 12, 13)),
                        array('cvePla' => 'ASC', 'tipoAlumno' => 'DESC', 'cveLic' => 'ASC', 'numero' => 'DESC', 'apePat' => 'ASC', 'apeMat' => 'ASC', 'nomAlu' => "ASC")
                    );
                $estatus = $em->getRepository('CmBundle:Estatus')
                    ->findBy(array('tipEst' => 4));

                return $this->render('CmBundle:SE:consulta-alumno-preinscritosCE.html.twig', array('alumnos' => $alumnos, 'estatus' => $estatus));
            }
        } else {

        }
    }

    public function consulEgresadosCEAction(Request $request)
    {
        $session = $request->getSession();
        if ($session->has("idEmpleado")) {

            if ($request->getMethod() == "POST") {

            } else {// NO FUE POST
                $em = $this->getDoctrine()->getManager();

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

                $alumnos = $em->getRepository('CmBundle:Alumnos')
                    ->findBy(
                        array('cvePla' => $idePla->getIdePla(), 'estatus' => 12, 'tipoAlumno' => array(3, 4, 5)),
                        array('cvePla' => 'ASC', 'tipoAlumno' => 'DESC', 'cveLic' => 'ASC', 'numero' => 'DESC', 'apePat' => 'ASC', 'apeMat' => 'ASC', 'nomAlu' => "ASC")
                    );
                $estatus = $em->getRepository('CmBundle:Estatus')
                    ->findBy(array('tipEst' => 4));

                return $this->render('CmBundle:SE:consulta-alumno-egresadosCE.html.twig', array('alumnos' => $alumnos, 'estatus' => $estatus));
            }
        } else {

        }
    }

    public function cuadroEstatusAction(Request $request)
    {
        $session = $request->getSession();
        if ($session->has("idEmpleado")) {

            if ($request->getMethod() == "POST") {

            } else {// NO FUE POST
                $em = $this->getDoctrine()->getEntityManager();

                $planteles = $em->getRepository('CmBundle:Planteles')
                    ->findBy(array(), array('nomPla' => 'ASC'));

                $datos = [];
                foreach ($planteles as $k => $v) {
                    $auxIdePla = $v->getIdePla();

                    $totalAlumnos = $em->getRepository('CmBundle:Alumnos')
                        ->findBy(array('cvePla' => $v->getIdePla(), 'tipoAlumno' => array(1, 3, 4, 5)));
                    $preinscritos = $em->getRepository('CmBundle:Alumnos')
                        ->findBy(array('cvePla' => $v->getIdePla(), 'tipoAlumno' => array(1, 3, 4, 5), 'estatus' => 14));
                    $activos = $em->getRepository('CmBundle:Alumnos')
                        ->findBy(array('cvePla' => $v->getIdePla(), 'tipoAlumno' => array(1, 3, 4, 5), 'estatus' => 1));
                    $bajas = $em->getRepository('CmBundle:Alumnos')
                        ->findBy(array('cvePla' => $v->getIdePla(), 'tipoAlumno' => array(1, 3, 4, 5), 'estatus' => array(6, 10)));

                    $dql = "SELECT COUNT(a.ideAlu) total "
                        . "FROM "
                        . "CmBundle:Alumnos a "
                        . "WHERE "
                        . "a.cvePla = $auxIdePla "
                        . "AND "
                        . "a.tipoAlumno = 1 "
                        . "AND "
                        . "a.estatus = 1 ";
                    $query = $em->createQuery($dql);
                    $bachillerato = $query->getResult();

                    $dql = "SELECT COUNT(a.ideAlu) total "
                        . "FROM "
                        . "CmBundle:Alumnos a "
                        . "WHERE "
                        . "a.cvePla = $auxIdePla "
                        . "AND "
                        . "a.tipoAlumno = 3 "
                        . "AND "
                        . "a.estatus = 1 ";
                    $query = $em->createQuery($dql);
                    $licenciatura = $query->getResult();

                    $dql = "SELECT COUNT(a.ideAlu) total "
                        . "FROM "
                        . "CmBundle:Alumnos a "
                        . "WHERE "
                        . "a.cvePla = $auxIdePla "
                        . "AND "
                        . "a.tipoAlumno = 4 "
                        . "AND "
                        . "a.estatus = 1 ";
                    $query = $em->createQuery($dql);
                    $maestria = $query->getResult();

                    $dql = "SELECT COUNT(a.ideAlu) total "
                        . "FROM "
                        . "CmBundle:Alumnos a "
                        . "WHERE "
                        . "a.cvePla = $auxIdePla "
                        . "AND "
                        . "a.tipoAlumno = 5 "
                        . "AND "
                        . "a.estatus = 1 ";
                    $query = $em->createQuery($dql);
                    $doctorado = $query->getResult();

                    //ARRAY(plantel,total_registros,preinscritos,activos,bajas,bachillerato,licenciatura,maestria,doctorado)
                    if (count($bachillerato) > 0) {
                        $bachillerato = $bachillerato[0]['total'];
                    } else {
                        $licenciatura = 0;
                    }

                    if (count($licenciatura) > 0) {
                        $licenciatura = $licenciatura[0]['total'];
                    } else {
                        $licenciatura = 0;
                    }

                    if (count($maestria) > 0) {
                        $maestria = $maestria[0]['total'];
                    } else {
                        $maestria = 0;
                    }
                    if (count($doctorado) > 0) {
                        $doctorado = $doctorado[0]['total'];
                    } else {
                        $doctorado = 0;
                    }

                    $datos[] = array($v->getNomenclatura(), $v->getNomPla(), count($totalAlumnos), count($preinscritos), count($activos), count($bajas), $bachillerato, $licenciatura, $maestria, $doctorado);
                }

                //print_r($datos);

                return $this->render('CmBundle:SE:cuadro_estatus.html.twig', array('datos' => $datos));
            }
        } else {

        }
    }

    public function accionesMasivasSEAction(Request $request)
    {
        $session = $request->getSession();
        if ($session->has("idEmpleado")) {
            if ($request->getMethod() == "POST") {
                $em = $this->getDoctrine()->getManager();

                $alumnos = $request->get('alumnos');
                $oper = $request->get('oper');
                $estatus = $request->get('estatus');
                $insMatriculacion = $request->get('insMatriculacion');

                switch ($oper) {
                    case 1: //CAMBIAR ESTATUS
                        foreach ($alumnos as $k => $v) {
                            $auxEstatus = $em->getRepository('CmBundle:Estatus')
                                ->findOneBy(array('ideEst' => $estatus));

                            $auxAlumno = $em->getRepository('CmBundle:Alumnos')
                                ->findOneBy(array('ideAlu' => $v));
                            $auxAlumno->setEstatus($auxEstatus);
                            $em->flush();
                        }
                        break;

                    case 2: //ASIGNAR ESCUELA DE MATRICULACION
                        foreach ($alumnos as $k => $v) {
                            $auxInstitucion = $em->getRepository('CmBundle:InstitucionesCeepam')
                                ->findOneBy(array('ideIns' => $insMatriculacion));

                            $auxAlumno = $em->getRepository('CmBundle:Alumnos')
                                ->findOneBy(array('ideAlu' => $v));
                            $auxAlumno->setCveInstitucion($auxInstitucion);
                            $em->flush();
                        }
                        break;
                }

                return $this->render('CmBundle:SE:respuesta-acciones-masivas.html.twig');
            } else {// ES GET
            }
        } else {

        }
    }

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

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

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

        if ($plantel->getExterno() == 1) {
            $dql = "SELECT a "
                . "FROM CmBundle:Alumnos a "
                . "WHERE "
                . "a.cvePla = " . $plantel->getIdePla() . " "
                . "ORDER BY a.apePat ASC, a.apeMat ASC, a.nomAlu ASC";
            $query = $em->createQuery($dql);
            $alumnos = $query->getResult();

        } else {
            $dql = "SELECT a "
                . "FROM CmBundle:Alumnos a "
                . "ORDER BY a.apePat ASC, a.apeMat ASC, a.nomAlu ASC";
            $query = $em->createQuery($dql);
            $alumnos = $query->getResult();
        }


        $phpExcelObject = $this->get('phpexcel')->createPHPExcelObject();

        $phpExcelObject->getProperties()->setCreator("El Inge")
            ->setLastModifiedBy("El Inge")
            ->setTitle("Office 2007 XLSX Test Document")
            ->setSubject("Office 2007 XLSX Test Document")
            ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
            ->setKeywords("office 2007 openxml php")
            ->setCategory("Test result file");

        $LETRA = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Y', 'Z'];

        //ENCABEZADOS
        $phpExcelObject->setActiveSheetIndex(0)->setCellValue('A1', "N.C.");
        $phpExcelObject->setActiveSheetIndex(0)->setCellValue('B1', "CLAVE");
        $phpExcelObject->setActiveSheetIndex(0)->setCellValue('C1', "NOMBRE");
        $phpExcelObject->setActiveSheetIndex(0)->setCellValue('D1', "COORDINADOR");
        $phpExcelObject->setActiveSheetIndex(0)->setCellValue('E1', "PLANTEL");
        $phpExcelObject->setActiveSheetIndex(0)->setCellValue('F1', "NIVEL ACADÉMICO");
        $phpExcelObject->setActiveSheetIndex(0)->setCellValue('G1', "ESPECIALIDAD");
        $phpExcelObject->setActiveSheetIndex(0)->setCellValue('H1', "GRADO");
        $phpExcelObject->setActiveSheetIndex(0)->setCellValue('I1', "ESTATUS");
        $phpExcelObject->setActiveSheetIndex(0)->setCellValue('J1', "FECHA REGISTRO");


        $indice = 0;
        $numero = 2;
        foreach ($alumnos as $k => $v) {
            $phpExcelObject->setActiveSheetIndex(0)->setCellValue($LETRA[$indice] . $numero, $k + 1);
            $phpExcelObject->setActiveSheetIndex(0)->setCellValue($LETRA[$indice + 1] . $numero, $v->getCveCtl());
            $phpExcelObject->setActiveSheetIndex(0)->setCellValue($LETRA[$indice + 2] . $numero, $v->getApePat() . " " . $v->getApeMat() . " " . $v->getNomAlu());
            $phpExcelObject->setActiveSheetIndex(0)->setCellValue($LETRA[$indice + 3] . $numero, $v->getCoordinador());
            $phpExcelObject->setActiveSheetIndex(0)->setCellValue($LETRA[$indice + 4] . $numero, $v->getCvePla()->getNomPla());
            $nivel = "";
            switch ($v->getTipoAlumno()) {
                case 1:
                    $nivel = "BACHILLERATO ESCOLARIZADO";
                    break;
                case 2:
                    $nivel = "EXAMEN UNICO";
                    break;
                case 3:
                    $nivel = "LICENCIATURA";
                    break;
                case 4:
                    $nivel = "MAESTRÍA";
                    break;
                case 5:
                    $nivel = "DOCTORADO";
                    break;
                case 6:
                    $nivel = "DIPLOMADO";
                    break;
                case 7:
                    $nivel = "RETROACTIVO";
                    break;
                case 8:
                    $nivel = "TITULACIÓN DIRECTA";
                    break;
            }
            $phpExcelObject->setActiveSheetIndex(0)->setCellValue($LETRA[$indice + 5] . $numero, $nivel);
            $phpExcelObject->setActiveSheetIndex(0)->setCellValue($LETRA[$indice + 6] . $numero, $v->getCveLic()->getNomLic());
            $phpExcelObject->setActiveSheetIndex(0)->setCellValue($LETRA[$indice + 7] . $numero, $v->getNumero());
            $phpExcelObject->setActiveSheetIndex(0)->setCellValue($LETRA[$indice + 8] . $numero, $v->getEstatus()->getDesEst());
            $phpExcelObject->setActiveSheetIndex(0)->setCellValue($LETRA[$indice + 9] . $numero, $v->getFecMov()->format('d/m/Y'));

            $numero++;
        }


        $phpExcelObject->getActiveSheet()->setTitle('Todas');
        // Set active sheet index to the first sheet, so Excel opens this as the first sheet
        $phpExcelObject->setActiveSheetIndex(0);

        // create the writer
        $writer = $this->get('phpexcel')->createWriter($phpExcelObject, 'Excel2007');
        // create the response
        $response = $this->get('phpexcel')->createStreamedResponse($writer);
        // adding headers
        $dispositionHeader = $response->headers->makeDisposition(
            ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'baseGeneral.xlsx'
        );

        $response->headers->set('Content-Type', 'text/vnd.ms-excel; charset=utf-8');
        $response->headers->set('Pragma', 'public');
        $response->headers->set('Cache-Control', 'maxage=1');
        $response->headers->set('Content-Disposition', $dispositionHeader);

        return $response;


    }

    public function exportarAPAction(Request $request)
    {
        $session = $request->getSession();
        $idePla = $request->get('idePla');

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

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

        $alumnos = $em->getRepository('CmBundle:Alumnos')
            ->findBy(
                array('cvePla' => $idePla),
                array(
                    'tipoAlumno' => 'ASC', 'estatus' => 'ASC', 'cveLic' => 'ASC', 'numero' => 'ASC', 'apePat' => 'ASC', 'apeMat' => 'ASC', 'nomAlu' => 'ASC'
                )
            );
        $cordinadoresTitulacion = $em->getRepository('CmBundle:CordinadoresTitulacion')
            ->findBy(array('cvePla' => $idePla));
        $alumnosDirecta = $em->getRepository('CmBundle:Titulaciones')
            ->findBy(array('cord' => $cordinadoresTitulacion));


        $pdf = new PDFFormatosCEEPAM('P', 'mm', 'Letter');
        $pdf->AddPage();
        $pdf->SetFont('Helvetica');
        $pdf->AliasNbPages();
        $pdf->oficioAlumnosGeneralPlantel($alumnos, $plantel, $alumnosDirecta);
        return new Response($pdf->Output('matriculaG_' . utf8_decode($plantel->getNomPla()) . '.pdf', 'I'), 200, array('Content-Type' => 'application/pdf'));
    }

}
