public IEnumerable <RelatorioTotalizacaoLocalizacaoItem> BuscarDadosTotalizacaoLocalizacao(DataTableFilter <RelatorioTotalizacaoLocalizacaoFiltro> model, out int totalRecordsFiltered, out int totalRecords)
        {
            totalRecords = Entities.LoteProdutoEndereco.Count();

            var query = BuscarDadosTotalizacaoLocalizacaoQuery(model.CustomFilter);

            totalRecordsFiltered = query.Count();

            var response = query.OrderBy(model.OrderByColumn, model.OrderByDirection)
                           .Skip(model.Start)
                           .Take(model.Length);

            return(response.ToList());
        }
        public IEnumerable <EnderecoArmazenagemTotalPorAlasLinhaTabela> BuscarDadosTotalAla(DataTableFilter <RelatorioTotalizacaoAlasListaFiltro> model, out int totalRecordsFiltered, out int totalRecords)
        {
            IQueryable <EnderecoArmazenagemTotalPorAlasLinhaTabela> query;

            if (model.CustomFilter.ImprimirVazia)
            {
                totalRecords = Entities.EnderecoArmazenagem
                               .Where(x => x.IdEmpresa == model.CustomFilter.IdEmpresa).Count();


                query = BuscarTodosDadosTotalAla(model.CustomFilter);
            }
            else
            {
                totalRecords = Entities.LoteProdutoEndereco
                               .Where(x => x.IdEmpresa == model.CustomFilter.IdEmpresa).Count();

                query = BuscarDadosComProdutoInstalado(model.CustomFilter);
            }

            totalRecordsFiltered = query.Count();

            var response = query.OrderBy(model.OrderByColumn, model.OrderByDirection).OrderBy(x => x.Corredor).ThenBy(x => x.CodigoEndereco)
                           .Skip(model.Start)
                           .Take(model.Length);

            return(response.ToList());
        }
        public IEnumerable <PosicaoInventarioListaLinhaTabela> BuscarDadosPosicaoInventario(DataTableFilter <RelatorioPosicaoInventarioListaFiltro> model, out int totalRecordsFiltered, out int totalRecords)
        {
            totalRecords = Entities.LoteProdutoEndereco
                           .Where(x => x.IdEmpresa == model.CustomFilter.IdEmpresa &&
                                  (model.CustomFilter.IdNivelArmazenagem.HasValue == false || x.EnderecoArmazenagem.IdNivelArmazenagem == model.CustomFilter.IdNivelArmazenagem) &&
                                  (model.CustomFilter.IdPontoArmazenagem.HasValue == false || x.EnderecoArmazenagem.IdPontoArmazenagem == model.CustomFilter.IdPontoArmazenagem) &&
                                  (model.CustomFilter.IdProduto.HasValue == false || x.IdProduto == model.CustomFilter.IdProduto.Value)).Count();


            IQueryable <PosicaoInventarioListaLinhaTabela> query = Entities.LoteProdutoEndereco.AsNoTracking()
                                                                   .Where(x => x.IdEmpresa == model.CustomFilter.IdEmpresa &&
                                                                          (model.CustomFilter.IdNivelArmazenagem.HasValue == false || x.EnderecoArmazenagem.IdNivelArmazenagem == model.CustomFilter.IdNivelArmazenagem) &&
                                                                          (model.CustomFilter.IdPontoArmazenagem.HasValue == false || x.EnderecoArmazenagem.IdPontoArmazenagem == model.CustomFilter.IdPontoArmazenagem) &&
                                                                          (model.CustomFilter.IdProduto.HasValue == false || x.IdProduto == model.CustomFilter.IdProduto.Value))
                                                                   .Select(s => new PosicaoInventarioListaLinhaTabela
            {
                Codigo                       = s.EnderecoArmazenagem.Codigo,
                Referencia                   = s.Produto.Referencia,
                DescricaoProduto             = s.Produto.Descricao,
                IdLote                       = s.IdLote.Value,
                QuantidadeProdutoPorEndereco = s.Quantidade,
                IdProduto                    = s.IdProduto
            });

            totalRecordsFiltered = query.Count();

            query = query
                    .OrderBy(model.OrderByColumn, model.OrderByDirection)
                    .Skip(model.Start)
                    .Take(model.Length);

            return(query.ToList());
        }
Пример #4
0
        public IList <EnderecoArmazenagemPesquisaModalListaLinhaTabela> BuscarListaModal(DataTableFilter <EnderecoArmazenagemPesquisaModalFiltro> filtros, out int registrosFiltrados, out int totalRegistros)
        {
            totalRegistros = Entities.EnderecoArmazenagem.Count(w => w.IdEmpresa == filtros.CustomFilter.IdEmpresa);

            var query = (from e in Entities.EnderecoArmazenagem
                         where e.IdEmpresa == filtros.CustomFilter.IdEmpresa &&
                         (filtros.CustomFilter.Codigo.Equals(string.Empty) || e.Codigo.Contains(filtros.CustomFilter.Codigo)) &&
                         (filtros.CustomFilter.IdPontoArmazenagem.HasValue == false || e.IdPontoArmazenagem == filtros.CustomFilter.IdPontoArmazenagem) &&
                         (filtros.CustomFilter.BuscarTodos == true || (!(from p in Entities.ProdutoEstoque where p.IdEnderecoArmazenagem == e.IdEnderecoArmazenagem select p.IdEnderecoArmazenagem).Any() && e.Ativo == true &&
                                                                       e.IsPontoSeparacao == true)) &&
                         (filtros.CustomFilter.IsExpedicao.HasValue == false || !(from te in Entities.TransportadoraEndereco where te.IdEnderecoArmazenagem == e.IdEnderecoArmazenagem select te.IdEnderecoArmazenagem).Any() && e.IsFifo == false && e.IsPontoSeparacao == false && e.IsPicking == false)
                         select new EnderecoArmazenagemPesquisaModalListaLinhaTabela
            {
                IdEnderecoArmazenagem = e.IdEnderecoArmazenagem,
                Codigo = e.Codigo,
                EstoqueMaximo = e.EstoqueMaximo,
                EstoqueMinimo = e.EstoqueMinimo,
                Fifo = e.IsFifo ? "Sim" : "Não",
                LimitePeso = e.LimitePeso
            });

            registrosFiltrados = query.Count();

            query = query
                    .OrderBy(filtros.OrderByColumn, filtros.OrderByDirection)
                    .Skip(filtros.Start)
                    .Take(filtros.Length);

            return(query.ToList());
        }
