
function getProyectosCliente(){
    var idcliente =$('#listaCliente').val();
    var idcliente_text = $("#listaCliente option:selected").text();
                                        
    $('#listaProyectos option').remove();
    defaultLayout();
                                        
    if(idcliente != ""){
        $.get("./cu/ingresosProyectados_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").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 getIngresos(){
    var idproyecto =$('#listaProyectos').val();

    $('#inputPresupuesto').val("");
    $('#inputPorcentaje').val("");
    $('#tablaIngresosPresupuestado tbody').empty();
    $("#inputPresupuesto").prop('disabled', true);
    $("#inputPorcentaje").prop('disabled', true);
    document.getElementById('inputPorcentaje').style.removeProperty('border');
    $("#botonGuardar").prop('disabled', true);
    $("#botonLimpiar").prop('disabled', true);
    
    if(idproyecto != ""){
        $.get("./cu/ingresosProyectados_cu.php", {op:59,id_proyectos:idproyecto}, function(respuesta){
            var presupuestos =  respuesta.split('*');

            if(presupuestos != ""){
                
                $.get("./cu/ingresosProyectados_cu.php", {op:60,id_proyectos:idproyecto}, function(respuesta2){
                    var valores = respuesta2.split('*');
                    
                    var sPresupuestos = "";
                    for(var i=0; i < presupuestos.length - 1; i++){
                        sPresupuestos = sPresupuestos + presupuestos[i];
                        if(i+1 < presupuestos.length - 1)
                            sPresupuestos = sPresupuestos + ",";
                    }
                    
                    if(valores.length>1){                        
                        
                        $.get("./cu/ingresosProyectados_cu.php", {op:61,id_cotiza:sPresupuestos}, function(respuesta){
                            var fechasEtapa = respuesta.split('_');
                            var fechasIniciales = [];
                            var fechasFinales = [];
                            
                            for(var k=0; k < fechasEtapa.length - 1; k++){
                                var fechas = fechasEtapa[k].split('*');
                                fechasIniciales[k]=fechas[0];
                                fechasFinales[k]=fechas[1];
                            }
                            
                            iniciales = fechasIniciales.sort(ordernarFechasAsc);
                            finales = fechasFinales.sort(ordernarFechasDesc);
                            
                            $.get("./cu/ingresosProyectados_cu.php", {op:62,id_proyecto:idproyecto}, function(respuesta){
                                var info = respuesta.split('¿');
                                var filas = info[3].split('_');
                                var elementoi = filas[0].split('*');
                                var elementof = filas[filas.length-2].split('*');
                                var periodoi = elementoi[0].split('-');
                                var periodof = elementof[0].split('-');   
                                
                                fechaArray1 = iniciales[0].split('-');
                                fechaArray2 = finales[0].split('-');
                                
                                if(parseInt(fechaArray1[0]) == parseInt(periodoi[0])){
                                    if(parseInt(fechaArray1[1]) == parseInt(periodoi[1])){
                                        if(parseInt(fechaArray2[0]) == parseInt(periodof[0])){
                                            if(parseInt(fechaArray2[1]) == parseInt(periodof[1])){
                                                                                                
                                            }else{
                                                alert("Las fechas en los presupuestos del proyecto se han modificado. Verifique los ingresos y pulse Guardar.");
                                            }
                                        }else{
                                            alert("Las fechas en los presupuestos del proyecto se han modificado. Verifique los ingresos y pulse Guardar.");
                                        }
                                        
                                        setPeriodosGuardados(iniciales[0],finales[0],filas,info[0]);
                                        $("#inputPresupuesto").val(info[0]);
                                            
                                    }else{
                                        alert("Las fechas iniciales en los presupuestos del proyecto se han modificado. Ingrese los ingresos nuevamente.");
                                        //setPeriodos(iniciales[0],finales[0]);  alert("no");
                                        setPeriodosGuardados(iniciales[0],finales[0],filas,info[0]);
                                        $("#inputPresupuesto").val(info[0]);

                                    }
                                }else{
                                    alert("Las fechas iniciales en los presupuestos del proyecto se han modificado. Ingrese los ingresos nuevamente.");
                                    //setPeriodos(iniciales[0],finales[0]);  alert("no");
                                    setPeriodosGuardados(iniciales[0],finales[0],filas,info[0]);
                                    $("#inputPresupuesto").val(info[0]);

                                }
    
                            });
                            
                        });
                        
                        
                        
                        
                    }else{
                        
                        $.get("./cu/ingresosProyectados_cu.php", {op:61,id_cotiza:sPresupuestos}, function(respuesta){
                            var fechasEtapa = respuesta.split('_');
                            var fechasIniciales = [];
                            var fechasFinales = [];
                            
                            for(var k=0; k < fechasEtapa.length - 1; k++){
                                var fechas = fechasEtapa[k].split('*');
                                fechasIniciales[k]=fechas[0];
                                fechasFinales[k]=fechas[1];
                            }
                            
                            iniciales = fechasIniciales.sort(ordernarFechasAsc);
                            finales = fechasFinales.sort(ordernarFechasDesc);
                            setPeriodos(iniciales[0],finales[0]);
                            $('#inputPresupuesto').val(valores);
                            $('#inputPorcentaje').val("0");
                        });
                    }
                    
                    //$("#inputPresupuesto").prop('disabled', false);
                    $("#botonGuardar").prop('disabled', false);
                    $("#botonLimpiar").prop('disabled', false);
                    
                    
                });
            }else{
                alert("Se requiere un presupuesto para continuar.");
            }
            
        });
    }
}



function ordernarFechasAsc(fecha1,fecha2){
    if(fecha1<fecha2)
        return -1;
    else if(fecha1==fecha2)
        return 0;
    else
        return 1;
}



function ordernarFechasDesc(fecha1,fecha2){
    if(fecha1<fecha2)
        return 1;
    else if(fecha1==fecha2)
        return 0;
    else
        return -1;
}



function setPeriodos(fechaInicial,fechaFinal){
    var meses = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];

    var fecha1 = moment(fechaInicial);
    var fecha2 = moment(fechaFinal);
    
    var mes1 = fecha1.month();
    var mes2 = fecha2.month();

    var ano1 = fecha1.year();
    var ano2 = fecha2.year();
    var difanos = parseInt(ano2) - parseInt(ano1);

    var periodos = parseInt(mes2) - parseInt(mes1) + 1 + parseInt(12 * difanos); 

    $('#tablaIngresosPresupuestado tbody').empty();

    if(periodos <= 0){
        alert("Fecha Inicial debe ser menor a Fecha Final");
        return 0;
    }
        
    var ano1 = fecha1.year();
    var mes1 = fecha1.month();
    
    for(var i = 0; i < periodos; i ++){
        if(mes1 == 12){
            mes1 = 0;
            ano1 ++;
        }
            
        $('#tablaIngresosPresupuestado tbody').append("" +
            "<tr style='text-align:center;'>" +
            "<td style='text-align:center;' id='ano"+i+"'>" + ano1 + "</td>" +
            "<td style='text-align:center;' id='mes"+i+"'>" + meses[mes1] + "</td>" +
            "<td style='text-align:center;'>$<input type='number' style='text-align:center;' value=0 id='monto"+i+"' readonly='readonly' disabled></td>" +
            "<td style='text-align:center;'><input type='number' style='text-align:center;' value=0 min='0' max='100' id='porc"+i+"' onchange='setMontosPorcentajes();'>%</td>" +
            "</tr>");
            mes1 ++;
    }

    return periodos;
}



function setPeriodosGuardados(fechaInicial,fechaFinal,datos,monto){
    var meses = ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];

    var fecha1 = moment(fechaInicial);
    var fecha2 = moment(fechaFinal);

    var mes1 = fecha1.month();
    var mes2 = fecha2.month();

    var ano1 = fecha1.year();
    var ano2 = fecha2.year();
    var difanos = parseInt(ano2) - parseInt(ano1);

    var periodos = parseInt(mes2) - parseInt(mes1) + 1 + parseInt(12 * difanos); 

    $('#tablaIngresosPresupuestado tbody').empty();

    if(periodos <= 0){
        alert("Fecha Inicial debe ser menor a Fecha Final");
        return 0;
    }
        
    var ano1 = fecha1.year();
    var mes1 = fecha1.month();
    
    var total_porcentaje = 0;
    
    for(var i = 0; i < periodos; i ++){
        if(mes1 == 12){
            mes1 = 0;
            ano1 ++;
        }
        
        var porcentaje = 0;
        if(i < datos.length-1){
            var elemento = datos[i].split("*");
            porcentaje = parseInt(elemento[1]);
        }
        
        var monto_dividido = parseInt(monto) * porcentaje / 100;
        
        total_porcentaje+=porcentaje;
            
        $('#tablaIngresosPresupuestado tbody').append("" +
            "<tr>" +
            "<td style='text-align:center;' id='ano"+i+"'>" + ano1 + "</td>" +
            "<td style='text-align:center;' id='mes"+i+"'>" + meses[mes1] + "</td>" +
            "<td style='text-align:center;'>$<input type='number' style='text-align:center;' value="+ monto_dividido +" id='monto"+i+"' readonly='readonly' disabled></td>" +
            "<td style='text-align:center;'><input type='number' style='text-align:center;' value="+ porcentaje +" min='0' max='100' id='porc"+i+"' onchange='setMontosPorcentajes();'>%</td>" +
            "</tr>");
            mes1 ++;
    }

    $("#inputPorcentaje").val(total_porcentaje);
    
    return periodos;
}



