
$('#fecha_inicio').datepicker({
    language: 'es',
    autoclose: true,
    endDate: new Date(),
    dateFormat: 'dd-mm-yy'
}).on('changeDate', function(e) {

    var d = new Date(e.date);
    var str = (d.getFullYear() + '-' + (d.getMonth() + 1) + '-' +  d.getDate());
    $.ajax({
        url: urlBase+'/validar/'+str,
        type: 'GET',
        cache: false,
        async: false,
        success: function (result) {
            if(result['estado'] == 200){
                if(result['prt'] == 1){
                    $(".btn-group.carga_excel").empty();
                    $(".col-md-12.carga_excel").empty();
                    $(".btn-group.carga_excel").append("<button class='btn blue btn-outline sbold btnCarga'> Registro de asistencia del d&iacute;a </button>");
                    $(".col-md-12.carga_excel").append("<button type='button' class='btn green confirm'> Registrar Asistencia </button>");
                }
                else{
                    $(".btn-group.carga_excel").empty();
                    $(".col-md-12.carga_excel").empty();
                }
                $('#invisible_id').val(result['dater']);
                tableRefresh();
            }
            else{


                var d = new Date(result['dater']);
                var d2 = new Date();
                if(d.getDate() < 10)
                    var crt = "0"+d.getDate();
                var str = (  d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + crt);

                if(d2.getDate() < 10)
                    var crt2 = "0"+d.getDate();
                var str2 = (  d2.getFullYear() + '-' + (d2.getMonth() + 1) + '-' + crt2);


                if(str == str2){
                    swal({
                        title: "Asistencia",
                        type: "warning",
                        text: "No se encontrarón registros de asistencia para la fecha selecionada.",
                        showConfirmButton: false
                    });
                    setTimeout(' document.location.href = urlBase',1000);
                    return false;
                }

                tableRefresh();
                $(".btn-group.carga_excel").empty();
                $(".col-md-12.carga_excel").empty();
                $(".btn-group.carga_excel").append("<button class='btn blue btn-outline sbold btnCarga'> Registro de asistencia del d&iacute;a </button>");
                $(".col-md-12.carga_excel").append("<button type='button' class='btn green confirm'> Registrar Asistencia </button>");
                swal(
                    '¡ Atención !',
                    'No se encontro registro de asistencia para la fecha selecionada',
                    'warning'
                );
                return false;
            }
        },
        error: function(error){
            swal(
                'Advertencia',
                'Ocurri un inconveniente al momento de conectarse con el servidor, por favor intente dentro de unos minutos',
                'error'
            )
        }
    });

});

var selectList =
    "<select class='form-control select2_TypeAsist' name='Asistencia'>" +
    "<option value='Asistio'>Asistio</option>" +
    "<option value='Tardanza'>Tardanza</option>" +
    "<option value='Falta'>Falta</option>" +
    "<option value='Permiso'>Permiso</option>" +
    "<option value='Licencia'>Licencia</option>" +
    "<option value='Capacitacion'>Capacitacion</option>" +
    "</select>";

$('#lstType').select2();

function isNumberKey(evt){
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;
    return true;
}
$(document).on("submit",".formarchivo",function(e){
    var nombreform=$(this).attr("id");
    e.preventDefault();
    var formu=$(this).val();
    var ext = $('#archivo').val().split('.').pop();

    if(ext == 'xls' || ext == 'xlsx'){
        if(nombreform=="f_cargar_datos_usuarios" ){
            var miurl = urlCarga;
        }
        var formData = new FormData($("#"+nombreform+"")[0]);

        $.ajax({
            url: miurl,
            type: 'POST',
            data: formData,
            cache: false,
            contentType: false,
            processData: false,
            success: function(data) {
                $('#EditarPersonalModal').modal('toggle');
                if(data['codigo'] == 200){
                    swal(
                        'Asistencia',
                        data['mensaje'],
                        'success'
                    );
                    setTimeout(' document.location.href = urlBase',2000);
                }
                else
                {
                    swal(
                        'Asistencia',
                        data['mensaje'],
                        'warning'
                    );
                }
            },
            error: function(data){
                $('#EditarPersonalModal').modal('toggle');
                swal(
                    '¡ Advertencia !',
                    'Se ha registrado un error en la conexión con el servidor, vuelva a intentar dentro de unos minutos.',
                    'warning'
                );

            }
        });
    }
    else{
        $("#smsred").css('color','red');
        return false;
    }
});