Пример #5
0
        public ActionResult PageData(DataTableFilter <BOQuarentenaFilterViewModel> model)
        {
            int totalRecords         = 0;
            int totalRecordsFiltered = 0;

            var query = _uow.QuarentenaRepository.All();

            totalRecords = query.Count();

            if (!string.IsNullOrEmpty(model.CustomFilter.ChaveAcesso))
            {
                query = query.Where(x => x.Lote.NotaFiscal.ChaveAcesso.Contains(model.CustomFilter.ChaveAcesso));
            }

            if (model.CustomFilter.Lote.HasValue)
            {
                query = query.Where(x => x.IdLote == model.CustomFilter.Lote.Value);
            }

            if (model.CustomFilter.Nota.HasValue)
            {
                query = query.Where(x => x.Lote.NotaFiscal.Numero == model.CustomFilter.Nota);
            }

            if (model.CustomFilter.IdFornecedor.HasValue)
            {
                query = query.Where(x => x.Lote.NotaFiscal.IdFornecedor == model.CustomFilter.IdFornecedor);
            }

            if (model.CustomFilter.IdQuarentenaStatus.HasValue)
            {
                query = query.Where(x => (int)x.QuarentenaStatus.IdQuarentenaStatus == model.CustomFilter.IdQuarentenaStatus);
            }

            if (model.CustomFilter.DataAberturaInicial.HasValue)
            {
                DateTime dataInicial = new DateTime(model.CustomFilter.DataAberturaInicial.Value.Year, model.CustomFilter.DataAberturaInicial.Value.Month, model.CustomFilter.DataAberturaInicial.Value.Day,
                                                    00, 00, 00);
                query = query.Where(x => x.DataAbertura >= dataInicial);
            }

            if (model.CustomFilter.DataAberturaFinal.HasValue)
            {
                DateTime dataFinal = new DateTime(model.CustomFilter.DataAberturaFinal.Value.Year, model.CustomFilter.DataAberturaFinal.Value.Month, model.CustomFilter.DataAberturaFinal.Value.Day,
                                                  23, 59, 59);
                query = query.Where(x => x.DataAbertura <= dataFinal);
            }

            if (model.CustomFilter.DataEncerramentoInicial.HasValue)
            {
                DateTime dataEncerramentoInicial = new DateTime(model.CustomFilter.DataEncerramentoInicial.Value.Year, model.CustomFilter.DataEncerramentoInicial.Value.Month, model.CustomFilter.DataEncerramentoInicial.Value.Day,
                                                                00, 00, 00);
                query = query.Where(x => x.DataEncerramento >= dataEncerramentoInicial);
            }

            if (model.CustomFilter.DataEncerramentoFinal.HasValue)
            {
                DateTime prazoEncerramentoFinal = new DateTime(model.CustomFilter.DataEncerramentoFinal.Value.Year, model.CustomFilter.DataEncerramentoFinal.Value.Month, model.CustomFilter.DataEncerramentoFinal.Value.Day,
                                                               23, 59, 59);
                query = query.Where(x => x.DataEncerramento <= prazoEncerramentoFinal);
            }

            IEnumerable <BOQuarentenaListItemViewModel> list = query.ToList()
                                                               .Select(x => new BOQuarentenaListItemViewModel
            {
                IdQuarentena       = x.IdQuarentena,
                Lote               = x.IdLote,
                ChaveAcesso        = x.Lote.NotaFiscal.ChaveAcesso,
                Nota               = x.Lote.NotaFiscal.Numero,
                Fornecedor         = x.Lote.NotaFiscal.Fornecedor.NomeFantasia,
                DataAbertura       = x.DataAbertura.ToString("dd/MM/yyyy"),
                DataEncerramento   = x.DataEncerramento.HasValue ? x.DataEncerramento.Value.ToString("dd/MM/yyyy") : string.Empty,
                Atraso             = x.DataAbertura.Subtract(x.DataEncerramento ?? DateTime.Now).Days,
                Status             = x.QuarentenaStatus.Descricao,
                LoteStatus         = x.Lote.IdLoteStatus.ToString(),
                IdQuarentenaStatus = (int)x.IdQuarentenaStatus
            });

            if (model.CustomFilter.Atraso.HasValue)
            {
                list = list.Where(x => x.Atraso == model.CustomFilter.Atraso);
            }

            totalRecordsFiltered = list.Count();

            var result = list
                         .OrderBy(model.OrderByColumn, model.OrderByDirection)
                         .Skip(model.Start)
                         .Take(model.Length);

            return(DataTableResult.FromModel(new DataTableResponseModel()
            {
                Draw = model.Draw,
                RecordsTotal = totalRecords,
                RecordsFiltered = totalRecordsFiltered,
                Data = result
            }));
        }
        public IEnumerable <RastreabilidadeLoteProdutoListaLinhaTabela> ConsultarPorLote(DataTableFilter <RastreabilidadeLoteProdutoListaFiltro> model, out int totalRecordsFiltered, out int totalRecords)
        {
            totalRecords = Entities.LoteProduto.Where(x => x.IdEmpresa == model.CustomFilter.IdEmpresa).Count();

            IQueryable <RastreabilidadeLoteProdutoListaLinhaTabela> query =
                Entities.LoteProduto.AsNoTracking().Where(w => w.IdEmpresa == model.CustomFilter.IdEmpresa &&
                                                          (w.IdLote == model.CustomFilter.IdLote) &&
                                                          (model.CustomFilter.IdProduto.HasValue == false || w.IdProduto == model.CustomFilter.IdProduto.Value))
                .GroupBy(x => new { x.IdLote, x.IdProduto, x.QuantidadeRecebida, x.Saldo, x.Produto })
                .Select(s => new RastreabilidadeLoteProdutoListaLinhaTabela
            {
                IdLote             = s.Key.IdLote,
                ReferenciaProduto  = s.Key.Produto.Referencia,
                DescricaoProduto   = s.Key.Produto.Descricao,
                IdProduto          = s.Key.IdProduto,
                QuantidadeRecebida = s.Key.QuantidadeRecebida,
                Saldo = s.Key.Saldo
            });

            totalRecordsFiltered = query.Count();

            query = query
                    .OrderBy(model.OrderByColumn, model.OrderByDirection)
                    .Skip(model.Start)
                    .Take(model.Length);

            return(query.ToList());
        }