function defaultLayout(){
    $('#inputPresupuesto').val("");
    $('#inputPorcentaje').val("");
    $('#tablaIngresosPresupuestado tbody').empty();
    $("#listaProyectos").prop('disabled', true);
    $("#inputPresupuesto").prop('disabled', true);
    $("#inputPorcentaje").prop('disabled', true);
    document.getElementById('inputPorcentaje').style.removeProperty('border');
    $("#botonGuardar").prop('disabled', true);
    $("#botonLimpiar").prop('disabled', true);
}



function setMontos(){
    var montoNuevo = parseInt($('#inputPresupuesto').val());
    var periodos = $('#tablaIngresosPresupuestado tr').length - 1;
    
    if($('#inputPresupuesto').val() == ""){
        $('#inputPresupuesto').val("0");
        montoNuevo = 0;
    }

    for(var i=0; i < periodos; i++){
        var valor = parseInt($('#porc'+ i +'').val()) * montoNuevo / 100;
        $('#monto'+ i +'').val(valor);  
    }
}



function setMontosPorcentajes(){
    var montoTotal = parseInt($('#inputPresupuesto').val());
    var periodos = $('#tablaIngresosPresupuestado tr').length - 1;
    var porcentajeTotal = 0;
    
    for(var i=0; i < periodos; i++){
        var porcentaje = parseInt($('#porc'+ i +'').val());
        var valor = porcentaje * montoTotal / 100;
        $('#monto'+ i +'').val(valor);  
        porcentajeTotal+=porcentaje;
    }

    if(porcentajeTotal > 100){
        alert("Has excedido el 100% de ingresos.");
        $("#botonGuardar").prop('disabled', true);
        document.getElementById('inputPorcentaje').style.borderColor='#FF0000';        
    }else{
        $("#botonGuardar").prop('disabled', false);
        document.getElementById('inputPorcentaje').style.borderColor='#1CC425';
    }
    
    $('#inputPorcentaje').val(porcentajeTotal);
}



