/**
 * Created by Alejandro on 20/08/2017.
 */
var code_user = "";
var rows_selected_tramites = [];
var rows_selected_biblioteca = [];

$('#btn-search-code').on('click', function () {
    validaUsuario();
});
$('#code-filter').on('keypress', function (e) {
    if(e.keyCode === 13){
        validaUsuario();
    }
});
var tablePersonal = $('#tb-gestionpagos').DataTable({
    "language": {
        "sProcessing":     "Procesando...",
        "sLengthMenu":     "Mostrar _MENU_ registros",
        "sZeroRecords":    "No se encontraron resultados",
        "sEmptyTable":     "No existen registros creados",
        "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 por nombre de trámite:",
        "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: true,
    serverSide: true,
    destroy: true,
    responsive:true,
    ajax:{
        url: url_tramites,
        method: 'POST',
        "data": function(d){
            d.code = code_user;
        },
        error: function(error){
            console.log(error);
        }
    },
    columns:[
        {
            data:'id',
            name:'id',
            "searchable": false
        },
        {
            data:'username',
            name:'username',
            "searchable": true
        },
        {
            data:'nombre',
            name:'tramite_procedimiento.nombre',
            "searchable": true
        },
        {
            data:'deuda',
            name:'tramite_procedimiento.deuda',
            "searchable": false,
            render: function(data,type,row){
                return '<td>' + (data == true ? '<span class="label label-danger"> Deuda </span>' : '<span class="label label-success"> Pendiente </span>') + '</td>'
            }
        },
        {
            data:'montopagar',
            name:'montopagar',
            "searchable": false,
            render: $.fn.dataTable.render.number( ',', '.', 2, 'S/.' )
        },
        {
            data:'montodeuda',
            name:'montodeuda',
            "searchable": false,
            render: $.fn.dataTable.render.number( ',', '.', 2, 'S/.' )
        }
    ],
    "pageLength": 15,
    "columnDefs": [
        {
            'targets': 0,
            'className': 'dt-head-center dt-body-center',
            'checkboxes': {
                'selectRow': true
            }
        },
        {
            'orderable': false,
            'targets': [0]
        }, {
            "searchable": true,
            "targets": [0]
        }
    ],
    'select': {
        'style': 'multi'
    },
    'order': [[1, 'asc']],
    "bInfo": false,
    "bLengthChange": false,
    "ordering": false,
    "bFilter": false
});
var tableBiblioteca = $('#tb-biblioteca').DataTable({
    "language": {
        "sProcessing":     "Procesando...",
        "sLengthMenu":     "Mostrar _MENU_ registros",
        "sZeroRecords":    "No se encontraron resultados",
        "sEmptyTable":     "No existen registros creados",
        "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: true,
    serverSide: true,
    destroy: true,
    responsive:true,
    ajax:{
        url: url_biblioteca,
        method: 'POST',
        "data": function(d){
            d.code = code_user;
        },
        error: function(error){
            console.log(error);
        }
    },
    columns:[
        {
            data:'id',
            name:'id',
            "searchable": false
        },
        {
            data:'username',
            name:'usuario.username',
            "searchable": false
        },
        {
            data:'codigo',
            name:'prestamo.id',
            "searchable": true
        },
        {
            data:'fecha_inicio',
            name:'prestamo.fecha_inicio',
            "searchable": true
        },
        {
            data:'fecha_devolucion',
            name:'prestamo.fecha_devolucion',
            "searchable": true
        },
        {
            data:'monto',
            name:'mora.monto',
            "searchable": true
        }
    ],
    "pageLength": 15,
    "columnDefs": [
        {
            'targets': 0,
            'className': 'dt-head-center dt-body-center',
            'checkboxes': {
                'selectRow': true
            }
        },
        {
            'orderable': false,
            'targets': [0]
        }, {
            "searchable": true,
            "targets": [0]
        }
    ],
    'select': {
        'style': 'multi'
    },
    'order': [[1, 'asc']],
    "bInfo": false,
    "bLengthChange": false,
    "ordering": false,
    "bFilter": false
});
function refreshTramites() {
    tablePersonal.draw();
}
function refreshBiblioteca() {
    tableBiblioteca.draw();
}

function validaUsuario() {
    code_user = $('#code-filter').val();
    if (code_user == "") {
        swal("Debe ingresar un usuario", "Debe ingresar un código de usuario primero.", "warning");
        return;
    }
    var l = Ladda.create(document.querySelector('#btn-search-code'));
    l.start();
    $.ajax({
        url: url_valida,
        type: "GET",
        data: {
            code: code_user
        },
        cache: false,
        dataType: 'json',
        success: function(data) {
            if (data == "false") {
                swal("Usuario Incorrecto", "El código de usuario ingresado no existe.", "error");
                $('#wait-filter').addClass('filter-none');
                $('#hidden-filter').removeClass('filter-none');

                code_user = "";
            } else {
                $('#wait-filter').removeClass('filter-none');
                $('#hidden-filter').addClass('filter-none');
                refreshBiblioteca();
                refreshTramites();

                $('#usuario_tramite').val(code_user);
                $('#user_biblioteca').val(code_user);
                $('#user_otros').val(code_user);
            }
        },
        error: function(data) {
            console.log(data);
        },
        complete: function() {
            l.toggle();
        }
    });
}
function agregarTramite(){
    $('button.Crear').prop('disabled', true);
    this.blur();
    $.ajax({
        url:  url_base + '/registrar/' + code_user,
        data: {
            user: code_user
        },
        type: 'GET',
        cache: false,
        success: function (result) {
            $('#Modal').html(result).find('.modal').modal({
                show: true
            });
        },
        complete: function (result) {
            $('button.Crear').prop('disabled', false);
        }
    });
    return false;
}
$("#Modal").on("hidden.bs.modal", function () {
    refreshTramites();
});

$('#form-tramites').on('submit', function(e){
    var form = this;
    var rows_selected = tablePersonal.column(0).checkboxes.selected();

    e.preventDefault();

    if (rows_selected.length === 0) {
        swal("No seleccionó ningún trámite", "Debe seleccionar al menos un trámite.", "error");
        return;
    }

    $('#user_tramite').val(code_user);

    $.each(rows_selected, function(index, rowId){
        $(form).append(
            $('<input>')
                .attr('type', 'hidden')
                .attr('name', 'id[]')
                .val(rowId)
        );
    });

    var l = Ladda.create(document.querySelector('#btn-pay-tramites'));
    l.start();

    form.submit();
});
$('#form-biblioteca').on('submit', function(e){
    var form = this;
    var rows_selected = tableBiblioteca.column(0).checkboxes.selected();

    e.preventDefault();

    if (rows_selected.length === 0) {
        swal("No seleccionó ningúna mora", "Debe seleccionar al menos una mora.", "error");
        return;
    }

    $('#user_biblioteca').val(code_user);

    $.each(rows_selected, function(index, rowId){
        $(form).append(
            $('<input>')
                .attr('type', 'hidden')
                .attr('name', 'id[]')
                .val(rowId)
        );
    });

    var l = Ladda.create(document.querySelector('#btn-pay'));
    l.start();

    form.submit();
});

$('button#btnHabilitar').on('click', function () {
    var var_ids = tablePersonal.column(0).checkboxes.selected();
    if (var_ids.length === 0) {
        swal("No seleccionó ningún trámite", "Debe seleccionar al menos un trámite.", "error");
        return;
    }

    var valores = [];
    $.each(var_ids, function(index, rowId){
       valores[index] = rowId;
    });

    console.log(var_ids[0]);
    console.log(valores);
    swal({
            title: '¿Habilitar permiso?',
            text: "Se iniciará los trámites seleccionados con una deuda pendiente.",
            type: "warning",
            confirmButtonText: "Si",
            cancelButtonText: "Cancelar",
            showCancelButton: true,
            closeOnConfirm: false,
            showLoaderOnConfirm: true
        },
        function (isConfirm) {
            if (isConfirm) {
                $.ajax({
                    url: url_base + "/deuda/habilitar",
                    type: "POST",
                    data: {
                        id: valores
                    },
                    success: function (result) {
                        // console.log(result.responseText);
                        if (result.responseText != "Fallo") {
                            swal("Permiso Habilitado", "Se iniciarán los trámites con una deuda pendiente.", "success");
                            refreshTramites();
                        }
                        else {
                            swal("Error en la solicitud", "Ocurrió un problema con su solicitud", "error");
                        }
                    },
                    error: function(data) {
                        console.log(data);
                        swal("Error en la solicitud", "Ocurrió un problema con su solicitud", "error");
                    },
                    complete: function() {
                        // l.toggle();
                    }
                });
            }
        })
});

$('button#btnExterno').on('click', function () {
    post(url_base + '/externo', {})
});