Пример #7
0
        public List <CaixaListaTabela> BuscarLista(DataTableFilter <CaixaListaFiltro> filtro, out int totalRecordsFiltered, out int totalRecords)
        {
            totalRecords = Entities.Caixa.Where(w => w.IdEmpresa == filtro.CustomFilter.IdEmpresa).Count();

            var query = Entities.Caixa.AsNoTracking().Where(w => w.IdEmpresa == filtro.CustomFilter.IdEmpresa);

            if (!filtro.CustomFilter.Nome.NullOrEmpty())
            {
                query = query.Where(caixa => caixa.Nome.Contains(filtro.CustomFilter.Nome));
            }

            if (!filtro.CustomFilter.TextoEtiqueta.NullOrEmpty())
            {
                query = query.Where(caixa => caixa.TextoEtiqueta.Contains(filtro.CustomFilter.TextoEtiqueta));
            }

            if (filtro.CustomFilter.PesoMaximo.HasValue)
            {
                query = query.Where(caixa => caixa.PesoMaximo == filtro.CustomFilter.PesoMaximo);
            }

            if (filtro.CustomFilter.Cubagem.HasValue)
            {
                query = query.Where(caixa => caixa.Cubagem == filtro.CustomFilter.Cubagem);
            }

            if (filtro.CustomFilter.Sobra.HasValue)
            {
                query = query.Where(caixa => caixa.Sobra == filtro.CustomFilter.Sobra);
            }

            if (filtro.CustomFilter.IdCaixaTipo.HasValue)
            {
                query = query.Where(caixa => caixa.IdCaixaTipo == filtro.CustomFilter.IdCaixaTipo);
            }

            if (filtro.CustomFilter.PesoCaixa.HasValue)
            {
                query = query.Where(caixa => caixa.PesoCaixa == filtro.CustomFilter.PesoCaixa);
            }

            if (filtro.CustomFilter.Status.HasValue)
            {
                query = query.Where(caixa => caixa.Ativo == filtro.CustomFilter.Status);
            }

            totalRecordsFiltered = query.Count();

            query = query
                    .OrderBy(filtro.OrderByColumn, filtro.OrderByDirection)
                    .Skip(filtro.Start)
                    .Take(filtro.Length);

            var resultado = query.ToList().Select(caixa => new CaixaListaTabela
            {
                IdCaixa            = caixa.IdCaixa,
                Nome               = caixa.Nome,
                TextoEtiqueta      = caixa.TextoEtiqueta,
                Largura            = caixa.Largura,
                Altura             = caixa.Altura,
                Comprimento        = caixa.Comprimento,
                PesoMaximo         = caixa.PesoMaximo.ToString("N2"),
                Cubagem            = caixa.Cubagem,
                Sobra              = caixa.Sobra.ToString("N2"),
                CaixaTipoDescricao = caixa.CaixaTipo.Descricao,
                PesoCaixa          = caixa.PesoCaixa.ToString("N2"),
                Status             = caixa.Ativo ? "Ativo" : "Inativo"
            }).ToList();

            return(resultado);
        }
 public static DataTable FilterDataTable(this DataTable pDataTable, int pTopN)
 {
     return(DataTableFilter.FilterDataTable(pDataTable, pTopN));
 }
 public static DataTable FilterDataTable(this DataTable pDataTable, string pFilterExpression)
 {
     return(DataTableFilter.FilterDataTable(pDataTable, pFilterExpression));
 }
