var reporteGlobal = true;

function ajustarEncabezados(){
    var idreporte = $("#listaTipoReporte").val();

    $('#tablaReporteCuentas thead').empty();

    if(idreporte == 'cxc'){
        $('#tablaReporteCuentas thead').append("" +
            "<tr style='text-align:center;'>" +
            "<th style='text-align:center;'>Centro de Costos</th>" +
            "<th style='text-align:center;'>Total Proyectado por Ingresar</th>" +
            "<th style='text-align:center;'>Total Real Ingresado</th>" +
            "<th style='text-align:center;'>Total Pendiente por Ingresar</th>" +
            "</tr>"
        );
    } else if(idreporte == 'cxp'){
        $('#tablaReporteCuentas thead').append("" +
            "<tr style='text-align:center;'>" +
            "<th style='text-align:center;'>Centro de Costos</th>" +
            "<th style='text-align:center;'>Total Proyectado por Egresar</th>" +
            "<th style='text-align:center;'>Total Real Egresado</th>" +
            "<th style='text-align:center;'>Total Pendiente por Egresar</th>" +
            "</tr>"
        );
    } else {
        $('#tablaReporteCuentas thead').append("" +
            "<tr style='text-align:center;'>" +
            "<th style='text-align:center;'>Centro de Costos</th>" +
            "<th style='text-align:center;'>Total Proyectado</th>" +
            "<th style='text-align:center;'>Total Real</th>" +
            "<th style='text-align:center;'>Total Pendiente</th>" +
            "</tr>"
        );
    }
    
}


function getProyectosCliente(){
    var idcliente =$('#listaClientes').val();
    var idcliente_text = $("#listaClientes option:selected").text();

    
    $("#listaLinea").prop('disabled', false);
    $('#listaProyectos option').remove();
                                        
    if(idcliente != ""){
        $.get("./cu/cxc_cu.php", {op:44,cliente:idcliente}, function(respuesta){
            
            $('#listaProyectos')
                .append($("<option></option>")
                .attr("value","")
                .text("Seleccione proyecto")); 
        
            var registros =  respuesta.split('-');
            
            if(registros != ""){
                for (var i = 0; registros.length > i; i++){
                    var valores =  registros[i].split('*');
                
                    if(valores!=""){
                        $('#listaProyectos')
                            .append($("<option></option>")
                            .attr("value",valores[0])
                            .text(valores[1])); 
                    }
                }
            
                $("#listaProyectos").prop('disabled', false);
            
            }else{ 
                $('#listaProyectos option').remove();
                
                $("#listaProyectos")
                .append($("<option></option>")
                .attr("value","")
                .text("Sin proyectos"));
                
                $("#listaProyectos").prop('disabled', true);
                
                alert("No hay proyectos para este cliente.");
            }
        });
        
    }else{
        $("#listaProyectos").prop('disabled', true);
        $('#listaProyectos')
            .append($("<option></option>")
            .attr("value","")
            .text("Seleccione proyecto")); 
    }
}


function setProyectos(){
    var idproyecto =$('#listaProyectos').val();
    $('#listaLinea').val("");

    if(idproyecto != '')
        $("#listaLinea").prop('disabled', true);
    else
        $("#listaLinea").prop('disabled', false);
}


function setLineaNegocio(){
    var idlinea =$('#listaLinea').val();
    $('#listaProyectos').val("");

    if(idlinea != '')
        $("#listaProyectos").prop('disabled', true);
    else
        $("#listaProyectos").prop('disabled', false);
}


function setRGTrue(){
    reporteGlobal = true;
}


function setRGFalse(){
    reporteGlobal = false;
}


function consultarRC(){
    var idreporte = $("#listaTipoReporte").val();
    
    var fechaInicial = $('#fechaConsultaInicial').val();
    var fechaFinal = $('#fechaConsultaFinal').val();
    
    
    if(fechaInicial == '' || fechaFinal == ''){
        alert("Ingresa una fecha inicial y final.");
        return;
    }
    
    var fecha1 = moment(fechaInicial);
    var fecha2 = moment(fechaFinal);
    var periodos = fecha2.diff(fecha1, 'days');
    
    if(periodos < 0){
        alert("La fecha inicial debe ser menor a la final.");
        return;
    }
    
    if(idreporte == 'cxc'){
        getCXC(fechaInicial,fechaFinal);
    
    } else if(idreporte == 'cxp'){
       getCXP(fechaInicial,fechaFinal);
    
    } else {
        
        alert("Seleccione un tipo de reporte.");
        
    }

}


