public IEnumerable <SelectListItem> GetBaixas() { var dao = new BaixaDAO(); var baixa = dao.GetAll() .Select(x => new SelectListItem { Value = x.CodigoBaixa.ToString(), }); return(new SelectList(baixa, "Value")); }
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)); }
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 RelatorioBaixa(FiltrosViewModel filtro) { BaixaDAO baixaDAO = new BaixaDAO(); var listaBaixa = baixaDAO.GetAll(); ProdutoDAO produtoDAO = new ProdutoDAO(); var listaProduto = produtoDAO.GetAll(); //todos if (filtro.SelectItemProdutoId != null) { var resultQuery = from b in listaBaixa join p in listaProduto on b.Produto_CodigoProduto equals p.CodigoProduto where b.Produto_CodigoProduto == filtro.SelectItemProdutoId select new RelatorioBaixaViewModel { NomeProduto = p.NomeProduto, QuantidadeBaixa = b.QuantidadeBaixa, DataBaixa = b.DataBaixa, }; return(View(resultQuery.Distinct())); } else { var resultQuery = from b in listaBaixa join p in listaProduto on b.Produto_CodigoProduto equals p.CodigoProduto select new RelatorioBaixaViewModel { NomeProduto = p.NomeProduto, QuantidadeBaixa = b.QuantidadeBaixa, DataBaixa = b.DataBaixa, }; return(View(resultQuery.Distinct())); } }
public ActionResult BaixaLote(LoteViewModel model, int codigoLote) { var loteDAO = new LoteDAO(); var loteAtual = loteDAO.GetById(codigoLote); if (model.QuantidadeBaixa > loteAtual.QuantidadeProduto) { ModelState.AddModelError("", "Quantidade invalida"); return(View("ErroQuantidade")); } else { var lote = new Lote() { CodigoLote = loteAtual.CodigoLote, QuantidadeProduto = (loteAtual.QuantidadeProduto - model.QuantidadeBaixa), //Subtraindo a quantidade atual. }; loteDAO.Update(lote); var baixaDAO = new BaixaDAO(); var baixa = new Baixa() { DataBaixa = DateTime.Now, Lote_CodigoLote = loteAtual.CodigoLote, Produto_CodigoProduto = loteAtual.Produto_CodigoProduto, QuantidadeBaixa = model.QuantidadeBaixa, }; baixaDAO.Salva(baixa); return(RedirectToAction("Index")); } }
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); }