Пример #10
0
        public IEnumerable <TransportadoraEnderecoListaLinhaTabela> BuscarOsDadosParaTabela(DataTableFilter <TransportadoraEnderecoListaFiltro> model, out int totalRecordsFiltered, out int totalRecords)
        {
            totalRecords = Entities.TransportadoraEndereco.Where(w => w.EnderecoArmazenagem.IdEmpresa == model.CustomFilter.IdEmpresa).Count();

            IQueryable <TransportadoraEnderecoListaLinhaTabela> query =
                Entities.TransportadoraEndereco.AsNoTracking().Where(w => w.EnderecoArmazenagem.IdEmpresa == model.CustomFilter.IdEmpresa &&
                                                                     (model.CustomFilter.IdEnderecoArmazenagem.HasValue == false || w.IdEnderecoArmazenagem == model.CustomFilter.IdEnderecoArmazenagem.Value) &&
                                                                     (model.CustomFilter.IdTransportadora.HasValue == false || w.IdTransportadora == model.CustomFilter.IdTransportadora.Value))
                .Select(s => new TransportadoraEnderecoListaLinhaTabela
            {
                CnpjTransportadora        = s.Transportadora.CNPJ,
                RazaoSocialTransportadora = s.Transportadora.RazaoSocial,
                IdTransportadora          = s.IdTransportadora,
                Codigo = s.EnderecoArmazenagem.Codigo,
                IdTransportadoraEndereco = s.IdTransportadoraEndereco
            });

            totalRecordsFiltered = query.Count();

            query = query
                    .OrderBy(model.OrderByColumn, model.OrderByDirection).OrderBy(x => x.Codigo)
                    .Skip(model.Start)
                    .Take(model.Length);

            return(query.ToList());
        }
 public static DataTable SortDataTable(this DataTable pDataTable, string pSortExpression)
 {
     return(DataTableFilter.SortDataTable(pDataTable, pSortExpression));
 }
Пример #12
0
 public List <CaixaRecusaListaTabela> BuscarLista(DataTableFilter <CaixaRecusaListaFiltro> filtro, out int registrosFiltrados, out int totalRegistros)
 {
     return(_unitOfWork.CaixaRecusaRepository.BuscarLista(filtro, out registrosFiltrados, out totalRegistros));
 }
Пример #13
0
        public List <RelatorioVolumesInstaladosTransportadoraItem> BuscarDadosVolumePorTransportadora(DataTableFilter <RelatorioVolumesInstaladosTransportadoraFiltro> filtro, out int totalRecordsFiltered, out int totalRecords)
        {
            totalRecords = Entities.PedidoVendaVolume.AsNoTracking().Where(pvv => pvv.PedidoVenda.IdEmpresa == filtro.CustomFilter.IdEmpresa).Count();

            var query = BuscarDadosVolumePorTransportadoraQuery(filtro.CustomFilter);

            totalRecordsFiltered = query.Count();

            var orderByColumn = filtro.OrderByColumn;

            if (orderByColumn == "0")
            {
                orderByColumn = "Transportadora";
            }

            var response = query.OrderBy(orderByColumn, filtro.OrderByDirection)
                           .Skip(filtro.Start)
                           .Take(filtro.Length);

            return(response.ToList());
        }
 public IEnumerable <TransportadoraEnderecoListaLinhaTabela> BuscarDadosParaTabela(DataTableFilter <TransportadoraEnderecoListaFiltro> model, out int totalRecordsFiltered, out int totalRecords)
 {
     return(_unitOfWork.TransportadoraEnderecoRepository.BuscarOsDadosParaTabela(model, out totalRecordsFiltered, out totalRecords));
 }
        public IList <PontoArmazenagemPesquisaModalListaLinhaTabela> BuscarListaModal(DataTableFilter <PontoArmazenagemPesquisaModalFiltro> filtros, out int registrosFiltrados, out int totalRegistros)
        {
            totalRegistros = Entities.PontoArmazenagem.Count(w => w.IdEmpresa == filtros.CustomFilter.IdEmpresa);

            var query = Entities.PontoArmazenagem
                        .Where(w => w.IdEmpresa == filtros.CustomFilter.IdEmpresa &&
                               (filtros.CustomFilter.IdNivelArmazenagem.HasValue == false || w.IdNivelArmazenagem == filtros.CustomFilter.IdNivelArmazenagem.Value) &&
                               (filtros.CustomFilter.Descricao.Equals(string.Empty) || w.Descricao.Contains(filtros.CustomFilter.Descricao)) &&
                               (filtros.CustomFilter.IsExpedicao.HasValue == false || w.Ativo == true && w.IdTipoArmazenagem == TipoArmazenagemEnum.Volume && w.IdTipoMovimentacao == TipoMovimentacaoEnum.Simples) &&
                               (filtros.CustomFilter.Status.HasValue == false || w.Ativo == filtros.CustomFilter.Status.Value))
                        .Select(s => new PontoArmazenagemPesquisaModalListaLinhaTabela
            {
                IdPontoArmazenagem = s.IdPontoArmazenagem,
                PontoArmazenagem   = s.Descricao,
                NivelArmazenagem   = s.NivelArmazenagem.Descricao,
                Status             = s.Ativo ? "Ativo" : "Inativo"
            });

            registrosFiltrados = query.Count();

            query = query
                    .OrderBy(filtros.OrderByColumn, filtros.OrderByDirection)
                    .Skip(filtros.Start)
                    .Take(filtros.Length);

            return(query.ToList());
        }
 public static DataTable FilterDataTable(this DataTable pDataTable, string pFilterExpression, string pSortExpression, int pTopN)
 {
     return(DataTableFilter.FilterDataTable(pDataTable, pFilterExpression, pSortExpression, pTopN));
 }
        public IEnumerable <TransportadoraPesquisaModalLinhaTabela> ObterDadosParaDataTable(DataTableFilter <TransportadoraPesquisaModalFiltro> filter, out int totalRecordsFiltered, out int totalRecords)
        {
            totalRecords = Entities.Transportadora.Count();

            IQueryable <TransportadoraPesquisaModalLinhaTabela> query = Entities.Transportadora.AsNoTracking()
                                                                        .Where(x => (filter.CustomFilter.IdTransportadora.HasValue == false || x.IdTransportadora == filter.CustomFilter.IdTransportadora) &&
                                                                               (filter.CustomFilter.NomeFantasia.Equals(string.Empty) || x.NomeFantasia.Contains(filter.CustomFilter.NomeFantasia)) &&
                                                                               (filter.CustomFilter.Ativo.HasValue == false || x.Ativo == true) &&
                                                                               (filter.CustomFilter.CNPJ.Equals(string.Empty) || x.CNPJ.Contains(filter.CustomFilter.CNPJ.Replace(".", "").Replace("/", "").Replace("-", ""))))
                                                                        .Select(e => new TransportadoraPesquisaModalLinhaTabela
            {
                IdTransportadora = e.IdTransportadora,
                CNPJ             = e.CNPJ,
                Status           = e.Ativo ? "Ativo" : "Inativo",
                CodigoIntegracao = e.CodigoIntegracao,
                NomeFantasia     = e.NomeFantasia,
                RazaoSocial      = e.RazaoSocial
            });

            totalRecordsFiltered = query.Count();

            return(query.PaginationResult(filter));
        }
