var reporteGlobal = true;

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

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

    if(idreporte == 'ded'){
        $('#tablaReporteER thead').append("" +
            "<tr style='text-align:center;'>" +
            "<th style='text-align:center;' colspan='3'>Estado de Resultados (Deducibles)</th>" +
            "</tr>"
        );
    } else if(idreporte == 'nded'){
        $('#tablaReporteER thead').append("" +
            "<tr style='text-align:center;'>" +
            "<th style='text-align:center;' colspan='3'>Estado de Resultados (No Deducibles)</th>" +
            "</tr>"
        );
    } else {
        $('#tablaReporteER thead').append("" +
            "<tr style='text-align:center;'>" +
            "<th style='text-align:center;' colspan='3'>Estado de Resultados</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/edoResultados_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 anterior a la final.");
        return;
    }
    
    if(idreporte == 'ded'){
        getReporte(fechaInicial,fechaFinal);
    
    } else if(idreporte == 'nded'){
        getReporte(fechaInicial,fechaFinal);
    
    } else {
        
        alert("Seleccione un tipo de reporte.");
        
    }

}


function getReporte(fechaInicial, fechaFinal){
    
    $('#tablaReporteER tbody').empty();
    
    var idcliente = "";
    var idproyecto = "";
    var idlinea = "";
    var idreporte = $("#listaTipoReporte").val();
    var tipo = '';
    
    
    if(idreporte == 'ded'){
        tipo='comprobable';
    }else{
        tipo='no comprobable';
    }
    
    if(!reporteGlobal){
        idcliente = $("#listaClientes").val();
        idproyecto = $("#listaProyectos").val();
        idlinea = $("#listaLinea").val();
    }

    $.get("./cu/edoResultados_cu.php", {op:93,fechai:fechaInicial,fechaf:fechaFinal,tipo:tipo,idcliente:idcliente,idlinea:idlinea,idproyecto:idproyecto}, function(respuesta){
        var ingresos = respuesta;
        var ingresosTotales = parseFloat(ingresos).toFixed(2);
            
        if(isNaN(ingresosTotales))
            ingresosTotales = parseFloat("0").toFixed(2);
        
        var tabla = "";
        
        $.get("./cu/edoResultados_cu.php", {op:94,fechai:fechaInicial,fechaf:fechaFinal,tipo:tipo,idcliente:idcliente,idlinea:idlinea,idproyecto:idproyecto}, function(respuesta2){
            
        var egresos = respuesta2.split(",");
            
        var directoAdm = parseFloat(egresos[0]).toFixed(2);
        var directoOpe = parseFloat(egresos[1]).toFixed(2);
        var directoFin = parseFloat(egresos[2]).toFixed(2);
        var directoVen = parseFloat(egresos[3]).toFixed(2);
            
        if(isNaN(directoAdm))
            directoAdm = parseFloat("0").toFixed(2);
        
        if(isNaN(directoOpe))
            directoOpe = parseFloat("0").toFixed(2);
            
        if(isNaN(directoFin))
            directoFin = parseFloat("0").toFixed(2);
            
        if(isNaN(directoVen))
            directoVen = parseFloat("0").toFixed(2);
        
            
        var directosTotales = (parseFloat(directoAdm) + parseFloat(directoOpe) + parseFloat(directoFin) + parseFloat(directoVen)).toFixed(2);
        var utilidadBruta =  (parseFloat(ingresosTotales) - parseFloat(directosTotales)).toFixed(2);
            
        var indirectoAdm = parseFloat(egresos[4]).toFixed(2);
        var indirectoOpe = parseFloat(egresos[5]).toFixed(2);
        var indirectoFin = parseFloat(egresos[6]).toFixed(2);
        var indirectoVen = parseFloat(egresos[7]).toFixed(2);
            
        if(isNaN(indirectoAdm))
            indirectoAdm = parseFloat("0").toFixed(2);
        
        if(isNaN(indirectoOpe))
            indirectoOpe = parseFloat("0").toFixed(2);
            
        if(isNaN(indirectoFin))
            indirectoFin = parseFloat("0").toFixed(2);
            
        if(isNaN(indirectoVen))
            indirectoVen = parseFloat("0").toFixed(2);
        
        var indirectosTotales = (parseFloat(indirectoAdm) + parseFloat(indirectoOpe) + parseFloat(indirectoFin) + parseFloat(indirectoVen)).toFixed(2);
        
            
        tabla = tabla + "<tr><td style='text-align:center;'></td> <td style='text-align:center;'>Periodo:</td> <td style='text-align:center;'>" + fechaInicial + " a " + fechaFinal + "</td></tr> <tr><td></td><td></td><td style='text-align:center;'>Importe</td></tr>";
        
        tabla = tabla + "<tr><td style='text-align:center;background-color:#EBEBEA'><strong>(+) Ingresos totales</strong></td> <td style='text-align:center;background-color:#EBEBEA'></td> <td style='text-align:center;background-color:#EBEBEA'><strong>" + ingresosTotales + "</strong></td></tr>";
        
        tabla = tabla + 
            "<tr><td colspan='3'></td></tr>" +
            "<tr style='text-align:center;'>" +
            "<td style='text-align:center; vertical-align:middle' rowspan='5'>(-) Costo Directo (variable y fijo)</td>" +
            "<td>Administrativos</td>" +
            "<td>"+ directoAdm +"</td>" +
            "</tr>" +
            "<tr style='text-align:center;'>" +
            "<td>Operativo</td>" +
            "<td>"+ directoOpe +"</td>" +
            "</tr>" +
            "<tr style='text-align:center;'>" +
            "<td>Financiero</td>" +
            "<td>"+ directoFin +"</td>" +
            "</tr>" +
            "<tr style='text-align:center;'>" +
            "<td>Ventas</td>" +
            "<td>"+ directoVen +"</td>" +
            "</tr>" +
            "<tr style='text-align:center;'>" +
            "<td><strong>Total</strong></td>" +
            "<td><strong>"+ directosTotales +"</strong></td>" +
            "</tr>" +
            "<tr><td colspan='3'></td></tr>" +
            "<tr style='text-align:center;'>" +
            "<td style='text-align:center;background-color:#EBEBEA'><strong>(=) Utilidad bruta</strong></td>" +
            "<td style='text-align:center;background-color:#EBEBEA'></td>" +
            "<td style='text-align:center;background-color:#EBEBEA'><strong>"+utilidadBruta+"</strong></td>" +
            "<tr><td colspan='3'></td></tr>" +
            "</tr>" +
        "";
            
        tabla = tabla + 
            "<tr style='text-align:center;'>" +
            "<td style='text-align:center; vertical-align:middle' rowspan='5'>(-) Costo Indirecto (variable y fijo)</td>" +
            "<td>Administrativos</td>" +
            "<td>"+ indirectoAdm +"</td>" +
            "</tr>" +
            "<tr style='text-align:center;'>" +
            "<td>Operativo</td>" +
            "<td>"+ indirectoOpe +"</td>" +
            "</tr>" +
            "<tr style='text-align:center;'>" +
            "<td>Financiero</td>" +
            "<td>"+ indirectoFin +"</td>" +
            "</tr>" +
            "<tr style='text-align:center;'>" +
            "<td>Ventas</td>" +
            "<td>"+ indirectoVen +"</td>" +
            "</tr>" +
            "<tr style='text-align:center;'>" +
            "<td><strong>Total</strong></td>" +
            "<td><strong>"+indirectosTotales+"</strong></td>" +
            "</tr>" +
        "";
        var egresoDirectoTotal = parseFloat(egresos[8]).toFixed(2);
        var egresoIndirectoTotal = parseFloat(egresos[9]).toFixed(2);
            
        if(isNaN(egresoDirectoTotal))
            egresoDirectoTotal = parseFloat("0").toFixed(2);
            
        if(isNaN(egresoIndirectoTotal))
            egresoIndirectoTotal = parseFloat("0").toFixed(2);
            
        var sumaEgresosAlternos = (parseFloat(egresoDirectoTotal) + parseFloat(egresoIndirectoTotal)).toFixed(2);
        
        if(idreporte == 'nded'){
            
            var utilidadNeta =  (parseFloat(utilidadBruta) - parseFloat(indirectosTotales)).toFixed(2);
            var utilidadTotal = (parseFloat(utilidadNeta) - parseFloat(sumaEgresosAlternos)).toFixed(2);
            
            tabla = tabla + 
                "<tr><td colspan='3'></td></tr>" +
                "<tr style='text-align:center;'>" +
                "<td style='text-align:center;background-color:#EBEBEA'><strong>(=) Utilidad neta</strong></td>" +
                "<td style='text-align:center;background-color:#EBEBEA'></td>" +
                "<td style='text-align:center;background-color:#EBEBEA'><strong>"+ utilidadNeta +"</strong></td>" +
                "</tr>" +
                "<tr><td colspan='3'></td></tr>" +
                "<tr style='text-align:center;'>" +
                "<td style='text-align:center;background-color:#EBEBEA'><strong>Utilidad Total</strong></td>" +
                "<td style='text-align:center;background-color:#EBEBEA'></td>" +
                "<td style='text-align:center;background-color:#EBEBEA' title='Costo Total Deducible: $"+sumaEgresosAlternos+"'><strong>"+utilidadTotal+"</strong></td>" +
                "</tr>" +
            "";
        }else{
            
            var utilidadAntesImpuestos =  (parseFloat(utilidadBruta) - parseFloat(indirectosTotales)).toFixed(2);
            var impuesto = (parseFloat(utilidadAntesImpuestos * 0.16)).toFixed(2);
            
            if(impuesto<0)
                impuesto = (parseFloat(impuesto * -1)).toFixed(2);
            
            var utilidadNeta = (parseFloat(utilidadAntesImpuestos) - parseFloat(impuesto)).toFixed(2);
            var utilidadTotal = (parseFloat(utilidadNeta) - parseFloat(sumaEgresosAlternos)).toFixed(2);

            
            tabla = tabla + 
                "<tr><td colspan='3'></td></tr>" +
                "<tr style='text-align:center;'>" +
                "<td style='text-align:center;background-color:#EBEBEA'><strong>(=) Utilidad antes de impuestos</strong></td>" +
                "<td style='text-align:center;background-color:#EBEBEA'></td>" +
                "<td style='text-align:center;background-color:#EBEBEA' id='utilidadAntesImpuestos'><strong>"+utilidadAntesImpuestos+"</strong></td>" +
                "</tr>" +
                "</tr>" +
                "<tr style='text-align:center;'>" +
                "<td>(-) Impuestos</td>" +
                "<td style='text-align:center;'><input style='text-align:center;' type='number' id='inputImpuestos' value='16' onchange='ajustarImpuestos();'>%<label id='labelImpuestos' style='visibility:hidden'>16</label></td>" +
                "<td id='montoImpuestos'>"+impuesto+"</td>" +
                "</tr>" +
                "<tr><td colspan='3'></td></tr>" +
                "<tr style='text-align:center;'>" +
                "<td style='text-align:center;background-color:#EBEBEA'><strong>(=) Utilidad neta</strong></td>" +
                "<td style='text-align:center;background-color:#EBEBEA'></td>" +
                "<td style='text-align:center;background-color:#EBEBEA'><strong id='utilidadNeta'>"+utilidadNeta+"</strong></td>" +
                "</tr>" +
                "<tr><td colspan='3'></td></tr>" +
                "<tr style='text-align:center;'>" +
                "<td style='text-align:center;background-color:#EBEBEA'><strong>(=) Utilidad total</strong></td>" +
                "<td style='text-align:center;background-color:#EBEBEA'></td>" +
                "<td style='text-align:center;background-color:#EBEBEA' title='Costo Total No Deducible: $"+sumaEgresosAlternos+"'><strong id='utilidadTotal'>"+utilidadTotal+"</strong></td>" +
                "</tr>" +
            "";            
        }         
            
        
        $('#tablaReporteER tbody').append(tabla);
        
        });
         
     });
}


function ajustarImpuestos(){
    var impuestos = $("#inputImpuestos").val();
    var utilidadAI = $("#utilidadAntesImpuestos").text();
    var utilidadNeta = $("#utilidadNeta").text();
    var utilidadTotal = $("#utilidadTotal").text();
    
    var montoImpuestos = (parseFloat(utilidadAI) * parseFloat(impuestos) / 100).toFixed(2);
    var uNeta = (parseFloat(utilidadAI) - parseFloat(montoImpuestos)).toFixed(2);
    var uNoDed = (parseFloat(utilidadTotal) - parseFloat(utilidadNeta)).toFixed(2);
    var uTotal = (parseFloat(uNeta) + parseFloat(uNoDed)).toFixed(2);
    
    $("#labelImpuestos").text(impuestos);
    $("#montoImpuestos").text(montoImpuestos);
    $("#utilidadNeta").text(uNeta);
    $("#utilidadTotal").text(uTotal);
    
    
    //alert($("#inputImpuestos").text());
    //alert(montoImpuestos);
}

//=======================================================================================================
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();
}












