<?php

require_once("../includes/clase_sesion.php");
$sesion = new sesion(); // inicio la sesion
require_once("../includes/funciones_generales.php");
if (!comprobar_sesion()) {
    $ar = array();
    $ar['error'] = 'session';

    echo json_encode($ar);

    exit;
}
$permisos = str_split($sesion->get('permiso'));
if (!in_array("A", $permisos) && !in_array("M", $permisos) && !in_array("E", $permisos)) {
    $rta = array('error' => 10001, 'desc' => "No tiene permisos");
    echo json_encode($rta);
    exit;
}
require_once("../includes/MySQL.php");
$sqldel='';
$sqlIns='';
if (isset($_POST['dt'])) {


    $academia = new Servidor_Base_Datos(AC_CONN_HOST, AC_CONN_USER, AC_CONN_PASS, AC_CONN_DB . "" . $sesion->get('anio'));
    $cd_ponxperxsab = escapar($_POST['cod_ponxperxsab'], 'int');
    $percal = escapar($_POST[percal], 'int');
    $cxaxgr = escapar($_POST[cdxaxgr], 'int');
    $cdponxper = $academia->escapar($_POST['codponxper']);
    $info = $_POST['dt'];

    $cad_ins = "";
    $cad_del = "";
    $num_nota = 1;
    $cont = 0;
    $cont_err = 0;
    $tam = count($info);

    function comparar($x, $y)
    {
        if (strtotime($x['f']) == strtotime($y['f']))
            return 0;
        else if (strtotime($x['f']) < strtotime($y['f']))
            return -1;
        else
            return 1;
    }

    usort($info, 'comparar');

    foreach ($info as $dt) {
        switch ($dt[ac]) {
            case 'new':
                //cod_ponxperxsab,nombre_nota,num_nota,por_nota,fecha_nota,detalle_nota
                $cad_ins = $cad_ins . "('$cd_ponxperxsab','" . escapar($dt[n]) . "','" . $num_nota . "','" . escapar($dt[v], 'int') . "','" . escapar($dt[f]) . "','" . escapar($dt[d]) . "')|";
                $num_nota++;
                break;
            case 'del':
                if (!empty($cad_del)) {
                    $cad_del = $cad_del . " OR ";
                }
                $cad_del = $cad_del . " cod_detalles_notas='" . escapar($dt[cd], 'int') . "'";
                break;
            case 'edit':
                $sql = "CALL SPTR_UPDATE_ACA_DETALLES_NOTAS('" . $dt[cd] . "','" . escapar($dt[n]) . "','" . $num_nota . "','" . escapar($dt[v], 'double') . "','" . escapar($dt[f]) . "','" . escapar($dt[d]) . "');";
                $academia->instruccion($sql);
                if ($academia->extraer_error() > 0) {
                    $rta = array('error' => $academia->extraer_error(), 'desc' => "Error. No se completo la actualizaxión.<br>Se completaron $cont de $tam", 'sql' => $sql);
                    echo json_encode($rta);
                    exit();
                }
                $num_nota++;
                break;
        }
        $cont++;
    }


    if (!empty($cad_del)) {

        $sql = "DELETE FROM aca_detalles_notas WHERE " . $cad_del;
        $sqldel=$sql;
        $academia->instruccion($sql);

        $rta = array('error' => $academia->extraer_error(), 'desc' => 'Error. No se completo la tranasferenciax');

        if ($academia->extraer_error() > 0) {

            $rta = array('error' => $academia->extraer_error(), 'desc' => 'Error. No se completo la tranasferenciax');

            $academia->cerrar();

            echo json_encode($rta);

            exit();
        }
    }

    $sqlIns='';
    if (!empty($cad_ins)) {

        $sql = 'CALL SPTR_NEW_ACA_DETALLES_NOTAS("' . $cad_ins . '",' . "'$cxaxgr','$percal','$cd_ponxperxsab');";

        $sqlIns=$sql;
        $academia->instruccion($sql);

        if ($academia->extraer_error() > 0) {

            $rta = array('error' => $academia->extraer_error(), 'desc' => 'Error. No se completo la tranasferencia n');

            $rta['sql'] = $sql;

            $academia->cerrar();

            echo json_encode($rta);

            exit;
        }
    }

    //condicion si notas iguales y llamar al procedimeinto 1= son las notas iguales

    if ($sesion->getVar('configuracion.notas_iguales') == 1) {

        $sql = "call SP_RECALCULA_PORCENTAJES_IGUALES($cdponxper)";

        $academia->instruccion($sql);
    } else {

        $sql = "call SP_CALCULA_NOTAS_FINALES($cxaxgr,$percal)";

        $academia->instruccion($sql);
    }


    $academia->cerrar();

    $rta = array('error' => $cont_err, 'sql' => $sql, 'sqlDel'=>$sqldel,'sqlIns'=>$sqlIns);

    echo json_encode($rta);
} else {

    $rta = array('error' => 0, 'sql' => $sql, 'sqlDel'=>$sqldel,'sqlIns'=>$sqlIns);

    echo json_encode($rta);
}
?>