Ejemplo n.º 1
0
        public List <RequisicaoMaterialDTO> ListarPeloFiltro(RequisicaoMaterialFiltro filtro, int?idUsuario, out int totalRegistros)
        {
            var specification = (Specification <RequisicaoMaterial>) new TrueSpecification <RequisicaoMaterial>();

            if (usuarioAppService.UsuarioPossuiCentroCustoDefinidoNoModulo(idUsuario, Resource.Sigim.NomeModulo.OrdemCompra))
            {
                specification &= RequisicaoMaterialSpecification.UsuarioPossuiAcessoAoCentroCusto(idUsuario, Resource.Sigim.NomeModulo.OrdemCompra);
            }
            else
            {
                specification &= RequisicaoMaterialSpecification.EhCentroCustoAtivo();
            }

            if (filtro.Id.HasValue)
            {
                specification &= RequisicaoMaterialSpecification.MatchingId(filtro.Id);
            }
            else
            {
                specification &= RequisicaoMaterialSpecification.DataMaiorOuIgual(filtro.DataInicial);
                specification &= RequisicaoMaterialSpecification.DataMenorOuIgual(filtro.DataFinal);
                specification &= RequisicaoMaterialSpecification.PertenceAoCentroCustoIniciadoPor(filtro.CentroCusto.Codigo);

                if (filtro.EhAprovada || filtro.EhCancelada || filtro.EhFechada || filtro.EhRequisitada)
                {
                    specification &= ((filtro.EhAprovada ? RequisicaoMaterialSpecification.EhAprovada() : new FalseSpecification <RequisicaoMaterial>()) ||
                                      ((filtro.EhCancelada) ? RequisicaoMaterialSpecification.EhCancelada() : new FalseSpecification <RequisicaoMaterial>()) ||
                                      ((filtro.EhFechada) ? RequisicaoMaterialSpecification.EhFechada() : new FalseSpecification <RequisicaoMaterial>()) ||
                                      ((filtro.EhRequisitada) ? RequisicaoMaterialSpecification.EhRequisitada() : new FalseSpecification <RequisicaoMaterial>()));
                }
            }

            return(requisicaoMaterialRepository.ListarPeloFiltroComPaginacao(
                       specification,
                       filtro.PaginationParameters.PageIndex,
                       filtro.PaginationParameters.PageSize,
                       filtro.PaginationParameters.OrderBy,
                       filtro.PaginationParameters.Ascending,
                       out totalRegistros,
                       l => l.ListaItens.Select(c => c.RequisicaoMaterial)).To <List <RequisicaoMaterialDTO> >());
        }
Ejemplo n.º 2
0
 public RequisicaoMaterialListaViewModel()
 {
     Filtro = new RequisicaoMaterialFiltro();
 }