public List <Usuario> getAfiliadosQueCompraronMasBonos(InfoParaListado info)
        {
            List <Usuario> vRetorno = new List <Usuario>();

            this.Connector.Open();
            String query = "";

            if (info.Mes != 0)
            {
                query = "select top 5 u.varNombre as nombre, u.varApellido as apellido, (select count(1) from [INTERNAL_SERVER_ERROR].Afiliado a2 where a2.intIdUsuario = a.intIdUsuario +1 OR a2.intIdUsuario = a.intIdUsuario -1) as tieneIntegrantes" +
                        "from [INTERNAL_SERVER_ERROR].Usuario u inner join [INTERNAL_SERVER_ERROR].Afiliado a on u.intIdUsuario = a.intIdUsuario" +
                        "inner join [INTERNAL_SERVER_ERROR].Bono b on b.intIdAfiliadoCompro = a.intIdUsuario" +
                        "where year(b.datFechaCompra) = " + info.Ano + "and month(b.datFechaCompra) = " + info.Mes +
                        "group by u.varNombre, u.varApellido, a.intIdUsuario" +
                        "order by count(b.intIINTERNAL_SERVER_ERRORno) desc; ";

                query = "select top 25 u.varNombre as nombre, u.varApellido as apellido, 1 as tieneIntegrantes from [INTERNAL_SERVER_ERROR].Usuario u";
            }
            if (info.Mes == 0)
            {
                if (info.Semestre == 1)
                {
                    query = "select top 5 u.varNombre as nombre, u.varApellido as apellido, (select count(1) from [INTERNAL_SERVER_ERROR].Afiliado a2 where a2.intIdUsuario = a.intIdUsuario +1 OR a2.intIdUsuario = a.intIdUsuario -1) as tieneIntegrantes" +
                            "from [INTERNAL_SERVER_ERROR].Usuario u inner join [INTERNAL_SERVER_ERROR].Afiliado a on u.intIdUsuario = a.intIdUsuario" +
                            "inner join [INTERNAL_SERVER_ERROR].Bono b on b.intIdAfiliadoCompro = a.intIdUsuario" +
                            "where year(b.datFechaCompra) = " + info.Ano + "and month(b.datFechaCompra) < 7" +
                            "group by u.varNombre, u.varApellido, a.intIdUsuario" +
                            "order by count(b.intIINTERNAL_SERVER_ERRORno) desc; ";
                }
                if (info.Semestre == 2)
                {
                    query = "select top 5 u.varNombre as nombre, u.varApellido as apellido, (select count(1) from [INTERNAL_SERVER_ERROR].Afiliado a2 where a2.intIdUsuario = a.intIdUsuario +1 OR a2.intIdUsuario = a.intIdUsuario -1) as tieneIntegrantes" +
                            "from [INTERNAL_SERVER_ERROR].Usuario u inner join [INTERNAL_SERVER_ERROR].Afiliado a on u.intIdUsuario = a.intIdUsuario" +
                            "inner join [INTERNAL_SERVER_ERROR].Bono b on b.intIdAfiliadoCompro = a.intIdUsuario" +
                            "where year(b.datFechaCompra) = " + info.Ano + "and month(b.datFechaCompra) > 6" +
                            "group by u.varNombre, u.varApellido, a.intIdUsuario" +
                            "order by count(b.intIINTERNAL_SERVER_ERRORno) desc; ";
                }
            }


            this.Command = new SqlCommand(query, this.Connector);

            SqlDataReader resultado = Command.ExecuteReader();


            while (resultado.Read())
            {
                Usuario user = new Usuario();
                user.Apellido = resultado["apellido"].ToString();
                user.Nombre   = resultado["nombre"].ToString();
                user.CantidadFamiliaresACargo = Int32.Parse(resultado["tieneIntegrantes"].ToString());
                vRetorno.Add(user);
            }


            this.Connector.Close();

            return(vRetorno);
        }
        public List <string> getEspecialidadesMasConsultadas(InfoParaListado info)
        {
            List <string> vRetorno = new List <string>();

            this.Connector.Open();
            String query = "";

            if (info.Mes != 0)
            {
                query = "select top 5 e.varDescripcion as descripcion " +
                        "from [INTERNAL_SERVER_ERROR].Especialidad e inner join [INTERNAL_SERVER_ERROR].Turno t on t.intEspecialidadCodigo = e.intEspecialidadCodigo " +
                        "inner join [INTERNAL_SERVER_ERROR].Asistencia a on a.intIdTurno = t.intIdTurno " +
                        "where year(t.datFechaTurno) =" + info.Ano + " and month(t.datFechaTurno) = " + info.Mes +
                        "group by e.varDescripcion " +
                        "order by count(a.bitAtendido) desc; ";

                query = "select top 5 e.varDescripcion as descripcion  from [INTERNAL_SERVER_ERROR].Especialidad e";
            }
            if (info.Mes == 0)
            {
                if (info.Semestre == 1)
                {
                    query = "select top 5 e.varDescripcion as descripcion " +
                            "from [INTERNAL_SERVER_ERROR].Especialidad e inner join [INTERNAL_SERVER_ERROR].Turno t on t.intEspecialidadCodigo = e.intEspecialidadCodigo " +
                            "inner join [INTERNAL_SERVER_ERROR].Asistencia a on a.intIdTurno = t.intIdTurno " +
                            "where year(t.datFechaTurno) =" + info.Ano + " and month(t.datFechaTurno) < 7 " +
                            "group by e.varDescripcion " +
                            "order by count(a.bitAtendido) desc;";
                }
                else
                {
                    query = "select top 5 e.varDescripcion as descripcion " +
                            "from [INTERNAL_SERVER_ERROR].Especialidad e inner join [INTERNAL_SERVER_ERROR].Turno t on t.intEspecialidadCodigo = e.intEspecialidadCodigo " +
                            "inner join [INTERNAL_SERVER_ERROR].Asistencia a on a.intIdTurno = t.intIdTurno " +
                            "where year(t.datFechaTurno) =" + info.Ano + " and month(t.datFechaTurno) > 6 " +
                            "group by e.varDescripcion " +
                            "order by count(a.bitAtendido) desc; ";
                }
            }

            this.Command = new SqlCommand(query, this.Connector);

            SqlDataReader resultado = Command.ExecuteReader();


            while (resultado.Read())
            {
                vRetorno.Add(resultado["descripcion"].ToString());
            }


            this.Connector.Close();

            return(vRetorno);
        }
