//GET public ActionResult DeleteBaixaProd(long?id, long bovinoId) { BaixaProduto baixa = db.BaixaProdutos.Find(id); Confinamento confinamento = db.Confinamentos.FirstOrDefault(x => x.BovinoId == bovinoId); if (baixa != null) { var listaProd = db.Produtos.ToList(); //Retornando os produtos ao estoque foreach (var item in baixa.Items) { foreach (var prod in listaProd) { if (item.ProdutoId == prod.Id) { prod.Qtd += item.Qtd; } db.Entry(prod).State = EntityState.Modified; } } confinamento.CustoTotal -= baixa.ValorTotal; db.Entry(confinamento).State = EntityState.Modified; List <ItemsBaixaProduto> listaProdutos = db.ItemsBaixaProdutos.Where(x => x.BaixaProdutoId == id).ToList(); db.ItemsBaixaProdutos.RemoveRange(listaProdutos); db.BaixaProdutos.Remove(baixa); db.SaveChanges(); return(RedirectToAction("ListaProd", new { bovinoId = bovinoId })); } return(new HttpNotFoundResult()); }
// GET: VendaProduto/Details/5 public ActionResult DetalhesBaixaProd(long?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } BaixaProduto baixa = db.BaixaProdutos.Find(id); if (baixa == null) { return(HttpNotFound()); } return(View(baixa)); }
public ActionResult AddProd([Bind(Include = "Id,DtUtilizacao,BovinoId")] BaixaProduto baixaProduto) { items = (List <ItemsBaixaProduto>)Session["Items"]; if (ModelState.IsValid && items.Count > 0 && baixaProduto.BovinoId > 0) { bool retorno = true; var listaProd = db.Produtos.ToList(); decimal vlrTotal = 0; foreach (var item in items) { foreach (var prod in listaProd) { if (item.ProdutoId == prod.Id) { if (item.Qtd > prod.Qtd) { retorno = false; } prod.Qtd -= item.Qtd; } } vlrTotal += item.ValorTotal; } if (retorno) { foreach (var item in items) { item.Produto = null; } baixaProduto.Items = items; baixaProduto.ValorTotal = vlrTotal; Confinamento confinamento = db.Confinamentos.FirstOrDefault(i => i.BovinoId == baixaProduto.BovinoId); if (confinamento != null) { confinamento.CustoTotal += vlrTotal; db.Entry(confinamento).State = EntityState.Modified; } //Persistindo os items e dando baixa no estoque de produtos foreach (var item in listaProd) { db.Entry(item).State = EntityState.Modified; } db.BaixaProdutos.Add(baixaProduto); db.SaveChanges(); return(RedirectToAction("ListaProd", new { bovinoId = baixaProduto.BovinoId })); } } Thread.Sleep(2000); ViewBag.ProdutoId = new SelectList(db.Produtos, "Id", "NomeProduto"); ViewBag.ClienteId = new SelectList(db.Clientes, "Id", "Nome", baixaProduto.BovinoId); if (db.Produtos != null && db.Produtos.Count() != 0) { ViewBag.ProdutoQtd = db.Produtos.FirstOrDefault().Qtd; ViewBag.VlrCusto = db.Produtos.FirstOrDefault().Valor.ToString("C"); } return(View(baixaProduto)); }