function guardarIngresos(){
    var idcliente =$('#listaCliente').val();
    var idproyecto =$('#listaProyectos').val();
    var total_proyectado = parseInt($('#inputPresupuesto').val());
    var porcentaje_ocupado = parseInt($('#inputPorcentaje').val());
    var periodos = $('#tablaIngresosPresupuestado tr').length - 1;
    
    if(idcliente == ""){
        alert("Número de cliente inválido.");
        return;
    }
    
    if(idproyecto == ""){
        alert("Número de proyecto inválido.");
        return;
    }
    
    if(total_proyectado == null){
        alert("Verifique el total proyectado.");
        return;
    }
    
    if(porcentaje_ocupado == null){
        alert("Verifique el total proyectado.");
        return;
    }
    
    if(periodos == null){
        alert("Verifique las fechas en el presupuesto.");
        return;
    }
        
    
    var cadena = '';
    for(var i=0; i < periodos; i++){
        var anio = $('#ano'+ i +'').text();
        var mes = getNumeroMes($('#mes'+ i +'').text());
        var porcentaje = parseInt($('#porc'+ i +'').val());
        cadena += anio +"-"+mes+"*"+porcentaje+"_";
    }
    
    var sArray = ["",
    idcliente,
    idproyecto,
    total_proyectado,
    porcentaje_ocupado,
    periodos,
    cadena];
    
    $.get("./cu/ingresosProyectados_cu.php", {op:60,id_proyectos:idproyecto}, function(respuesta){
        var valores = respuesta.split('*');
        
        if(valores.length==1){
            $.get("./cu/ingresosProyectados_cu.php", {op:64,tabla:'ingresos_presupuestados', sArray:sArray}, function(respuesta){
                if(respuesta == 1)
                    alert("Se ha agregado el registro exitosamente.");
        });
            
        }else{
            $.get("./cu/ingresosProyectados_cu.php", {op:63,idingreso:valores[0],sArray:sArray}, function(respuesta){
                if(respuesta == 1)
                    alert("Los cambios se han guardado exitosamente.");
            });
        }    
    });

}



function getNumeroMes(mesLetra){
    var numeroMes = 1;
    switch(mesLetra){
        case 'Enero': numeroMes='01'; break;
        case 'Febrero': numeroMes='02'; break;
        case 'Marzo': numeroMes='03'; break;
        case 'Abril': numeroMes='04'; break;
        case 'Mayo': numeroMes='05'; break;
        case 'Junio': numeroMes='06'; break;
        case 'Julio': numeroMes='07'; break;
        case 'Agosto': numeroMes='08'; break;
        case 'Septiembre': numeroMes='09'; break;
        case 'Octubre': numeroMes=10; break;
        case 'Noviembre': numeroMes=11; break;
        case 'Diciembre': numeroMes=12; break;
    }
    return numeroMes;
}




