
var days = ['Domingo', 'Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado'];

var JTable = $('#table_gestion').DataTable({
    dom: 'Bfrtip',
    buttons: [
        {
            extend: 'excelHtml5',
            title: 'Listado de Justificaciones Personal Administrativo',
            exportOptions: {
                columns: [ 0, 1, 2, 3,4,5,6]
            }
        },
        {
            extend: 'pdfHtml5',
            title: 'Listado de Justificaciones Personal Administrativo',
            exportOptions: {
                columns: [ 0, 1, 2, 3, 4,5,6 ]
            }
        }
    ],
    "language": {
        "sProcessing":     "Procesando...",
        "sLengthMenu":     "Mostrar _MENU_ registros",
        "sZeroRecords":    "No se encontraron resultados",
        "sEmptyTable":     "No existen registros de Justificaciones",
        "sInfo":           "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros",
        "sInfoEmpty":      "Mostrando registros del 0 al 0 de un total de 0 registros",
        "sInfoFiltered":   "(filtrado de un total de _MAX_ registros)",
        "sInfoPostFix":    "",
        "sSearch":         "Buscar:",
        "sUrl":            "",
        "sInfoThousands":  ",",
        "sLoadingRecords": "Cargando...",
        "oPaginate": {
            "sFirst":    "Primero",
            "sLast":     "Último",
            "sNext":     "Siguiente",
            "sPrevious": "Anterior"
        },
        "oAria": {
            "sSortAscending":  ": Activar para ordenar la columna de manera ascendente",
            "sSortDescending": ": Activar para ordenar la columna de manera descendente"
        }
    },
    processing: false,
    serverSide: true,
    destroy: true,
    responsive:true,
    ajax:{
        method: 'POST',
        url: urlData,
        data: function(d){
            d.t = 1;
        },
        error: function(error){
        }
    },
    columns:[
        {
            data:'username',
            name:'username',
            "searchable": true
        },
        {
            data:'completo',
            name:'completo',
            "searchable": true
        },
        {
            data:'nombre',
            name:'nombre',
            "searchable": true
        },
        {
            data:'nombre_seccion',
            name:'nombre_seccion',
            "searchable": true
        },
        {
            data:'fecha',
            name:'fecha',
            "searchable": false,
            render: function(data,type,row){
                var d = new Date(data);
                var str = ((d.getDate() + 1) + '-' + (d.getMonth() + 1) + '-' +  d.getFullYear());
                return str;
            }
        },
        {
            data:'dia',
            name:'dia',
            "searchable": false
        },
        {
            data:'hora_ini',
            name:'hora_ini',
            "searchable": false
        },
        {
            data:'hora_fin',
            name:'hora_fin',
            "searchable": false
        },
        {
            data:'id_justificacion',
            name:'id_justificacion',
            "searchable": false,
            render: function(data,type,row){
                return '<td><button class="vmas btn btn-primary waves-effect waves-light m-t-10 detalle"' +
                    'data-id="'+data+'"><i class="icon-magnifier-add"></i></button></td>';
            }
        },
        {
            data:'procede',
            name:'procede',
            "searchable": true,
            render: function (data,type,row) {
                switch (data)
                {
                    case '':
                        return '<td style="color: saddlebrown !important;">Pendiente</td>';
                        break;
                    case '1':
                        return '<td style="color: green !important;">Aceptada</td>';
                        break;
                    case '0':
                        return '<td style="color: red !important;">Denegada</td>';
                        break;
                    case '2':
                        return '<td style="color: blue !important;">En Proceso</td>';
                        break;
                }
            }
        },
        {
            data:'id_justificacion',
            name:'id_justificacion',
            "searchable": false,
            render: function(data,type,row){
                return '<td>'
                    + '<button class="btn btn-outline btn-circle btn-sm green-dark evaluacion_procede" data-id="'+data+'" data-tipo="procede" data-user="alumno" ><i class="fa fa-check"></i> </button>'
                    + '<button class="btn btn-outline btn-circle btn-sm red evaluacion_noprocede" data-id="'+data+'" data-tipo="noprocede" data-user="alumno"><i class="fa fa-close"></i> </button>'
                    + '</td>'
            }
        }
    ],
    "pageLength": 15,
    "columnDefs": [{
        'orderable': false,
        'targets': [0]
    }, {
        "searchable": true,
        "targets": [0,1,2]
    }],
    "bInfo": false,
    "bLengthChange": false,
    "ordering": false
});

