<?php
require_once("../includes/clase_sesion.php");
$sesion = new sesion(); // inicio la sesion
require_once("../includes/academia_constantes.php");
require_once("../includes/funciones_buscador.php");
require_once("../includes/funciones_generales.php");

require_once("../includes/MySQL.php");
error_reporting(0);
$academia = new Servidor_Base_Datos(AC_CONN_HOST, AC_CONN_USER, AC_CONN_PASS, AC_CONN_DB . "" . $sesion->get('anio'));


$examp = $_REQUEST["q"]; //query number
$page = $_REQUEST['page']; // get the requested page
$limit = $_REQUEST['rows']; // get how many rows we want to have into the grid
$sidx = $_REQUEST['sidx']; // get index row - i.e. user click to sort
$sord = $_REQUEST['sord']; // get the direction
$id = $_REQUEST['id'];
if (!$sidx)
    $sidx = 1;
if (!$sord)
    $sord = "asc";
if (!$limit)
    $limit = 10;

// search options
// IMPORTANT NOTE!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// this type of constructing is not recommendet
// it is only for demonstration
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

$cnf = $sesion->get("configuracion");
$calendario = $cnf['calendario'];
$fec_cal_edad = $calendario == 'A' ? date('Y-10-31') : date('Y-10-31');

//print_r($cnf);
$wh2 = '';
$tb_est = 'aca_estudiantes';
if ($_POST['t'] == 1) {
    $sql = "SELECT
        aca_estudiantes.cod_estudiante
    , aca_estudiantes.numedocumento_est
    , aca_estudiantes.nombre1_est
    , aca_estudiantes.nombre2_est
    , aca_estudiantes.apellido1_est
    , aca_estudiantes.apellido2_est
    , aca_estudiantes.estado_est
    , IF((SELECT COUNT(aca_estudiantesxgrupos.cod_estudiante) FROM aca_estudiantesxgrupos WHERE aca_estudiantesxgrupos.cod_estudiante= aca_estudiantes.cod_estudiante)>0,'S','N') AS matriculado
    , aca_estudiantes.tipodocumento_est
    , aux_tipos_identificacion.nom_tipoiden
    , (SELECT CONCAT_WS('','{\"cod_grupo\":\"',cod_grupo,'\",\"nom_grupo\":\"'," . $cnf['nombres_grupos'] . ",'\",\"jornada\":\"',nom_jornada,'\",\"educacion\":\"',tipo_edu,'\"}') AS info_grupo FROM  pag_estudiantes_adm where pag_estudiantes_adm.cod_estudiante=aca_estudiantes.cod_estudiante  limit 1) as grupo
    , aca_estudiantes.telefono_est    
    ";

    $sqlTb = "FROM 
		 aca_estudiantes
		LEFT JOIN aux_tipos_identificacion 
			ON (aca_estudiantes.tipodocumento_est = aux_tipos_identificacion.ide_tipoiden)";
} 
elseif ($_POST['t'] == 2) {
    $sql = "SELECT
      cod_estudiante
    , numedocumento_est
    , nombre1_est
    , nombre2_est
    , apellido1_est
    , apellido2_est
    , estado_est
    , matriculado
    , genero_est
	, fechnacimiento_est
    , telefono 
    , nom_tipoiden
    , CONCAT_WS('','{\"cod_grupo\":\"',cod_grupo,'\",\"nom_grupo\":\"'," . $cnf['nombres_grupos'] . ",'\",\"jornada\":\"',nom_jornada,'\",\"educacion\":\"',tipo_edu,'\"}') as grupo
    ";

    $sqlTb = "from pag_estudiantes_adm";

    $sede = $_POST['sede'];
    $grupo = $_POST['grupo'];
    $jornada = $_POST['jornada'];

    if ($sede != '' && $sede != '0x') {
        $wh2.=" AND cod_sede ='$sede'";
    }
    if ($grupo != '' && $grupo != '0x') {
        $wh2.=" AND cod_grupo ='$grupo'";
    }
    if ($jornada != '' && $jornada != '0x') {
        $wh2.=" AND cod_jornada ='$jornada'";
    }
}
$wh = "";

$searchOn = Strip($_REQUEST['_search']);
if ($searchOn == 'true') {
    $searchstr = Strip($_REQUEST['filters']);
    //$wh= constructWhere($searchstr);
    $jsona = json_decode($searchstr, true);
    $wh = " AND " . getStringForGroup($jsona);
    //var_dump($wh);
    //echo $ss;
}

$cons = "SELECT COUNT(*) AS count $sqlTb WHERE 1=1 $wh2 " . $wh;
//		echo $cons;
$academia->instruccion($cons);

$row = $academia->extraer_registro();
$count = $row['count'];
$academia->liberar();
if ($count > 0) {
    $total_pages = ceil($count / $limit);
} else {
    $total_pages = 0;
}
if ($page > $total_pages)
    $page = $total_pages;
$start = $limit * $page - $limit; // do not put $limit*($page - 1)
if ($start < 0)
    $start = 0;

//*************************************
$sidx = $sidx == 'nom_ape' ? 'apellido1_est' : $sidx;
//**************************************		

$SQL = $sql . " " . $sqlTb . " where 1=1 $wh2 " . $wh . " ORDER BY $sidx $sord LIMIT $start , $limit";

//echo $SQL;	
$responce->page = $page;

$responce->total = $total_pages;
$responce->records = $count;
$academia->instruccion($SQL); 
$i = 0;
$formato_nombres = $cnf['format_nom'];
while ($row = $academia->extraer_registro()) {
    $responce->rows[$i]['id'] = $row[cod_estudiante];
    $nom_ape = $row[apellido1_est] . ' ' . $row[apellido2_est] . ' ' . $row[nombre1_est] . ' ' . $row[nombre2_est];
    $dtsGrupo = !empty($row['grupo']) ? json_decode($row['grupo'], true) : array();
    $responce->rows[$i]['cell'] = array(
        $row[numedocumento_est],
        $row[nom_tipoiden],
        formatoPalabras(mb_strtolower(trim($nom_ape),"utf8"), $formato_nombres),
        $row[apellido1_est],
        $row[apellido2_est],
        $row[nombre1_est],
        $row['nombre2_est'],
        isset($dtsGrupo['jornada']) ? $dtsGrupo['jornada'] : '',
        isset($dtsGrupo['nom_grupo']) ? $dtsGrupo['nom_grupo'] : '',
        $row['telefno_est'],
        $row[estado_est] == 1 ? '<img src="images/activo.png" title="Si" >' : '<img src="images/inactivo.png" title="No">',
        $row[matriculado] == 'S' ? '<img src="images/activo.png" title="Si" >' : '<img src="images/inactivo.png" title="No">',
        isset($dtsGrupo['cod_grupo']) ? $dtsGrupo['cod_grupo'] : '',
        isset($dtsGrupo['educacion']) ? $dtsGrupo['educacion'] : ''
    );


    $i++; 
}
if ($sesion->get('ac_usuario') == 'prointel') {
    $responce->sql = $SQL; 
}

echo json_encode($responce);
$academia->cerrar();
?>
