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:99,fechai:fechaInicial,fechaf:fechaFinal,idcliente:idcliente,idlinea:idlinea,idproyecto:idproyecto}, function(respuesta){
            var filas = respuesta.split("?");
            var tabla = '';
    
            for(var i = 0; i < filas.length-1; i++){
                var datos = filas[i].split(",");

                var id_proyecto = parseInt(datos[0]);
                var nombre = datos[1];
                var real = parseFloat(datos[2]).toFixed(2);

                if(isNaN(real))
                    real = parseFloat(0).toFixed(2);

                var info = datos[3].split('%');
                var presupuestado_variable = parseFloat(0).toFixed(2);

                if(info != " "){
                                        
                    for(var j = 0; j < info.length-1; j++){
                        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 fecha1 = fechaInicial.substring(0,7) + "-01";
                                var fecha2 = fechaFinal.substring(0,7) + "-01";
                                var fecha3 = fila_egresos[0] + "-01";
                        
                                fecha1 = moment(fecha1);
                                fecha2 = moment(fecha2);
                                fecha3 = moment(fecha3);


                                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 presupuestado_fijo = parseFloat(0).toFixed(2);

                if(datos[4] != "  "){
                    var filas_fijos = datos[4].split('_');
                
                    
                    for(var j = 0; j < filas_fijos.length-1; j++){
                        var valores = filas_fijos[j].split("*");

                        var fecha1 = fechaInicial.substring(0,7) + "-01";
                        var fecha2 = fechaFinal.substring(0,7) + "-01";
                        var fecha3 = valores[0] + "-01";
                        
                        fecha1 = moment(fecha1);
                        fecha2 = moment(fecha2);
                        fecha3 = moment(fecha3);

                        var condicion1 = fecha3.diff(fecha1, 'months');
                        var condicion2 = fecha2.diff(fecha3, 'months');

                        if(condicion1 >= 0 && condicion2 >= 0){
                            presupuestado_fijo = (parseFloat(presupuestado_fijo) + parseFloat(valores[1])).toFixed(2);
                        }

                    }
                }

                var presupuestado_total = (parseFloat(presupuestado_variable) + parseFloat(presupuestado_fijo)).toFixed(2);
                var diferencia = parseFloat(presupuestado_total - real).toFixed(2);

                tabla =  
                "<tr>" +
                "<td style='text-align:center;'>" + nombre + "</td>" + 
                "<td style='text-align:center;'>" + presupuestado_total + "</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) {

    var wb = XLSX.utils.book_new();

    wb.Props = {
        Title: name,
        Subject: "Reporte",
        Author: "Herramienta Administrativa",
        CreatedDate: new Date(2017,12,19)
    };

    wb.SheetNames.push(name);

    var ws_data = [['']];
    var ws = XLSX.utils.aoa_to_sheet(ws_data);

    var oTable = document.getElementById('tablaReporteCuentas');
    var rowLength = oTable.rows.length;

    for (i = 0; i < rowLength; i++){
        var oCells = oTable.rows.item(i).cells;
        var cellLength = oCells.length;

        var datos = ['','','',''];

        for(var j = 0; j < cellLength; j++){
            var cellVal = oCells.item(j).innerHTML;
            datos[j] = cellVal;
        }

        if(i==0)
            XLSX.utils.sheet_add_aoa(ws, [datos],{origin: 'A1'});    
        else
            XLSX.utils.sheet_add_aoa(ws, [datos],{origin: -1});
    }

    wb.Sheets[name] = ws;

    var wbout = XLSX.write(wb, {bookType:'xlsx',  type: 'binary'});
    
    function s2ab(s) { 
        var buf = new ArrayBuffer(s.length); 
        var view = new Uint8Array(buf);  
        for (var i=0; i<s.length; i++) view[i] = s.charCodeAt(i) & 0xFF; 
        return buf;    
    }

    saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), filename);
}



