Ejemplo n.º 1
0
        public ActionResult PesquisarOrcamentos(OrcamentoPesquisaFiltro filtro)
        {
            int totalRegistros = 0;

            if (string.IsNullOrEmpty(filtro.OrderBy))
            {
                filtro.OrderBy = "";
            }

            List <OrcamentoDTO> result = orcamentoAppService.PesquisarOrcamentosPeloFiltro(filtro, out totalRegistros);

            if (result.Any())
            {
                var listaViewModel = CreateListaViewModel(filtro, totalRegistros, result);
                return(PartialView("ListaPesquisaPartial", listaViewModel));
            }
            return(PartialView("_EmptyListPartial"));
        }
Ejemplo n.º 2
0
        public List <OrcamentoDTO> PesquisarOrcamentosPeloFiltro(OrcamentoPesquisaFiltro filtro, out int totalRegistros)
        {
            var specification = (Specification <Domain.Entity.Orcamento.Orcamento>) new TrueSpecification <Domain.Entity.Orcamento.Orcamento>();
            int?inicio;
            int?fim;

            specification &= OrcamentoSpecification.MatchingEmpresa(filtro.EmpresaId);
            specification &= OrcamentoSpecification.MatchingObra(filtro.ObraId);

            bool EhTipoSelecaoContem    = filtro.TipoSelecao == TipoPesquisa.Contem;
            bool EhTipoSelecaoIntervalo = filtro.TipoSelecao == TipoPesquisa.Intervalo;

            switch (filtro.Campo)
            {
            case "sequencial":
                if (EhTipoSelecaoIntervalo)
                {
                    inicio         = !string.IsNullOrEmpty(filtro.TextoInicio) ? Convert.ToInt32(filtro.TextoInicio) : (int?)null;
                    fim            = !string.IsNullOrEmpty(filtro.TextoFim) ? Convert.ToInt32(filtro.TextoFim) : (int?)null;
                    specification &= OrcamentoSpecification.SequencialNoIntervalo(inicio, fim);
                }
                break;

            case "descricao":
                specification &= EhTipoSelecaoContem ? OrcamentoSpecification.DescricaoContem(filtro.TextoInicio)
                        : OrcamentoSpecification.DescricaoNoIntervalo(filtro.TextoInicio, filtro.TextoFim);
                break;

            case "obra":
                specification &= EhTipoSelecaoContem ? OrcamentoSpecification.ObraNumeroContem(filtro.TextoInicio)
                        : OrcamentoSpecification.ObraNumeroNoIntervalo(filtro.TextoInicio, filtro.TextoFim);
                break;

            case "empresa":
                specification &= EhTipoSelecaoContem ? OrcamentoSpecification.EmpresaNumeroContem(filtro.TextoInicio)
                        : OrcamentoSpecification.EmpresaNumeroNoIntervalo(filtro.TextoInicio, filtro.TextoFim);
                break;

            case "centroCusto":
                specification &= EhTipoSelecaoContem ? OrcamentoSpecification.CentroCustoContem(filtro.TextoInicio)
                        : OrcamentoSpecification.CentroCustoNoIntervalo(filtro.TextoInicio, filtro.TextoFim);
                break;

            case "situacao":
                specification &= EhTipoSelecaoContem ? OrcamentoSpecification.SituacaoContem(filtro.TextoInicio)
                        : OrcamentoSpecification.SituacaoNoIntervalo(filtro.TextoInicio, filtro.TextoFim);
                break;

            case "data":
                Nullable <DateTime> datInicio = !string.IsNullOrEmpty(filtro.TextoInicio) ? Convert.ToDateTime(filtro.TextoInicio) : (Nullable <DateTime>)null;
                Nullable <DateTime> datFim    = !string.IsNullOrEmpty(filtro.TextoFim) ? Convert.ToDateTime(filtro.TextoFim) : (Nullable <DateTime>)null;
                specification &= EhTipoSelecaoContem ? OrcamentoSpecification.DataContem(datInicio)
                        : OrcamentoSpecification.DataNoIntervalo(datInicio, datFim);
                break;
            //case "simplificado":
            //    specification &= EhTipoSelecaoContem ? OrcamentoSpecification.SimplificadoContem(filtro.TextoInicio)
            //        : OrcamentoSpecification.SimplificadoNoIntervalo(filtro.TextoInicio, filtro.TextoFim);
            //    break;

            default:
                break;
            }

            return(orcamentoRepository.Pesquisar(specification,
                                                 filtro.PageIndex,
                                                 filtro.PageSize,
                                                 filtro.OrderBy,
                                                 filtro.Ascending,
                                                 out totalRegistros,
                                                 l => l.Obra.CentroCusto,
                                                 l => l.Empresa.ClienteFornecedor).To <List <OrcamentoDTO> >());
        }