コード例 #1
0
        // 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));
        }
コード例 #2
0
        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));
        }