<?php
require_once("../includes/clase_sesion.php");
$sesion = new sesion(); // inicio la sesion
require_once("../includes/academia_constantes.php");
require_once("../includes/funciones_generales.php");
$sesion->set('permiso', permisos($_POST['privilegio']));

if (!comprobar_sesion()) {
    mensaje($dtsLang['global']['ses_cad'], $dtsLang['project']['institucion']);
    exit;
}

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'));
//echo $sesion->get("permiso"); 
$permiso = str_split($sesion->get("permiso"));

$anio = (int) $sesion->get('anio') + 1;
$nroPasoVa = (int) $sesion->getVar('configuracion.paso_migracion');
$tipoGrupo = $sesion->getVar('configuracion.nombres_grupos');

if ($nroPasoVa >= 4) {
    echo '<div class="alert alert-block">
            <h2>Ups!!</h2>
            <div style="font-size:20px">
            La migración de la información para la vigencia ' . $anio . ' ya se ha realizado una vez.<br>
            Por favor comuníquese con el administrador del sistema.</div>
    </div>';
    exit();
}

$sql = 'SELECT DISTINCT
    view_datos_grupos.nom_grado , view_datos_grupos.nom_grupo_let , view_datos_grupos.nom_jornada, view_datos_grupos.nom_sede
   ,view_datos_grupos.' . $tipoGrupo . ' as grupo
FROM
    aca_estudiantesxgrupos
    INNER JOIN view_datos_grupos 
        ON (aca_estudiantesxgrupos.cod_grupo = view_datos_grupos.cod_grupo)
    INNER JOIN aca_estudiantes 
        ON (aca_estudiantesxgrupos.cod_estudiante = aca_estudiantes.cod_estudiante)
WHERE (aca_estudiantesxgrupos.aprobo =0 AND aca_estudiantes.estado_est =1) OR ISNULL(aca_estudiantesxgrupos.aprobo);';