Esempio n. 3
0
        private void btnHacerListado_Click_1(object sender, EventArgs e)
        {
            if (todasLasComboBoxesCompletas())
            {
                InfoParaListado info = new InfoParaListado();
                info.Ano      = Int32.Parse(cboAño.Text.ToString());
                info.Semestre = Int32.Parse((cboSemestre.SelectedItem as ComboboxItem).Value.ToString());
                if (this.cboMes.Text != "")
                {
                    info.Mes = Int32.Parse((cboMes.SelectedItem as ComboboxItem).Value.ToString());
                }

                if (cboListado.Text.Equals("Especialidades con más cancelaciones"))
                {
                    ListadoEspecialidadesDao list = new ListadoEspecialidadesDao();
                    this.generarTablaEsp(list.getEspecialidadesMasCanceladas(info));
                    return;
                }

                if (cboListado.Text.Equals("Profecionales más consultados"))
                {
                    if (chequeoPlan())
                    {
                        info.Plan = Int32.Parse((cboPlan.SelectedItem as ComboboxItem).Value.ToString());
                        ListadoUsuarioDao list = new ListadoUsuarioDao();
                        this.generarTablaConProfYEsp(list.getProfesionalesMasConsultados(info));
                        return;
                    }
                    return;
                }

                if (cboListado.Text.Equals("Profesional con menos horas trabajadas"))
                {
                    if (chequeoEspecialidad() && chequeoPlan())
                    {
                        info.Especialidad = Int32.Parse((cboEspecialidad.SelectedItem as ComboboxItem).Value.ToString());
                        info.Plan         = Int32.Parse((cboPlan.SelectedItem as ComboboxItem).Value.ToString());
                        ListadoUsuarioDao list = new ListadoUsuarioDao();
                        this.generarTabla(list.getProfesionalesConMenosHorasTrabajadas(info));
                        return;
                    }
                    return;
                }

                if (cboListado.Text.Equals("Afiliados que más bonos compraron"))
                {
                    ListadoUsuarioDao list = new ListadoUsuarioDao();
                    this.generarTablaConAfiliadoYGFam(list.getAfiliadosQueCompraronMasBonos(info));
                    return;
                }

                if (cboListado.Text.Equals("Especialidades más consultadas"))
                {
                    ListadoEspecialidadesDao list = new ListadoEspecialidadesDao();
                    this.generarTablaEsp(list.getEspecialidadesMasConsultadas(info));
                    return;
                }

                MessageBox.Show("Por favor, chequee que la lista seleccionada sea válida", "Error", MessageBoxButtons.OK);
                return;
            }
        }
        public List <Usuario> getProfesionalesConMenosHorasTrabajadas(InfoParaListado info)
        {
            List <Usuario> vRetorno = new List <Usuario>();

            this.Connector.Open();
            String query = "";

            if (info.Mes != 0)
            {
                query = "select top 5 u.varApellido as apellido, u.varNombre as nombre, sum(DATEDIFF(minute, a.timeHoraInicio, a.timeHoraFin)) as horasTrabajadas" +
                        "from [INTERNAL_SERVER_ERROR].Usuario u inner join [INTERNAL_SERVER_ERROR].Profesional p on p.intIdUsuario = u.intIdUsuario" +
                        "inner join [INTERNAL_SERVER_ERROR].ProfesionalXEspecialidad pxe on pxe.intIdUsuario = p.intIdUsuario" +
                        "inner join [INTERNAL_SERVER_ERROR].Especialidad e on e.intEspecialidadCodigo = pxe.intEspecialidadCodigo" +
                        "inner join [INTERNAL_SERVER_ERROR].Agenda a on a.intIdProfesional = p.intIdUsuario" +
                        "inner join [INTERNAL_SERVER_ERROR].Turno t on t.intIdDoctor = p.intIdUsuario" +
                        "inner join [INTERNAL_SERVER_ERROR].Afiliado afi on afi.intIdUsuario = t.intIdPaciente" +
                        "where afi.intCodigoPlan = " + info.Plan + " and e.varDescripcion = " + info.Especialidad + " AND YEAR(t.datFechaTurno) = " + info.Ano + "AND MONTH(t.datFechaTurno) = " + info.Mes +
                        "group by u.varApellido, u.varNombre" +
                        "order by horasTrabajadas asc;";

                query = "select top 25 u.varNombre as nombre, u.varApellido as apellido from [INTERNAL_SERVER_ERROR].Usuario u";
            }
            if (info.Mes == 0)
            {
                if (info.Semestre == 1)
                {
                    query = "select top 5 u.varApellido as apellido, u.varNombre as nombre, sum(DATEDIFF(minute, a.timeHoraInicio, a.timeHoraFin)) as horasTrabajadas" +
                            "from [INTERNAL_SERVER_ERROR].Usuario u inner join [INTERNAL_SERVER_ERROR].Profesional p on p.intIdUsuario = u.intIdUsuario" +
                            "inner join [INTERNAL_SERVER_ERROR].ProfesionalXEspecialidad pxe on pxe.intIdUsuario = p.intIdUsuario" +
                            "inner join [INTERNAL_SERVER_ERROR].Especialidad e on e.intEspecialidadCodigo = pxe.intEspecialidadCodigo" +
                            "inner join [INTERNAL_SERVER_ERROR].Agenda a on a.intIdProfesional = p.intIdUsuario" +
                            "inner join [INTERNAL_SERVER_ERROR].Turno t on t.intIdDoctor = p.intIdUsuario" +
                            "inner join [INTERNAL_SERVER_ERROR].Afiliado afi on afi.intIdUsuario = t.intIdPaciente" +
                            "where afi.intCodigoPlan = " + info.Plan + " and e.varDescripcion = " + info.Especialidad + " AND YEAR(t.datFechaTurno) = " + info.Ano + "AND MONTH(t.datFechaTurno) < 7" +
                            "group by u.varApellido, u.varNombre" +
                            "order by horasTrabajadas asc;";
                }
                if (info.Semestre == 2)
                {
                    query = "select top 5 u.varApellido as apellido, u.varNombre as nombre, sum(DATEDIFF(minute, a.timeHoraInicio, a.timeHoraFin)) as horasTrabajadas" +
                            "from [INTERNAL_SERVER_ERROR].Usuario u inner join [INTERNAL_SERVER_ERROR].Profesional p on p.intIdUsuario = u.intIdUsuario" +
                            "inner join [INTERNAL_SERVER_ERROR].ProfesionalXEspecialidad pxe on pxe.intIdUsuario = p.intIdUsuario" +
                            "inner join [INTERNAL_SERVER_ERROR].Especialidad e on e.intEspecialidadCodigo = pxe.intEspecialidadCodigo" +
                            "inner join [INTERNAL_SERVER_ERROR].Agenda a on a.intIdProfesional = p.intIdUsuario" +
                            "inner join [INTERNAL_SERVER_ERROR].Turno t on t.intIdDoctor = p.intIdUsuario" +
                            "inner join [INTERNAL_SERVER_ERROR].Afiliado afi on afi.intIdUsuario = t.intIdPaciente" +
                            "where afi.intCodigoPlan = " + info.Plan + " and e.varDescripcion = " + info.Especialidad + " AND YEAR(t.datFechaTurno) = " + info.Ano + "AND MONTH(t.datFechaTurno) > 6" +
                            "group by u.varApellido, u.varNombre" +
                            "order by horasTrabajadas asc;";
                }
            }

            this.Command = new SqlCommand(query, this.Connector);

            SqlDataReader resultado = Command.ExecuteReader();


            while (resultado.Read())
            {
                Usuario user = new Usuario();
                user.Apellido = resultado["apellido"].ToString();
                user.Nombre   = resultado["nombre"].ToString();
                vRetorno.Add(user);
            }


            this.Connector.Close();

            return(vRetorno);
        }
        public List <Usuario> getProfesionalesMasConsultados(InfoParaListado info)
        {
            List <Usuario> vRetorno = new List <Usuario>();

            this.Connector.Open();

            String query = "";

            if (info.Mes != 0)
            {
                query = "select top 5 u.varNombre as nombre, u.varApellido as apellido, t.intEspecialidadCodigo as especialidad, count(t.bitEstado) as atendidos" +
                        "from [INTERNAL_SERVER_ERROR].Usuario as u inner join [INTERNAL_SERVER_ERROR].Turno as t on u.intIdUsuario = t.intIdDoctor AND YEAR(t.datFechaTurno) =" + info.Ano + "AND MONTH(t.datFechaTurno) = " + info.Mes +
                        "inner join [INTERNAL_SERVER_ERROR].Asistencia as a on a.intIdTurno = t.intIdTurno" +
                        "inner join [INTERNAL_SERVER_ERROR].Afiliado as afi on afi.intIdUsuario = u.intIdUsuario" +
                        "where a.bitAtendido = 1 AND afi.intCodigoPlan =" + info.Plan +
                        "group by u.intIdUsuario, t.intEspecialidadCodigo , u.varNombre, u.varApellido " +
                        "order by atendidos desc;";
                query = "select top 25 u.varNombre as nombre, u.varApellido as apellido, 'asd' as especialidad from [INTERNAL_SERVER_ERROR].Usuario u";
            }
            if (info.Mes == 0)
            {
                if (info.Semestre == 1)
                {
                    query = "select top 5 u.varNombre as nombre, u.varApellido as apellido, t.intEspecialidadCodigo as especialidad, count(t.bitEstado) as atendidos" +
                            "from [INTERNAL_SERVER_ERROR].Usuario as u inner join [INTERNAL_SERVER_ERROR].Turno as t on u.intIdUsuario = t.intIdDoctor AND YEAR(t.datFechaTurno) =" + info.Ano + "AND MONTH(t.datFechaTurno) < 7 " +
                            "inner join [INTERNAL_SERVER_ERROR].Asistencia as a on a.intIdTurno = t.intIdTurno" +
                            "inner join [INTERNAL_SERVER_ERROR].Afiliado as afi on afi.intIdUsuario = u.intIdUsuario" +
                            "where a.bitAtendido = 1 AND afi.intCodigoPlan =" + info.Plan +
                            "group by u.intIdUsuario, t.intEspecialidadCodigo  , u.varNombre, u.varApellido" +
                            "order by atendidos desc;";
                }
                else
                {
                    query = "select top 5 u.varNombre as nombre, u.varApellido as apellido, t.intEspecialidadCodigo as especialidad, count(t.bitEstado) as atendidos" +
                            "from [INTERNAL_SERVER_ERROR].Usuario as u inner join [INTERNAL_SERVER_ERROR].Turno as t on u.intIdUsuario = t.intIdDoctor AND YEAR(t.datFechaTurno) =" + info.Ano + "AND MONTH(t.datFechaTurno) > 6 " +
                            "inner join [INTERNAL_SERVER_ERROR].Asistencia as a on a.intIdTurno = t.intIdTurno" +
                            "inner join [INTERNAL_SERVER_ERROR].Afiliado as afi on afi.intIdUsuario = u.intIdUsuario" +
                            "where a.bitAtendido = 1 AND afi.intCodigoPlan =" + info.Plan +
                            "group by u.intIdUsuario, t.intEspecialidadCodigo , u.varNombre, u.varApellido" +
                            "order by atendidos desc;";
                }
            }


            this.Command = new SqlCommand(query, this.Connector);

            SqlDataReader resultado = Command.ExecuteReader();


            while (resultado.Read())
            {
                Usuario usuario = new Usuario();
                usuario.Nombre      = resultado["nombre"].ToString();
                usuario.Apellido    = resultado["apellido"].ToString();
                usuario.EstadoCivil = resultado["especialidad"].ToString();
                vRetorno.Add(usuario);
            }


            this.Connector.Close();

            return(vRetorno);
        }