<?php

if (!headers_sent())
    ob_start("ob_gzhandler");
require_once("../includes/academia_constantes.php");
require_once("../includes/funciones_generales.php");
require_once("../includes/clase_sesion.php");
$sesion = new sesion(); // inicio la sesion 


require_once("../includes/lib_lenguaje.php");
$cleguaje = new cLanguage();

if (!comprobar_sesion()) {
    mensaje($cleguaje->Phrase('global', 'ses_cad'), $cleguaje->Phrase('project', 'institucion'));
    exit;
}
cache();

//ESTE ARCHIVO CARGA EL LISTADO DE ESTUDIANTES Y SUS NOTAS 

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

$codasigxgrup = escapar($_POST['cod_asixgru'], 'double');
$periodo = escapar($_POST['periodo_cal'], 'int');

$notasEqals = $sesion->getVar('configuracion.notas_iguales');
$ide_usu = $sesion->get('ac_userid');
$sql = "CALL SP_NOTASXESTUDIANTES($codasigxgrup,1,'$ide_usu')";
$academia->instruccion($sql);
$reg = $academia->extraer_registro();

$cant_est = $academia->filas_afectadas();
$can_fil = $cant_est;

$t = $nota_minima;
$dataSourc = array();
if (isset($reg[aerror])) {
    switch ($reg[aerror]) {
        case 'E100':
            $dataSourc['error'] = '<div style="color:#FF0000; height:55px;line-height:55px !important; vertical-align:middle !important" ><b>' . $cleguaje->Phrase("md_notas", 'e100') . "</b></div><div style='display:none'>{$sql}</div>";
            break;
        case 'E10':
            $dataSourc['error'] = '<div style="color:#FF0000; height:55px; line-height:55px !important; vertical-align:middle !important" ><b>' . $cleguaje->Phrase("md_notas", 'e10') . "</b></div><div style='display:none'>{$sql}</div>";
            break;
    }
    echo json_encode($dataSourc);
    exit;
}
$dtsCols = explode(">", substr($reg["datacols"], 1));
#var_dump($reg);
$cabeceras = array_keys($reg);
$cd_sab = '';
$i = 0;
$cont = 0;
$j = 0;
$datos = array();
$notas = array();
$tam = count($cabeceras) - 1;
#echo $sql;
#var_dump($cabeceras);
$x = 1;
$y = 1;
$promedio_mat = 0;
$auxTB = 1;
$auxTB2 = 0;
$conEts = 0;
$band = 0;
$dts = array();
$mayus_nom = $sesion->getVar('configuracion.format_nom');
do {
    $dt_nota_def = $reg['nota_def']; //make remaining items html entries.
    $dt_nota_def = str_replace(chr(10), " ", $dt_nota_def); //remove carriage returns
    $dt_nota_def = str_replace(chr(13), " ", $dt_nota_def); //remove carriage returns
    $dt_nota_def = parseString($dt_nota_def);
    //echo $dt_nota_def;
    $dt_nota_def = json_decode($dt_nota_def, true);
    $ndef = numberFormat($dt_nota_def['def_numeros'], 1, '.', '');
    $dataSourc['infEst'][$conEts]['ndef'] = array(
        'cd_n_def' => $dt_nota_def['cod_n_desem'],
        'def_ns' => $ndef,
        'obsgrl' => stripcslashes($dt_nota_def['observaciones']),
    );
    
    $dataSourc['infEst'][$conEts]['historicos'] = $dt_nota_def['historicos'];

    $dataSourc['infEst'][$conEts]['dts'] = array('cd' => $reg['cod_estudiante'], 'nom' => formatoPalabras($reg['nom_estudiante'], $mayus_nom));
    $auxBand = 0;
    $dtsAux = array();
    for ($u = 3; $u < $tam; $u++) {
        $dt_nota = str_replace("^", "\"", $reg[$cabeceras[$u]]);

        $dt_nota = parseString($dt_nota);
        $dt_nota = json_decode($dt_nota, true);
        $recupero = false;
        $dtsRec = array();
        if (strlen($dt_nota['recupera']) > 1) {
            $re = str_replace("|", "\"", $dt_nota['recupera']);
            $array_rec = json_decode($re, true);
            $dtsRec['fr'] = $array_rec[rec_fecha];
            $dtsRec['nt'] = numberFormat($array_rec['rec_numeros'], 1, '.', '');
            $dtsRec['ob'] = $array_rec[rec_observaciones];
            $dtsRec['cd'] = $array_rec[cod_recuperacion];
            $nota_rec_let = $array_rec[rec_letras];
            $recupero = true;
        }
        $dataSourc['infEst'][$conEts]['infNots'][] = array(
            'cod_calxasixest' => $dt_nota['cod_calxasixest'],
            //feccal=>$dt_nota['fecha_calif'],
            //cdsab=>$dt_nota['cod_saber'],
            //nomsab=>$dt_nota['nombre_saber'],
            numnota => $dt_nota['num_nota'],
            pornota => $dt_nota['por_nota'],
            nns => ($dt_nota['nota_numeros'] == 9999) ? '' : numberFormat($dt_nota['nota_numeros'], 1, '.', ''),
            //nomn=>$dt_nota['nombre_nota'],
            //cdest=>$dt_nota['cod_estudiante'],
            porsab => $dt_nota['por_saber'],
            //pierde=>$dt_nota['pierde'],
            rec => $recupero,
            dtsRec => $dtsRec, 
        );

        if ($band == 0) {
            $cdSab = 'cs_' . $dt_nota['cod_saber'];
            $key = $auxBand;
            $nota_pierde = $dt_nota['pierde'];
            $key = array_search($cdSab, $dtsAux);
            if ($key === FALSE) {
                $key = $auxBand;
                $dtsAux[] = $cdSab;
                $auxBand++;
            }
            $dts[$key]['ns'] = $dt_nota['nombre_saber'];
            $dts[$key]['ps'] = $dt_nota['por_saber'];
            $dts[$key]['cds'] = $cdSab;
            $dts[$key]['dtn'][] = array('fc' => $dt_nota['fecha_calif'], 'pc' => $dt_nota['por_nota'], 'nm' => $dt_nota['nombre_nota']);
        }
    }

    $band = 1;
    $x++;
    $y = $x;
    $auxTB = $x;
    $conEts++;
} while ($reg = $academia->extraer_registro());

$academia->liberar();
$academia->cerrar();
$dataSourc['infCol'] = $dts;
$dataSourc['npier'] = (float) $nota_pierde;
if ($sesion->get('ac_usuario') == 'prointel')
    $dataSourc['sql'] = $sql;
#$dataSourc['sql'] = $sql;
echo json_encode($dataSourc);
?>







