<?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;

/**
 * Description of SistemasController
 *
 * @author ALE
 */
class SistemasController extends Controller
{

    //put your code here
//    public function vistaReporteAction(Request $request) {
//        $session = $request->getSession();
//        if ($session->has("idEmpleado")) {
//            if ($request->getMethod() == 'POST') {
//                
//            } else { // NO FUE POST
//                $em = $this->getDoctrine()->getEntityManager();
//                $plantel = $em->getRepository('CmBundle:Planteles')->findOneBy(array('cvePla' => $session->get('plantel')));
//                /**
//                 * 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'
//                        )
//                );
//
//                $dql = "SELECT "
//                        . "IDENTITY(a.cvePla), "
//                        . "l.nomLic, "
//                        . "IDENTITY(a.cveLic), "
//                        . "a.tipoAlumno, "
//                        . "a.numero, "
//                        . "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(3,4,5) "
//                        . "GROUP BY "
//                        . "a.cveLic, "
//                        . "a.numero "
//                        . "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 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] = $nomLicAux;
//                        $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'];
//                    }
//                }
//                /*
//                  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>");
//                  }
//                 * 
//                 */
//                $matrizZina = [];
//                for ($i = 0; $i <= 10; $i++) {
//                    for ($j = 0; $j < count($cuadroZina[0]); $j++) {
//                        //print_r($cuadroZina[$i][$j]);
//                        //print_r(" -- ");
//                        $matrizZina[$i][$j] = $cuadroZina[$i][$j];
//                    }
//                    //print_r("<br>");
//                }
//
//
//                $zina = [];
//                $zina[0] = $alumnosZina;
//                $zina[1] = $cuatriZina;
//
//
//
//
//                return $this->render('CmBundle:Sistemas:vistaReporteSistema.html.twig', array('zina' => $zina, 'cuadroZ' => $matrizZina, 'plantel' => $plantel));
//            }
//        } else {
//            return $this->redirect($this->generateUrl('logout'));
//        }
//    }

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

            } else { // NO FUE POST
                $em = $this->getDoctrine()->getEntityManager();
                $plantel = $em->getRepository('CmBundle:Planteles')
                    ->findOneBy(array('cvePla' => $session->get('plantel')));
                /**
                 * 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 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])) {
                            //$matrizZina[$i][$j] = $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] = 0;
                            $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] * 1);
                            $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:Sistemas:vistaReporteSistema.html.twig', array('zina' => $zina, 'cuadroZ' => $matrizZina, 'plantel' => $plantel, 'columnas' => $sumaColumnas));
            }
        } else {
            return $this->redirect($this->generateUrl('logout'));
        }
    }

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

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


                $ideAlu = $request->get('ide');
                $valor = $request->get('valor');

                $alumno = $em->getRepository('CmBundle:Alumnos')
                    ->findOneBy(array('ideAlu' => $ideAlu));

                // EL CAMPO RECARGOS se tomará como validación de BAUHAUS
                $alumno->setRecargos($valor);

                $em->flush();

                return $this->render('CmBundle:Sistemas:respuesta-bhs.html.twig');
            } else { // NO FUE POST
                $em = $this->getDoctrine()->getEntityManager();
                $plantel = $em->getRepository('CmBundle:Planteles')->findOneBy(array('cvePla' => $session->get('plantel')));
                /**
                 * 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(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()
                    . "a.cveLic = 10 "
                    . "AND "
                    . "a.recargos = 1 " //BUSCAR LOS QUE ESTÁN VISIBLES CON BAUHAUS
                    . " AND "
                    . "a.tipoAlumno IN(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 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->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 <= 10; $i++) {
                    for ($j = 0; $j < $contAux; $j++) {

                        if (isset($cuadroZina[$i][$j])) {
                            //$matrizZina[$i][$j] = $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] = 0;
                            $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 <= 10; $i++) {
                        //print_r($matrizZina[$i][$j]);
                        //print_r("[" . $i . "," . $j . "] ");
                        //print_r("|");
                        if ($i != 0) {
                            //$auxSumaCol = $auxSumaCol + ($matrizZina[$i][$j] * 1);
                            $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:Sistemas:vistaReporteSistema.html.twig', array('zina' => $zina, 'cuadroZ' => $matrizZina, 'plantel' => $plantel, 'columnas' => $sumaColumnas));
            }
        } else {
            return $this->redirect($this->generateUrl('logout'));
        }
    }

}
