public ActionResult ArmazenaVenda(CadastroArmazenamentoVendaModel model) { if (model.Quantidade > 0) { ProdutoDto pDto = (ProdutoDto)Session["ProdutoVenda"]; EstoqueDados eDados = new EstoqueDados(); Estoque e = eDados.ObterPorIdComposto(pDto.Produto.Id, model.IdFreezer); if (e != null) { if (model.Quantidade <= e.Quantidade) { if (model.Quantidade <= pDto.Quantidade) { e.Quantidade = e.Quantidade - model.Quantidade; eDados.Alterar(e); pDto.Quantidade = pDto.Quantidade - model.Quantidade; Session["ProdutoVenda"] = pDto; List <ProdutoDto> listaProd = (List <ProdutoDto>)Session["ListaVenda"]; List <ProdutoDto> listaProd2 = new List <ProdutoDto>(); Session["ListaVenda"] = null; foreach (ProdutoDto p in listaProd) { if (p.Produto.Id != pDto.Produto.Id) { listaProd2.Add(p); } } if (pDto.Quantidade != 0) { listaProd2.Add(pDto); } Session["ListaVenda"] = listaProd2; } else { ViewBag.MensagemVenda = "A quantidade que você tentou retirar não condiz com a venda efetuada."; if (Session["ListaVenda"] != null) { VendaModel vm = new VendaModel(); vm.ListagemProdutosVenda = (List <ProdutoDto>)Session["ListaVenda"]; return(View("ArmazenamentoVenda", vm)); } } } else { ViewBag.MensagemVenda = "A quantidade que você solicitou não está disponível no freezer selecionado."; if (Session["ListaVenda"] != null) { VendaModel vm = new VendaModel(); vm.ListagemProdutosVenda = (List <ProdutoDto>)Session["ListaVenda"]; return(View("ArmazenamentoVenda", vm)); } } } else { ViewBag.MensagemVenda = "Você deve preencher todo o formulário."; if (Session["ListaVenda"] != null) { VendaModel vm = new VendaModel(); vm.ListagemProdutosVenda = (List <ProdutoDto>)Session["ListaVenda"]; return(View("ArmazenamentoVenda", vm)); } } } else { ViewBag.MensagemVenda = "A quantidade digitada é inválida."; if (Session["ListaVenda"] != null) { VendaModel vm = new VendaModel(); vm.ListagemProdutosVenda = (List <ProdutoDto>)Session["ListaVenda"]; return(View("ArmazenamentoVenda", vm)); } } if (Session["ListaVenda"] != null) { return(RedirectToAction("ArmazenamentoVenda")); } else { return(RedirectToAction("InstanciaConsulta")); } }
public ActionResult ArmazenaCompra(CadastroArmazenamentoModel model) { if (model.Quantidade > 0) { ProdutoDto pDto = (ProdutoDto)Session["Produto"]; if (model.Quantidade <= pDto.Quantidade) { EstoqueDados eDados = new EstoqueDados(); if (eDados.ObterPorIdComposto(pDto.Produto.Id, model.IdFreezer) != null) { Estoque e = eDados.ObterPorIdComposto(pDto.Produto.Id, model.IdFreezer); e.Quantidade += model.Quantidade; eDados.Alterar(e); } else { FreezerDados fDados = new FreezerDados(); Estoque e = new Estoque(); e.Produto = pDto.Produto; e.Freezer = fDados.ObterPorId(model.IdFreezer); e.Quantidade = model.Quantidade; if (e.Produto != null && e.Freezer != null) { eDados.Inserir(e); } else { ViewBag.Mensagem = "Você deve preencher todo o formulário."; if (Session["Lista"] != null) { CompraModel cm = new CompraModel(); cm.ListagemProdutosCompra = (List <ProdutoDto>)Session["Lista"]; return(View("ArmazenamentoCompra", cm)); } } } pDto.Quantidade = pDto.Quantidade - model.Quantidade; Session["Produto"] = pDto; List <ProdutoDto> listaProd = (List <ProdutoDto>)Session["Lista"]; List <ProdutoDto> listaProd2 = new List <ProdutoDto>(); Session["Lista"] = null; foreach (ProdutoDto p in listaProd) { if (p.Produto.Id != pDto.Produto.Id) { listaProd2.Add(p); } } if (pDto.Quantidade != 0) { listaProd2.Add(pDto); } Session["Lista"] = listaProd2; } else { ViewBag.Mensagem = "A quantidade que você tentou inserir não condiz com a compra efetuada."; if (Session["Lista"] != null) { CompraModel cm = new CompraModel(); cm.ListagemProdutosCompra = (List <ProdutoDto>)Session["Lista"]; return(View("ArmazenamentoCompra", cm)); } } } else { ViewBag.Mensagem = "A quantidade digitada é inválida."; if (Session["Lista"] != null) { CompraModel cm = new CompraModel(); cm.ListagemProdutosCompra = (List <ProdutoDto>)Session["Lista"]; return(View("ArmazenamentoCompra", cm)); } } if (Session["Lista"] != null) { return(RedirectToAction("ArmazenamentoCompra")); } else { return(RedirectToAction("InstanciaConsulta")); } }