public JsonResult VerificaSituacaoEstoque() { var loteDAO = new LoteDAO(); var baixaDAO = new BaixaDAO(); var listabaixa = baixaDAO.GetAll(); var loteAtual = loteDAO.GetAll(); var produtoDAO = new ProdutoDAO(); var listaProduto = produtoDAO.GetAll(); HashSet <VerificaSituacaoEstoqueViewModel> lista = new HashSet <VerificaSituacaoEstoqueViewModel>(); var texto = ""; foreach (var aux in listaProduto) { var produtoemestoque = loteDAO.GetAll().Where(x => x.Produto_CodigoProduto == aux.CodigoProduto).Sum(x => x.QuantidadeProduto); var produtobaixado = baixaDAO.GetAll().Where(x => x.DataBaixa.Month == (DateTime.Now.Month) && x.Produto_CodigoProduto == aux.CodigoProduto).Sum(x => x.QuantidadeBaixa); var produtogeral = produtoemestoque + produtobaixado; var baixamenos1 = baixaDAO.GetAll().Where(x => x.DataBaixa.Month == (DateTime.Now.Month - 1) && x.Produto_CodigoProduto == aux.CodigoProduto).Sum(x => x.QuantidadeBaixa); var baixamenos2 = baixaDAO.GetAll().Where(x => x.DataBaixa.Month == (DateTime.Now.Month - 2) && x.Produto_CodigoProduto == aux.CodigoProduto).Sum(x => x.QuantidadeBaixa); var baixamenos3 = baixaDAO.GetAll().Where(x => x.DataBaixa.Month == (DateTime.Now.Month - 3) && x.Produto_CodigoProduto == aux.CodigoProduto).Sum(x => x.QuantidadeBaixa); var nomeproduto = produtoDAO.GetById(aux.CodigoProduto); var mediabaixa = (baixamenos1 + baixamenos2 + baixamenos3) / 3; if (mediabaixa > produtogeral) { var produtofalta = mediabaixa - produtogeral; texto = "Seu estoque ficará em falta de: " + produtofalta + " do produto " + nomeproduto.NomeProduto + " "; lista.Add(new VerificaSituacaoEstoqueViewModel() { NomeProduto = nomeproduto.NomeProduto, EstoqueAtual = produtogeral, MediaBaixa = mediabaixa, }); } else { ViewBag.Mensagem = ""; } } var js = new JavaScriptSerializer(); var json = js.Serialize(lista); return(Json(json, JsonRequestBehavior.AllowGet)); }
// GET: Lote public ActionResult Index() { LoteDAO loteDAO = new LoteDAO(); var listaLote = loteDAO.GetAll(); ViewBag.Lotes = listaLote; return(View()); }
public IEnumerable <SelectListItem> GetLotes() { var dao = new LoteDAO(); var lotes = dao.GetAll() .Select(x => new SelectListItem { Value = x.CodigoLote.ToString(), Text = x.DescricaoLote, }); return(new SelectList(lotes, "Value", "Text")); }
public ActionResult FormularioLote() { LoteDAO loteDAO = new LoteDAO(); var listaLote = loteDAO.GetAll(); EstoqueDAO estoqueDAO = new EstoqueDAO(); var listaEstoque = estoqueDAO.GetAll(); ProdutoDAO produtoDAO = new ProdutoDAO(); var listaProduto = produtoDAO.GetAll(); ViewBag.Lotes = listaLote; ViewBag.Estoques = listaEstoque; ViewBag.Produtos = listaProduto; return(View()); }
public JsonResult RetornaRankingBaixas() { //Retorna Grafico de Colunas //Esse grafico retorna a quantidade de produtos totais. ProdutoDAO produtoDAO = new ProdutoDAO(); var listaProduto = produtoDAO.GetAll(); LoteDAO loteDAO = new LoteDAO(); var listaLote = loteDAO.GetAll(); BaixaDAO baixaDAO = new BaixaDAO(); var listaBaixa = baixaDAO.GetAll(); var resultQuery = from b in listaBaixa join p in listaProduto on b.Produto_CodigoProduto equals p.CodigoProduto where b.QuantidadeBaixa > 0 orderby b.QuantidadeBaixa group b by new { p.NomeProduto } into g select new { NomeProduto = g.Key.NomeProduto, QuantidadeBaixa = g.Sum(x => x.QuantidadeBaixa) }; resultQuery = resultQuery.OrderByDescending(x => x.QuantidadeBaixa).Take(5); var lista = new List <RankingBaixaViewModel>(); foreach (var item in resultQuery) { lista.Add(new RankingBaixaViewModel() { NomeProduto = item.NomeProduto, QuantidadeBaixa = item.QuantidadeBaixa }); } var js = new JavaScriptSerializer(); var json = js.Serialize(lista); return(Json(json, JsonRequestBehavior.AllowGet)); }
public ActionResult Index() { LoteDAO loteDAO = new LoteDAO(); var lotes = loteDAO.GetAll().Where(x => x.QuantidadeProduto > 0).OrderBy(x => x.ValidadeLote); EstoqueDAO estoqueDao = new EstoqueDAO(); var model = lotes.Select(x => new LoteViewModel() { CodigoLote = x.CodigoLote, DescricaoLote = x.DescricaoLote, Produto = x.Produto, ValidadeLote = x.ValidadeLote, QuantidadeProduto = x.QuantidadeProduto, LocalEstoque = estoqueDao.GetById(x.Estoque_CodigoEstoque).DescricaoEstoque, }); return(View(model)); }
public JsonResult RetornaRankingProdutosMorto() { //Retorna Grafico de Colunas //Esse grafico retorna a quantidade de produtos totais. ProdutoDAO produtoDAO = new ProdutoDAO(); var listaProduto = produtoDAO.GetAll(); LoteDAO loteDAO = new LoteDAO(); var listaLote = loteDAO.GetAll(); var resultQuery = from l in listaLote join p in listaProduto on l.Produto_CodigoProduto equals p.CodigoProduto where l.ValidadeLote < DateTime.Now.Date && l.QuantidadeProduto > 0 orderby l.QuantidadeProduto group l by new { p.NomeProduto } into g select new { NomeProduto = g.Key.NomeProduto, QuantidadeProduto = g.Sum(x => x.QuantidadeProduto) }; resultQuery = resultQuery.OrderByDescending(x => x.QuantidadeProduto).Take(5); var lista = new List <RankingProdutosMortoViewModel>(); foreach (var item in resultQuery) { lista.Add(new RankingProdutosMortoViewModel() { NomeProduto = item.NomeProduto, QuantidadeProduto = item.QuantidadeProduto }); } var js = new JavaScriptSerializer(); var json = js.Serialize(lista); return(Json(json, JsonRequestBehavior.AllowGet)); }
public ActionResult RetornaRankingProdutos() { //Retorna Grafico de Colunas //Esse grafico retorna a quantidade de produtos totais. ProdutoDAO produtoDAO = new ProdutoDAO(); var listaProduto = produtoDAO.GetAll(); LoteDAO loteDAO = new LoteDAO(); var listaLote = loteDAO.GetAll(); var resultQuery = from l in listaLote join p in listaProduto on l.Produto_CodigoProduto equals p.CodigoProduto group l by new { p.NomeProduto } into g select new { NomeProduto = g.Key.NomeProduto, QuantidadeProduto = g.Sum(x => x.QuantidadeProduto) }; return(View(resultQuery)); }
static void Main(string[] args) { #region VARIAVEIS DE ENTRADA string nomeCategoria = null; Nullable <DateTime> dataValidade = null /*new DateTime(2018, 06, 01)*/; #endregion //METODOS QUE REQUISITAM DADOS NO BANCO E FILTRAM #region COLETORES DE DADOS DAO ProdutoDAO produtoDAO = new ProdutoDAO(); var listaProduto = produtoDAO.GetAll(); LoteDAO loteDAO = new LoteDAO(); var listaLote = loteDAO.GetAll(); var filtroLote = new List <Lote>(); foreach (var item in listaLote) { if (item.ValidadeLote.Equals(dataValidade)) { filtroLote.Add(item); } } CategoriaDAO categoriaDAO = new CategoriaDAO(); var listaCategoria = categoriaDAO.GetAll(); var filtroCategoria = new List <CategoriaProduto>(); foreach (var item in listaCategoria) { if (item.NomeCategoria.Equals(nomeCategoria)) { filtroCategoria.Add(item); } } #endregion //Retorna Grafico de Colunas //Esse grafico retorna a quantidade de produtos totais. //Com ele podemos criar um ranking de produto para verificar o que mais é vendido, tornando mais dificil de vencer no estoque //Pois tem alta rotatividade #region DADOS GRAFICO DE RANKING DE PRODUTOS (BARRA) //var resultQuery = from l in listaLote // join p in listaProduto // on l.Produto_CodigoProduto equals p.CodigoProduto // group l by new { p.NomeProduto } into g // select new // { // NomeProduto = g.Key.NomeProduto, // QuantidadeProduto = g.Sum(x => x.QuantidadeProduto) // }; //foreach (var item in resultQuery) //{ // Console.WriteLine("Produto: " + item.NomeProduto + " Quantidade: " + item.QuantidadeProduto); //} //Console.ReadLine(); #endregion //Esse relatorio pode ser filtrado pelo nome da categoria do lote e pela data de validade //O Mesmo vai retornar o resultado de todos os lotes daquela categoria e com aquela data //Esse relatorio é importate para sabermos o nome o tipo de produto que tem dentro de cada lote, quantidade e se esta proximo do vencimento #region RELATORIO LOTE COM FILTRO DE DATA E NOMECATEGORIA //if (nomeCategoria != null && dataValidade != null) //{ // var resultQuery = from l in listaLote // join p in listaProduto // on l.Produto_CodigoProduto equals p.CodigoProduto // join c in filtroCategoria // on p.Categoria_CodigoCategoria equals c.CodigoCategoria // orderby l.ValidadeLote // select new // { // l.DescricaoLote, // p.NomeProduto, // c.NomeCategoria, // l.ValidadeLote, // l.QuantidadeProduto, // }; // foreach (var item in resultQuery) // { // Console.WriteLine("Lote: " + item.DescricaoLote + " Produto: " + item.NomeProduto + " Categoria: " + item.NomeCategoria + " Validade: " + item.ValidadeLote + " Quantidade: " + item.QuantidadeProduto); // } // Console.ReadLine(); //} //else //{ // var resultQuery = from l in listaLote // join p in listaProduto // on l.Produto_CodigoProduto equals p.CodigoProduto // join c in listaCategoria // on p.Categoria_CodigoCategoria equals c.CodigoCategoria // orderby l.ValidadeLote // select new // { // l.DescricaoLote, // p.NomeProduto, // c.NomeCategoria, // l.ValidadeLote, // l.QuantidadeProduto, // }; // foreach (var item in resultQuery) // { // Console.WriteLine("Lote: " + item.DescricaoLote + " Produto: " + item.NomeProduto + " Categoria: " + item.NomeCategoria + " Validade: " + item.ValidadeLote + " Quantidade: " + item.QuantidadeProduto); // } // Console.ReadLine(); //} #endregion //RELATORIO DE PRODUTO // Filtros: CATEGORIA/DATA ou DATA ou TODOS OS PRODUTOS #region RELATORIO DE PRODUTO if (nomeCategoria != null && dataValidade != null) { var resultQuery = from p in listaProduto join l in filtroLote on p.CodigoProduto equals l.Produto_CodigoProduto join c in filtroCategoria on p.Categoria_CodigoCategoria equals c.CodigoCategoria select new { p.NomeProduto, c.NomeCategoria, p.MarcaProduto, l.ValidadeLote, }; foreach (var item in resultQuery) { Console.WriteLine("Produto: " + item.NomeProduto + " Categoria: " + item.NomeCategoria + " Marca: " + item.MarcaProduto + " Validade: " + item.ValidadeLote); } Console.ReadLine(); } else if (nomeCategoria == null && dataValidade != null) { var resultQuery = from p in listaProduto join l in filtroLote on p.CodigoProduto equals l.Produto_CodigoProduto join c in listaCategoria on p.Categoria_CodigoCategoria equals c.CodigoCategoria select new { p.NomeProduto, c.NomeCategoria, p.MarcaProduto, l.ValidadeLote, }; foreach (var item in resultQuery) { Console.WriteLine("Produto: " + item.NomeProduto + " Categoria: " + item.NomeCategoria + " Marca: " + item.MarcaProduto + " Validade: " + item.ValidadeLote); } Console.ReadLine(); } else if (nomeCategoria == null && dataValidade == null) { var todosLote = loteDAO.GetAll(); var todosProdutos = produtoDAO.GetAll(); var todasCategorias = categoriaDAO.GetAll(); var resultQuery = from p in todosProdutos join l in todosLote on p.CodigoProduto equals l.Produto_CodigoProduto join c in todasCategorias on p.Categoria_CodigoCategoria equals c.CodigoCategoria select new { p.NomeProduto, c.NomeCategoria, p.MarcaProduto, l.ValidadeLote, }; foreach (var item in resultQuery) { Console.WriteLine("Produto: " + item.NomeProduto + " Categoria: " + item.NomeCategoria + " Marca: " + item.MarcaProduto + " Validade: " + item.ValidadeLote); } Console.ReadLine(); } #endregion }
public ActionResult RelatorioProduto(string nomeCategoria, DateTime dataValidade) { RelatorioViewModel model = new RelatorioViewModel { ListaProdutoViewModel = new List <ProdutoViewModel>() }; CategoriaDAO categoriaDAO = new CategoriaDAO(); var listaCategoria = categoriaDAO.GetAll(); var filtroCategoria = new List <CategoriaProduto>(); foreach (var item in listaCategoria) { if (item.NomeCategoria.Equals(nomeCategoria)) { filtroCategoria.Add(item); } } ProdutoDAO produtoDAO = new ProdutoDAO(); var listaProduto = produtoDAO.GetAll(); //var filtroProduto = new List<Produto>(); //foreach (var item in listaProduto) //{ // if (item.NomeProduto.Equals(nomeProduto)) // { // filtroProduto.Add(item); // } //} LoteDAO loteDAO = new LoteDAO(); var listaLote = loteDAO.GetAll(); var filtroLote = new List <Lote>(); foreach (var item in listaLote) { if (item.ValidadeLote.Equals(dataValidade)) { filtroLote.Add(item); } } if (nomeCategoria != null && dataValidade != null) { var resultQuery = from p in listaProduto join l in filtroLote on p.CodigoProduto equals l.Produto_CodigoProduto join c in filtroCategoria on p.Categoria_CodigoCategoria equals c.CodigoCategoria select new { p.NomeProduto, c.NomeCategoria, l.ValidadeLote, }; return(View()); } else if (nomeCategoria == null && dataValidade != null) { var resultQuery = from p in listaProduto join l in filtroLote on p.CodigoProduto equals l.Produto_CodigoProduto select new { p.NomeProduto, p.MarcaProduto, l.ValidadeLote, }; return(View()); } else if (nomeCategoria == null && dataValidade == null) { var todosLote = loteDAO.GetAll(); var todosProdutos = produtoDAO.GetAll(); var todasCategorias = categoriaDAO.GetAll(); var resultQuery = from p in todosProdutos join l in todosLote on p.CodigoProduto equals l.Produto_CodigoProduto join c in todasCategorias on p.Categoria_CodigoCategoria equals c.CodigoCategoria select new { p.NomeProduto, c.NomeCategoria, p.MarcaProduto, l.ValidadeLote, }; return(View()); } return(null); }
public ActionResult RelatorioLote(string nomeLote, string nomeCategoria, DateTime dataValidade) { CategoriaDAO categoriaDAO = new CategoriaDAO(); var listaCategoria = categoriaDAO.GetAll(); var filtroCategoria = new List <CategoriaProduto>(); foreach (var item in listaCategoria) { if (item.NomeCategoria.Equals(nomeCategoria)) { filtroCategoria.Add(item); } } LoteDAO loteDAO = new LoteDAO(); var listaLote = loteDAO.GetAll(); var filtroLote = new List <Lote>(); foreach (var item in listaLote) { if (item.ValidadeLote.Equals(dataValidade) && item.DescricaoLote.Equals(nomeLote)) { filtroLote.Add(item); } } ProdutoDAO produtoDAO = new ProdutoDAO(); var listaProduto = produtoDAO.GetAll(); var filtroProduto = new List <Produto>(); if (nomeLote != null && nomeCategoria != null && dataValidade != null) { var resultQuery = from l in filtroLote join p in listaProduto on l.Produto_CodigoProduto equals p.CodigoProduto join c in filtroCategoria on p.Categoria_CodigoCategoria equals c.CodigoCategoria orderby l.ValidadeLote select new { l.DescricaoLote, p.NomeProduto, c.NomeCategoria, l.ValidadeLote, l.QuantidadeProduto, }; return(View()); } else { var resultQuery = from l in listaLote join p in listaProduto on l.Produto_CodigoProduto equals p.CodigoProduto join c in listaCategoria on p.Categoria_CodigoCategoria equals c.CodigoCategoria orderby l.ValidadeLote select new { l.DescricaoLote, p.NomeProduto, c.NomeCategoria, l.ValidadeLote, l.QuantidadeProduto, }; return(View()); } }
public ActionResult RelatorioProduto(FiltrosViewModel filtro) { CategoriaDAO categoriaDAO = new CategoriaDAO(); ProdutoDAO produtoDAO = new ProdutoDAO(); LoteDAO loteDAO = new LoteDAO(); var todosLote = loteDAO.GetAll(); var todosProdutos = produtoDAO.GetAll(); var todasCategorias = categoriaDAO.GetAll(); if (filtro.SelectItemCategoriaId != null && filtro.SelectItemProdutoId != null) { var resultQuery = from p in todosProdutos join c in todasCategorias on p.Categoria_CodigoCategoria equals c.CodigoCategoria where p.Categoria_CodigoCategoria == filtro.SelectItemCategoriaId && p.CodigoProduto == filtro.SelectItemProdutoId select new RelatorioProdutoViewModel { NomeProduto = p.NomeProduto, NomeCategoria = c.NomeCategoria, Marca = p.MarcaProduto, }; return(View(resultQuery.Distinct())); } else if (filtro.SelectItemCategoriaId == null && filtro.SelectItemProdutoId != null) { var resultQuery = from p in todosProdutos join c in todasCategorias on p.Categoria_CodigoCategoria equals c.CodigoCategoria where p.CodigoProduto == filtro.SelectItemProdutoId select new RelatorioProdutoViewModel { NomeProduto = p.NomeProduto, NomeCategoria = c.NomeCategoria, Marca = p.MarcaProduto, }; return(View(resultQuery.Distinct())); } else if (filtro.SelectItemCategoriaId != null && filtro.NomeProduto == null) { var resultQuery = from p in todosProdutos join c in todasCategorias on p.Categoria_CodigoCategoria equals c.CodigoCategoria where p.Categoria_CodigoCategoria == filtro.SelectItemCategoriaId select new RelatorioProdutoViewModel { NomeProduto = p.NomeProduto, NomeCategoria = c.NomeCategoria, Marca = p.MarcaProduto, }; return(View(resultQuery.Distinct())); } else if (filtro.SelectItemProdutoId == null && filtro.SelectItemCategoriaId != null) { var resultQuery = from p in todosProdutos join c in todasCategorias on p.Categoria_CodigoCategoria equals c.CodigoCategoria where p.CodigoProduto == filtro.SelectItemProdutoId select new RelatorioProdutoViewModel { NomeProduto = p.NomeProduto, NomeCategoria = c.NomeCategoria, Marca = p.MarcaProduto, }; return(View(resultQuery.Distinct())); } else { var resultQuery = from p in todosProdutos join c in todasCategorias on p.Categoria_CodigoCategoria equals c.CodigoCategoria select new RelatorioProdutoViewModel { NomeProduto = p.NomeProduto, NomeCategoria = c.NomeCategoria, Marca = p.MarcaProduto, }; return(View(resultQuery.Distinct())); } }
public ActionResult RelatorioLote(FiltrosViewModel filtro) { CategoriaDAO categoriaDAO = new CategoriaDAO(); var listaCategoria = categoriaDAO.GetAll(); LoteDAO loteDAO = new LoteDAO(); var listaLote = loteDAO.GetAll(); ProdutoDAO produtoDAO = new ProdutoDAO(); var listaProduto = produtoDAO.GetAll(); EstoqueDAO estoqueDao = new EstoqueDAO(); //todos if (filtro.SelectItemLoteId != null && filtro.SelectItemCategoriaId != null && filtro.SelectItemProdutoId != null) { var resultQuery = from l in listaLote join p in listaProduto on l.Produto_CodigoProduto equals p.CodigoProduto join c in listaCategoria on p.Categoria_CodigoCategoria equals c.CodigoCategoria where l.Produto_CodigoProduto == filtro.SelectItemProdutoId && p.CodigoProduto == filtro.SelectItemProdutoId && p.Categoria_CodigoCategoria == filtro.SelectItemCategoriaId select new RelatorioLoteViewModel { DescricaoLote = l.DescricaoLote, NomeProduto = p.NomeProduto, NomeCategoria = c.NomeCategoria, ValidadeLote = l.ValidadeLote, QuantidadeProduto = l.QuantidadeProduto, LocalEstoque = estoqueDao.GetById(l.Estoque_CodigoEstoque).DescricaoEstoque, }; return(View(resultQuery.Distinct())); } //seleciona produto e categoria aaaaa else if (filtro.SelectItemLoteId == null && filtro.SelectItemCategoriaId != null && filtro.SelectItemProdutoId != null) { var resultQuery = from l in listaLote join p in listaProduto on l.Produto_CodigoProduto equals p.CodigoProduto join c in listaCategoria on p.Categoria_CodigoCategoria equals c.CodigoCategoria where p.CodigoProduto == filtro.SelectItemProdutoId && c.CodigoCategoria == filtro.SelectItemCategoriaId select new RelatorioLoteViewModel { DescricaoLote = l.DescricaoLote, NomeProduto = p.NomeProduto, NomeCategoria = c.NomeCategoria, ValidadeLote = l.ValidadeLote, QuantidadeProduto = l.QuantidadeProduto, LocalEstoque = estoqueDao.GetById(l.Estoque_CodigoEstoque).DescricaoEstoque, }; return(View(resultQuery.Distinct())); } //seleciona produto e lote else if (filtro.SelectItemLoteId != null && filtro.SelectItemCategoriaId == null && filtro.SelectItemProdutoId != null) { var resultQuery = from l in listaLote join p in listaProduto on l.Produto_CodigoProduto equals p.CodigoProduto join c in listaCategoria on p.Categoria_CodigoCategoria equals c.CodigoCategoria where p.CodigoProduto == filtro.SelectItemProdutoId && l.CodigoLote == filtro.SelectItemLoteId select new RelatorioLoteViewModel { DescricaoLote = l.DescricaoLote, NomeProduto = p.NomeProduto, NomeCategoria = c.NomeCategoria, ValidadeLote = l.ValidadeLote, QuantidadeProduto = l.QuantidadeProduto, LocalEstoque = estoqueDao.GetById(l.Estoque_CodigoEstoque).DescricaoEstoque, }; return(View(resultQuery.Distinct())); } //lote e categoria else if (filtro.SelectItemLoteId != null && filtro.SelectItemCategoriaId != null && filtro.SelectItemProdutoId == null) { var resultQuery = from l in listaLote join p in listaProduto on l.Produto_CodigoProduto equals p.CodigoProduto join c in listaCategoria on p.Categoria_CodigoCategoria equals c.CodigoCategoria where l.CodigoLote == filtro.SelectItemLoteId && c.CodigoCategoria == filtro.SelectItemCategoriaId select new RelatorioLoteViewModel { DescricaoLote = l.DescricaoLote, NomeProduto = p.NomeProduto, NomeCategoria = c.NomeCategoria, ValidadeLote = l.ValidadeLote, QuantidadeProduto = l.QuantidadeProduto, LocalEstoque = estoqueDao.GetById(l.Estoque_CodigoEstoque).DescricaoEstoque, }; return(View(resultQuery.Distinct())); } //produto else if (filtro.SelectItemLoteId == null && filtro.SelectItemCategoriaId == null && filtro.SelectItemProdutoId != null) { var resultQuery = from l in listaLote join p in listaProduto on l.Produto_CodigoProduto equals p.CodigoProduto join c in listaCategoria on p.Categoria_CodigoCategoria equals c.CodigoCategoria where p.CodigoProduto == filtro.SelectItemProdutoId select new RelatorioLoteViewModel { DescricaoLote = l.DescricaoLote, NomeProduto = p.NomeProduto, NomeCategoria = c.NomeCategoria, ValidadeLote = l.ValidadeLote, QuantidadeProduto = l.QuantidadeProduto, LocalEstoque = estoqueDao.GetById(l.Estoque_CodigoEstoque).DescricaoEstoque, }; return(View(resultQuery.Distinct())); } //lote else if (filtro.SelectItemLoteId != null && filtro.SelectItemCategoriaId == null && filtro.SelectItemProdutoId == null) { var resultQuery = from l in listaLote join p in listaProduto on l.Produto_CodigoProduto equals p.CodigoProduto join c in listaCategoria on p.Categoria_CodigoCategoria equals c.CodigoCategoria where l.CodigoLote == filtro.SelectItemLoteId select new RelatorioLoteViewModel { DescricaoLote = l.DescricaoLote, NomeProduto = p.NomeProduto, NomeCategoria = c.NomeCategoria, ValidadeLote = l.ValidadeLote, QuantidadeProduto = l.QuantidadeProduto, LocalEstoque = estoqueDao.GetById(l.Estoque_CodigoEstoque).DescricaoEstoque, }; return(View(resultQuery.Distinct())); } //categoria else if (filtro.SelectItemLoteId == null && filtro.SelectItemCategoriaId != null && filtro.SelectItemProdutoId == null) { var resultQuery = from l in listaLote join p in listaProduto on l.Produto_CodigoProduto equals p.CodigoProduto join c in listaCategoria on p.Categoria_CodigoCategoria equals c.CodigoCategoria where c.CodigoCategoria == filtro.SelectItemCategoriaId select new RelatorioLoteViewModel { DescricaoLote = l.DescricaoLote, NomeProduto = p.NomeProduto, NomeCategoria = c.NomeCategoria, ValidadeLote = l.ValidadeLote, QuantidadeProduto = l.QuantidadeProduto, LocalEstoque = estoqueDao.GetById(l.Estoque_CodigoEstoque).DescricaoEstoque, }; return(View(resultQuery.Distinct())); } else { var resultQuery = from l in listaLote join p in listaProduto on l.Produto_CodigoProduto equals p.CodigoProduto join c in listaCategoria on p.Categoria_CodigoCategoria equals c.CodigoCategoria select new RelatorioLoteViewModel { DescricaoLote = l.DescricaoLote, NomeProduto = p.NomeProduto, NomeCategoria = c.NomeCategoria, ValidadeLote = l.ValidadeLote, QuantidadeProduto = l.QuantidadeProduto, LocalEstoque = estoqueDao.GetById(l.Estoque_CodigoEstoque).DescricaoEstoque, }; return(View(resultQuery.Distinct())); } }
public LoteViewModel VerificaSituacaoLote() { var loteDAO = new LoteDAO(); var baixaDAO = new BaixaDAO(); var listabaixa = baixaDAO.GetAll(); var loteAtual = loteDAO.GetAll(); var produtoDAO = new ProdutoDAO(); var listaProduto = produtoDAO.GetAll(); var baixaTotal = 0; HashSet <string> lista = new HashSet <string>(); var texto = ""; foreach (var aux in loteAtual) { var lotemesatual = loteDAO.GetAll().Where(x => x.ValidadeLote.Month == DateTime.Now.Month && x.Produto_CodigoProduto == aux.Produto_CodigoProduto).Sum(x => x.QuantidadeProduto); var baixaprodmes1 = baixaDAO.GetAll().Where(x => x.DataBaixa.Month == (DateTime.Now.Month - 1) && x.Produto_CodigoProduto == aux.Produto_CodigoProduto).Sum(x => x.QuantidadeBaixa); var baixaprodmes2 = baixaDAO.GetAll().Where(x => x.DataBaixa.Month == (DateTime.Now.Month - 2) && x.Produto_CodigoProduto == aux.Produto_CodigoProduto).Sum(x => x.QuantidadeBaixa); var baixaprodmes3 = baixaDAO.GetAll().Where(x => x.DataBaixa.Month == (DateTime.Now.Month - 3) && x.Produto_CodigoProduto == aux.Produto_CodigoProduto).Sum(x => x.QuantidadeBaixa); var nomeproduto = produtoDAO.GetById(aux.Produto_CodigoProduto); var diasrestantes = aux.ValidadeLote.Day - DateTime.Now.Day; if (baixaprodmes1 > 0 && baixaprodmes2 > 0 && baixaprodmes3 > 0) // 3 meses { baixaTotal = ((baixaprodmes1 + baixaprodmes2 + baixaprodmes3) / 3); } else if (baixaprodmes1 == 0 && baixaprodmes2 > 0 && baixaprodmes3 > 0) // 2 e 3 meses { baixaTotal = (baixaprodmes2 + baixaprodmes3) / 2; } else if (baixaprodmes2 == 0 && baixaprodmes1 > 0 && baixaprodmes3 > 0) //1 e 3 meses { baixaTotal = (baixaprodmes1 + baixaprodmes3) / 2; } else if (baixaprodmes3 == 0 && baixaprodmes1 > 0 && baixaprodmes2 > 0) // 1 e 2 { baixaTotal = (baixaprodmes1 + baixaprodmes2) / 2; } else if (baixaprodmes2 == 0 && baixaprodmes3 == 0 && baixaprodmes1 > 0) { baixaTotal = baixaprodmes1; } else if (baixaprodmes1 == 0 && baixaprodmes3 == 0 && baixaprodmes2 > 0) { baixaTotal = baixaprodmes2; } else if (baixaprodmes2 == 0 && baixaprodmes1 == 0 && baixaprodmes3 > 0) { baixaTotal = baixaprodmes3; } else { baixaTotal = 0; } //Verificação do warning de baixas if (lotemesatual > baixaTotal && baixaTotal > 0) //&& diasrestantes < 16) { var diferençaresultado = lotemesatual - baixaTotal; var resultadoporcentagem = (float)((diferençaresultado * 100) / lotemesatual); texto = "Ops, você não conseguira vender: " + resultadoporcentagem + " % do seu estoque de " + nomeproduto.NomeProduto + ", faça uma promoção!"; lista.Add(texto); } else { ViewBag.Mensagem = ""; } } var model = new LoteViewModel() { ListaAlerta = lista, }; return(model); }