public async Task <IActionResult> Create([FromForm] ItemPedidoModel itemPedido)
        {
            if (ModelState.IsValid)
            {
                if (itemPedido.IdPedido > 0)
                {
                    var produto = await _context.Produtos.FindAsync(itemPedido.IdProduto);

                    itemPedido.ValorUnitario = produto.Valor;
                    if (ItemPedidoExiste(itemPedido.IdPedido, itemPedido.IdProduto))
                    {
                        _context.ItensPedidos.Update(itemPedido);
                        if (await _context.SaveChangesAsync() > 0)
                        {
                            TempData["mensagem"] = MensagemModel.Serializar("Item de pedido alterado com sucesso.");
                        }
                        else
                        {
                            TempData["mensagem"] = MensagemModel.Serializar("Erro ao alterar item de pedido.", TipoMensagem.Erro);
                        }
                    }
                    else
                    {
                        _context.ItensPedidos.Add(itemPedido);
                        if (await _context.SaveChangesAsync() > 0)
                        {
                            TempData["mensagem"] = MensagemModel.Serializar("Item de pedido cadastrado com sucesso.");
                        }
                        else
                        {
                            TempData["mensagem"] = MensagemModel.Serializar("Erro ao cadastrar item de pedido.", TipoMensagem.Erro);
                        }
                    }
                    var pedido = await _context.Pedidos.FindAsync(itemPedido.IdPedido);

                    pedido.ValorTotal = _context.ItensPedidos
                                        .Where(i => i.IdPedido == itemPedido.IdPedido)
                                        .Sum(i => i.ValorUnitario * i.Quantidade);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction("Index", new { ped = itemPedido.IdPedido }));
                }
                else
                {
                    TempData["mensagem"] = MensagemModel.Serializar("Pedido não informado.", TipoMensagem.Erro);
                    return(RedirectToAction("Index", "Cliente"));
                }
            }
            else
            {
                var produtos = _context.Produtos
                               .OrderBy(x => x.Nome)
                               .Select(p => new { p.IdProduto, NomePreco = $"{p.Nome} ({p.Valor:C})" })
                               .AsNoTracking().ToList();
                var produtosSelectList = new SelectList(produtos, "IdProduto", "NomePreco");
                ViewBag.Produtos = produtosSelectList;

                return(View(itemPedido));
            }
        }
Example #2
0
        public async Task <IActionResult> Create(int?id, [FromForm] ProdutoModel produto)
        {
            string wwwwRootPath = _hostEnvironment.WebRootPath;
            string fileName     = Path.GetFileNameWithoutExtension(produto.ImageFile.FileName);
            string extension    = Path.GetExtension(produto.ImageFile.FileName);

            produto.ImageName = fileName = fileName + DateTime.Now.ToString("yymmssfff") + extension;
            string path = Path.Combine(wwwwRootPath + "/Image/", fileName);

            using (var fileStream = new FileStream(path, FileMode.Create))

                if (ModelState.IsValid)
                {
                    // upload save image to wwwroot/image

                    {
                        await produto.ImageFile.CopyToAsync(fileStream);
                    }
                    if (id.HasValue)
                    {
                        if (ProdutoExiste(id.Value))
                        {
                            _context.Produtos.Update(produto);
                            if (await _context.SaveChangesAsync() > 0)
                            {
                                TempData["mensagem"] = MensagemModel.Serializar("Produto alterado com sucesso.");
                            }
                            else
                            {
                                TempData["mensagem"] = MensagemModel.Serializar("Erro ao alterar produto.", TipoMensagem.Erro);
                            }
                        }
                        else
                        {
                            TempData["mensagem"] = MensagemModel.Serializar("Produto não encontrado.", TipoMensagem.Erro);
                        }
                    }
                    else
                    {
                        _context.Produtos.Add(produto);
                        if (await _context.SaveChangesAsync() > 0)
                        {
                            TempData["mensagem"] = MensagemModel.Serializar("Produto cadastrado com sucesso.");
                        }
                        else
                        {
                            TempData["mensagem"] = MensagemModel.Serializar("Erro ao cadastrar produto.", TipoMensagem.Erro);
                        }
                    }
                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    return(View(produto));
                }
        }
