示例#1
0
        public async Task <Documento> GetById(DocumentoFilter model)
        {
            var _documento = await this.SingleOrDefaultAsync(this.GetAll(this.DataAgregation(model))
                                                             .Where(_ => _.DocumentoId == model.DocumentoId));

            return(_documento);
        }
示例#2
0
        public PagedResponse <DocumentoResponse> SearchMesaPartes([FromBody] DocumentoFilter filtro, [FromQuery] string related)
        {
            filtro.id_tipos_documento = new int?[] { 1, 2 };
            var options = buildDocumentoOptions(related);

            return(_documentoAplicacion.GetDocumentosMesaPartes(filtro, options));
        }
        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);
        }
示例#4
0
        public PagedResponse <DocumentoResponse> SearchGestionInterna([FromBody] DocumentoFilter filtro, [FromQuery] string related)
        {
            filtro.id_tipos_documento = null;
            if (filtro.tipo_hoja_tramite == "E")
            {
                filtro.id_tipos_documento = new int?[] { 1, 2 }
            }
            ;
            if (filtro.tipo_hoja_tramite == "I")
            {
                filtro.id_tipos_documento = new int?[] { 3, 4, 5 }
            }
            ;
            switch (filtro.estado_documento_interno)
            {
            case (int)ESTADODOC_INTERNO.POR_ACEPTAR:
                filtro.mvEnviado = 1; filtro.mvDerivado = 0; filtro.mvFinalizado = 0; filtro.isDocumentoRecibido = false;
                break;

            case (int)ESTADODOC_INTERNO.ACEPTADO:
                filtro.mvEnviado = 1; filtro.mvDerivado = 0; filtro.mvFinalizado = 0; filtro.isDocumentoRecibido = true;
                break;

            default:
                break;
            }
            var options = buildDocumentoOptions(related);

            return(_documentoAplicacion.GetDocumentosGestionInterna(filtro, options));
        }
        public IActionResult Page([FromBody] DocumentoFilter filters)
        {
            var usuario = GetUser();

            filters.coddep = usuario.IdDependencia;
            var results = _documentoConsulta.SearchGestionInterna(filters, "estado,persona,hoja_tramite,movimientos");

            return(_Response(results));
        }
示例#6
0
        public async Task <dynamic> GetDataCustom(DocumentoFilter filters)
        {
            var querybase = await this.ToListAsync(this.GetBySimplefilters(filters).Select(_ => new
            {
                Id = _.DocumentoId,
            }));

            return(querybase);
        }
示例#7
0
        public IQueryable <Documento> GetBySimplefilters(DocumentoFilter filters)
        {
            var querybase = this.GetAll(this.DataAgregation(filters))
                            .WithBasicFilters(filters)
                            .WithCustomFilters(filters)
                            .OrderByDomain(filters)
                            .OrderByProperty(filters);

            return(querybase);
        }
示例#8
0
 public CommandResponse <DocumentoResponse> GetDocFromHojaTramite([FromBody] DocumentoFilter filtro)
 {
     return(this.TryCatch(() =>
     {
         var id = _documentoAplicacion.GetDocumentoIdFromHojaTramite(filtro);
         var options = buildDocumentoOptions("");
         var documento = id == 0 ? new DocumentoResponse() : _documentoAplicacion.GetDocumentoComun(id, options);
         return _Response(data: documento);
     }));
 }
        public PagedResponse <DocumentoResponse> SearchGestionInterna(DocumentoFilter filters, string related = null)
        {
            var queryString = "";

            if (!string.IsNullOrEmpty(related))
            {
                queryString += $"?related={related}";
            }
            var body = this.GetJsonParameters(filters);

            return(this.CallWebApi <PagedResponse <DocumentoResponse> >(HttpMethod.Get, $"{_url}/search/gestion-interna{queryString}", body));
        }
示例#10
0
        public async Task <IActionResult> Get([FromQuery] DocumentoFilter filters)
        {
            var result = new HttpResult <DocumentoDto>(this._logger);

            try
            {
                var searchResult = await this._app.GetByFilters(filters);

                return(result.ReturnCustomResponse(this._app, searchResult, filters));
            }
            catch (Exception ex)
            {
                return(result.ReturnCustomException(ex, "Target.Pendencias - Documento", filters));
            }
        }