Пример #18
0
 public DataTableAdapter(Context context)
 {
     Context = context;
     _filter = new DataTableFilter(this);
 }
        public IEnumerable <RastreabilidadeLoteListaLinhaTabela> PesquisarPorLoteOuProduto(DataTableFilter <RastreabilidadeLoteListaFiltro> model, out int totalRecordsFiltered, out int totalRecords)
        {
            totalRecords = Entities.LoteProduto.Where(w => w.IdEmpresa == model.CustomFilter.IdEmpresa).GroupBy(x => x.IdLote).Count();

            IQueryable <RastreabilidadeLoteListaLinhaTabela> query =
                Entities.LoteProduto.AsNoTracking().Where(w => w.IdEmpresa == model.CustomFilter.IdEmpresa &&
                                                          (model.CustomFilter.IdLote.HasValue == false || w.IdLote == model.CustomFilter.IdLote.Value) &&
                                                          (model.CustomFilter.IdProduto.HasValue == false || w.IdProduto == model.CustomFilter.IdProduto.Value))
                .GroupBy(x => new { x.IdLote, x.Lote })
                .Select(s => new RastreabilidadeLoteListaLinhaTabela
            {
                IdLote           = s.Key.IdLote,
                Status           = s.Key.Lote.LoteStatus.Descricao,
                DataRecebimento  = s.Key.Lote.DataRecebimento,
                DataConferencia  = s.Key.Lote.DataFinalConferencia,
                QuantidadeVolume = s.Key.Lote.QuantidadeVolume,
                QuantidadePeca   = s.Key.Lote.QuantidadePeca
            });

            totalRecordsFiltered = query.Count();

            query = query
                    .OrderBy(model.OrderByColumn, model.OrderByDirection)
                    .Skip(model.Start)
                    .Take(model.Length);

            return(query.ToList());
        }