function tableRefresh() {
    JTable.draw();
    JPTable.draw();
    ProfTable.draw();
}

$('#table_gestion').on("click", ".detalle", function() {
    this.blur();
    var button = $(this);
    var id = button.data('id');
    button.prop("disabled",true);
    button.blur();
    $.ajax({
        url: urlBase+'/detalle/'+id,
        type: 'GET',
        cache: false,
        success: function (result) {
            $('.modal-content').html(result);
            $('#detalle_datos').modal({
                show: true
            });
        },
        complete: function (result) {
            button.removeAttr("disabled");
            button.prop('disabled', false);
        },
        error: function(error){
        }
    });
});

$('#table_gestion,#table_gestion_personal,#table_gestion_profesor').on("click", ".evaluacion_noprocede", function() {
    var button = $(this);
    var id = button.data('id');
    var type = button.data('tipo');
    var usuario = button.data('user');
    $.ajax({
        type: 'POST',
        url: urlValidar,
        data: {
            ep : id,
            tipo : type
        },
        success: function (result) {
            if(result == 200){
                tableRefresh();
                swal("Proceso concluído", "Se denego la justificación del "+usuario, "success");
            }
            else
                swal("Advertencia", "Ocurrio un error de conexión durante la negación de la justificación", "warning");

        },
        cache: false,
        complete: function (result) {
        },
        error: function(error){
        }
    });
});

$('#table_gestion,#table_gestion_personal,#table_gestion_profesor').on("click", ".evaluacion_procede", function() {
    var button = $(this);
    var id = button.data('id');
    var type = button.data('tipo');
    var usuario = button.data('user');
    $.ajax({
        type: 'POST',
        url: urlValidar,
        data: {
            ep : id,
            tipo : type
        },
        success: function (result) {
            if(result == 200){
                tableRefresh();
                swal("Proceso concluído", "Se acepto la justificación del "+usuario, "success");
            }
            else
                swal("Advertencia", "Ocurrio un error de conexión durante la aprobación de la justificación", "warning");

        },
        cache: false,
        complete: function (result) {
        },
        error: function(error){
        }
    });
});