示例#11
0
        public async Task <IActionResult> Get(int id, [FromQuery] DocumentoFilter filters)
        {
            var result = new HttpResult <DocumentoDto>(this._logger);

            try
            {
                filters.DocumentoId = id;
                var returnModel = await this._app.GetOne(filters);

                return(result.ReturnCustomResponse(this._app, returnModel));
            }
            catch (Exception ex)
            {
                return(result.ReturnCustomException(ex, "Target.Pendencias - Documento", id));
            }
        }
        public int GetDocumentoIdFromHojaTramite(DocumentoFilter filtro)
        {
            var query            = _context.Query <Modelo.documento>();
            var queryContInterno = _context.Query <Modelo.dat_contador_interno>();
            int idDocumento      = 0;

            if (filtro.tipo_hoja_tramite == "I")
            {
                queryContInterno = queryContInterno.Where(x => $"{String.Format("{0:00000000}", x.contador)}-{x.fecha_registro.Year}" == filtro.num_tram_documentario);
                idDocumento      = queryContInterno.Count() == 0 ? 0 : queryContInterno.FirstOrDefault().id_documento;
            }
            if (filtro.tipo_hoja_tramite == "E")
            {
                query       = query.Where(x => x.NUM_TRAM_DOCUMENTARIO == filtro.num_tram_documentario);
                idDocumento = query.Count() == 0 ? 0 : query.FirstOrDefault().ID_DOCUMENTO;
            }
            return(idDocumento);
        }
示例#13
0
        public async Task <IActionResult> Get([FromQuery] DocumentoFilter filters)
        {
            var result = new HttpResult <dynamic>(this._logger);

            try
            {
                if (filters.FilterBehavior == FilterBehavior.GetDataItem)
                {
                    var searchResult = await this._rep.GetDataItem(filters);

                    return(result.ReturnCustomResponse(searchResult, filters));
                }

                if (filters.FilterBehavior == FilterBehavior.GetDataCustom)
                {
                    var searchResult = await this._rep.GetDataCustom(filters);

                    return(result.ReturnCustomResponse(searchResult, filters));
                }

                if (filters.FilterBehavior == FilterBehavior.GetDataListCustom)
                {
                    var searchResult = await this._rep.GetDataListCustom(filters);

                    return(result.ReturnCustomResponse(searchResult, filters));
                }

                if (filters.FilterBehavior == FilterBehavior.Export)
                {
                    var searchResult = await this._rep.GetDataListCustom(filters);

                    var export = new ExportExcelCustom <dynamic>(filters);
                    var file   = export.ExportFile(this.Response, searchResult, "Documento");
                    return(File(file, export.ContentTypeExcel(), export.GetFileName()));
                }

                throw new InvalidOperationException("invalid FilterBehavior");
            }
            catch (Exception ex)
            {
                return(result.ReturnCustomException(ex, "Target.Pendencias - Documento", filters));
            }
        }
示例#14
0
 public virtual async Task <Documento> GetOne(DocumentoFilter filters)
 {
     return(await this._rep.GetById(filters));
 }
示例#15
0
 public PagedResponse <DocumentoResponse> SearchGeneral([FromBody] DocumentoFilter filtro)
 {
     return(null);
 }
