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); }