
$('#series_select').select2({
    placeholder: "Seleccione",
    allowClear: false
});

$("#Modal").on("hidden.bs.modal", function () {
    $('button.agregar').prop('disabled', false);
});

if($('#series_select').val() != null){
    var t = (Math.abs($('#series_select').val().split('-')[1])/1000000)+"";
    t = t.split('.')[1];
    $("#ccorrelativo").val(t);
    $("#Pserie").val($('#series_select').val().split('-')[0])
}

$('#series_select').change(function () {
    var t = (Math.abs($(this).val().split('-')[1])/1000000)+"";
    t = t.split('.')[1];
    $("#ccorrelativo").val(t);
    $("#Pserie").val($(this).val().split('-')[0])
});

var d = new Date();
var month = d.getMonth() + 1;
var day = d.getDate();
var output = (('' + day).length < 2 ? '0' : '') + day + '/' + (('' + month).length < 2 ? '0' : '') + month + '/' + d.getFullYear();

function agregarSerie(){
    $('button.agregar').prop('disabled', true);
    this.blur();
    $.ajax({
        url:  url_serie,
        type: 'GET',
        cache: false,
        success: function (result) {
            $('#Modal').html(result).find('.modal').modal({
                show: true
            });
        },
        complete: function (result) {
            $('button.agregar').prop('disabled', false);
        }
    });
    return false;
}

var RTable = $('#tbRecibos').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: false,
    serverSide: true,
    destroy: true,
    responsive:true,
    "autoWidth": true,
    "sDom": "",
    ajax:{
        type: "POST",
        url: urlData,
        data: function(d){
            d.id = $("#invisible").val();
        },
        error: function(error){
        }
    },
    columns:[
        {
            data:'numero',
            name:'numero',
            "searchable": true
        },
        {
            data:'nombre_cliente',
            name:'nombre_cliente',
            "searchable": true
        },
        {
            data:'monto',
            name:'monto',
            "searchable": true
        },
        {
            data:'anulado',
            name:'anulado',
            "searchable": true,
            render: function (data,type,row) {
                if(data == 1)
                    return 'Anulado';
                else
                    return '---';
            }
        },
        {
            data:'id',
            name:'id',
            "searchable": false,
            render: function (data,type,row) {
                return '<td>'
                    +'<button' +
                    ' class="btn btn-outline btn-circle btn-sm green-dark detalle" data-id="'+data+'">' +
                    '<i class="fa fa-clone"></i></button>'
                    + '</td>';
            }
        },
        {
            data:'id',
            name:'id',
            "searchable": false,
            render: function (data,type,row) {

                if(row.anulado == 1)
                    return '';
                else
                    return '<td>'
                    +'<button' +
                    ' class="btn btn-outline btn-circle btn-sm red anular" data-id="'+data+'">' +
                    '<i class="icon-trash"></i></button>'
                    + '</td>';
            }
        }
    ],
    "pageLength": 15,
    "columnDefs": [{
        'orderable': false,
        'targets': [0]
    }, {
        "searchable": true,
        "targets": [0,1,2]
    }],
    "bInfo": false,
    "bLengthChange": false,
    "ordering": false
});

$('#tbRecibos').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);
            $('#Modal_Detalle').modal({
                show: true
            });
        },
        complete: function (result) {
            button.removeAttr("disabled");
            button.prop('disabled', false);
        },
        error: function(error){
        }
    });
});