示例#16
0
        public static Expression <Func <Modelo.documento, bool> > BuildFiltersDocumento(DocumentoFilter filters)
        {
            Expression <Func <Modelo.documento, bool> > _where = x => x.ID_DOCUMENTO > 14784048 &&

                                                                 (x.ID_ESTADO_DOCUMENTO != ESTADO_DOCUMENTO.ELIMINADO) &&

                                                                 (string.IsNullOrEmpty(filters.indicativo_oficioClean) || x.INDICATIVO_OFICIO.Contains(filters.indicativo_oficioClean.Trim())) &&

                                                                 (string.IsNullOrEmpty(filters.num_tram_documentarioClean) || x.NUM_TRAM_DOCUMENTARIO.Contains(filters.num_tram_documentarioClean.Trim())) &&

                                                                 (filters.id_tipos_documento == null || filters.id_tipos_documento.Contains(x.ID_TIPO_DOCUMENTO)) &&

                                                                 (filters.id_clases_documento == null || filters.id_clases_documento.Contains(x.ID_CLASE_DOCUMENTO_INTERNO)) &&

                                                                 (filters.id_tupas == null || filters.id_tupas.Contains(x.ID_TUP)) &&

                                                                 (filters.id_estados_documento == null || filters.id_estados_documento.Contains(x.ID_ESTADO_DOCUMENTO)) &&

                                                                 (string.IsNullOrEmpty(filters.asuntoClean) || x.ASUNTO.Contains(filters.asuntoClean)) &&

                                                                 (filters.fecha_registro_inicio == null || x.AUDITMOD >= filters.fecha_registro_inicio.Value.Date) &&

                                                                 (filters.fecha_registro_fin == null || x.AUDITMOD < filters.fecha_registro_fin.Value.Date.AddDays(1));

            return(_where);
        }
        public IActionResult GetIdFromHojaTramite([FromBody] DocumentoFilter filters)
        {
            var results = _documentoConsulta.GetDocFromHojaTramite(filters);

            return(_Response(results));
        }
        public static IQueryable <Documento> WithBasicFilters(this IQueryable <Documento> queryBase, DocumentoFilter filters)
        {
            var queryFilter = queryBase;

            if (filters.DocumentoId.IsSent())
            {
                queryFilter = queryFilter.Where(_ => _.DocumentoId == filters.DocumentoId);
            }
            if (filters.Arquivo.IsSent())
            {
                queryFilter = queryFilter.Where(_ => _.Arquivo.Contains(filters.Arquivo));
            }
            if (filters.ext.IsSent())
            {
                queryFilter = queryFilter.Where(_ => _.ext.Contains(filters.ext));
            }
            if (filters.Tags.IsSent())
            {
                queryFilter = queryFilter.Where(_ => _.Tags.Contains(filters.Tags));
            }
            if (filters.UserCreateId.IsSent())
            {
                queryFilter = queryFilter.Where(_ => _.UserCreateId == filters.UserCreateId);
            }
            if (filters.UserCreateDateStart.IsSent())
            {
                queryFilter = queryFilter.Where(_ => _.UserCreateDate >= filters.UserCreateDateStart);
            }
            if (filters.UserCreateDateEnd.IsSent())
            {
                filters.UserCreateDateEnd = filters.UserCreateDateEnd.AddDays(1).AddMilliseconds(-1);
                queryFilter = queryFilter.Where(_ => _.UserCreateDate <= filters.UserCreateDateEnd);
            }

            if (filters.UserAlterId.IsSent())
            {
                queryFilter = queryFilter.Where(_ => _.UserAlterId != null && _.UserAlterId.Value == filters.UserAlterId);
            }
            if (filters.UserAlterDateStart.IsSent())
            {
                queryFilter = queryFilter.Where(_ => _.UserAlterDate != null && _.UserAlterDate.Value >= filters.UserAlterDateStart.Value);
            }
            if (filters.UserAlterDateEnd.IsSent())
            {
                filters.UserAlterDateEnd = filters.UserAlterDateEnd.Value.AddDays(1).AddMilliseconds(-1);
                queryFilter = queryFilter.Where(_ => _.UserAlterDate != null && _.UserAlterDate.Value <= filters.UserAlterDateEnd);
            }



            return(queryFilter);
        }
        public IActionResult Page([FromBody] DocumentoFilter filters)
        {
            var results = _documentoConsulta.SearchMesaPartes(filters, "estado,persona");

            return(_Response(results));
        }
 public static IQueryable <Documento> OrderByDomain(this IQueryable <Documento> queryBase, DocumentoFilter filters)
 {
     return(queryBase.OrderBy(_ => _.DocumentoId));
 }
示例#21
0
        public virtual Task <PaginateResult <Documento> > GetByFiltersPaging(DocumentoFilter filters)
        {
            var queryBase = this._rep.GetBySimplefilters(filters);

            return(this._rep.PagingAndDefineFields(filters, queryBase));
        }
示例#22
0
        public virtual async Task <IEnumerable <Documento> > GetByFilters(DocumentoFilter filters)
        {
            var queryBase = this._rep.GetBySimplefilters(filters);

            return(await this._rep.ToListAsync(queryBase));
        }
        public CommandResponse <DocumentoResponse> GetDocFromHojaTramite(DocumentoFilter filters)
        {
            var body = this.GetJsonParameters(filters);

            return(this.CallWebApi <CommandResponse <DocumentoResponse> >(HttpMethod.Get, $"{_url}/search/gestion-interna/GetDocFromHojaTramite", body));
        }
示例#24
0
        public static IQueryable <Documento> WithCustomFilters(this IQueryable <Documento> queryBase, DocumentoFilter filters)
        {
            var queryFilter = queryBase;


            return(queryFilter);
        }
        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);
        }