var JPTable = $('#table_gestion_personal').DataTable({
    dom: 'Bfrtip',
    buttons: [
        {
            extend: 'excelHtml5',
            title: 'Listado de Justificaciones Personal Administrativo',
            exportOptions: {
                columns: [ 0, 1, 2]
            }
        },
        {
            extend: 'pdfHtml5',
            title: 'Listado de Justificaciones Personal Administrativo',
            exportOptions: {
                columns: [ 0, 1, 2]
            }
        }
    ],
    "language": {
        "sProcessing":     "Procesando...",
        "sLengthMenu":     "Mostrar _MENU_ registros",
        "sZeroRecords":    "No se encontraron resultados",
        "sEmptyTable":     "No existen registros de Justificaciones",
        "sInfo":           "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros",
        "sInfoEmpty":      "Mostrando registros del 0 al 0 de un total de 0 registros",
        "sInfoFiltered":   "(filtrado de un total de _MAX_ registros)",
        "sInfoPostFix":    "",
        "sSearch":         "Buscar:",
        "sUrl":            "",
        "sInfoThousands":  ",",
        "sLoadingRecords": "Cargando...",
        "oPaginate": {
            "sFirst":    "Primero",
            "sLast":     "Último",
            "sNext":     "Siguiente",
            "sPrevious": "Anterior"
        },
        "oAria": {
            "sSortAscending":  ": Activar para ordenar la columna de manera ascendente",
            "sSortDescending": ": Activar para ordenar la columna de manera descendente"
        }
    },
    processing: false,
    serverSide: true,
    destroy: true,
    responsive:true,
    ajax:{
        method: 'POST',
        url: urlData,
        data: function(d){
            d.t = 1;
        },
        error: function(error){
        }
    },
    columns:[
        {
            data:'username',
            name:'username',
            "searchable": true
        },
        {
            data:'completo',
            name:'completo',
            "searchable": true
        },
        {
            data:'fecha',
            name:'fecha',
            "searchable": false,
            render: function(data,type,row){
                var d = new Date(data);
                var str = ((d.getDate() + 1) + '-' + (d.getMonth() + 1) + '-' +  d.getFullYear());
                return str;
            }
        },
        {
            data:'fecha',
            name:'fecha',
            "searchable": true,
            render: function(data,type,row){
                var d = new Date(data);
                var dayName = days[(d.getDay() + 1)];
                return dayName;
            }
        },
        {
            data:'id',
            name:'id',
            "searchable": false,
            render: function(data,type,row){
                return '<td><button class="vmas btn btn-primary waves-effect waves-light m-t-10 detalle"' +
                    'data-id="'+data+'"><i class="icon-magnifier-add"></i></button></td>';
            }
        },
        {
            data:'procede',
            name:'procede',
            "searchable": true,
            render: function (data,type,row) {
                switch (data)
                {
                    case '':
                        return '<td style="color: saddlebrown !important;">Pendiente</td>';
                        break;
                    case '1':
                        return '<td style="color: green !important;">Aceptada</td>';
                        break;
                    case '0':
                        return '<td style="color: red !important;">Denegada</td>';
                        break;
                    case '2':
                        return '<td style="color: blue !important;">En Proceso</td>';
                        break;
                }
            }
        },
        {
            data:'id',
            name:'id',
            "searchable": false,
            render: function(data,type,row){
                return '<td>'
                    + '<button class="btn btn-outline btn-circle btn-sm green-dark evaluacion_procede" data-id="'+data+'" data-tipo="procede" data-user="personal"><i class="fa fa-check"></i> </button>'
                    + '<button class="btn btn-outline btn-circle btn-sm red evaluacion_noprocede" data-id="'+data+'" data-tipo="noprocede" data-user="personal"><i class="fa fa-close"></i> </button>'
                    + '</td>'
            }
        }
    ],
    "pageLength": 15,
    "columnDefs": [{
        'orderable': false,
        'targets': [0]
    }, {
        "searchable": true,
        "targets": [0,1,2]
    }],
    "bInfo": false,
    "bLengthChange": false,
    "ordering": false
});

$('#table_gestion_personal').on("click", ".detalle", function() {
    this.blur();
    var button = $(this);
    var id = button.data('id');
    button.prop("disabled",true);
    button.blur();
    $.ajax({
        url: urlBase+'/detallepersonal/'+id,
        type: 'GET',
        cache: false,
        success: function (result) {
            $('.modal-content').html(result);
            $('#detalle_datos').modal({
                show: true
            });
        },
        complete: function (result) {
            button.removeAttr("disabled");
            button.prop('disabled', false);
        },
        error: function(error){
        }
    });
});