Пример #20
0
        public IEnumerable <ProdutoListaLinhaTabela> FormatarDadosParaDataTable(DataTableFilter <ProdutoListaFiltro> filter, out int totalRecordsFiltered, out int totalRecords, IQueryable <ProdutoEstoque> produtoEstoque)
        {
            totalRecords = produtoEstoque.Count();

            var query = produtoEstoque.Where(x =>
                                             (string.IsNullOrEmpty(filter.CustomFilter.Referencia) == true || x.Produto.Referencia == filter.CustomFilter.Referencia) &&
                                             (string.IsNullOrEmpty(filter.CustomFilter.Descricao) == true || x.Produto.Descricao == filter.CustomFilter.Descricao) &&
                                             (string.IsNullOrEmpty(filter.CustomFilter.CodigoDeBarras) == true || x.Produto.CodigoBarras == filter.CustomFilter.CodigoDeBarras)
                                             );

            if (filter.CustomFilter.ProdutoStatus.HasValue)
            {
                //Sem Locação
                if (filter.CustomFilter.ProdutoStatus == 2)
                {
                    query = query.Where(x => x.EnderecoArmazenagem == null);
                }
                //Ativo
                else if (filter.CustomFilter.ProdutoStatus == 1)
                {
                    query = query.Where(x => x.IdProdutoEstoqueStatus == ProdutoEstoqueStatusEnum.Ativo);
                }
                //Todos(Inativo)
                else
                {
                    query = query.Where(x => x.IdProdutoEstoqueStatus != ProdutoEstoqueStatusEnum.Ativo);
                }
            }

            if (filter.CustomFilter.IdEnderecoArmazenagem.HasValue)
            {
                query = query.Where(x => x.EnderecoArmazenagem.IdEnderecoArmazenagem == filter.CustomFilter.IdEnderecoArmazenagem);
            }

            if (filter.CustomFilter.IdPontoArmazenagem.HasValue)
            {
                query = query.Where(x => x.EnderecoArmazenagem.IdPontoArmazenagem == filter.CustomFilter.IdPontoArmazenagem);
            }

            if (filter.CustomFilter.IdNivelArmazenagem.HasValue)
            {
                query = query.Where(x => x.EnderecoArmazenagem.IdNivelArmazenagem == filter.CustomFilter.IdNivelArmazenagem);
            }

            var selectedQuery = query.Select(e => new
            {
                IdEnderecoArmazenagem = e.IdEnderecoArmazenagem,
                IdProduto             = e.IdProduto,
                Referencia            = e.Produto.Referencia,
                Descricao             = e.Produto.Descricao,
                Peso        = e.Produto.PesoBruto,
                Largura     = e.Produto.Largura,
                Altura      = e.Produto.Altura,
                Comprimento = e.Produto.Comprimento,
                Unidade     = e.Produto.UnidadeMedida.Sigla,
                Endereco    = e.EnderecoArmazenagem.Codigo,
                Multiplo    = e.Produto.MultiploVenda,
                Status      = e.IdProdutoEstoqueStatus
            });

            totalRecordsFiltered = selectedQuery.Count();

            var queryResult = selectedQuery
                              .OrderBy(filter.OrderByColumn, filter.OrderByDirection)
                              .Skip(filter.Start)
                              .Take(filter.Length).ToList();

            var result = queryResult.Select(e => new ProdutoListaLinhaTabela
            {
                IdEnderecoArmazenagem = e.IdEnderecoArmazenagem,
                IdProduto             = e.IdProduto == 0 ? (long?)null : e.IdProduto,
                Referencia            = e.Referencia,
                Descricao             = e.Descricao,
                Peso        = e.Peso.ToString("n2"),
                Largura     = e.Largura?.ToString("n2"),
                Altura      = e.Altura?.ToString("n2"),
                Comprimento = e.Comprimento?.ToString("n2"),
                Unidade     = e.Unidade,
                Endereco    = e.Endereco,
                Multiplo    = e.Multiplo.ToString(),
                Status      = e.Status.ToString()
            }).ToList();

            return(result.ToList());
        }
 public List <CorredorImpressoraListaTabela> BuscarLista(DataTableFilter <CorredorImpressoraListaFiltro> filtro, out int registrosFiltrados, out int totalRegistros)
 {
     return(_unitOfWork.GrupoCorredorArmazenagemRepository.BuscarLista(filtro, out registrosFiltrados, out totalRegistros));
 }
        public IEnumerable <RastreabilidadeLoteMovimentacaoListaLinhaTabela> ConsultarPorLoteEProduto(DataTableFilter <RastreabilidadeLoteMovimentacaoListaFiltro> model, out int totalRecordsFiltered, out int totalRecords)
        {
            totalRecords = Entities.LoteMovimentacao.Where(x => x.IdEmpresa == model.CustomFilter.IdEmpresa && x.IdLote == model.CustomFilter.IdLote && x.IdProduto == model.CustomFilter.IdProduto).Count();

            DateTime?dataHoraInicial = model.CustomFilter.DataHoraInicial.HasValue ? new DateTime(model.CustomFilter.DataHoraInicial.Value.Year, model.CustomFilter.DataHoraInicial.Value.Month, model.CustomFilter.DataHoraInicial.Value.Day, 0, 0, 0) : (DateTime?)null;
            DateTime?dataHoraFinal   = model.CustomFilter.DataHoraFinal.HasValue ? new DateTime(model.CustomFilter.DataHoraFinal.Value.Year, model.CustomFilter.DataHoraFinal.Value.Month, model.CustomFilter.DataHoraFinal.Value.Day, 23, 59, 59) : (DateTime?)null;

            IQueryable <RastreabilidadeLoteMovimentacaoListaLinhaTabela> query =
                Entities.LoteMovimentacao.AsNoTracking().Where(
                    w => w.IdEmpresa == model.CustomFilter.IdEmpresa &&
                    (w.IdLote == model.CustomFilter.IdLote) &&
                    (w.IdProduto == model.CustomFilter.IdProduto) &&
                    (String.IsNullOrEmpty(model.CustomFilter.IdUsuarioMovimentacao) || w.IdUsuarioMovimentacao.Contains(model.CustomFilter.IdUsuarioMovimentacao)) &&
                    (model.CustomFilter.QuantidadeInicial.HasValue == false || w.Quantidade >= model.CustomFilter.QuantidadeInicial.Value) &&
                    (model.CustomFilter.QuantidadeFinal.HasValue == false || w.Quantidade <= model.CustomFilter.QuantidadeFinal.Value) &&
                    (dataHoraInicial.HasValue == false || w.DataHora >= dataHoraInicial) &&
                    (dataHoraFinal.HasValue == false || w.DataHora <= dataHoraFinal) &&
                    (model.CustomFilter.IdLoteMovimentacaoTipo.HasValue == false || w.IdLoteMovimentacaoTipo == (LoteMovimentacaoTipoEnum)model.CustomFilter.IdLoteMovimentacaoTipo.Value))
                .Select(s => new RastreabilidadeLoteMovimentacaoListaLinhaTabela
            {
                IdLote            = s.IdLote,
                IdProduto         = s.IdProduto,
                ReferenciaProduto = s.Produto.Referencia,
                DescricaoProduto  = s.Produto.Descricao,
                Tipo                  = s.LoteMovimentacaoTipo.Descricao,
                Quantidade            = s.Quantidade,
                DataHora              = s.DataHora,
                Endereco              = s.EnderecoArmazenagem.Codigo,
                IdUsuarioMovimentacao = s.IdUsuarioMovimentacao,
                NroVolume             = s.NroVolume
            });

            totalRecordsFiltered = query.Count();

            query = query
                    .OrderBy(model.OrderByColumn, model.OrderByDirection)
                    .Skip(model.Start)
                    .Take(model.Length);

            return(query.ToList());
        }
