private void UI_AnalisisEncuestas_Load(object sender, EventArgs e)
        {
            CalculoEstadistica.listaDatosPedidos = auxXml.LeerDatos();


            hombres = CalculoEstadistica.SalarioPromedio("Hombre", CalculoEstadistica.listaDatosPedidos);
            mujeres = CalculoEstadistica.SalarioPromedio("Mujer", CalculoEstadistica.listaDatosPedidos);
            otros   = CalculoEstadistica.SalarioPromedio("Otro", CalculoEstadistica.listaDatosPedidos);

            Limpiar();
            dgDatos.DataSource = null;
            dgDatos.DataSource = CalculoEstadistica.listaDatosPedidos;
            CargarChartBarras(hombres, mujeres, otros);
            CargaChartPie(0, 0);
        }
        private void btnFiltrar_Click(object sender, EventArgs e)
        {
            CalculoEstadistica.auxListaResultadoConsulta = TraerListaSegúnConsultaRealizada();
            int   cantRegistrosUltimaConsulta = CalculoEstadistica.auxListaResultadoConsulta.Count;
            int   cantRegistrosTotal          = CalculoEstadistica.listaDatosPedidos.Count;
            float porcentaje = CalculoEstadistica.CalculoPorcentaje(cantRegistrosUltimaConsulta, cantRegistrosTotal);

            if (cantRegistrosUltimaConsulta == 0)
            {
                MessageBox.Show("No se encontraron resultados coincidentes con esta búsqueda.");
            }

            //carga chart pie
            CargaChartPie(cantRegistrosUltimaConsulta, cantRegistrosTotal);

            //Completa datagrid
            dgDatos.DataSource = null;
            dgDatos.DataSource = CalculoEstadistica.auxListaResultadoConsulta;


            //Calculo total de encuestas
            lblTotal.Text = $"{cantRegistrosTotal}";
            int promedioSueldoTotal = CalculoEstadistica.SalarioPromedio(CalculoEstadistica.listaDatosPedidos);

            lblPromedioTotal.Text = $"${promedioSueldoTotal}";

            //Calculo total por consulta
            lblTotalConsulta.Text = cantRegistrosUltimaConsulta.ToString();
            int promedioSueldoConsulta = CalculoEstadistica.SalarioPromedio(CalculoEstadistica.auxListaResultadoConsulta);

            lblPromedioConsulta.Text = $"${promedioSueldoConsulta}";
            lblPorcentaje.Text       = $"{porcentaje}%";

            //Calculo cantidad por genero
            int CantidadMujeres = CalculoEstadistica.CuentaCantidadDeEncuestaPorSexo("Mujer", CalculoEstadistica.auxListaResultadoConsulta);
            int cantidadHombres = CalculoEstadistica.CuentaCantidadDeEncuestaPorSexo("Hombre", CalculoEstadistica.auxListaResultadoConsulta);
            int cantidadOtros   = CalculoEstadistica.CuentaCantidadDeEncuestaPorSexo("Otro", CalculoEstadistica.auxListaResultadoConsulta);

            lblCantidadMujeresConsulta.Text = CantidadMujeres.ToString();
            lblCantidadVaronesConsulta.Text = cantidadHombres.ToString();
            lblCantidadOtroConsulta.Text    = cantidadOtros.ToString();

            //Calculo porcentaje por genero
            lblPorcentajeMujeres.Text = $"{CalculoEstadistica.CalculoPorcentaje(CantidadMujeres, cantRegistrosTotal)} %";
            lblPorcentajeVarones.Text = $"{CalculoEstadistica.CalculoPorcentaje(cantidadHombres, cantRegistrosTotal)} %";
            lblPorcentajeOtros.Text   = $"{CalculoEstadistica.CalculoPorcentaje(cantidadOtros, cantRegistrosTotal)} %";

            //Calculo sueldo promedio por genero
            mujeres = CalculoEstadistica.SalarioPromedio("Mujer", CalculoEstadistica.auxListaResultadoConsulta);
            lblSueldoPromedioMujeres.Text = $"$ {mujeres}";
            hombres = CalculoEstadistica.SalarioPromedio("Hombre", CalculoEstadistica.auxListaResultadoConsulta);
            lblSueldoPromedioVarones.Text = $"$ {hombres}";
            otros = CalculoEstadistica.SalarioPromedio("Otro", CalculoEstadistica.auxListaResultadoConsulta);
            lblSueldoPromedioOtros.Text = $"$ {otros}";

            //Calculo brecha salarial
            string quienGanaMas = CalculoEstadistica.MayorSueldo(hombres, mujeres, otros);
            int    diferencia1  = 0;
            int    diferencia2  = 0;

            if (quienGanaMas == "Hombres")
            {
                diferencia1            = CalculoEstadistica.CalculoDiferenciaDeMontos(hombres, mujeres);
                diferencia2            = CalculoEstadistica.CalculoDiferenciaDeMontos(hombres, otros);
                lblBrechaSalarial.Text = $"En este caso los varones ganan en promedio  $ {diferencia1} más que las mujeres y $ {diferencia2} más que quienes se identifican con otro género.";
            }

            else if (quienGanaMas == "Mujeres")
            {
                diferencia1            = CalculoEstadistica.CalculoDiferenciaDeMontos(mujeres, hombres);
                diferencia2            = CalculoEstadistica.CalculoDiferenciaDeMontos(mujeres, otros);
                lblBrechaSalarial.Text = $"En este caso las mujeres ganan en promedio  $ {diferencia1} más que los varones y $ {diferencia2} más que quienes se identifican con otro género.";
            }

            else if (quienGanaMas == "Otros")
            {
                diferencia1            = CalculoEstadistica.CalculoDiferenciaDeMontos(otros, hombres);
                diferencia2            = CalculoEstadistica.CalculoDiferenciaDeMontos(otros, mujeres);
                lblBrechaSalarial.Text = $"En este caso quienes se identifican con otro genero ganan $ {diferencia1} más que los varones y $ {diferencia2} que las mujeres.";
            }
            CargarChartBarras(hombres, mujeres, otros);
        }
        private List <Encuesta> TraerListaSegúnConsultaRealizada()
        {
            List <string>   auxListaTildados = new List <string>();
            List <Encuesta> auxListBusqueda  = CalculoEstadistica.listaDatosPedidos;

            auxListaTildados = quienEstaTildado();

            foreach (string item in auxListaTildados)
            {
                switch (item)
                {
                case "chkRecomienda":
                    if (!string.IsNullOrEmpty(cmbRecomiendaEmpresa.Text.ToString()))
                    {
                        if (cmbRecomiendaEmpresa.SelectedItem.ToString().Contains("De 0 a 3"))
                        {
                            auxListBusqueda = CalculoEstadistica.Buscar(0, 3, "Recomienda", auxListBusqueda);
                        }
                        else if (cmbRecomiendaEmpresa.SelectedItem.ToString().Contains("De 3 a 7"))
                        {
                            auxListBusqueda = CalculoEstadistica.Buscar(3, 7, "Recomienda", auxListBusqueda);
                        }
                        else
                        {
                            auxListBusqueda = CalculoEstadistica.Buscar(7, 10, "Recomienda", auxListBusqueda);
                        }
                    }
                    break;

                case "chkRubro":
                    if (!string.IsNullOrEmpty(cmbRubro.Text.ToString()))
                    {
                        auxListBusqueda = CalculoEstadistica.Buscar(cmbRubro.Text.ToString(), auxListBusqueda);
                    }
                    break;

                case "chkSalario":

                    if (!string.IsNullOrEmpty(cmbSalarioNeto.Text.ToString()))
                    {
                        if (cmbSalarioNeto.SelectedItem.ToString().Contains("Hasta 50.000"))
                        {
                            auxListBusqueda = CalculoEstadistica.Buscar(0, 50000, "Sueldo", auxListBusqueda);
                        }
                        else if (cmbSalarioNeto.SelectedItem.ToString().Contains("De 50.000 a 150.000"))
                        {
                            auxListBusqueda = CalculoEstadistica.Buscar(50000, 150000, "Sueldo", auxListBusqueda);
                        }
                        else
                        {
                            auxListBusqueda = CalculoEstadistica.Buscar(150000, 99999999, "Sueldo", auxListBusqueda);
                        }
                    }
                    break;

                case "chkJornada":
                    if (!string.IsNullOrEmpty(cmbJornada.Text.ToString()))
                    {
                        auxListBusqueda = CalculoEstadistica.Buscar(cmbJornada.Text.ToString(), auxListBusqueda);
                    }
                    break;

                case "chkNivelEstudios":
                    if (!string.IsNullOrEmpty(cmbNivelEstudios.Text.ToString()))
                    {
                        auxListBusqueda = CalculoEstadistica.Buscar(cmbNivelEstudios.Text.ToString(), auxListBusqueda);
                    }
                    break;

                case "chkPersonalACargo":

                    if (!string.IsNullOrEmpty(cmbPersonalACargo.Text.ToString()))
                    {
                        if (cmbPersonalACargo.SelectedItem.ToString().Contains("Hasta 10"))
                        {
                            auxListBusqueda = CalculoEstadistica.Buscar(1, 10, "Personal", auxListBusqueda);
                        }
                        else if (cmbPersonalACargo.SelectedItem.ToString().Contains("Más de 10"))
                        {
                            auxListBusqueda = CalculoEstadistica.Buscar(10, 99999999, "Personal", auxListBusqueda);
                        }
                        else
                        {
                            auxListBusqueda = CalculoEstadistica.Buscar(0, 0, "Personal", auxListBusqueda);
                        }
                    }
                    break;

                case "chkExperiencia":

                    if (!string.IsNullOrEmpty(cmbAniosExperiencia.Text.ToString()))
                    {
                        if (cmbAniosExperiencia.SelectedItem.ToString().Contains("0"))
                        {
                            auxListBusqueda = CalculoEstadistica.Buscar(0, 0, "Experiencia", auxListBusqueda);
                        }
                        else if (cmbAniosExperiencia.SelectedItem.ToString().Contains("Hasta 10"))
                        {
                            auxListBusqueda = CalculoEstadistica.Buscar(1, 10, "Experiencia", auxListBusqueda);
                        }
                        else
                        {
                            auxListBusqueda = CalculoEstadistica.Buscar(10, 200, "Experiencia", auxListBusqueda);
                        }
                    }
                    break;

                case "chkEdad":

                    if (!string.IsNullOrEmpty(cmbEdad.Text.ToString()))
                    {
                        string aux = cmbEdad.SelectedItem.ToString();
                        if (cmbEdad.SelectedItem.ToString().Contains("Hasta 30 años"))
                        {
                            auxListBusqueda = CalculoEstadistica.Buscar(0, 30, "Edad", auxListBusqueda);
                        }
                        else if (cmbEdad.SelectedItem.ToString().Contains("Entre 30 y 50"))
                        {
                            auxListBusqueda = CalculoEstadistica.Buscar(30, 50, "Edad", auxListBusqueda);
                        }
                        else
                        {
                            auxListBusqueda = CalculoEstadistica.Buscar(50, 200, "Edad", auxListBusqueda);
                        }
                    }
                    break;

                case "chkSeIdentifica":

                    if (!string.IsNullOrEmpty(cmbSeIdentifica.Text.ToString()))
                    {
                        auxListBusqueda = CalculoEstadistica.Buscar(cmbSeIdentifica.SelectedItem.ToString(), auxListBusqueda);
                    }
                    break;
                }
            }
            return(auxListBusqueda);
        }
        private void btnFiltrar_Click(object sender, EventArgs e)
        {
            //Consulta que se hará a la DB
            string aux = DevuelveStringConsultaDBSegunCheckedBoxesSeleccionados();

            //variables auxiliares
            int   cantegistrosUltimaConsulta = ConsultasDB.CuentaRegistrosDeUnaConsulta(aux);
            int   cantRegistrosTotal         = ConsultasDB.CuentaRegistrosDeUnaConsulta();
            float porcentaje = Encuesta.CalculoPorcentaje(cantegistrosUltimaConsulta, cantRegistrosTotal);

            //carga chart pie
            CargaChartPie(cantegistrosUltimaConsulta, cantRegistrosTotal);

            //Completa datagrid
            dgDatos.DataSource = null;
            dgDatos.DataSource = ConexionDB.TraeResultadoEncuestas(ConsultasDB.DevuelveStringConsultaBasicaADB(aux));


            //Calculo total de encuestas
            lblTotal.Text = $"{cantRegistrosTotal}";
            int promedioSueldoTotal = (int)ConsultasDB.PromedioSueldoDeLaConsulta();

            lblPromedioTotal.Text = $"${promedioSueldoTotal.ToString()}";

            //Calculo total por consulta
            lblTotalConsulta.Text = cantegistrosUltimaConsulta.ToString();
            int promedioSueldoConsulta = (int)ConsultasDB.PromedioSueldoDeLaConsulta(aux);

            lblPromedioConsulta.Text = $"${promedioSueldoConsulta.ToString()}";
            lblPorcentaje.Text       = $"{porcentaje}%";

            //Calculo cantidad por genero
            lblCantidadMujeresConsulta.Text = ConsultasDB.CuentaRegistrosDeUnaConsulta(aux, " and SE_IDENTIFICA LIKE 'Mujer'").ToString();
            lblCantidadVaronesConsulta.Text = ConsultasDB.CuentaRegistrosDeUnaConsulta(aux, "and SE_IDENTIFICA LIKE 'Hombre'").ToString();
            lblCantidadOtroConsulta.Text    = ConsultasDB.CuentaRegistrosDeUnaConsulta(aux, "and SE_IDENTIFICA LIKE 'Otro'").ToString();

            //Calculo porcentaje por genero
            lblPorcentajeMujeres.Text = $"{Encuesta.CalculoPorcentaje(ConsultasDB.CuentaRegistrosDeUnaConsulta(aux, " and SE_IDENTIFICA LIKE 'Mujer'"), cantRegistrosTotal).ToString()} %";
            lblPorcentajeVarones.Text = $"{Encuesta.CalculoPorcentaje(ConsultasDB.CuentaRegistrosDeUnaConsulta(aux, " and SE_IDENTIFICA LIKE 'Hombre'"), cantRegistrosTotal).ToString()} %";
            lblPorcentajeOtros.Text   = $"{Encuesta.CalculoPorcentaje(ConsultasDB.CuentaRegistrosDeUnaConsulta(aux, " and SE_IDENTIFICA LIKE 'Otro'"), cantRegistrosTotal).ToString()} %";

            //Calculo sueldo promedio por genero
            mujeres = (int)ConsultasDB.PromedioSueldoDeLaConsulta(aux + " and SE_IDENTIFICA LIKE 'Mujer'");
            lblSueldoPromedioMujeres.Text = $"$ {mujeres}";
            hombres = (int)ConsultasDB.PromedioSueldoDeLaConsulta(aux + " and SE_IDENTIFICA LIKE 'Hombre'");
            lblSueldoPromedioVarones.Text = $"$ {hombres}";
            otros = (int)ConsultasDB.PromedioSueldoDeLaConsulta(aux + " and SE_IDENTIFICA LIKE 'Otro'");
            lblSueldoPromedioOtros.Text = $"$ {otros}";

            //Calculo brecha salarial
            string quienGanaMas = CalculoEstadistica.MayorSueldo(hombres, mujeres, otros);
            int    diferencia1  = 0;
            int    diferencia2  = 0;

            if (quienGanaMas == "Hombres")
            {
                diferencia1            = CalculoEstadistica.CalculoDiferenciaDeMontos(hombres, mujeres);
                diferencia2            = CalculoEstadistica.CalculoDiferenciaDeMontos(hombres, otros);
                lblBrechaSalarial.Text = $"En este caso los varones ganan en promedio  $ {diferencia1} más que las mujeres y $ {diferencia2} más que quienes se identifican con otro género.";
            }

            else if (quienGanaMas == "Mujeres")
            {
                diferencia1            = CalculoEstadistica.CalculoDiferenciaDeMontos(mujeres, hombres);
                diferencia2            = CalculoEstadistica.CalculoDiferenciaDeMontos(mujeres, otros);
                lblBrechaSalarial.Text = $"En este caso las mujeres ganan en promedio  $ {diferencia1} más que los varones y $ {diferencia2} más que quienes se identifican con otro género.";
            }

            else if (quienGanaMas == "Otros")
            {
                diferencia1            = CalculoEstadistica.CalculoDiferenciaDeMontos(otros, hombres);
                diferencia2            = CalculoEstadistica.CalculoDiferenciaDeMontos(otros, mujeres);
                lblBrechaSalarial.Text = $"En este caso quienes se identifican con otro genero ganan $ {diferencia1} más que los varones y $ {diferencia2} que las mujeres.";
            }
            CargarChartBarras(hombres, mujeres, otros);

            consultaActual = aux;
        }