var ProfTable = $('#table_gestion_profesor').DataTable({
    dom: 'Bfrtip',
    buttons: [
        {
            extend: 'excelHtml5',
            title: 'Listado de Justificaciones Personal Administrativo',
            exportOptions: {
                columns: [ 0, 1, 2,3,4]
            }
        },
        {
            extend: 'pdfHtml5',
            title: 'Listado de Justificaciones Personal Administrativo',
            exportOptions: {
                columns: [ 0, 1, 2,3,4]
            }
        }
    ],
    "language": {
        "sProcessing":     "Procesando...",
        "sLengthMenu":     "Mostrar _MENU_ registros",
        "sZeroRecords":    "No se encontraron resultados",
        "sEmptyTable":     "No existen registros de Justificaciones",
        "sInfo":           "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros",
        "sInfoEmpty":      "Mostrando registros del 0 al 0 de un total de 0 registros",
        "sInfoFiltered":   "(filtrado de un total de _MAX_ registros)",
        "sInfoPostFix":    "",
        "sSearch":         "Buscar:",
        "sUrl":            "",
        "sInfoThousands":  ",",
        "sLoadingRecords": "Cargando...",
        "oPaginate": {
            "sFirst":    "Primero",
            "sLast":     "Último",
            "sNext":     "Siguiente",
            "sPrevious": "Anterior"
        },
        "oAria": {
            "sSortAscending":  ": Activar para ordenar la columna de manera ascendente",
            "sSortDescending": ": Activar para ordenar la columna de manera descendente"
        }
    },
    processing: false,
    serverSide: true,
    destroy: true,
    responsive:true,
    "sDom": "",
    ajax:{
        method: 'POST',
        url: urlData,
        data: function(d){
            d.t = 1;
        },
        error: function(error){
        }
    },
    columns:[
        {
            data:'completo',
            name:'completo',
            "searchable": true
        },
        {
            data:'codigo',
            name:'codigo',
            "searchable": true
        },
        {
            data:'nombre',
            name:'nombre',
            "searchable": true
        },
        {
            data:'nombre_seccion',
            name:'nombre_seccion',
            "searchable": true
        },
        {
            data:'fecha',
            name:'fecha',
            "searchable": false,
            render: function(data,type,row){
                var d = new Date(data);
                var str = ((d.getDate() + 1) + '-' + (d.getMonth() + 1) + '-' +  d.getFullYear());
                return str;
            }
        },
        {
            data:'fecha',
            name:'fecha',
            "searchable": true,
            render: function(data,type,row){
                var d = new Date(data);
                var dayName = days[(d.getDay() + 1)];
                return dayName;
            }
        },
        {
            data:'id',
            name:'id',
            "searchable": false,
            render: function(data,type,row){
                return '<td><button class="vmas btn btn-primary waves-effect waves-light m-t-10 detalle"' +
                    'data-id="'+data+'"><i class="icon-magnifier-add"></i></button></td>';
            }
        },
        {
            data:'procede',
            name:'procede',
            "searchable": true,
            render: function (data,type,row) {
                switch (data)
                {
                    case '':
                        return '<td style="color: saddlebrown !important;">Pendiente</td>';
                        break;
                    case '1':
                        return '<td style="color: green !important;">Aceptada</td>';
                        break;
                    case '0':
                        return '<td style="color: red !important;">Denegada</td>';
                        break;
                    case '2':
                        return '<td style="color: blue !important;">En Proceso</td>';
                        break;
                }
            }
        },
        {
            data:'id',
            name:'id',
            "searchable": false,
            render: function(data,type,row){
                return '<td>'
                    + '<button class="btn btn-outline btn-circle btn-sm green-dark evaluacion_procede" data-id="'+data+'" data-tipo="procede" data-user="profesor"><i class="fa fa-check"></i> </button>'
                    + '<button class="btn btn-outline btn-circle btn-sm red evaluacion_noprocede" data-id="'+data+'" data-tipo="noprocede" data-user="profesor"><i class="fa fa-close"></i> </button>'
                    + '</td>'
            }
        }
    ],
    "pageLength": 15,
    "columnDefs": [{
        'orderable': false,
        'targets': [0]
    }, {
        "searchable": true,
        "targets": [0,1,2]
    }],
    "bInfo": false,
    "bLengthChange": false,
    "ordering": false
});



$('#table_gestion_profesor').on("click", ".detalle", function() {
    this.blur();
    var button = $(this);
    var id = button.data('id');
    button.prop("disabled",true);
    button.blur();
    $.ajax({
        url: urlBase+'/detallepersonal/'+id,
        type: 'GET',
        cache: false,
        success: function (result) {
            $('.modal-content').html(result);
            $('#detalle_datos').modal({
                show: true
            });
        },
        complete: function (result) {
            button.removeAttr("disabled");
            button.prop('disabled', false);
        },
        error: function(error){
        }
    });
});


