public ActionResult NovaOrdem(OrdemViewModels ordemViewModels) { ordemViewModels = Session["OrdemViewModels"] as OrdemViewModels; var cliente = new Customizar { Nome = "Selecione um cliente" }; var clientes = new List <Customizar>(); clientes.Add(cliente); clientes.AddRange(db.Customizars.ToList().OrderBy(x => x.NomeCompleto)); ViewBag.Clientes = new SelectList(clientes, "CustomizarId", "NomeCompleto"); if (Request["Clientes"] == null) { ViewBag.Error = "É necessário adicionar um produto"; return(View()); } var clienteId = int.Parse(Request["Clientes"]); if (clienteId == 0) { ViewBag.Error = "Selecione um cliente"; return(View(ordemViewModels)); } //if(ordemViewModels.ProdutosOrdem.Count == 0) //{ // ViewBag.Clientes = new SelectList(clientes, "CustomizarId", "NomeCompleto", clienteId); // ViewBag.Error = "É necessário adicionar um produto"; // return View(); //} var ordemId = 0; using (var transaction = db.Database.BeginTransaction()) { try { var novaOrdem = new Ordem { DataOrdem = DateTime.Now, CustomizarId = clienteId, OrdemStatus = OrdemStatus.Criada }; db.Ordem.Add(novaOrdem); db.SaveChanges(); ordemId = db.Ordem.Select(x => x.OrdemId).Max(); if (ordemId > 0) { foreach (var item in ordemViewModels.ProdutosOrdem) { var novaOrdemDetalhe = new OrdemDetalhe { OrdemId = ordemId, ProdutoId = item.ProdutoId, Descricao = item.Descricao, Preco = item.Preco, Quantidade = item.Quantidade, }; db.OrdemDetalhe.Add(novaOrdemDetalhe); db.SaveChanges(); } } transaction.Commit(); ViewBag.Error = string.Format("Ordem N°:{0}, criada com sucesso! ", ordemId); } catch (Exception ex) { transaction.Rollback(); ViewBag.Error = "Falha ao criar a Ordem. " + ex.Message; } } return(View(ordemViewModels)); }
public ActionResult NovaOrdem(OrdemView ordemView) { ordemView = Session["ordemView"] as OrdemView; var customizarId = int.Parse(Request["CustomizarId"]); if (customizarId == 0) { var lista = db.Customizars.ToList(); lista.Add(new Customizar { CustomizarId = 0, Nome = "[Selecione...]" }); lista = lista.OrderBy(c => c.NomeCompleto).ToList(); ViewBag.CustomizarId = new SelectList(lista, "CustomizarId", "NomeCompleto"); //Tratamento de erro ViewBag.Error = "Selecione um Cliente."; return(View(ordemView)); } var cliente = db.Produtoes.Find(customizarId); if (cliente == null) { var lista = db.Customizars.ToList(); lista.Add(new Customizar { CustomizarId = 0, Nome = "[Selecione...]" }); lista = lista.OrderBy(c => c.NomeCompleto).ToList(); ViewBag.CustomizarId = new SelectList(lista, "CustomizarId", "NomeCompleto"); //Tratamento de erro ViewBag.Error = "O cliente não existe."; return(View(ordemView)); } if (ordemView.Produtos.Count == 0) { var lista = db.Customizars.ToList(); lista.Add(new Customizar { CustomizarId = 0, Nome = "[Selecione...]" }); lista = lista.OrderBy(c => c.NomeCompleto).ToList(); ViewBag.CustomizarId = new SelectList(lista, "CustomizarId", "NomeCompleto"); return(View(ordemView)); } using (var transaction = db.Database.BeginTransaction()) { try { //Salvando uma ordem var ordem = new Ordem { CustomizarId = customizarId, OrdemData = DateTime.Now, OrdemStatus = OrdemStatus.Criada }; db.Ordem.Add(ordem); db.SaveChanges(); //Salvando ordem detalhes var ordemId = db.Ordem.ToList().Select(o => o.OrdemId).Max(); foreach (var item in ordemView.Produtos) { var ordemDetalhes = new OrdemDetalhe { ProdutoId = item.ProdutoId, OrdemId = ordemId, Descricao = item.Descricao, Preco = item.Preco, Quantidade = item.Quantidade }; db.OrdemDetalhe.Add(ordemDetalhes); db.SaveChanges(); } //Commit para acetiar a transação transaction.Commit(); ViewBag.Sucesso = string.Format("Ordem: {0}, foi salva com sucesso.", ordemId); } catch (Exception ex) { transaction.Rollback(); ViewBag.Erro = "Erro " + ex.ToString(); } } var lista2 = db.Customizars.ToList(); lista2.Add(new Customizar { CustomizarId = 0, Nome = "[Selecione...]" }); lista2 = lista2.OrderBy(c => c.NomeCompleto).ToList(); ViewBag.CustomizarId = new SelectList(lista2, "CustomizarId", "NomeCompleto"); ordemView = new OrdemView(); ordemView.Customizar = new Customizar(); ordemView.Produtos = new List <ProdutoOrdem>(); Session["ordemView"] = ordemView; return(View()); }
public ActionResult NovaOrdem(OrdemView ordemView) { ordemView = Session["ordemView"] as OrdemView; var customizarId = int.Parse(Request["CustomizarId"]); var list = db.Customizars.ToList(); if (customizarId == 0) { list = db.Customizars.ToList(); list.Add(new Customizar { CustomizarId = 0, Nome = "[Selecione um Cliente]" }); list = list.OrderBy(c => c.NomeCompleto).ToList(); ViewBag.CustomizarId = new SelectList(list, "CustomizarId", "NomeCompleto"); ViewBag.Error = "Selecione um cliente"; return(View(ordemView)); } var cliente = db.Customizars.Find(customizarId); if (cliente == null) { list = db.Customizars.ToList(); list.Add(new Customizar { CustomizarId = 0, Nome = "[Selecione um Cliente]" }); list = list.OrderBy(c => c.NomeCompleto).ToList(); ViewBag.CustomizarId = new SelectList(list, "CustomizarId", "NomeCompleto"); ViewBag.Error = "Selecione um cliente"; return(View(ordemView)); } if (ordemView.Produtos.Count == 0) { list = db.Customizars.ToList(); list.Add(new Customizar { CustomizarId = 0, Nome = "[Selecione um Cliente]" }); list = list.OrderBy(c => c.NomeCompleto).ToList(); ViewBag.CustomizarId = new SelectList(list, "CustomizarId", "NomeCompleto"); ViewBag.Error = "Selecione um Produto"; return(View(ordemView)); } int ordemId = 0; using (var transaction = db.Database.BeginTransaction()) { try { var ordem = new Ordem { CustomizarId = customizarId, OrdemData = DateTime.Now, OrdemStatus = OrdemStatus.Criada }; db.Ordem.Add(ordem); db.SaveChanges(); ordemId = db.Ordem.ToList().Select(o => o.OrdemId).Max(); foreach (var item in ordemView.Produtos) { var ordemDetalhes = new OrdemDetalhe { ProdutoId = item.ProdutoId, Descricao = item.Descricao, Quantidade = item.Quantidade, Preco = item.Preco, OrdemId = ordemId }; db.OrdemDetalhe.Add(ordemDetalhes); db.SaveChanges(); } transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); ViewBag.Error = "Error" + ex.Message; return(View(ordemView)); } } ViewBag.Mensagem = string.Format("Ordem: {0}, foi salva com sucesso", ordemId); list = db.Customizars.ToList(); list.Add(new Customizar { CustomizarId = 0, Nome = "[Selecione um Cliente]" }); list = list.OrderBy(c => c.NomeCompleto).ToList(); ViewBag.CustomizarId = new SelectList(list, "CustomizarId", "NomeCompleto"); ViewBag.Error = "Selecione um cliente"; ordemView = new OrdemView(); ordemView.Customizar = new Customizar(); ordemView.Produtos = new List <ProdutoOrdem>(); Session["ordemView"] = ordemView; return(View(ordemView)); }
public ActionResult NovaOrdem(OrdemView ordemView) { ordemView = Session["OrdemView"] as OrdemView; var IDCustomizar = int.Parse(Request["IDCustomizar"]); var List = db.Customizars.ToList(); if (IDCustomizar == 0) { List.Add(new Customizar { IDCustomizar = 0, Nome = "[Selecione um Cliente]" }); List = List.OrderBy(c => c.NomeCompleto).ToList(); ViewBag.IDCustomizar = new SelectList(List, "CustomizarID", "NomeCompleto"); ViewBag.Error = "Selecione um Cliente"; return(View(ordemView)); } var Cliente = db.Customizars.Find(IDCustomizar); if (Cliente == null) { List.Add(new Customizar { IDCustomizar = 0, Nome = "[Selecione um Cliente]" }); List = List.OrderBy(c => c.NomeCompleto).ToList(); ViewBag.IDCustomizar = new SelectList(List, "CustomizarID", "NomeCompleto"); ViewBag.Error = "Não existe o Cliente Selecionado"; return(View(ordemView)); } if (ordemView.Produtos.Count == 0) { List.Add(new Customizar { IDCustomizar = 0, Nome = "[Selecione um Cliente]" }); List = List.OrderBy(c => c.NomeCompleto).ToList(); ViewBag.IDCustomizar = new SelectList(List, "CustomizarID", "NomeCompleto"); ViewBag.Error = "Selecione um Produto"; return(View(ordemView)); } var ordem = new Ordem { IDCustomizar = IDCustomizar, OrdemData = DateTime.Now, OrdemStatus = OrdemStatus.Criada }; db.Ordem.Add(ordem); db.SaveChanges(); var ordemID = db.Ordem.ToList().Select(o => o.IDOrdem).Max(); foreach (var item in ordemView.Produtos) { var ordemDetalhe = new OrdemDetalhe { IDProduto = item.IDProduto, Descricao = item.Descricao, Quantidade = item.Quantidade, Preco = item.Preco, IDOrdem = ordemID }; db.OrdemDetalhe.Add(ordemDetalhe); db.SaveChanges(); } ViewBag.Mensagem = string.Format("Ordem: {0}, Salva com Sucesso!", ordemID); List.Add(new Customizar { IDCustomizar = 0, Nome = "[Selecione um Cliente]" }); List = List.OrderBy(c => c.NomeCompleto).ToList(); ViewBag.IDCustomizar = new SelectList(List, "CustomizarID", "NomeCompleto"); ordemView = new OrdemView(); ordemView.Customizar = new Customizar(); ordemView.Produtos = new List <ProdutoOrdem>(); Session["OrdemView"] = ordemView; return(View()); }