public PagedResponse <DocumentoResponse> GetDocumentosGestionInterna(DocumentoFilter filters, DocumentoOptions options) { var _where = BuildFilters.BuildFiltersDocumento(filters); var movimientos = _context.Query <Modelo.movimiento_documento>(); var persona = _context.Query <Modelo.v_persona>().Select(x => new { x.ID }); Expression <Func <Modelo.documento, bool> > _custom = x => (movimientos.Any(m => (filters.mvEnviado == null || m.enviado == filters.mvEnviado) && (filters.mvDerivado == null || m.derivado == filters.mvDerivado) && (filters.mvFinalizado == null || m.finalizado == filters.mvFinalizado) && m.ID_DEPENDENCIA_DESTINO == filters.coddep && (filters.isDocumentoRecibido == null || ((m.AUDIT_REC != null) == filters.isDocumentoRecibido)) && (filters.estado_documento_interno != (int)ESTADODOC_INTERNO.FINALIZADO || m.finalizado == 1) && (filters.estado_documento_interno != (int)ESTADODOC_INTERNO.DELEGADO || m.codigo_trabajador != null) && m.AUDIT_MOD >= Convert.ToDateTime("01/01/2014") && x.ID_DOCUMENTO == m.ID_DOCUMENTO )); _where = _where.AndAlso(_custom); var query = _context.Query <Modelo.documento>(); query = BuildOptionsDocumento(query, options); query = query.Where(_where).OrderByDescending(x => x.AUDITMOD).AsQueryable(); var page = query.PagedResponse <Modelo.documento, DocumentoResponse>(filters, _mapper); return(page); }
public PagedResponse <DocumentoIngresadoResponse> GetDocumentosIngresadosMesaPartes(DocumentoIngresadoFilter filters) { var where = BuildFilters.BuildFiltersDocumentosIngresados(filters); var query = _context.Query <Modelo.vw_documentos_sitradoc_digitalizacion>().Where(where); query = query.OrderByDescending(x => x.id_documento); var page = query.PagedResponse <Modelo.vw_documentos_sitradoc_digitalizacion, DocumentoIngresadoResponse>(filters, _mapper); page.Data.ToList().ForEach(x => { var dep = x.coddep == null ? null : _context.Query <Modelo.vw_dat_dependencia>().FirstOrDefault(d => d.CODIGO_DEPENDENCIA == x.coddep.Value); x.dependencia = _mapper.Map <Modelo.vw_dat_dependencia, DependenciaResponse>(dep); x.esTupa = _context.Query <Modelo.documento>().Any(doc => doc.ID_DOCUMENTO == x.id_documento && doc.ID_TUP != null); }); return(page); }
public PagedResponse <DocumentoResponse> GetDocumentosMesaPartes(DocumentoFilter filters, DocumentoOptions options) { var _where = BuildFilters.BuildFiltersDocumento(filters); var personas = _context.Query <Modelo.v_persona>().Select(x => new { x.ID, razon_social_format = (x.NOMBRES + " " + x.APELLIDOS + " " + x.RAZON_SOCIAL).Trim() }); var trabajadores = _context.Query <Modelo.vw_dat_trabajador>().Select(x => new { x.CODIGO_DEPENDENCIA, x.EMAIL }); var dependencias_consulta = new int[] { DEPENDENCIA_PRODUCE.OGACI, DEPENDENCIA_PRODUCE.OGDA, DEPENDENCIA_PRODUCE.OACI, DEPENDENCIA_PRODUCE.OACI_2 }; var documentos = _context.Query <Modelo.documento>().Select(d => new { d.ID_DOCUMENTO, d.ID_CLASE_DOCUMENTO_INTERNO, d.INDICATIVO_OFICIO }); var movimientos = _context.Query <Modelo.movimiento_documento>().Select(m => new { m.ID_DOCUMENTO, m.ID_OFICIO, m.ID_DEPENDENCIA_DESTINO }); var resoluciones = _context.Query <Modelo.resolucion>().Select(r => new { r.id_documento, r.id_tipo_resolucion, r.nro_resol }); Expression <Func <Modelo.documento, bool> > _custom = x => (string.IsNullOrEmpty(filters.razon_socialClean) || personas.Any(p => p.razon_social_format.Trim().Contains(filters.razon_socialClean) && x.ID_PERSONA == p.ID)) && (filters.id_clase_documento_hijo == null || string.IsNullOrEmpty(filters.indicativo_oficio_hijo) || movimientos.Any(m => m.ID_DOCUMENTO == x.ID_DOCUMENTO && documentos.Any(d => d.ID_DOCUMENTO == m.ID_OFICIO && d.ID_CLASE_DOCUMENTO_INTERNO == filters.id_clase_documento_hijo && d.INDICATIVO_OFICIO.Contains(filters.indicativo_oficio_hijo) ) ) ) && (filters.oficina_derivada == null || movimientos.Any(m => x.ID_DOCUMENTO == m.ID_DOCUMENTO && m.ID_OFICIO == null && m.ID_DEPENDENCIA_DESTINO == filters.oficina_derivada.Value ) ) && (filters.id_tipo_resolucion == null || string.IsNullOrEmpty(filters.numero_resolucion) || resoluciones.Any(r => r.id_documento == x.ID_DOCUMENTO && r.id_tipo_resolucion == filters.id_tipo_resolucion && r.nro_resol.Contains(filters.numero_resolucion))) && (trabajadores.Any(t => t.EMAIL == x.USUARIO && dependencias_consulta.Contains(t.CODIGO_DEPENDENCIA))); _where = _where.AndAlso(_custom); var query = _context.Query <Modelo.documento>(); query = BuildOptionsDocumento(query, options); query = query.Where(_where).OrderByDescending(x => x.AUDITMOD).AsQueryable(); query = (from a in query join b in _context.Query <Modelo.documento_cont>() on a.ID_DOCUMENTO equals b.ID_DOCUMENTO into docs from b in docs.DefaultIfEmpty() select a.setDocumentoCont(b)); var page = query.PagedResponse <Modelo.documento, DocumentoResponse>(filters, _mapper); page.Data.ToList().ForEach(x => { var mov_inicial = _context.Query <Modelo.movimiento_documento>() .Include(m => m.dependencia_destino) .FirstOrDefault(m => m.ID_DOCUMENTO == x.id_documento && m.ID_OFICIO == null); if (mov_inicial != null) { x.aceptado_dependencia_inicial = mov_inicial.AUDIT_REC != null; x.dependencia_inicial = _mapper.Map <Modelo.vw_dat_dependencia, DependenciaResponse>(mov_inicial.dependencia_destino); } var mov_actual = _context.Query <Modelo.movimiento_documento>() .Include(m => m.dependencia_destino).OrderByDescending(m => m.ID_MOVIMIENTO_DOCUMENTO) .FirstOrDefault(m => m.ID_DOCUMENTO == x.id_documento); if (mov_actual != null) { x.dependencia_actual = _mapper.Map <Modelo.vw_dat_dependencia, DependenciaResponse>(mov_actual.dependencia_destino); } }); return(page); }