//$academia->instruccion($sql);
//if ($academia->num_rows() > 0) {
//    echo '<div class="alert alert-block">
//            <h2>Ups!!</h2>
//            <div style="font-size:15px">
//                <br>Hay estudiantes en los grupos mencionados abajo que aún no se les ha definido el estado;<br>por favor diríjase al módulo "<b>Matrícula - Estado final estudiantes"</b><br> y establezca el estado final del estudiante
//            </div>
//            <table class="table table-condensed table-bordered">
//                <thead>
//                    <th>Sede</th><th>Jornada</th><th>Grupo</th>
//                </thead>';
//             while($reg=$academia->extraer_registro()){
//                 echo '<tr>'  
//                 . '<td>'.$reg['nom_sede'].'</td>'
//                         . '<td>'.$reg['nom_jornada'].'</td>' 
//                         . '<td>'.$reg['nom_grado'] .' '. $reg['grupo'] .'</td>'
//                         
//                 . '</tr>';
//             }   
//    
//echo '</table>
//
////    </div>';
//    exit();
//}
?>
<script type="text/javascript">
    $(function() {
        var node = $('#contenedor_general').get(0)
        function viewController() {
            var self = this;

            self.ejecInfoBasica = ko.observable(<?php echo ($nroPasoVa < 1) ? 'false' : 'true'; ?>);

            self.ejecEstudiantes = ko.observable(<?php echo ($nroPasoVa >= 1 && $nroPasoVa < 2) ? 'false' : 'true'; ?>);
            self.ejecGrupos = ko.observable(<?php echo ($nroPasoVa >= 2 && $nroPasoVa < 3) ? 'false' : 'true'; ?>);
            self.ejecAsigAca = ko.observable(<?php echo ($nroPasoVa >= 3 && $nroPasoVa < 4) ? 'false' : 'true'; ?>);
            self.newConf = ko.observable('N');

            var dates = $("#txtfec_ini, #txtfec_fin").datepicker({
                changeMonth: true, // True if month can be selected directly, false if only prev/next
                changeYear: true,
                yearRange: 'c-1:c+1',
                maxDate: "+1Y",
                minDate: "-1Y",
                onClose: function(selectedDate) {
                    var option = this.id == "txtfec_ini" ? "minDate" : "maxDate",
                            instance = $(this).data("datepicker"),
                            date = $.datepicker.parseDate(
                                    instance.settings.dateFormat ||
                                    $.datepicker._defaults.dateFormat,
                                    selectedDate, instance.settings);
                    dates.not(this).datepicker("option", option, date);
                    if ($(this).val().length == 10) {
                        $(this).addClass("campos").removeClass("campos_error");
                    }
                    $("#txtfec_fin").removeAttr('disabled');
                }
            });
            $("#txtfec_ini, #txtfec_fin").valida({
                mincar: 8,
                required: true
            });
            var fnCopiaGral = function(params) {
                if ($("#txtfec_ini,#txtfec_fin").hasClass('campos_error')) {
                    jAlert("No se ha seleccionado la fecha de inicio o finalizacion de año lectivo ", dtsLang["globals"]["institucion"], "error");
                    return false;
                }

                jConfirm("Esta seguro de pasar la información " + params.msgTpInf + " este proceso es irreversible", dtsLang["globals"]["institucion"], function(r) {
                    if (!r)
                        return false;
                    $.ajax({
                        url: "mod_new_anio/opera_new_anio.php",
                        dataType: 'json',
                        data: params.data,
                        type: 'POST',
                        beforeSend: function(xhr) {
                            var win = $.messager.progress({
                                title: dtsLang["globals"]["tit_msg_espere"],
                                msg: 'Copiando información ' + params.msgTpInf,
                                interval: 100,
                            });
                        },
                        success: function(rta, textStatus, jqXHR) {
                            $.messager.progress('close');
                            if (rta.error != 0) {
                                if (rta.error == 'session') {
                                    jAlert(dtsLang["globals"]["ses_cad"], dtsLang["globals"]["institucion"], "error", function() {
                                        location.reload();
                                    });
                                } else {
                                    jAlert((rta.msg) ? rta.msg : "Error...", dtsLang["project"]["institucion"], "error");
                                }
                                return;
                            }
                            notifica_ok('La informacón ' + params.msgTpInf + ' ha sido copiada correctamente');
                            params.fnSucces();
                        }
                    });
                });
            };
            self.fnCopiaBasico = function() {
                fnCopiaGral({
                    data: {paso: 1, fini: $("#txtfec_ini").val(), ffni: $("#txtfec_fin").val()},
                    msgTpInf: 'básica',
                    fnSucces: function() {
                        self.ejecEstudiantes(false);
                        self.ejecInfoBasica(true);
                    }
                });
            };
            self.fnCopiaEstud = function() {
                fnCopiaGral({
                    data: {paso: 2, fini: $("#txtfec_ini").val(), ffni: $("#txtfec_fin").val()},
                    msgTpInf: 'de los estudiantes',
                    fnSucces: function() {
                        self.ejecEstudiantes(true);
                        self.ejecGrupos(false);
                    }
                });

            };
            self.fnCopiaGrupos = function() {
                fnCopiaGral({
                    data: {paso: 3, fini: $("#txtfec_ini").val(), ffni: $("#txtfec_fin").val()},
                    msgTpInf: 'de los grupos',
                    fnSucces: function() {
                        self.ejecGrupos(true);
                        self.ejecAsigAca(false);
                    }
                });

            };
            self.fnCopiaCargaAcadem = function() {
                var msg1 = "", msg2 = "";
                msg1 = "Antes de migrar la asignación académica al nuevo año debe realizar la nueva configuración de notas de los ";
                    msg1 += "saberes, desempeños o competencias desde el módulo de <b>Administracion -> configuración</b> en el año lectivo <?php echo $anio ?>.";
                    msg1 += "<br>De lo contrarion los cambios no se verán reflejados en el nuevo año.";
                    msg1 += "<br><br>Posteriormente vuelva al año lectivo <?php echo $anio - 1 ?>  para continuar con el proceso de migración";
                   

                msg2 += "Confirma que desea continuar...<br><br>Este proceso es irreversible.";
                if (self.newConf() == 'S') {
                    jConfirm(msg1, dtsLang["project"]["institucion"], function(r) {
                        if (!r)
                            return false;

                        jConfirm(msg2, dtsLang["project"]["institucion"], function(r) {
                            if (!r)
                                return false;
                            copyAsigAcadem()
                        })
                    })
                } else {
                    copyAsigAcadem()
                }


            };
            function copyAsigAcadem() {
                fnCopiaGral({
                    data: {
                        paso: 4,
                        fini: $("#txtfec_ini").val(),
                        ffni: $("#txtfec_fin").val(),
                        newcnfnot: self.newConf()
                    },
                    msgTpInf: 'de la carga académica',
                    fnSucces: function() {
                        self.ejecAsigAca(true);
                    }
                });
            }
            self.cambiaCnfNotas = function() {
                if (self.newConf() == 'S') {
                    var msg = "Antes de migrar la asignación académica al nuevo año debe realizar la nueva configuración de notas de los ";
                    msg += "saberes, desempeños o competencias desde el módulo de <b>Administracion -> configuración</b> en el año lectivo <?php echo $anio ?>.";
                    msg += "<br>De lo contrarion los cambios no se verán reflejados en el nuevo año.";
                    msg += "<br><br>Posteriormente vuelva al año lectivo <?php echo $anio - 1 ?>  para continuar con el proceso de migración";
                    jAlert(msg, dtsLang["project"]["institucion"], "adv");
                }
            }
        }
        ko.cleanNode(node);
        ko.applyBindings(new viewController(), node);
    });</script>
