
function setClientesProyectos(){
    var clasificacionegreso = $('#listaTiposEgresos').val();
    
    if(clasificacionegreso == 'Directo Variable' || clasificacionegreso == 'Directo Fijo'){
        $('#listaClientes').prop('disabled', false);
    
    }else{
        $('#listaClientes').prop('disabled', true);
        $('#listaClientes').val('').prop('selected', true);
        $('#listaProyectos').prop('disabled', true);
        $('#listaProyectos').val('').prop('selected', true);
    }
}


function setConceptoSubconcepto(){
    var clasificacionGasto = $('#listaTipoGasto').val();
    
    if(clasificacionGasto == ''){
        $('#listaConceptosE').prop('disabled', true);
        $('#listaConceptosE').val('').prop('selected', true);
        $('#listaSubconceptosE').prop('disabled', true);
        $('#listaSubconceptosE').val('').prop('selected', true);
        $('#observacionesSubconcepto').val('');
        return;
    }
    
    $('#listaConceptosE').prop('disabled', false);
    $('#listaSubconceptosE').prop('disabled', false);
    
    $('#listaConceptosE option').remove();
    $('#listaConceptosE')
                .append($("<option></option>")
                .attr("value","")
                .text("Seleccione concepto")); 

    $.get("./cu/egresosReal_cu.php", {op:12,gasto:clasificacionGasto}, function(respuesta){
        var registros =  respuesta.split('~');
            
        if(registros != ""){
            for (var i = 0; registros.length > i; i++){
                var valores =  registros[i].split('*');
                
                if(valores!=""){
                    $('#listaConceptosE')
                        .append($("<option></option>")
                        .attr("value",valores[0])
                        .text(valores[1])); 
                    }
                }
            
        
            }else{ 
                $("#listaConceptosE").prop('disabled', true);
                $('#listaConceptosE').val('').prop('selected', true);
                $('#listaSubconceptosE').prop('disabled', true);
                $('#listaSubconceptosE').val('').prop('selected', true);
                $('#observacionesSubconcepto').val('');
                alert("No hay conceptos para este tipo de gasto.");
            }

    });
    

}


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

    $('#listaProyectos option').remove();
                                        
    if(idcliente != ""){
        $.get("./cu/egresosReal_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 getObservaciones(){
	var idsubconcepto =$('#listaSubconceptosE').val();

	if(idsubconcepto == ""){
		$('#observacionesSubconcepto').val("");
		return;
	}
		

	var id_valor = idsubconcepto.split('e');

	if(id_valor.length < 2){
		id_valor = idsubconcepto.split('p');

		$.get("./cu/egresosReal_cu.php", {op:79,id_usuario:id_valor[1]}, function(respuesta){
			$('#observacionesSubconcepto').val(respuesta);
		});

		//alert("Personal");
		//alert(id_valor[1]);		
	}else{
		$.get("./cu/egresosReal_cu.php", {op:80,id_proveedor:id_valor[1]}, function(respuesta){
			var info = respuesta.split("*");
			var marca = '';
			if(info[1] == 1)
				marca = '(E)';
			
			$('#observacionesSubconcepto').val(info[0] + " " + marca);
		});

	}

}


function setComprobable(){
    document.getElementById("checkNoComprobable").checked=false;
    document.getElementById("checkComprobable").checked=true;
    $("#nfactura").prop('disabled', false);
    $('#nfactura').val('');
    
}



function setNoComprobable(){
    document.getElementById("checkNoComprobable").checked=true;
    document.getElementById("checkComprobable").checked=false;
    $("#nfactura").prop('disabled', true);
    $('#nfactura').val('N/A');
}



function agregarEgresoReal(){
    var fecha = moment().format('YYYY-MM-DD HH:mm:ss');
    var clasificacionegreso = $('#listaTiposEgresos').val();
    var idcliente =$('#listaClientes').val();
    var idproyecto =$('#listaProyectos').val();
    
    if(clasificacionegreso == ""){
        alert("Asigne un tipo de egreso.");
        return;
    
    }else{
        if(clasificacionegreso == 'Directo Variable' || clasificacionegreso == 'Directo Fijo'){
            if(idcliente == ''){
                alert("Asigne un cliente.");
                return;
            }
            
            if(idproyecto == ''){
                alert("Asigne un proyecto.");
                return;
            }
        }        
    }
    
    var clasificacionGasto = $('#listaTipoGasto').val();
    var concepto = $('#listaConceptosE').val();
    var subconcepto = $('#listaSubconceptosE option:selected').text();
    var id_subconcepto = $('#listaSubconceptosE').val();
    var tipo_proveedor = '';
    var tipo_prove = 0;
    var provssesp = 'NO';

    
    if(clasificacionGasto == ""){
        alert("Asigne un tipo de gasto.");
        return;
    
    }else{
        if(concepto == ""){
            alert("Asigne un concepto.");
            return;
        }

        if(id_subconcepto == ""){
            alert("Asigne un subconcepto.");
            return;
        }else{
        
            if(id_subconcepto.startsWith('e')){
                var div = id_subconcepto.split('e');
                tipo_prove=0;
                tipo_proveedor=div[1];
            }else{
                var div = id_subconcepto.split('p');
                tipo_prove=1;
                tipo_proveedor=div[1];
            }
        }    
    }

    var id_cuentas = $('#listaCuentas').val();
    
    var checkComprobable = document.getElementById("checkComprobable").checked;
    var checkNoComprobable = document.getElementById("checkNoComprobable").checked;
    var campoComprobable = "";
    var num_fac = $('#nfactura').val();

    
    
    if(checkComprobable){
        campoComprobable = "SI";

        if(num_fac == ""){
            alert("Ingresa el número de factura/comprobante.");
            return;
        }
    }
            
    if(checkNoComprobable)
        campoComprobable = "NO";
    
    if(campoComprobable == ""){
        alert("Selecciona si es comprobable/no comprobable el egreso.");
        return;    
    }


    var fecha_real = $('#fechaEgreso').val();
    var monto_total = parseFloat($('#montoEgreso').val()).toFixed(2);
    var subtotal_real = parseFloat(monto_total).toFixed(2);
    var impuesto_real = parseFloat(0).toFixed(2);
    var comentarios = $('#comentariosEgreso').val();

    
    if(campoComprobable == 'SI'){
        subtotal_real = (parseFloat(monto_total) / parseFloat(1.16)).toFixed(2);
        impuesto_real = (parseFloat(monto_total) - parseFloat(subtotal_real)).toFixed(2);
    }
    

    if(fecha_real == ""){
        alert("Ingrese la fecha del ingreso.");
        return;
    }
    
    if(monto_total == ""){
        alert("Ingrese el monto del ingreso.");
        return;
    }
    
    if(comentarios == ""){
        alert("Ingrese los comentarios.");
        return;
    }
    
    

    $.get("./cu/egresosReal_cu.php", {op:56,proy:idproyecto}, function(respuesta){
        var info = respuesta.split("*");
        var idcc = parseInt(info[6]);
                                                                             
        if(idproyecto == '')
            idcc = 0;
        
        if(clasificacionegreso=='Directo Fijo' || clasificacionegreso=='Directo Variable'){
            if(idcc == 0){
                alert("El proyecto que has seleccionado no cuenta con centro de costos. Se requiere crear un presupuesto.");
                return;
            }
        }
            
        
        var id_proveedor = '';
        if(tipo_prove == 0)
            id_proveedor = tipo_proveedor;
                                                                             
        $.get("./cu/egresosReal_cu.php", {op:80,id_proveedor:id_proveedor}, function(respuesta){
			var info = respuesta.split("*");

            if(info[1] == 1)
				provssesp = 'SI';
			
            var sArray = ["",
                fecha,
                idcc,
                clasificacionegreso,
                clasificacionGasto,
                concepto,
                subconcepto,
                id_cuentas,
                campoComprobable,
                provssesp,
                tipo_proveedor,
                tipo_prove,
                num_fac,
                comentarios,
                comentarios,
                "0",
                "0",
                "0",
                fecha_real,
                subtotal_real,
                impuesto_real,
                monto_total
            ];
            
            $.get("./cu/egresosReal_cu.php", {op:82,tabla:'egreso', sArray:sArray}, function(respuesta){
                if(respuesta > 0){
                    alert("Se ha agregado el registro exitosamente.");
                    document.getElementById("egresosForm").reset();
                }
            });
            
        });

    });
}

//===============================================================================================================================================
function getProyectosClienteC(){
    var idcliente =$('#listaClientesC').val();
    var idcliente_text = $("#listaClientesC option:selected").text();

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


function setProyectos(){
    var idproyecto =$('#listaProyectosC').val();
    
    if(idproyecto != '')
        $("#listaLineaC").prop('disabled', true);
    else
        $("#listaLineaC").prop('disabled', false);
}


function setLineaNegocio(){
    var idlinea =$('#listaLineaC').val();
    
    if(idlinea != '')
        $("#listaProyectosC").prop('disabled', true);
    else
        $("#listaProyectosC").prop('disabled', false);
}

function setFiltros(){
    var idtipo =$('#listaTipoEgresoC').val();
    
    $("#listaClientesC").val("");
    $('#listaProyectosC option').remove();
    $('#listaProyectosC')
                .append($("<option></option>")
                .attr("value","")
                .text("Todos los proyectos")); 
    $("#listaLineaC").val("");

    
    if(idtipo == ''){
        $("#listaClientesC").prop('disabled', true);
        $("#listaProyectosC").prop('disabled', true);
        $("#listaLineaC").prop('disabled', true);
        
    }else if(idtipo == 'Directos'){
        $("#listaClientesC").prop('disabled', false);
        $("#listaProyectosC").prop('disabled', true);
        $("#listaLineaC").prop('disabled', false);
        
    }else if(idtipo == 'Indirectos'){
        $("#listaClientesC").prop('disabled', true);
        $("#listaProyectosC").prop('disabled', true);
        $("#listaLineaC").prop('disabled', true);
    } 
        
    else
        $("#listaProyectosC").prop('disabled', false);
}

function setLineaNegocio(){
    var idlinea =$('#listaLineaC').val();
    
    if(idlinea != '')
        $("#listaProyectosC").prop('disabled', true);
    else
        $("#listaProyectosC").prop('disabled', false);
}

function getTablaEgresos(){
    var idtipo =$('#listaTipoEgresoC').val();
    var idtipo_text = $("#listaTipoEgresoC option:selected").text();
    
    var idcliente =$('#listaClientesC').val();
    var idcliente_text = $("#listaClientesC option:selected").text();
    
    var idproyecto =$('#listaProyectosC').val();
    var idproyecto_text = $("#listaProyectosC option:selected").text();
    
    var idlinea =$('#listaLineaC').val();
    var idlinea_text = $("#listaLineaC option:selected").text();

    var sArray = [0,0,0];
    var opcionBuscar = 84;
    
    
    if(idcliente != ""){
        sArray[0] = idcliente;
    }
    
    if(idproyecto != ""){
        sArray[1] = idproyecto;
    }
    
    if(idlinea != ""){
        sArray[2] = idlinea;
    }

    if(idcliente == "" && idlinea==""){
        opcionBuscar = 83;
    }
    

    $.get("./cu/egresosReal_cu.php", {op:opcionBuscar,sArray:sArray,tipo:idtipo}, function(respuesta){
        var egresosTabla = respuesta.split("_");
        //alert("in");
        var tabla = $('#example2').DataTable();


        tabla.clear().draw();

        for(var i = 0; i < egresosTabla.length-1; i ++){
            var registro = egresosTabla[i].split("*");
            var id_monto = "monto"+parseInt(registro[9]);       
            var fila = tabla
            .row.add(
                [
                "<center>"+registro[0]+"</center>",
                "<center>"+registro[1]+"</center>",
                "<center>"+registro[2]+"</center>",
                "<label title=' "+ registro[7] +"' style='text-align:center;'>"+registro[3]+"</label>",
                "<center>"+registro[4]+"</center>",
                "<center>"+registro[5]+"</center>",
                "<center>"+registro[6]+"</center>",
                "<input  type='number'  disabled class='control-form col-md-12 col-sm-12 col-xs-12' id="+id_monto+" value=" + registro[8] + " title='Última actualización:" + registro[10].substring(0, 11) + "'><label id='l"+id_monto+"' style='visibility:hidden'>"+ registro[8] +"</label>",
                "<button type='button' class='btn btn-primary btn-xs' value=0 onclick='editTablaEgresos($(this),"+id_monto+")'>Editar</button>",
                "<button type='button' class='btn btn-danger btn-xs' value="+i+" id=" + registro[9] + " onclick='eliminarEgreso($(this))'>Eliminar</button>"
                ])
            .draw()
            .node();
        }
//alert("fin");
    });
}


function editTablaEgresos(boton,id_monto){
    var estado = boton.val();
    var monto = $(id_monto).val();
    monto = parseFloat(monto).toFixed(2);
    var fecha_actual = moment().format("YYYY-MM-DD h:mm:ss");

    if(estado == 0){
        boton.val(1);
        boton.text("Guardar");
        $(id_monto).prop('disabled', false);    
    
    }else{
               
        if(monto==""){
            alert("Ingresa un valor válido al campo de Ingreso.");
            return;
        }

        var id_egreso = id_monto.id.substr(5);

        $.get("./cu/egresosReal_cu.php", {op:85,idegreso:id_egreso,fecha:fecha_actual, monto:monto}, function(respuesta){
            if(respuesta == 1){
                alert("Se ha guardado el registro exitosamente.");
                var idEtiqueta="l" + $(id_monto).attr('id');
                document.getElementById(idEtiqueta).innerHTML =monto;
                boton.val(0);
                boton.text("Editar");
                $(id_monto).prop('disabled',true);
            }
        });
    }
}


function eliminarEgreso(boton){
    id_tabla =boton.val();
    id_reg =boton.attr("id");

    var table = $('#example2').DataTable();

    if(id_tabla>=0){
        var resp = confirm("¿Seguro que desea eliminar el registro seleccionado?");

        if (resp == true) {
            table.row(id_tabla).remove().draw(false);
            $.get("./cu/egresosReal_cu.php", {op:3,iduser:id_reg,tablereg:'egreso'}, function(respuesta){
                if(respuesta == 1){
                    alert("Se ha eliminado el registro correctamente.");
                }

            });
        }
    
    }else{
        alert("Seleccione el registro a eliminar.");
    }  
}


//=======================================================================================================

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("example2");
    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-2; j++){
            //var cellVal = oCells.item(j).innerHTML;
            var cellVal = oCells.item(j).innerHTML;
            if(j!=7)
            cellVal = cellVal.substring(8, cellVal.indexOf("</"));
        else
            cellVal = cellVal.substring(cellVal.indexOf('hidden">'), cellVal.indexOf("</"));
            
            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);
}

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