Пример #23
0
 /// <summary>
 /// Monta a lista de dados paginada de acordo com a configuração da página.
 /// </summary>
 /// <typeparam name="TSource"></typeparam>
 /// <param name="source">Fonte de dados.</param>
 /// <param name="pageConfiguration">Configuração da página requerente.</param>
 /// <returns></returns>
 public static IList <TSource> PaginationResult <TSource>(this IQueryable <TSource> source, DataTableFilter pageConfiguration)
 {
     return(source
            .OrderBy(pageConfiguration.OrderByColumn, pageConfiguration.OrderByDirection)
            .Skip(pageConfiguration.Start)
            .Take(pageConfiguration.Length)
            .ToList());
 }
Пример #24
0
        public IList <GarantiaTableRow> SearchForDataTable(DataTableFilter <GarantiaFilter> filter, out int totalRecordsFiltered, out int totalRecords)
        {
            IEnumerable <Garantia> garantia = null;

            using (var conn = new OracleConnection(Entities.Database.Connection.ConnectionString))
            {
                conn.Open();

                if (conn.State == System.Data.ConnectionState.Open)
                {
                    garantia = conn.Query <Garantia, NotaFiscal, Cliente, Fornecedor, GarantiaStatus, AspNetUsers, NotaFiscalStatus, Garantia>(
                        "SELECT " +
                        "garantia.\"IdGarantia\"," +
                        "garantia.\"DataRecebimento\",	"+
                        "nota.\"IdNotaFiscal\", " +
                        "nota.\"Numero\"," +
                        "nota.\"Serie\"," +
                        "nota.\"ValorTotal\"," +
                        "nota.\"ValorFrete\"," +
                        "nota.\"NumeroConhecimento\"," +
                        "nota.\"PesoBruto\"," +
                        "nota.\"Especie\"," +
                        "nota.\"Quantidade\"," +
                        "nota.\"ChaveAcesso\"," +
                        "nota.\"CodigoIntegracao\"," +
                        "nota.\"DataEmissao\"," +
                        "nota.\"PrazoEntregaFornecedor\"," +
                        "nota.\"IdEmpresa\"," +
                        "nota.\"IdTransportadora\"," +
                        "nota.\"IdFornecedor\"," +
                        "cliente.*,	" +
                        "fornecedor.*,	"+
                        "garantiastatus.*," +
                        "userr.*," +
                        "nfstatus.* " +
                        "FROM \"Garantia\" garantia " +
                        "RIGHT JOIN \"NotaFiscal\" nota ON nota.\"IdNotaFiscal\" = garantia.\"IdNotaFiscal\" " +
                        "LEFT JOIN \"Cliente\" cliente ON cliente.\"IdCliente\" = nota.\"IdCliente\" " +
                        "LEFT JOIN \"Fornecedor\" fornecedor ON fornecedor.\"IdFornecedor\" = nota.\"IdFornecedor\" " +
                        "LEFT JOIN \"GarantiaStatus\" garantiastatus ON (garantiastatus.\"IdGarantiaStatus\" = CASE WHEN garantia.\"IdGarantiaStatus\" IS NULL THEN 1 ELSE garantia.\"IdGarantiaStatus\" END) " +
                        "LEFT JOIN \"AspNetUsers\" userr ON userr.\"Id\" = garantia.\"IdUsuarioConferente\" " +
                        "INNER JOIN \"NotaFiscalStatus\" nfstatus ON nfstatus.\"IdNotaFiscalStatus\" = nota.\"IdNotaFiscalStatus\" " +
                        "WHERE (nota.\"IdNotaFiscalStatus\" <> 0 AND nota.\"IdNotaFiscalStatus\" IS NOT NULL) AND nota.\"IdEmpresa\" = " + filter.CustomFilter.IdEmpresa +
                        "AND nota.\"IdNotaFiscalTipo\" = " + NotaFiscalTipoEnum.Garantia.GetHashCode(),
                        map: (g, nf, c, f, gs, u, nfs) =>
                    {
                        g.NotaFiscal                  = nf;
                        g.NotaFiscal.Cliente          = c;
                        g.NotaFiscal.Fornecedor       = f;
                        g.GarantiaStatus              = gs;
                        g.UsuarioConferente           = u;
                        g.NotaFiscal.NotaFiscalStatus = nfs;
                        return(g);
                    },
                        splitOn: "IdGarantia, IdNotaFiscal, IdCliente, IdFornecedor, IdGarantiaStatus, Id, IdNotaFiscalStatus"
                        );
                }

                conn.Close();
            }

            totalRecords = garantia.Count();

            var query = garantia.Where(x =>
                                       (filter.CustomFilter.IdGarantia.HasValue == false || x.IdGarantia == filter.CustomFilter.IdGarantia.Value) &&
                                       (filter.CustomFilter.IdCliente.HasValue == false || x.NotaFiscal.IdCliente == filter.CustomFilter.IdCliente.Value) &&
                                       (filter.CustomFilter.IdTransportadora.HasValue == false || x.NotaFiscal.IdTransportadora == filter.CustomFilter.IdTransportadora.Value) &&
                                       (filter.CustomFilter.IdFornecedor.HasValue == false || x.NotaFiscal.IdFornecedor == filter.CustomFilter.IdFornecedor.Value) &&
                                       (filter.CustomFilter.NumeroNF.HasValue == false || x.NotaFiscal.Numero == filter.CustomFilter.NumeroNF.Value) &&
                                       (string.IsNullOrEmpty(filter.CustomFilter.NumeroFicticioNF) == true || x.NotaFiscal.NumeroFicticioNF.Contains(filter.CustomFilter.NumeroFicticioNF)) &&
                                       (string.IsNullOrEmpty(filter.CustomFilter.ChaveAcesso) == true || x.NotaFiscal.ChaveAcesso.Contains(filter.CustomFilter.ChaveAcesso)) &&
                                       (filter.CustomFilter.IdGarantiaStatus.HasValue == false || (long)x.IdGarantiaStatus == filter.CustomFilter.IdGarantiaStatus.Value)
                                       );

            if (filter.CustomFilter.DataEmissaoInicial.HasValue)
            {
                DateTime dataInicial = new DateTime(filter.CustomFilter.DataEmissaoInicial.Value.Year, filter.CustomFilter.DataEmissaoInicial.Value.Month, filter.CustomFilter.DataEmissaoInicial.Value.Day, 00, 00, 00);
                query = query.Where(x => x.NotaFiscal.DataEmissao >= dataInicial);
            }

            if (filter.CustomFilter.DataEmissaoFinal.HasValue)
            {
                DateTime dataFinal = new DateTime(filter.CustomFilter.DataEmissaoFinal.Value.Year, filter.CustomFilter.DataEmissaoFinal.Value.Month, filter.CustomFilter.DataEmissaoFinal.Value.Day, 23, 59, 59);
                query = query.Where(x => x.NotaFiscal.DataEmissao <= dataFinal);
            }

            if (filter.CustomFilter.DataRecebimentoInicial.HasValue)
            {
                DateTime dataInicial = new DateTime(filter.CustomFilter.DataRecebimentoInicial.Value.Year, filter.CustomFilter.DataRecebimentoInicial.Value.Month, filter.CustomFilter.DataRecebimentoInicial.Value.Day, 23, 59, 59);
                query = query.Where(x => x.DataRecebimento <= dataInicial);
            }

            if (filter.CustomFilter.DataRecebimentoFinal.HasValue)
            {
                DateTime dataFinal = new DateTime(filter.CustomFilter.DataRecebimentoFinal.Value.Year, filter.CustomFilter.DataRecebimentoFinal.Value.Month, filter.CustomFilter.DataRecebimentoFinal.Value.Day, 00, 00, 00);
                query = query.Where(x => x.DataRecebimento >= dataFinal);
            }

            if (!filter.CustomFilter.IdUsuarioConferente.NullOrEmpty())
            {
                query = query.Where(x => x.UsuarioConferente?.Id == filter.CustomFilter.IdUsuarioConferente);
            }

            IEnumerable <GarantiaTableRow> queryResult = query.Select(e => new GarantiaTableRow
            {
                IdGarantia       = e.IdGarantia == 0 ? (long?)null : e.IdGarantia,
                Cliente          = string.Concat(e.NotaFiscal.Cliente.IdCliente, "-", e.NotaFiscal.Cliente.RazaoSocial),
                CNPJCliente      = e.NotaFiscal.Cliente.CNPJCPF.CnpjOuCpf(),
                Transportadora   = e.NotaFiscal.Transportadora == null ? string.Empty : string.Concat(e.NotaFiscal.Transportadora.IdTransportadora, "-", e.NotaFiscal.Transportadora.NomeFantasia),
                Fornecedor       = e.NotaFiscal.Fornecedor == null ? string.Empty : string.Concat(e.NotaFiscal.Fornecedor.IdFornecedor, " - ", e.NotaFiscal.Fornecedor.NomeFantasia),
                IdEmpresa        = e.NotaFiscal.IdEmpresa,
                NumeroNF         = e.NotaFiscal.Numero,
                NumeroFicticioNF = e.NotaFiscal.NumeroFicticioNF,
                DataEmissao      = e.NotaFiscal.DataEmissao,
                DataRecebimento  = e.DataRecebimento != DateTime.MinValue ? e.DataRecebimento : (DateTime?)null,
                GarantiaStatus   = e.GarantiaStatus.Descricao,
                IdGarantiaStatus = (int)e.GarantiaStatus.IdGarantiaStatus,
                IdNotaFiscal     = e.NotaFiscal.IdNotaFiscal
            });

            totalRecordsFiltered = queryResult.Count();

            queryResult = queryResult
                          .OrderBy(filter.OrderByColumn, filter.OrderByDirection)
                          .Skip(filter.Start)
                          .Take(filter.Length);

            return(queryResult.ToList());
        }