<h1 style="text-align: center">GENERAR AÑO LECTIVO <?php echo $anio ?></h1>
<table class="table table-bordered table-condensed" style="width:1000px; background-color: white">
    <thead>
        <tr>
            <th width="3%">N°</th>
            <th width="25%">Nombre del proceso</th>
            <th width="40%">Descripción del proceso</th>
            <th width="25%">
    <table>
        <tr>
            <td colspan="2">
                Fechas de inicio y finalización del año lectivo
            </td>

        </tr>
        <tr>
            <td>
                <div>
                    Fecha inicio
                </div>
                <input type="text" id="txtfec_ini">
            </td>
            <td>
                <div>
                    Fecha final
                </div>
                <input type="text" id="txtfec_fin">
            </td>
        </tr>
    </table>
</th>
<th width="5%"></th>
</tr>
</thead>
<tr>
    <th>1</th>
    <td><h3>Copiar información básica</h3></td>
    <td></td>        
    <td>


    </td> 
    <td align="center">
        <button class="btn btn-info btn-small" style="margin:2px" data-bind="attr:{disabled:ejecInfoBasica }, click:fnCopiaBasico ">
            <i class="ui-btn-save icon-white "></i><span>Ejecutar</span>
        </button>
    </td> 
</tr>
<tr>
    <th>2</th>
    <td><h3>Copiar informacion de estudiantes</h3></td>
    <td></td>  
    <td></td>  
    <td align="center">
        <button class="btn btn-info btn-small" style="margin:2px" data-bind="attr:{disabled:ejecEstudiantes}, click:fnCopiaEstud  " >
            <i class="ui-btn-save icon-white "></i><span>Ejecutar</span>
        </button>
    </td>        
</tr>
<tr>
    <th>3</th>
    <td><h3>Copiar grupos</h3></td>
    <td></td>  
    <td>

    </td>  
    <td align="center">
        <button class="btn btn-warning btn-small" style="margin:2px" data-bind="click:fnCopiaGrupos, attr:{disabled:ejecGrupos} ">
            <i class="ui-btn-save icon-white "></i><span>Ejecutar</span>
        </button>
    </td>        
</tr>
<tr>
    <th>4</th>
    <td><h3>Copiar asignación académica</h3></td>
    <td></td>  
    <td style="font-size: 12px; color: #ff3333">
        La institucion va ha realizar algun cambio en la configuración de notas para el nuevo año...?
        <div style="clear: right; position: relative; float: right">
            <select name="opcCambios" id="opcCambios" class="campos" data-bind="value:newConf,event:{change:cambiaCnfNotas} ">
                <option value="N">No</option>
                <option value="S">Si</option>
            </select>
        </div>
    </td>  
    <td align="center">
        <button class="btn btn-danger btn-small" style="margin:2px" data-bind="attr:{disabled:ejecAsigAca }, click:fnCopiaCargaAcadem ">
            <i class="ui-btn-save icon-white "></i><span>Ejecutar</span>
        </button>
    </td>        
</tr>

</table>