function getCXC(fechaInicial, fechaFinal){
    
    $('#tablaReporteCuentas tbody').empty();
    
    var idcliente = "";
    var idproyecto = "";
    var idlinea = "";
    
    
    if(!reporteGlobal){
        idcliente = $("#listaClientes").val();
        idproyecto = $("#listaProyectos").val();
        idlinea = $("#listaLinea").val();
    }
    
    $.get("./cu/cxc_cu.php", {op:97,fechai:fechaInicial,fechaf:fechaFinal,idcliente:idcliente,idlinea:idlinea,idproyecto:idproyecto}, function(respuesta){
        var filas = respuesta.split("?");
        
        tabla = '';
         
        for(var i = 0; i < filas.length-1; i++){
            var datos = filas[i].split("¿");
            var presupuestado = parseFloat(0).toFixed(2);
            var total_presupuestado = parseFloat(datos[1]).toFixed(2);
            
            if(isNaN(total_presupuestado))
                total_presupuestado = parseFloat(0).toFixed(2);
                        
            if(total_presupuestado > 0){
                var tabla_ingresos = datos[2].split("_");
                var total_presupuestado = datos[1];
                
                for(var j = 0; j < tabla_ingresos.length-1; j++){
                    var fila_ingresos = tabla_ingresos[j].split("*");
                    var fecha = fila_ingresos[0] + "-27";
                    
                    var fecha1 = moment(fechaInicial);
                    var fecha2 = moment(fechaFinal);
                    var fecha3 = moment(fecha);
                    
                    var mes1 = fecha1.month();
                    var mes2 = fecha2.month();
                    var mes3 = fecha3.month();
                    var condicion1 = parseInt(mes3) - parseInt(mes1);
                    var condicion2 = parseInt(mes2) - parseInt(mes3);                    
                    
                    if(condicion1 >= 0 && condicion2 >= 0){
                        var monto = (parseFloat(total_presupuestado) * parseFloat(fila_ingresos[1]) / 100).toFixed(2);
                        presupuestado = (parseFloat(presupuestado) + parseFloat(monto)).toFixed(2);
                    }
                }
            }
            
            var real = parseFloat(datos[3]).toFixed(2);
                        
            if(isNaN(presupuestado))
                presupuestado = parseFloat(0).toFixed(2);
            
            if(isNaN(real))
                real = parseFloat(0).toFixed(2);
            
            if(presupuestado == parseFloat(0).toFixed(2) && real == parseFloat(0).toFixed(2)){
                continue; 
            }
            
            var diferencia = parseFloat(presupuestado - real).toFixed(2);
            
            tabla = tabla + 
            "<tr>" +
            "<td style='text-align:center;'>" + datos[0] + "</td>" + 
            "<td style='text-align:center;'>" + presupuestado + "</td>" + 
            "<td style='text-align:center;'>" + real + "</td>" + "</td>" +
            " <td style='text-align:center;'>" + diferencia + "</td>" +
            "</tr>";
        }
        
        $('#tablaReporteCuentas tbody').append(tabla);  
        
    });
}