var ATable = $('#tbPersonal').DataTable({
    dom: 'Bfrtip',
    buttons: [
        {
            extend: 'excelHtml5',
            title: 'Listado de Asistencia personal',
            exportOptions: {
                columns: [ 0, 1, 2, 3, 4, 5,6,7 ]
            }
        },
        {
            extend: 'pdfHtml5',
            title: 'Listado de Asistencia personal',
            exportOptions: {
                columns: [ 0, 1, 2, 3, 4, 5,6,7 ]
            }
        }
    ],
    "language": {
        "sProcessing":     "Procesando...",
        "sLengthMenu":     "Mostrar _MENU_ registros",
        "sZeroRecords":    "No se encontraron resultados",
        "sEmptyTable":     "No encontraron registros de personal administrativo",
        "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: false,
    responsive:true,
    ajax:{
        method: 'POST',
        url: urlData,
        data: function(d){
            d.dates = $('#invisible_id').val();
        },
        error: function(error){
        }
    },
    columns:[
        {
            data:'dni',
            name:'dni',
            "searchable": true
        },
        {
            data:'completo',
            name:'completo',
            "searchable": true
        },
        {
            data:'Roles',
            name:'Roles',
            "searchable": true
        },
        {
            data:'fecha',
            name:'fecha',
            "searchable": true,
            render: function(data,type,row){
                if(data == 1){
                    return '---'
                }
                else{
                    var dateAr = data.split('-');
                    var newDate = dateAr[2] + '-' + dateAr[1] + '-' + dateAr[0];
                    return newDate;
                }
            }
        },
        {
            data:'marcado_entrada',
            name:'marcado_entrada',
            "searchable": false,
            render: function (data,type,row) {
                if(data == 1 || data == '')
                {
                    var d = new Date();
                    if(d.getDate() < 10)
                        var crt = "0"+d.getDate();
                    else
                        var crt = d.getDate();

                    var str = (  d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + crt);

                    if($('#invisible_id').val() == str)
                    {
                        return '<td class="txe"><input class="form-control input-md marc-entrada timepicker" name="marc-entrada"  onpaste="return false" type=text/></td>'
                    }
                    else
                    {
                        return '---';
                    }
                }
                else
                {
                    return data;
                }
            }
        },
        {
            data:'marcado_salida',
            name:'marcado_salida',
            "searchable": false,
            render: function (data,type,row) {
                if(data == 1 || data == '')
                {
                    var d = new Date();
                    if(d.getDate() < 10)
                        var crt = "0"+d.getDate();
                    else
                        var crt = d.getDate();
                    var str = (  d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + crt);

                    if($('#invisible_id').val() == str)
                    {
                        return '<input class="form-control input-md marc-salida timepicker" name="marc-salida"  onpaste="return false" type=text />'
                    }
                    else
                    {
                        return '---';
                    }

                }
                else
                {
                    return data;
                }
            }
        },
        {
            data:'estado_asistencia',
            name:'estado_asistencia',
            "searchable": false,
            render: function (data,type,row) {
                if(data == 1)
                {
                    return  '<td>'+selectList+'</td>';
                }
                else
                {
                    return data;
                }
            }
        },
        {
            data:'estado_asistencia',
            name:'estado_asistencia',
            "searchable": false,
            render: function (data,type,row) {
                if(row.estado_asistencia == "Tardanza")
                {
                    if(row.hora_entrada == "")
                    {
                        return row.minutos
                    }
                    else
                    {
                        var diff = (( new Date(row.marcado_entrada) - new Date(row.hora_entrada) ) / 1000 / 60 / 60);
                        return diff;
                    }
                }
                else
                {
                    var d = new Date();
                    if(d.getDate() < 10)
                        var crt = "0"+d.getDate();
                    else
                        var crt = d.getDate();
                    var str = (  d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + crt);

                    if($('#invisible_id').val() == str) {
                        if(row.estado_asistencia == 1) {
                            return '<input class="form-control input-md min-tardanza" name="min-tardanza" onkeypress="return isNumberKey(event)" onpaste="return false" type=text maxlength="3" value="0" id="'+row.id+'" disabled/>';
                        }
                        else {
                            return "---";
                        }
                    }else {
                        if(row.minutos == "")
                            return "---";
                        else
                            return row.minutos;

                    }

                }
            }
        },
        {
            data:'estado_asistencia',
            name:'estado_asistencia',
            "searchable": true,
            render: function(data,type,row){
                if(data == 'Falta')
                {
                    return '<td>Sí</td>';
                }
                else
                {
                    return '<td>---</td>';
                }
            }
        }
    ],
    "pageLength": 15,
    "columnDefs": [{
        'orderable': false,
        'targets': [0]
    }, {
        "searchable": true,
        "targets": [0,1,2,3,4,5,6,7,8]
    }],
    "bInfo": false,
    "bLengthChange": false,
    "ordering": false,
    "drawCallback": function( settings ) {
        $('.select2_TypeAsist').select2();


        var d = new Date();
        if(d.getDate() < 10)
            var crt = "0"+d.getDate();
        var str = (  d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + crt);

        if($('#invisible_id').val() == str)
            $(".dt-buttons").css('display','none');
        else
            $(".dt-buttons").css('display','initial');


        $(".select2.select2-container.select2-container--bootstrap").css('margin-left','15%');
        $('.timepicker').timepicker({
            autoclose: true,
            showSeconds: false,
            minuteStep: +1,
            defaultTime: ''
        });
    }
});

function tableRefresh() {
    ATable.draw();
}
function tableClear() {
    ATable.clear().draw();
}

$("#form-validation").validate({});

$("#tbPersonal_filter").hide();

$("#lstType").change(function () {
    ATable.column(2)
        .search($("#lstType").val())
        .draw();
});

$("#text-filter").on('keyup',function () {
    ATable.search($(this).val())
        .draw();
});

$("#tbPersonal").on('change','.select2_TypeAsist',function () {
    if($(this).val() == "Tardanza"){
        $(this).parent('td').parent('tr').children("td").children(".min-tardanza").css('border-color','rgba(227, 36, 36, 0.77)');
        $(this).parent('td').parent('tr').children("td").children(".min-tardanza").prop("disabled",false);
    }
    else{
        $(this).parent('td').parent('tr').children("td").children(".min-tardanza").css('border-color','#c2cad8');
        $(this).parent('td').parent('tr').children("td").children(".min-tardanza").val('0');
        $(this).parent('td').parent('tr').children("td").children(".min-tardanza").prop("disabled",true);
    }
});



$('.col-md-12.carga_excel').on('click','.btn.confirm', function () {


    var list = {};

    list['codigos'] = $('input[name=min-tardanza]').map(function (){return this.id; }).get();
    list['asistencia'] = $('select[name=Asistencia]').map(function (){return this.value; }).get();
    list['mentrada'] = $('input[name=marc-entrada]').map(function (){return this.value; }).get();
    list['msalida'] = $('input[name=marc-salida]').map(function (){return this.value; }).get();
    list['minutos'] = $('input[name=min-tardanza]').map(function (){return this.value; }).get();
    $.ajax({
        type: "POST",
        url: urlTomar,
        data: list,
        success: function (data) {

            if(data == 200)
            {
                swal({
                    title: "Asistencia",
                    type: "success",
                    text: "Se ha registrado la asistencia con éxito.",
                    showConfirmButton: false
                });
                setTimeout(' document.location.href = urlBase',2000);
            }
            else
            {
                swal({
                    title: "Proceso de asistencia interrumpido",
                    type: "error",
                    text: "Durante el registro de la asistencia del personal, se encontra un problema con la conexión hacia le servidor. Intente dentro de unos minutos",
                    showConfirmButton: false
                });
            }

        }
    });
});

$('.btn-group.carga_excel').on('click','.btnCarga', function () {
    $('#EditarPersonalModal').modal('show');
});
