public List <EnderecoArmazenagemTotalPorAlasLinhaTabela> BuscarDadosFormatadoParaRelatorioTotalAla(RelatorioTotalizacaoAlasListaFiltro model) { IQueryable <EnderecoArmazenagemTotalPorAlasLinhaTabela> query; if (model.ImprimirVazia) { query = BuscarTodosDadosTotalAla(model); } else { query = BuscarDadosComProdutoInstalado(model); } return(query.ToList()); }
private IQueryable <EnderecoArmazenagemTotalPorAlasLinhaTabela> BuscarTodosDadosTotalAla(RelatorioTotalizacaoAlasListaFiltro model) { var query = (from end in Entities.EnderecoArmazenagem join lpe in Entities.LoteProdutoEndereco on end.IdEnderecoArmazenagem equals lpe.IdEnderecoArmazenagem into a from lpe in a.DefaultIfEmpty() where model.IdEmpresa == end.IdEmpresa && model.IdNivelArmazenagem == end.IdNivelArmazenagem && model.IdPontoArmazenagem == end.IdPontoArmazenagem select new EnderecoArmazenagemTotalPorAlasLinhaTabela { IdEnderecoArmazenagem = end.IdEnderecoArmazenagem, CodigoEndereco = end.Codigo, Corredor = end.Corredor, DataInstalacao = lpe.DataHoraInstalacao, IdLote = lpe.IdLote, IdUsuarioInstalacao = lpe.IdUsuarioInstalacao, PesoProduto = lpe.Produto.PesoBruto, PesoTotalDeProduto = lpe.PesoTotal, QuantidadeProdutoPorEndereco = lpe.Quantidade, ReferenciaProduto = lpe.Produto.Referencia }); if (model.CorredorInicial.HasValue && model.CorredorFinal.HasValue) { var count = model.CorredorInicial.Value == model.CorredorFinal.Value ? 1 : (model.CorredorFinal.Value - model.CorredorInicial.Value) + 1; var range = Enumerable.Range(model.CorredorInicial.Value, count); query = query.Where(y => range.Contains(y.Corredor)); } return(query); }
private IQueryable <EnderecoArmazenagemTotalPorAlasLinhaTabela> BuscarDadosComProdutoInstalado(RelatorioTotalizacaoAlasListaFiltro model) { var query = Entities.LoteProdutoEndereco.AsNoTracking().Where( lpe => lpe.IdEmpresa == model.IdEmpresa && model.IdNivelArmazenagem == lpe.EnderecoArmazenagem.IdNivelArmazenagem && model.IdPontoArmazenagem == lpe.EnderecoArmazenagem.IdPontoArmazenagem) .Select(s => new EnderecoArmazenagemTotalPorAlasLinhaTabela { IdEnderecoArmazenagem = s.IdEnderecoArmazenagem, CodigoEndereco = s.EnderecoArmazenagem.Codigo, DataInstalacao = s.DataHoraInstalacao, IdUsuarioInstalacao = s.IdUsuarioInstalacao, PesoProduto = s.Produto.PesoBruto, IdLote = s.Lote.IdLote, PesoTotalDeProduto = s.PesoTotal, QuantidadeProdutoPorEndereco = s.Quantidade, ReferenciaProduto = s.Produto.Referencia, Corredor = s.EnderecoArmazenagem.Corredor }); if (model.CorredorInicial.HasValue && model.CorredorFinal.HasValue) { var count = model.CorredorInicial.Value == model.CorredorFinal.Value ? 1 : (model.CorredorFinal.Value - model.CorredorInicial.Value) + 1; var range = Enumerable.Range(model.CorredorInicial.Value, count); query = query.Where(y => range.Contains(y.Corredor)); } return(query); }