$('#tbRecibos').on("click", ".anular", function() {
    var button = $(this);
    var id = button.data('id');
    swal({
            title: "Anulación de recibo",
            text: "Una ves anulado el recibo no se podrá habilitar nuevamente y tampoco se vera reflejado en el cierre de caja el monto equivalente",
            type: "info",
            cancelButtonText: 'No',
            confirmButtonText: 'Si',
            showCancelButton: true,
            closeOnConfirm: false,
            showLoaderOnConfirm: false
        },
        function(){
            $.ajax({
                type: 'POST',
                url: urlBase+'/anular',
                data: {
                    ep : id
                },
                success: function (result) {
                    if(result == 200){
                        tableRefresh();
                        swal("Recibo anulado", "Se anulo el recibo selecionado correctamente", "success");
                    }
                    else
                        swal("Advertencia", "Ocurrio un error de conexión durante la anulación del recibo", "warning");

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



$(".cerrarcaja").on('click', function () {
    swal({
            title: "Atención",
            text: "Una ves cerrada la caja no podrá registrar más pagos",
            type: "info",
            cancelButtonText: 'No',
            confirmButtonText: 'Si',
            showCancelButton: true,
            closeOnConfirm: false,
            showLoaderOnConfirm: false
        },
        function(){
            swal({
                    title: "Monto de Cierre",
                    text: "Ingrese el monto total recaudado del día",
                    type: "input",
                    showCancelButton: true,
                    closeOnConfirm: false,
                    animation: "slide-from-top",
                    inputPlaceholder: "Ingrese el monto del día"
                },
                function(inputValue){
                    if (inputValue === false) return false;

                    if (inputValue === "") {
                        swal.showInputError("Debe de ingresar un monto como minimo");
                        return false
                    }

                    if (isNaN(inputValue)) {

                        swal.showInputError("Debe ingresar el formato correcto, montos exactos o decimales");
                        return false
                    }
                    $.ajax({
                        type: 'POST',
                        url: urlBase+'/monto',
                        data: {
                            id : $("#invisible").val(),
                            sls : inputValue
                        },
                        cache: false,
                        success: function (result) {
                            swal("Caja Cerrada", "En breve podrá verificar el detalle del cierre de caja", "success");
                            setTimeout(function(){
                                document.location.href = urlBase + '/cerrar/' + $("#invisible").val() ;
                            }, 2000);
                        },
                        complete: function (result) {
                        },
                        error: function(error){
                        }
                    });


                });
        });
});

$(".simulador").on('click', function () {
    swal({
            title: "Atención",
            text: "Este cierre de caja solo es un simulación del cierre final a partir de los pagos realizados hasta este momento, ¿ desea continuar ?",
            type: "info",
            cancelButtonText: 'No',
            confirmButtonText: 'Si',
            showCancelButton: true,
            closeOnConfirm: false,
            showLoaderOnConfirm: false
        },
        function(){


            swal({
                    title: "Monto de Cierre",
                    text: "Ingrese el monto total recaudado del día",
                    type: "input",
                    showCancelButton: true,
                    closeOnConfirm: false,
                    animation: "slide-from-top",
                    inputPlaceholder: "Ingrese el monto del día"
                },
                function(inputValue){
                    if (inputValue === false) return false;

                    if (inputValue === "") {
                        swal.showInputError("Debe de ingresar un monto como minimo");
                        return false
                    }

                    if (isNaN(inputValue)) {

                        swal.showInputError("Debe ingresar el formato correcto, montos exactos o decimales");
                        return false
                    }

                    if(Number(inputValue) < 0){
                        swal.showInputError("Debe ingresar un monto positivo");
                        return false
                    }
                    setTimeout(function(){
                        document.location.href = urlBase + '/simulador/' + $("#invisible").val() + '/' + inputValue ;
                    }, 2000);


                });










        });
});

var DRTable = $('#tbDetalleRecibos').DataTable({
    dom: 'Bfrtip',
    buttons: [
        'excelHtml5',
        'csvHtml5'
    ],
    bInfo: true,
    "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: false,
    serverSide: true,
    destroy: true,
    responsive:true,
    "autoWidth": true,
    ajax:{
        type: "POST",
        url: urlData,
        data: function(d){
            d.id = $("#invisible").val();
        },
        error: function(error){
        }
    },
    columns:[
        {
            data:'numero',
            name:'numero',
            "searchable": true
        },
        {
            data:'created_at',
            name:'created_at',
            "searchable": true
        },
        {
            data:'nombre_cliente',
            name:'nombre_cliente',
            "searchable": true
        },
        {
            data:'concepto',
            name:'concepto',
            "searchable": true
        },
        {
            data:'tipo',
            name:'tipo',
            "searchable": true,
            render: function(data,type,row){
                switch (data)
                {
                    case '1':
                        return 'TRAMITE';
                        break;
                    case '2':
                        return 'MORA';
                        break;
                    case '3':
                        return 'MATRICULA';
                        break;
                    case '4':
                        return 'OTRO';
                        break;
                    case '5':
                        return 'DERECHO ADMISION';
                        break;
                }
            }
        },
        {
            data:'monto',
            name:'monto',
            "searchable": false
        }
    ],
    "pageLength": 15,
    "columnDefs": [{
        'orderable': false,
        'targets': [0]
    }, {
        "searchable": true,
        "targets": [0,1,2]
    }],

    "bLengthChange": false,
    "ordering": false

});

function isNumberKey(evt){
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;
    return true;
}


function tableRefresh() {
    RTable.draw();
}