function getCXP(fechaInicial, fechaFinal){
    
    $('#tablaReporteCuentas tbody').empty();
    
    var idcliente = "";
    var idproyecto = "";
    var idlinea = "";
    
    
    if(!reporteGlobal){
        idcliente = $("#listaClientes").val();
        idproyecto = $("#listaProyectos").val();
        idlinea = $("#listaLinea").val();
    }
    
    $.get("./cu/cxc_cu.php", {op:98,fechai:fechaInicial,fechaf:fechaFinal,idcliente:idcliente,idlinea:idlinea,idproyecto:idproyecto}, function(respuesta){
        var filas = respuesta.split("?");
        tabla = '';
        //alert(respuesta);
        for(var i = 0; i < filas.length-1; i++){
            var datos = filas[i].split(",");
            
            var id_proyecto = parseInt(datos[0]);
            var nombre = datos[1];
            
            //$.get("../core_update.php", {op:97,id_proyectos:id_proyecto}, function(respuesta1){
                //var info = respuesta1.split('?');alert(id_proyecto);
                var info = datos[3].split('%');
                var presupuestado_variable = parseFloat(0).toFixed(2);

                for(var j = 0; j < info.length-1; j++){
                    //var valores = info[j].split(",");
                    var valores = info[j].split("@");
                    var total_presupuestado_variable = parseFloat(valores[0]).toFixed(2);
                    
                    if(isNaN(total_presupuestado_variable))
                        total_presupuestado_variable = parseFloat(0).toFixed(2);
                        
                    if(total_presupuestado_variable > 0){
                        var tabla_egresos = valores[1].split("_");
                
                        for(var k = 0; k < tabla_egresos.length-1; k++){
                            var fila_egresos = tabla_egresos[k].split("*");
                            var fecha = fila_egresos[0] + "-01";
                    
                            var fecha1 = moment(fechaInicial);
                            var fecha2 = moment(fechaFinal);
                            var fecha3 = moment(fecha);
                            var condicion1 = fecha3.diff(fecha1, 'months');
                            var condicion2 = fecha2.diff(fecha3, 'months');
                    
                            if(condicion1 >= 0 && condicion2 >= 0){
                                var monto = (parseFloat(total_presupuestado_variable) * parseFloat(fila_egresos[1]) / 100).toFixed(2);
                                presupuestado_variable = (parseFloat(presupuestado_variable) + parseFloat(monto)).toFixed(2);
                            }
                        }
                    }
                }
                
                
                var info2 = datos[4].split('%');
                var presupuestado_fijo = parseFloat(0).toFixed(2);
            
                for(var j = 0; j < info2.length-1; j++){
                    var valores = info2[j].split("@");
                    var total_presupuestado_fijo = parseFloat(valores[2]).toFixed(2);
                    
                    if(isNaN(total_presupuestado_fijo))
                        total_presupuestado_fijo = parseFloat(0).toFixed(2);
                    
                    var fecha1 = moment(fechaInicial);
                    var fecha2 = moment(fechaFinal);
                    var fecha3 = moment(valores[0]);
                    var fecha4 = moment(valores[1]);
                    
                    var mesInferior = fecha1.month() + 1;
                    var anoInferior = fecha1.year();
                    
                    var mesSuperior = fecha2.month() + 1;
                    var anoSuperior = fecha2.year();
                    
                    var condicion= true;
                    
                    var mesInicial = fecha3.month() + 1;
                    var anoInicial = fecha3.year();
                    
                    var mesFinal = fecha4.month() + 1;
                    var anoFinal = fecha4.year();
                    
                    var condicion1 = true;
                                    
                    //alert(info2[j]);
                    while(condicion){
                        
                        //alert(mesInferior + '-' + anoInferior );
                        
                        /*while(condicion1){
                            
                            if(mesInferior == mesInicial && anoInferior == anoInicial){
                                alert(fecha3);alert(fecha4);
                              alert(mesInicial + '-' + anoInicial );
                            }
                            
                            if(mesInicial == 12){
                                mesInicial = 1;
                                anoInicial ++;
                            }else{
                                mesInicial ++;
                            }
                        
                            if(mesInicial == mesFinal && anoInicial == anoFinal){//alert(mesInicial + '-' + anoInicial );
                                condicion1 = false;}
                        }*/
                        
                        
                        if(mesInferior == 12){
                            mesInferior = 1;
                            anoInferior ++;
                        }else{
                            mesInferior ++;
                        }
                        
                        
                        
                        if(mesInferior == mesSuperior && anoInferior == anoSuperior)
                            condicion = false;
                        
                        
                    }
                    
                    /*var condicion1 = fecha3.diff(fecha1, 'months');
                    var condicion2 = fecha2.diff(fecha3, 'months');
                    
                    var condicion3 = fecha4.diff(fecha1, 'months');
                    var condicion4 = fecha2.diff(fecha4, 'months');
                    
                    var divisiones = fecha4.diff(fecha3, 'months') + 1;
                    
                    if(condicion1 >= 0 && condicion2 >= 0){
                    alert(fecha3);
                    alert(fecha4);
                        
                    alert(condicion1);alert(condicion2);
                    alert(condicion3);alert(condicion4);
                        alert(total_presupuestado_fijo);
                    }*/
                }
            
                
                var real = parseFloat(datos[2]).toFixed(2);
                var presupuestado = parseFloat(presupuestado_variable).toFixed(2);
                
                if(isNaN(presupuestado))
                    presupuestado = parseFloat(0).toFixed(2);
            
                if(isNaN(real))
                    real = parseFloat(0).toFixed(2);
                
                if(presupuestado == parseFloat(0).toFixed(2) && real == parseFloat(0).toFixed(2)){
                     
                }else{
                   var diferencia = parseFloat(presupuestado - real).toFixed(2);
            
                tabla =  
                "<tr>" +
                "<td style='text-align:center;'>" + nombre + "</td>" + 
                "<td style='text-align:center;'>" + presupuestado + "</td>" + 
                "<td style='text-align:center;'>" + real + "</td>" + "</td>" +
                " <td style='text-align:center;'>" + diferencia + "</td>" +
                "</tr>";
                $('#tablaReporteCuentas tbody').append(tabla);
                
                }

        }
        

        
    });
}

//=======================================================================================================
function tableToExcel(table, name, filename) {
        let uri = 'data:application/vnd.ms-excel;base64,', 
        template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><title></title><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>', 
        base64 = function(s) { return window.btoa(decodeURIComponent(encodeURIComponent(s))) },         format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; })}
        
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}

        var link = document.createElement('a');
        link.download = filename;
        link.href = uri + base64(format(template, ctx));
        link.click();
}



