// GET: Ordem public ActionResult NovaOrdem() { var ordemViewModels = new OrdemViewModels(); ordemViewModels.Customizar = new Customizar(); ordemViewModels.ProdutosOrdem = new List <ProdutoOrdem>(); Session["OrdemViewModels"] = 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"); return(View(ordemViewModels)); }
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)); }