Example #3
0
 public async Task <IActionResult> Create(int?id, [FromForm] ClienteModel cliente)
 {
     if (ModelState.IsValid)
     {
         if (id.HasValue)
         {
             if (ClienteExiste(id.Value))
             {
                 _context.Clientes.Update(cliente);
                 _context.Entry(cliente).Property(x => x.Senha).IsModified = false;
                 if (await _context.SaveChangesAsync() > 0)
                 {
                     TempData["mensagem"] = MensagemModel.Serializar("Cliente alterado com sucesso.");
                 }
                 else
                 {
                     TempData["mensagem"] = MensagemModel.Serializar("Erro ao alterar cliente.", TipoMensagem.Erro);
                 }
             }
             else
             {
                 TempData["mensagem"] = MensagemModel.Serializar("Cliente não encontrado.", TipoMensagem.Erro);
             }
         }
         else
         {
             _context.Clientes.Add(cliente);
             if (await _context.SaveChangesAsync() > 0)
             {
                 TempData["mensagem"] = MensagemModel.Serializar("Cliente cadastrado com sucesso.");
             }
             else
             {
                 TempData["mensagem"] = MensagemModel.Serializar("Erro ao cadastrar cliente.", TipoMensagem.Erro);
             }
         }
         return(RedirectToAction(nameof(Index)));
     }
     else
     {
         return(View(cliente));
     }
 }
 public async Task <IActionResult> Create(int?id, [FromForm] CategoriaModel categoria)
 {
     if (ModelState.IsValid)
     {
         if (id.HasValue)
         {
             if (CategoriaExiste(id.Value))
             {
                 _context.Categorias.Update(categoria);
                 if (await _context.SaveChangesAsync() > 0)
                 {
                     TempData["mensagem"] = MensagemModel.Serializar("Categoria alterada com sucesso.");
                 }
                 else
                 {
                     TempData["mensagem"] = MensagemModel.Serializar("Erro ao alterar categoria.", TipoMensagem.Erro);
                 }
             }
             else
             {
                 TempData["mensagem"] = MensagemModel.Serializar("Categoria não encontrada.", TipoMensagem.Erro);
             }
         }
         else
         {
             _context.Categorias.Add(categoria);
             if (await _context.SaveChangesAsync() > 0)
             {
                 TempData["mensagem"] = MensagemModel.Serializar("Categoria cadastrada com sucesso.");
             }
             else
             {
                 TempData["mensagem"] = MensagemModel.Serializar("Erro ao cadastrar categoria.", TipoMensagem.Erro);
             }
         }
         return(RedirectToAction(nameof(Index)));
     }
     else
     {
         return(View(categoria));
     }
 }
        public async Task <IActionResult> Create(int?cid)
        {
            if (cid.HasValue)
            {
                var cliente = await _context.Clientes.FindAsync(cid);

                if (cliente != null)
                {
                    _context.Entry(cliente).Collection(c => c.Pedidos).Load();
                    PedidoModel pedido = null;
                    if (_context.Pedidos.Any(p => p.IdCliente == cid && !p.DataPedido.HasValue))
                    {
                        pedido = await _context.Pedidos
                                 .FirstOrDefaultAsync(p => p.IdCliente == cid && !p.DataPedido.HasValue);
                    }
                    else
                    {
                        pedido = new PedidoModel {
                            IdCliente = cid.Value, ValorTotal = 0
                        };
                        cliente.Pedidos.Add(pedido);
                        await _context.SaveChangesAsync();
                    }
                    return(RedirectToAction("Index", "ItemPedido", new { ped = pedido.IdPedido }));
                }
                TempData["mensagem"] = MensagemModel.Serializar("Cliente não encontrado", TipoMensagem.Erro);
                return(RedirectToAction("Index", "Cliente"));
            }
            TempData["mensagem"] = MensagemModel.Serializar("Cliente não informado", TipoMensagem.Erro);
            return(RedirectToAction("Index", "Cliente"));
        }
        public async Task <IActionResult> Create([FromForm] int?idUsuario,
                                                 [FromForm] EnderecoModel endereco)
        {
            if (idUsuario.HasValue)
            {
                var cliente = await _context.Clientes.FindAsync(idUsuario);

                ViewBag.Cliente = cliente;

                if (ModelState.IsValid)
                {
                    if (cliente.Enderecos.Count() == 0)
                    {
                        endereco.Selecionado = true;
                    }
                    endereco.CEP = ObterCepNormalizado(endereco.CEP);
                    if (endereco.IdEndereco > 0)
                    {
                        if (endereco.Selecionado)
                        {
                            cliente.Enderecos.ToList().ForEach(e => e.Selecionado = false);
                        }

                        if (EnderecoExiste(idUsuario.Value, endereco.IdEndereco))
                        {
                            var enderecoAtual = cliente.Enderecos
                                                .FirstOrDefault(e => e.IdEndereco == endereco.IdEndereco);
                            _context.Entry(enderecoAtual).CurrentValues.SetValues(endereco);
                            if (_context.Entry(enderecoAtual).State == EntityState.Unchanged)
                            {
                                TempData["mensagem"] = MensagemModel.Serializar("Nenhum dado do endereço foi alterado.");
                            }
                            else
                            {
                                if (await _context.SaveChangesAsync() > 0)
                                {
                                    TempData["mensagem"] = MensagemModel.Serializar("Endereço alterado com sucesso.");
                                }
                                else
                                {
                                    TempData["mensagem"] = MensagemModel.Serializar("Erro ao alterar endereço.");
                                }
                            }
                        }
                        else
                        {
                            TempData["mensagem"] = MensagemModel.Serializar("Endereço não encontrado.", TipoMensagem.Erro);
                        }
                    }
                    else
                    {
                        var idEndereco = cliente.Enderecos.Count() > 0 ? cliente.Enderecos.Max(e => e.IdEndereco) + 1 : 1;
                        endereco.IdEndereco = idEndereco;
                        _context.Clientes.FirstOrDefault(c => c.IdUsuario == idUsuario).Enderecos.Add(endereco);
                        if (await _context.SaveChangesAsync() > 0)
                        {
                            TempData["mensagem"] = MensagemModel.Serializar("Endereço cadastrado com sucesso.");
                        }
                        else
                        {
                            TempData["mensagem"] = MensagemModel.Serializar("Erro ao cadastrar endereço.");
                        }
                    }
                    return(RedirectToAction("Index", "Endereco", new { cid = idUsuario }));
                }
                else
                {
                    return(View(endereco));
                }
            }
            else
            {
                TempData["mensagem"] = MensagemModel.Serializar("Nenhum proprietário de endereços foi informado.", TipoMensagem.Erro);
                return(RedirectToAction("Index", "Cliente"));
            }
        }