Beispiel #1
0
        public List<vESTPREV_CONSULTA> GetFiltros(CONSULTA_EP_DTO Filtros)
        {
            using (ctx = new Entities())
            {
                List<vESTPREV> rEstPrev = new List<vESTPREV>();
                List<ESTPREV> estprev;
                if ((Filtros.SIPRODUCTO == false) && (Filtros.SINUMEROESTUDIOPREVIO == false) && (Filtros.SIMODALIDAD == false) && (Filtros.SIESTADO == false) && (Filtros.SIDEPENDENCIA == false) && (Filtros.SIPROYECTO == false) && (Filtros.SIFECHADESDE == false) && (Filtros.SIFECHAHASTA == false) && (Filtros.SICUANTIA == false) && (Filtros.SIOBJETO == false))
                {
                    estprev = ctx.ESTPREV.ToList();
                }
                else
                {
                    if (Filtros.SINUMEROESTUDIOPREVIO) estprev = ctx.ESTPREV.Where(t => t.CODIGO_EP == Filtros.NUMEROESTUDIOPREVIO).ToList();
                    else
                    {
                        bool PrimerFiltro = false;
                        //string query = "select * from estprev, ep_proyectos, ep_unspsc ";
                        string query = "select * from estprev ";

                        // Filtro de proyectos
                        if (Filtros.SIPROYECTO)
                        {
                            if (PrimerFiltro) query = query + " and ";
                            else query = query + " where ";
                            //query = query + " estprev.id = ep_proyectos.id_ep and ep_proyectos.COD_PRO = '" + Filtros.PROYECTO + "' ";
                            query = query + " estprev.id in (select ep_proyectos.id_ep from ep_proyectos where ep_proyectos.cod_pro = '" + Filtros.PROYECTO + "' ) ";
                            PrimerFiltro = true;
                        }

                        // Filtro de productos o servicios por codigos UNSPSC
                        if (Filtros.SIPRODUCTO)
                        {
                            if (PrimerFiltro) query = query + " and ";
                            else query = query + " where ";
                            //query = query + " estprev.id = ep_unspsc.ID_EP and ep_unspsc.UNSPSC = '" + Filtros.PRODUCTO + "' ";
                            query = query + " estprev.id in (select ep_unspsc.id_ep from ep_unspsc where ep_unspsc.UNSPSC = '" + Filtros.PRODUCTO + "' ) ";
                            PrimerFiltro = true;
                        }

                        // Filtro de modalidades
                        if (Filtros.SIMODALIDAD)
                        {
                            if (PrimerFiltro) query = query + " and ";
                            else query = query + " where ";
                            query = query + " MOD_SEL_EP = '" + Filtros.MODALIDAD + "' ";
                            PrimerFiltro = true;
                        }

                        // Filtro de dependencias
                        if (Filtros.SIDEPENDENCIA)
                        {
                            if (PrimerFiltro) query = query + " and ";
                            else query = query + " where ";
                            query = query + " DEP_NEC_EP = '" + Filtros.DEPENDENCIA + "' ";
                            PrimerFiltro = true;
                        }

                        // Filtro de fecha inicio  de elaboracion
                        if (Filtros.SIFECHADESDE)
                        {
                            if (PrimerFiltro) query = query + " and ";
                            else query = query + " where ";
                            query = query + " FEC_ELA_EP >= to_date('" + Filtros.FECHADESDE + "','yyyy/mm/dd') ";
                            PrimerFiltro = true;
                        }

                        // Filtro de fecha final de elaboracion
                        if (Filtros.SIFECHAHASTA)
                        {
                            if (PrimerFiltro) query = query + " and ";
                            else query = query + " where ";
                            query = query + " FEC_ELA_EP <= to_date('" + Filtros.FECHAHASTA + "','yyyy/mm/dd') ";
                            PrimerFiltro = true;
                        }

                        // Filtro de estado
                        if (Filtros.SIESTADO)
                        {
                            if (PrimerFiltro) query = query + " and ";
                            else query = query + " where ";
                            query = query + " EST_EP = '" + Filtros.ESTADO + "' ";
                            PrimerFiltro = true;
                        }

                        // Filtro de cuantia
                        if (Filtros.SICUANTIA)
                        {
                            if (PrimerFiltro) query = query + " and ";
                            else query = query + " where ";
                            if (Filtros.CUANTIA == "1") query = query + " VAL_ENT_EP >= '0' and VAL_ENT_EP <= '100000000' ";
                            if (Filtros.CUANTIA == "2") query = query + " VAL_ENT_EP >= '100000001' and VAL_ENT_EP <= '300000000' ";
                            if (Filtros.CUANTIA == "3") query = query + " VAL_ENT_EP >= '300000001' and VAL_ENT_EP <= '500000000' ";
                            if (Filtros.CUANTIA == "4") query = query + " VAL_ENT_EP >= '500000001' and VAL_ENT_EP <= '1000000000' ";
                            if (Filtros.CUANTIA == "5") query = query + " VAL_ENT_EP >= '1000000001' ";
                            PrimerFiltro = true;
                        }

                        // Filtro de objeto
                        if (Filtros.SIOBJETO)
                        {
                            if (PrimerFiltro) query = query + " and ";
                            else query = query + " where ";
                            query = query + " upper(OBJE_EP) like  upper('%" + Filtros.OBJETO + "%') ";
                            PrimerFiltro = true;
                        }

                        estprev = ctx.ESTPREV.SqlQuery(query).ToList();
                        //estprev = ctx.ESTPREV.SqlQuery("select * from estprev, ep_proyectos, ep_unspsc where estprev.id = ep_proyectos.id_ep and ep_proyectos.COD_PRO = '10-820175-00066' and estprev.id = ep_unspsc.ID_EP and ep_unspsc.UNSPSC = '10101501' and MOD_SEL_EP = 'TP01' and DEP_NEC_EP = '06' and FEC_ELA_EP >= to_date('01-02-2015','dd/mm/yyyy') and FEC_ELA_EP <= to_date('18-02-2015','dd/mm/yyyy') and EST_EP = 'EL' and VAL_ENT_EP >= '0' and VAL_ENT_EP <= '100000000' and CODIGO_EP = '150201-015' and upper(OBJE_EP) like  upper('%tUaL%')").ToList();
                    }
                }
                Mapper.Map(estprev,rEstPrev);
                rEstPrev = QuitarEstPrevRepetidos(rEstPrev);
                List<vESTPREV_CONSULTA> resEstPrev = new List<vESTPREV_CONSULTA>();
                Mapper.Map(rEstPrev, resEstPrev);
                return resEstPrev;
            }
        }
 public List<vESTPREV_CONSULTA> GetFiltros(CONSULTA_EP_DTO Reg)
 {
     EstPrevBLL mEstPrev = new EstPrevBLL();
     return mEstPrev.GetFiltros(Reg);
 }