var base_url = window.location.origin + '/' + window.location.pathname.split ('/') [1] + '/';
$(document).ready(function() {
    $('.alert').alert();
    var filtrar = $('#filtrarReportes').val();
    $.fn.datepicker.dates['en'] = {
        days: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"],
        daysShort: ["Dom", "Lun", "Mar", "Mier", "Jue", "Vier", "Sab"],
        daysMin: ["D", "L", "Ma", "Mi", "J", "V", "S"],
        months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
        monthsShort: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"],
        today: "Today",
        clear: "Clear",
        weekStart: 0
    };

    $.datepicker.setDefaults($.datepicker.regional['en']);
    $(".date-picker").datepicker( {
        isRTL: false,
        format: "dd-mm-yyyy",
        /*yearRange: "0000",*/
        viewMode: "months,days", 
        minViewMode: "months,days",
    });
    $('.date-picker').datepicker('setDate', 'today');
    //end data-picker
    var ingresos = 0;
    $('#filtrarReportes').click(function(){

        $.fn.dataTable.ext.errMode = 'none';
        $('#reporte-gastos').on('error.dt', function(e, settings, techNote, message) {
           console.log( 'An error has been reported by DataTables: ', message);
        });
        $('#reporte-gastos').empty();

        $('#reporte-gastos').unbind();
        var filtrarPor = $('#queryReporte').val();
        var fechainicio = $('#fechainicio').val();
        var fechafin = $("#fechafin").val();
        console.log(filtrarPor);
        console.log(fechainicio);
        console.log(fechafin);
        
        function currencyFormat(num) {
            return '$'+num.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
          }
        if(fechainicio != '' && fechafin != ''){
            $.ajax({
                url:base_url+"reportes/Franquiciatario/ReporteIngresosT/reporteIngresos",
                type:'POST',
                dataType: 'json',                
                data:{finicio : fechainicio, ffin : fechafin},  
                success:function(response){
                    document.getElementById("ingresos").innerHTML = '';
                    var sum;
                    var total;
                    $('#modal-loader').modal('hide');
                    if(response != null ){
                        console.log(response);
                        var contadoIngresos=0, tarjetaIngresos=0, tarjeta2Ingresos=0, total=0;
                        
                        for(var i=0; i<response.length; i++) {
                            contadoIngresos = (isNaN(response[i][10]) || response[i][10] == '' ||response[i][10]===null) ? "0" : response[i][10];
                            tarjetaIngresos = (isNaN(response[i][11]) || response[i][11] == '' ||response[i][11]===null) ? "0" : response[i][11];
                            tarjeta2Ingresos = (isNaN(response[i][13]) || response[i][13] == '' ||response[i][13]===null) ? "0" : response[i][13];

                            total = total+parseFloat(contadoIngresos)+parseFloat(tarjetaIngresos)+parseFloat(tarjeta2Ingresos);
                            console.log('Mi total: $'+total);
                            ingresos = total;
                            toastr.success('TOTAL:  '+ currencyFormat(total) +' resultados').css("width","100%"); 

                           // alert('pppp'+ingresos);
                            document.getElementById("ingresos").innerHTML = '<div class="info-box">'+
                              '<span class="info-box-icon bg-red"><i class="fa fa-coins"></i></span>'+
                  
                              '<div class="info-box-content">'+
                                '<span class="info-box-text">Total de ventas</span>'+
                                '<span class="info-box-number">'+currencyFormat(total)+'</span>'+
                              '</div>'+
                              '<!-- /.info-box-content -->'+
                            '</div>'+
                            '<!-- /.info-box -->'; 
                        }
                    }
                }//end success ajax response
            });//end ajax

            if(filtrarPor == 0){
                $('#modal-loader').modal();
                $('#reporte-gastos').empty();
                $('#reporte-gastos').unbind();
                   
                console.log(filtrarPor);
                console.log(fechainicio);
                console.log("-----------0--------");

                $.ajax({
                    url: base_url+"reportes/Franquiciatario/ReporteGastos/reporteGastosTotales",
                    type:'POST',
                    dataType: 'json',
                    data:{finicio : fechainicio, ffin : fechafin},
                    success:function(response){
                        $('#modal-loader').modal('hide');
                        console.log("exito");
                        toastr.success('Se realizó tu busqueda se encontraron '+ response.length +' resultados').css("width","100%"); 
                        console.log(response);
                        var columns = [
                            { "title":"Fecha de Creacion" },
                            { "title":"Tipo de Gasto" },
                            { "title":"Nombre del Gasto" },
                            { "title":"Cantidad" },
                            { "title":"Precio" },
                            { "title":"Total" },
                            { "title":"Usuario Logueado" },
                        ];      
     
                        var hide = [
                            { targets: [0, 1,2,3,4,5,6], visible: true},
                            /* { targets: [8], visible: false }*/
                        ];
                        $('#reporte-gastos  tfoot').remove();
                        $("#reporte-gastos").append('<tfoot class="dataFooter"><tr><th></th><th></th><th></th><th></th><th></th><th></th><th></th></tr></tfoot>'); 
                        
                        $('#reporte-gastos').DataTable({
                            dom: "T<'clear'>Bfrtip",
                            responsive: true,
                            columnDefs: hide,
                            data: response,
                            columns: columns,
                            footer: true,
                            destroy: true,
                            /*paging: false,*/
                            /*searching: false,*/
                            buttons: [
                            {
                                extend: 'print',
                                text:"IMPRIMIR",
                                footer: true,
                                filename: 'ReporteGastosTotales',
                                /*messageTop: 'Reporte de Ventas',*/
                                title: '',
                                customize: function ( win ) {
                                    $(win.document.body)
                                    .css( 'font-size', '10pt' )
                                    .prepend(
                                        '<div class="top" style="width: 100%; text-align:center; display:flex; align-items: center; align-content: center;">  <div style="width: 50%;"><img src="<?php echo base_url();?>assets/dist/img/logo.png" style="width: 50%;" /></div><div style="width: 50%; font-size:2em">Reporte de Gastos - Totales</div></div>'
                                    );

                                    $(win.document.body).find( 'table' )
                                    .addClass( 'compact' )
                                    .css( 'font-size', 'inherit' );
                                    $(win.document.body).find( 'table' )
                                    .addClass( 'mayus' )
                                    .css( 'text-transform', 'uppercase' );
                                }
                            },
                            {
                                extend: 'pdf',
                                filename: 'reporteGastosTotales',
                                footer: true,
                                /*messageTop: 'Reporte de Ventas',*/
                                title: '',
                                orientation: 'landscape',
                                pageSize: 'letter',
                                key: { 
                                    key: 'e',
                                    altKey: false
                                }
                                , content: [{ style: 'fullWidth' }]
                                , styles: { 
                                    fullWidth: { fontSize: 10, bold: true, alignment: 'right', margin: [0,0,0,0],   }
                                },
                                exportOptions: {
                                    modifier: {
                                        pageMargins: [ 0, 0, 0, 0 ],  
                                        margin: [ 0, 0, 0, 0 ],  
                                        alignment: 'center',
                                        footer: true, 
                                        page: 'all',    
                                    }
                                    ,body : {margin: [ 0, 0, 0, 0 ], pageMargins: [ 0, 0, 0, 0 ]},
                                    footer: true, 
                                    columns: [ 0, 1, 2, 3, 4, 5, 6]         
                                },
                                body : {margin: [ 0, 0, 0, 0 ], pageMargins: [ 0, 0, 0, 0 ]},
                                customize: function ( doc ) {
                                    console.log(doc.content);
                                },
                            },
                            {
                                extend: 'excel',
                                filename: 'reporteGastosTotales',
                                title: 'Reporte Gastos - Totales',
                                footer: true,
                            }
                            /* ,'copy', 'csv', 'excel',*/
                            ],
                            language: {
                                "lengthMenu": "Mostrar _MENU_ registros por pagina",
                                "zeroRecords": "No se encontraron resultados en su busqueda",
                                "searchPlaceholder": "Buscar registros",
                                "info": "Mostrando registros de _START_ al _END_ de un total de  _TOTAL_ registros",
                                "infoEmpty": "No existen registros",
                                "infoFiltered": "(filtrado de un total de _MAX_ registros)",
                                "search": "Buscar:",
                                "paginate": {
                                    "first": "Primero",
                                    "last": "Último",
                                    "next": "Siguiente",
                                    "previous": "Anterior"
                                },
                            },
                            initComplete: function(row, data, start, end, display) {
                                var api = this.api();
                                var contado = api
                                    .column( 3 )
                                    .data()
                                    .reduce(function(a, b) {
                                        var x = parseFloat(a) || 0;
                                        var y = parseFloat(b) || 0;
                                        return x + y;
                                      }, 0);
                                var Total = api
                                    .column( 4 )
                                    .data()
                                    .reduce(function(a, b) {
                                        var x = parseFloat(a) || 0;
                                        var y = parseFloat(b) || 0;
                                        return x + y;
                                      }, 0);
                                var TotalGeneral = api
                                    .column( 5 )
                                    .data()
                                    .reduce(function(a, b) {
                                        var x = parseFloat(a) || 0;
                                        var y = parseFloat(b) || 0;
                                        return x + y;
                                      }, 0);
                                api.columns(4, {
                                    page: 'current'
                                }).every(function() {
                                    $( api.column( 0 ).footer() ).html('Total');
                                    $( api.column( 1 ).footer() ).html("");
                                    $( api.column( 2 ).footer() ).html("" );
                                    $( api.column( 3 ).footer() ).html( new Intl.NumberFormat('es-MX').format(contado)  );
                                    $( api.column( 4 ).footer() ).html( new Intl.NumberFormat('es-MX').format(Total) );
                                    $( api.column( 5 ).footer() ).html( new Intl.NumberFormat('es-MX').format(TotalGeneral) );
                                    $( api.column( 6 ).footer() ).html("");

                                    document.getElementById("egresos").innerHTML = '<div class="info-box">'+
                                      '<span class="info-box-icon bg-red"><i class="fas fa-comment-dollar"></i></span>'+
                          
                                      '<div class="info-box-content">'+
                                        '<span class="info-box-text">Total de gastos</span>'+
                                        '<span class="info-box-number">'+currencyFormat(TotalGeneral)+'</span>'+
                                      '</div>'+
                                      '<!-- /.info-box-content -->'+
                                    '</div>'+
                                    '<!-- /.info-box -->';
                                    var gananciasTotales = ingresos-TotalGeneral;
                                    document.getElementById("ganancias").innerHTML = '<div class="info-box">'+
                                      '<span class="info-box-icon bg-red"><i class="glyphicon glyphicon-usd"></i></span>'+
                          
                                      '<div class="info-box-content">'+
                                        '<span class="info-box-text">Utilidad neta</span>'+
                                        '<span class="info-box-number">'+currencyFormat(gananciasTotales)+'</span>'+
                                      '</div>'+
                                      '<!-- /.info-box-content -->'+
                                    '</div>'+
                                    '<!-- /.info-box -->';
                              });
                            }
                        });
                        $('#reporte-gastos').wrap("<div id='scrooll_div' class='scrollbar-tabla' style='width: 100%;'></div>");
                        $('#scrooll_div').doubleScroll({
                            resetOnWindowResize: true
                        });
                        //Búsqueda con y sin acento... 
                        (function(){
                            function removeAccents ( data ) {
                                if ( data.normalize ) {
                                    /* Use la API I18n si está disponible para dividir caracteres y acentos, luego elimine
                                       los acentos al por mayor. Tenga en cuenta que utilizamos los datos originales, así como
                                       lo nuevo para permitir la búsqueda de cualquiera de los formularios.*/
                                    return data +' '+ data
                                        .normalize('NFD')
                                        .replace(/[\u0300-\u036f]/g, '');
                                }
                             
                                return data;
                            }
                             
                            var searchType = jQuery.fn.DataTable.ext.type.search; 
                            searchType.string = function ( data ) {
                                return ! data ?
                                    '' :
                                    typeof data === 'string' ?
                                        removeAccents( data ) :
                                        data;
                            };
                             
                            searchType.html = function ( data ) {
                                return ! data ?
                                    '' :
                                    typeof data === 'string' ?
                                        removeAccents( data.replace( /<.*?>/g, '' ) ) :
                                        data;
                            };
                        }());
                        return false;
                    },//end success ajax response
                    error:function(){
                        console.log("error");
                        toastr.error("Ocurrio Algun Error verifica los datos ingresados");
                    },
                });//end ajax
             return false;
                       
            }//end filtrar por 2 Servicios Franquicia
            else if(filtrarPor == 1){
                $('#modal-loader').modal();
                console.log(filtrarPor);
                console.log(fechainicio);
                $.ajax({
                    url:base_url+"reportes/Franquiciatario/ReporteGastos/reporteGastosPorTipo",
                    type:'POST',
                    dataType: 'json',
                    data:{finicio : fechainicio, ffin : fechafin, tipo:'fijo'},
                    success:function(response){
                        $('#modal-loader').modal('hide');
                        console.log(response);
                        console.log("exito");
                        toastr.success('Se realizó tu busqueda se encontraron '+ response.length +' resultados').css("width","100%"); 
                        var columns = [
                           { "title":"Fecha de Creacion" },
                            { "title":"Tipo de Gasto" },
                            { "title":"Nombre del Gasto" },
                            { "title":"Cantidad" },
                            { "title":"Precio" },
                            { "title":"Total" },
                            { "title":"Usuario Logueado" },
                        ];   

                        var hide = [
                            { targets: [0, 1,2,3,4,5,6], visible: true},
                            /* { targets: [8], visible: false }*/
                        ];
                          
                        $('#reporte-gastos  tfoot').remove();
                        $("#reporte-gastos").append('<tfoot class="dataFooter"><tr><th></th><th></th><th></th><th></th><th></th><th></th><th></th></tr></tfoot>');  
                        $('#reporte-gastos').DataTable( {
                            dom: 'T<"clear">Bfrtip',
                            responsive: true,
                            columnDefs: hide,
                            data: response,
                            columns: columns,
                            ServerSide: true,
                            destroy: true,
                            footer: true,
                            processing: true,
                            buttons: [
                            {
                                extend: 'print',
                                text:"IMPRIMIR",
                                footer: true,
                                /*messageTop: 'Reporte de Ventas',*/
                                title: '',
                                customize: function ( win ) {
                                    $(win.document.body)
                                    .css( 'font-size', '10pt' )
                                    .prepend(
                                        '<div class="top" style="width: 100%; text-align:center; display:flex; align-items: center; align-content: center;">  <div style="width: 50%;"><img src="<?php echo base_url();?>assets/dist/img/logo.png" style="width: 50%;" /></div><div style="width: 50%; font-size:2em">Reporte de Gastos - Fijos</div></div>'
                                    );

                                    $(win.document.body).find( 'table' )
                                    .addClass( 'compact' )
                                    .css( 'font-size', 'inherit' );
                                    $(win.document.body).find( 'table' )
                                    .addClass( 'mayus' )
                                    .css( 'text-transform', 'uppercase' );
                                },  
                            },
                            {
                                extend: 'pdf',
                                footer: true,
                                filename: 'reporteGastosFijos',
                                /*messageTop: 'Reporte de Ventas',*/
                                title: '',
                                orientation: 'landscape',
                                pageSize: 'letter',
                                key: { 
                                    key: 'e',
                                    altKey: false
                                }
                                ,content: [{ style: 'fullWidth' }]
                                ,styles: { 
                                    fullWidth: { fontSize: 10, bold: true, alignment: 'right', margin: [0,0,0,0],   }
                                },
                                exportOptions: {
                                    modifier: {
                                        pageMargins: [ 0, 0, 0, 0 ],  
                                        margin: [ 0, 0, 0, 0 ],  
                                        alignment: 'center',
                                        page: 'all',                                  
                                    }
                                    ,body: {margin: [ 0, 0, 0, 0 ], pageMargins: [ 0, 0, 0, 0 ]},
                                    footer: true,
                                    columns: [ 0, 1, 2, 3, 4, 5, 6]//son las columnas q quiero q se vean al exportarse          
                                },
                                body : {margin: [ 0, 0, 0, 0 ], pageMargins: [ 0, 0, 0, 0 ]},
                                customize: function ( doc ) {
                                    console.log(doc.content);
                                },
                            },
                            {
                                extend: 'excel',
                                footer: true,
                                filename: 'reporteGastosFijos',
                                title: 'Reporte Gastos Fijos',
                                footer: true,
                            }
                            /*'copy', 'csv', 'excel',*/
                            ],
                            language: {
                                "lengthMenu": "Mostrar _MENU_ registros por pagina",
                                "zeroRecords": "No se encontraron resultados en su busqueda",
                                "searchPlaceholder": "Buscar registros",
                                "info": "Mostrando registros de _START_ al _END_ de un total de  _TOTAL_ registros",
                                "infoEmpty": "No existen registros",
                                "infoFiltered": "(filtrado de un total de _MAX_ registros)",
                                "search": "Buscar:",
                                "paginate": {
                                    "first": "Primero",
                                    "last": "Último",
                                    "next": "Siguiente",
                                    "previous": "Anterior"
                                },
                            },
                            initComplete: function(row, data, start, end, display) { 
                                var api = this.api();
                                var contado = api
                                    .column( 3 )
                                    .data()
                                    .reduce(function(a, b) {
                                        var x = parseFloat(a) || 0;
                                        var y = parseFloat(b) || 0;
                                        return x + y;
                                    }, 0);
                                var Total = api
                                    .column( 4 )
                                    .data()
                                    .reduce(function(a, b) {
                                        var x = parseFloat(a) || 0;
                                        var y = parseFloat(b) || 0;
                                        return x + y;
                                    }, 0);
                                var TotalGeneral = api
                                    .column( 5 )
                                    .data()
                                    .reduce(function(a, b) {
                                        var x = parseFloat(a) || 0;
                                        var y = parseFloat(b) || 0;
                                        return x + y;
                                    }, 0);

                                api.columns(4, {
                                    page: 'current'
                                }).every(function() {
                                    $( api.column( 0 ).footer() ).html('Total');
                                    $( api.column( 1 ).footer() ).html("");
                                    $( api.column( 2 ).footer() ).html("" );
                                    $( api.column( 3 ).footer() ).html( new Intl.NumberFormat('es-MX').format(contado)  );
                                    $( api.column( 4 ).footer() ).html( new Intl.NumberFormat('es-MX').format(Total) );
                                    $( api.column( 5 ).footer() ).html( new Intl.NumberFormat('es-MX').format(TotalGeneral) );
                                    $( api.column( 6 ).footer() ).html("");

                                    document.getElementById("egresos").innerHTML = '<div class="info-box">'+
                                      '<span class="info-box-icon bg-red"><i class="fas fa-comment-dollar"></i></span>'+
                          
                                      '<div class="info-box-content">'+
                                        '<span class="info-box-text">Total de gastos</span>'+
                                        '<span class="info-box-number">'+currencyFormat(TotalGeneral)+'</span>'+
                                      '</div>'+
                                      '<!-- /.info-box-content -->'+
                                    '</div>'+
                                    '<!-- /.info-box -->';
                                    var gananciasTotales = ingresos-TotalGeneral;
                                    document.getElementById("ganancias").innerHTML = '<div class="info-box">'+
                                      '<span class="info-box-icon bg-red"><i class="glyphicon glyphicon-usd"></i></span>'+
                          
                                      '<div class="info-box-content">'+
                                        '<span class="info-box-text">Neto</span>'+
                                        '<span class="info-box-number">'+currencyFormat(gananciasTotales)+'</span>'+
                                      '</div>'+
                                      '<!-- /.info-box-content -->'+
                                    '</div>'+
                                    '<!-- /.info-box -->';
                              });
                            }
                        });
                        $('#reporte-gastos').wrap("<div id='scrooll_div' class='scrollbar-tabla' style='width: 100%;'></div>");
                        $('#scrooll_div').doubleScroll({
                            resetOnWindowResize: true
                        });
                        //Búsqueda con y sin acento... 
                        (function(){
                            function removeAccents ( data ) {
                                if ( data.normalize ) {
                                    /* Use la API I18n si está disponible para dividir caracteres y acentos, luego elimine
                                       los acentos al por mayor. Tenga en cuenta que utilizamos los datos originales, así como
                                       lo nuevo para permitir la búsqueda de cualquiera de los formularios.*/
                                    return data +' '+ data
                                        .normalize('NFD')
                                        .replace(/[\u0300-\u036f]/g, '');
                                }
                             
                                return data;
                            }
                             
                            var searchType = jQuery.fn.DataTable.ext.type.search; 
                            searchType.string = function ( data ) {
                                return ! data ?
                                    '' :
                                    typeof data === 'string' ?
                                        removeAccents( data ) :
                                        data;
                            };
                             
                            searchType.html = function ( data ) {
                                return ! data ?
                                    '' :
                                    typeof data === 'string' ?
                                        removeAccents( data.replace( /<.*?>/g, '' ) ) :
                                        data;
                            };
                        }());
                        return false;
                    },//end success ajax response
                    error:function(error){
                        console.log("error");
                        console.error(error);
                        toastr.error("Ocurrio Algun Error verifica los datos ingresados");
                    },

                    });//end ajax
                return false;
            }//end filtrar por 1 ventas Generales
            else if(filtrarPor == 2){
                $('#modal-loader').modal();
                $('#reporte-gastos').empty();
                $('#reporte-gastos').unbind();
                   
                console.log(filtrarPor);
                console.log(fechainicio);
                console.log("-----------2--------");

                $.ajax({
                    url:base_url+"reportes/Franquiciatario/ReporteGastos/reporteGastosPorTipo",
                    type:'POST',
                    dataType: 'json',
                    data:{finicio : fechainicio, ffin : fechafin, tipo: 'variable'},
                    success:function(response){
                        $('#modal-loader').modal('hide');
                        console.log("exito");
                        toastr.success('Se realizó tu busqueda se encontraron '+ response.length +' resultados').css("width","100%"); 
                        console.log(response);
                        var columns = [
                            { "title":"Fecha de Creacion" },
                            { "title":"Tipo de Gasto" },
                            { "title":"Nombre del Gasto" },
                            { "title":"Cantidad" },
                            { "title":"Precio" },
                            { "title":"Total" },
                            { "title":"Usuario Logueado" },
                        ];      
     
                       var hide = [
                            { targets: [0, 1,2,3,4,5,6], visible: true},
                           /* { targets: [8], visible: false }*/
                        ];
                        $('#reporte-gastos  tfoot').remove();
                        $("#reporte-gastos").append('<tfoot class="dataFooter"><tr><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th></tr></tfoot>'); 
                        
                        $('#reporte-gastos').DataTable( {
                            dom: "T<'clear'>Bfrtip",
                            responsive: true,
                            columnDefs: hide,
                            data: response,
                            columns: columns,
                            footer: true,
                            destroy: true,
                             /*paging: false,*/
                            /*searching: false,*/
                            buttons: [
                            {
                                extend: 'print',
                                footer: true,
                                filename: 'ReporteGastosVariables',
                                /*messageTop: 'Reporte de Ventas',*/
                                title: '',
                                customize: function ( win ) {

                                    $(win.document.body)
                                    .css( 'font-size', '10pt' )
                                    .prepend(
                                        '<div class="top" style="width: 100%; text-align:center; display:flex; align-items: center; align-content: center;">  <div style="width: 50%;"><img src="<?php echo base_url();?>assets/dist/img/logo.png" style="width: 50%;" /></div><div style="width: 50%; font-size:2em">Reporte de Gastos - Variables</div></div>'
                                    );

                                    $(win.document.body).find( 'table' )
                                    .addClass( 'compact' )
                                    .css( 'font-size', 'inherit' );
                                    $(win.document.body).find( 'table' )
                                    .addClass( 'mayus' )
                                    .css( 'text-transform', 'uppercase' );
                                }
                            },
                            {
                                extend: 'pdf',
                                filename: 'reporteGastosVariables',
                                footer: true,
                                /*messageTop: 'Reporte de Ventas',*/
                                title: '',
                                orientation: 'landscape',
                                pageSize: 'letter',
                                key: { 
                                    key: 'e',
                                    altKey: false
                                }
                                ,content: [{ style: 'fullWidth' }]
                                ,styles: { 
                                    fullWidth: { fontSize: 10, bold: true, alignment: 'right', margin: [0,0,0,0],   }
                                },
                                exportOptions: {
                                    modifier: {
                                        pageMargins: [ 0, 0, 0, 0 ],  
                                        margin: [ 0, 0, 0, 0 ],  
                                        alignment: 'center',
                                        footer: true, 
                                        page: 'all',    
                                    }
                                    , body : {margin: [ 0, 0, 0, 0 ], pageMargins: [ 0, 0, 0, 0 ]},
                                    footer: true, 
                                    columns: [ 0, 1, 2, 3, 4, 5, 6]         
                                },
                                body : {margin: [ 0, 0, 0, 0 ], pageMargins: [ 0, 0, 0, 0 ]},
                                customize: function ( doc ) {
                                    console.log(doc.content);
                                },
                            },
                            {
                                extend: 'excel',
                                filename: 'reporteGastosVariables',
                                title: 'Reporte Gastos - Variables',
                                footer: true,
                            }
                            /* ,'copy', 'csv', 'excel',*/
                            ],

                            language: {
                                "lengthMenu": "Mostrar _MENU_ registros por pagina",
                                "zeroRecords": "No se encontraron resultados en su busqueda",
                                "searchPlaceholder": "Buscar registros",
                                "info": "Mostrando registros de _START_ al _END_ de un total de  _TOTAL_ registros",
                                "infoEmpty": "No existen registros",
                                "infoFiltered": "(filtrado de un total de _MAX_ registros)",
                                "search": "Buscar:",
                                "paginate": {
                                    "first": "Primero",
                                    "last": "Último",
                                    "next": "Siguiente",
                                    "previous": "Anterior"
                                },
                            },
                            initComplete: function(row, data, start, end, display) { 
                                var api = this.api();
                              
                                var contado = api
                                    .column( 3 )
                                    .data()
                                    .reduce(function(a, b) {
                                        var x = parseFloat(a) || 0;
                                        var y = parseFloat(b) || 0;
                                        return x + y;
                                    }, 0);
                                var Total = api
                                    .column( 4 )
                                    .data()
                                    .reduce(function(a, b) {
                                        var x = parseFloat(a) || 0;
                                        var y = parseFloat(b) || 0;
                                        return x + y;
                                    }, 0);
                                var TotalGeneral = api
                                    .column( 5 )
                                    .data()
                                    .reduce(function(a, b) {
                                        var x = parseFloat(a) || 0;
                                        var y = parseFloat(b) || 0;
                                        return x + y;
                                    }, 0);

                                    api.columns(4, {
                                    page: 'current'
                                }).every(function() {                                
                                    $( api.column( 0 ).footer() ).html('Total');
                                    $( api.column( 1 ).footer() ).html("");
                                    $( api.column( 2 ).footer() ).html("" );
                                    $( api.column( 3 ).footer() ).html( new Intl.NumberFormat('es-MX').format(contado)  );
                                    $( api.column( 4 ).footer() ).html( new Intl.NumberFormat('es-MX').format(Total) );
                                    $( api.column( 5 ).footer() ).html( new Intl.NumberFormat('es-MX').format(TotalGeneral) );
                                    $( api.column( 6 ).footer() ).html("");
                                    document.getElementById("egresos").innerHTML = '<div class="info-box">'+
                                      '<span class="info-box-icon bg-red"><i class="fas fa-comment-dollar"></i></span>'+
                          
                                      '<div class="info-box-content">'+
                                        '<span class="info-box-text">Total de gastos</span>'+
                                        '<span class="info-box-number">'+currencyFormat(TotalGeneral)+'</span>'+
                                      '</div>'+
                                      '<!-- /.info-box-content -->'+
                                    '</div>'+
                                    '<!-- /.info-box -->';
                                    var gananciasTotales = ingresos-TotalGeneral;
                                    document.getElementById("ganancias").innerHTML = '<div class="info-box">'+
                                      '<span class="info-box-icon bg-red"><i class="glyphicon glyphicon-usd"></i></span>'+
                          
                                      '<div class="info-box-content">'+
                                        '<span class="info-box-text">Neto</span>'+
                                        '<span class="info-box-number">'+currencyFormat(gananciasTotales)+'</span>'+
                                      '</div>'+
                                      '<!-- /.info-box-content -->'+
                                    '</div>'+
                                    '<!-- /.info-box -->';                              
                                });
                            }
                        });
                        $('#reporte-gastos').wrap("<div id='scrooll_div' class='scrollbar-tabla' style='width: 100%;'></div>");
                        $('#scrooll_div').doubleScroll({
                            resetOnWindowResize: true
                        });

                        //Búsqueda con y sin acento... 
                        (function(){
                            function removeAccents ( data ) {
                                if ( data.normalize ) {
                                    /* Use la API I18n si está disponible para dividir caracteres y acentos, luego elimine
                                       los acentos al por mayor. Tenga en cuenta que utilizamos los datos originales, así como
                                       lo nuevo para permitir la búsqueda de cualquiera de los formularios.*/
                                    return data +' '+ data
                                        .normalize('NFD')
                                        .replace(/[\u0300-\u036f]/g, '');
                                }
                             
                                return data;
                            }
                             
                            var searchType = jQuery.fn.DataTable.ext.type.search; 
                            searchType.string = function ( data ) {
                                return ! data ?
                                    '' :
                                    typeof data === 'string' ?
                                        removeAccents( data ) :
                                        data;
                            };
                             
                            searchType.html = function ( data ) {
                                return ! data ?
                                    '' :
                                    typeof data === 'string' ?
                                        removeAccents( data.replace( /<.*?>/g, '' ) ) :
                                        data;
                            };
                        }());
                        return false;
                    },//end success ajax response
                    error:function(){

                        console.log("error");
                        toastr.error("Ocurrio Algun Error verifica los datos ingresados");
                    },
                });//end ajax
             return false;
                       
            }//end filtrar por 2 Servicios Franquicia
        }//end Fechainicio y fechafin vacias
        else {
            toastr.error("Ocurrio Algun Error Falta alguna Fecha");
            $('#reporte-gastos').empty();
            $('#reporte-gastos').unbind();
            return false;
        }
    });//end click
});   //end on ready function 