예제 #1
0
        public IActionResult Put([FromBody] Produto produto)
        {
            try
            {
                var produtoEncontrado = _repoProduto.Selecionar(produto.Id);
                if (produtoEncontrado == null)
                {
                    return(NoContent());
                }

                if (produtoEncontrado.Producao == 0 &&
                    produto.Quantidade > 0)
                {
                    var producao = _repoProduto.Produzir(produtoEncontrado, produto.Quantidade);
                    if (producao == null)
                    {
                        return(BadRequest("Não há receita ou matéria prima suficiente para esta quantidade de produto."));
                    }
                }

                produto.Quantidade += produtoEncontrado.Quantidade;
                var produtoAlterado = _repoProduto.Alterar(produto);
                return(Ok("Produto alterado com sucesso."));
            }
            catch (System.Exception)
            {
                return(StatusCode(500));
            }
        }
예제 #2
0
 public IActionResult Edit(Produto produto)
 {
     if (ModelState.IsValid)
     {
         try
         {
             produto.UsuarioId = _session.GetUsuarioIdLogin();
             var ret = _produto.Alterar(produto);
             _session.MensagemSessao("Retorno", ret);
         }
         catch (DbUpdateConcurrencyException)
         {
             if (!ProdutoExists(produto.Id))
             {
                 return(NotFound());
             }
             else
             {
                 throw;
             }
         }
         return(RedirectToAction(nameof(Index)));
     }
     CarregarSelectList();
     return(View(produto));
 }
예제 #3
0
 public IActionResult Put(ProdutoEdicaoModel model)
 {
     if (ModelState.IsValid)
     {
         try
         {
             var produto = mapper.Map <Produto>(model);
             produtoRepository.Alterar(produto);
             var result = new
             {
                 message = "Produto atualizado com sucesso.",
                 produto
             };
             return(Ok(result));
         }
         catch (Exception e)
         {
             return(StatusCode(500, "Erro: " + e.Message));
         }
     }
     else
     {
         return(BadRequest("Ocorreram erros de validação."));
     }
 }
예제 #4
0
        [HttpPost] //Recebe o SUBMIT (envio dos dados) do formulário
        public IActionResult Edicao(ProdutoEdicaoModel model)
        {
            //verificar se os campos da model passaram nas validações
            if (ModelState.IsValid)
            {
                try
                {
                    Produto produto = new Produto();
                    produto.IdProduto  = model.IdProduto;
                    produto.Nome       = model.Nome;
                    produto.Preco      = model.Preco;
                    produto.Quantidade = model.Quantidade;

                    repository.Alterar(produto);

                    TempData["Mensagem"] = $"Produto {produto.Nome}, atualizado com sucesso.";
                    return(RedirectToAction("Consulta")); //redirecionamento
                }
                catch (Exception e)
                {
                    TempData["Mensagem"] = e.Message;
                }
            }

            return(View());
        }
예제 #5
0
        public void Vender(CarrinhoDTO carrinhoDTO)
        {
            // Somo o valor de cada produto
            double valorTotal = GetValorTotal(carrinhoDTO.ProdutosDTO);

            // Crio uma venda e salvo
            Venda venda = CriaVenda(valorTotal, carrinhoDTO.UsuarioDTO);

            // Vinculo produtos na venda salva
            carrinhoDTO.ProdutosDTO.ForEach(produto =>
            {
                Produto p = _repositoryProduto.BuscarPorId(produto.Id);
                VendaProduto vendaProduto = new VendaProduto()
                {
                    Id      = Guid.NewGuid().ToString(),
                    Produto = p,
                    Venda   = venda
                };

                p.Quantidade--; // Removo 1 quantidade

                _repositoryProduto.Alterar(p);
                _repositoryVendaProduto.Salvar(vendaProduto);
            });
        }
        public IActionResult Put(ProdutoEdicaoModel model, [FromServices] IProdutoRepository repository)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var produto = new Produto();
                    produto.IdProduto  = model.IdProduto;
                    produto.Nome       = model.Nome;
                    produto.Preco      = model.Preco;
                    produto.Quantidade = model.Quantidade;

                    repository.Alterar(produto);

                    return(Ok("Produto atualizado com sucesso."));
                }
                catch (Exception e)
                {
                    return(StatusCode(500, e.Message));
                }
            }
            else
            {
                return(BadRequest("Erro de validação."));
            }
        }
예제 #7
0
 public bool Alterar(Produto produto, out string mensagem)
 {
     if (_produtoRepository.PodeAlterar(produto, out mensagem))
     {
         _produtoRepository.Alterar(produto);
         return(true);
     }
     return(false);
 }
예제 #8
0
 public async Task <IActionResult> Put([FromBody] Produto produto)
 {
     try
     {
         return(Ok(await _produtoRepository.Alterar(produto)));
     }
     catch (Exception ex)
     {
         throw new ArgumentException("Erro ao atualizar produto");
     }
 }
예제 #9
0
        public IActionResult Put([FromBody] Produto produtoAlterado)
        {
            try
            {
                _produtoRepository.Alterar(produtoAlterado);

                return(Ok(produtoAlterado));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
예제 #10
0
        public async Task <Produto> Alterar(int idProduto, Produto produto)
        {
            try
            {
                await ValidarProdutoExistente(idProduto);
                await ValidarCategoriaExistente(produto.IdCategoria);

                return(await _produtoRepository.Alterar(produto));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #11
0
        public IActionResult Alterar(ProdutoDTO dto)
        {
            var aggregate = _repository.ObterPorId(dto.Id);

            if (aggregate == null)
            {
                return(NotFound());
            }

            aggregate.Alterar(dto.Nome, dto.ValorDeVenda, dto.Imagem);

            _repository.Alterar(aggregate);

            return(Ok());
        }
예제 #12
0
        public bool Alterar(string dados)
        {
            bool    success = true;
            Produto p       = JsonConvert.DeserializeObject <Produto>(dados);

            try
            {
                repositorio.Alterar(p);
            }
            catch (MySqlException ex)
            {
                success = false;
                throw ex;
            }
            return(success);
        }
예제 #13
0
        public IActionResult Put(ProdutoEdicaoModel model,
                                 [FromServices] IProdutoRepository repository,
                                 [FromServices] IMapper mapper)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Ocorreram erros de validações"));
            }

            try
            {
                var produto = mapper.Map <Produto>(model);
                repository.Alterar(produto);

                return(Ok("Produto atualizado com sucesso"));
            }
            catch (Exception e)
            {
                return(StatusCode(500, e.Message));
            }
        }
예제 #14
0
 public void Alterar(string id, ProdutoDTO produtoDTO)
 {
     _repository.Alterar(ConverterParaEntidade(id, produtoDTO));
 }
예제 #15
0
 public void Alterar(Produto produto)
 {
     _produtoRepository.Alterar(produto);
 }
예제 #16
0
 public void Alterar(Produto obj)
 {
     _rep.Alterar(obj);
 }
예제 #17
0
        public void Alterar(ProdutoView input)
        {
            var obj = _mapper.Map <Produto>(input);

            _ProdutoRepository.Alterar(obj);
        }
        public IActionResult Post([FromBody] ProdutoComanda produtoComanda)
        {
            try
            {
                var vendaJaRealizada = _repoVenda.SelecionarComandaId(produtoComanda.ComandaId);
                if (vendaJaRealizada != null)
                {
                    return(BadRequest("Comanda ja registrada. Favor verificar o número da comanda."));
                }

                var produto = _repoProduto.Selecionar(produtoComanda.ProdutoId);
                if (produto == null)
                {
                    return(NoContent());
                }

                if (!produto.Ativo)
                {
                    return(BadRequest("O produto não está mais ativo"));
                }

                var comanda = _repoComanda.Selecionar(produtoComanda.ComandaId);
                if (comanda == null)
                {
                    return(NoContent());
                }

                if (produtoComanda.Quantidade <= 0)
                {
                    return(BadRequest("Quantidade deve ser superior a 0."));
                }

                if (produto.Quantidade < produtoComanda.Quantidade)
                {
                    return(BadRequest($"A quantidade solicitada não tem no estoque. Contém no estoque {produto.Quantidade}"));
                }

                var comandaProdutoExiste = _repoProdutoComanda.SelecionarPorComandaIdProdutoId(produtoComanda.ComandaId, produtoComanda.ProdutoId);
                if (comandaProdutoExiste != null)
                {
                    produto.Quantidade        -= produtoComanda.Quantidade;
                    produtoComanda.Quantidade += comandaProdutoExiste.Quantidade;
                    produtoComanda.PrecoTotal  = (decimal)(produtoComanda.Quantidade * produto.Valor);
                    _repoProdutoComanda.Alterar(produtoComanda);

                    return(Ok("Comanda atualizada com sucesso."));
                }

                produto.Quantidade -= produtoComanda.Quantidade;
                _repoProduto.Alterar(produto);

                produtoComanda.PrecoTotal = (decimal)(produto.Valor * produtoComanda.Quantidade);
                _repoProdutoComanda.Incluir(produtoComanda);

                return(Created("", "Produto foi adicionado com sucesso."));
            }
            catch (System.Exception)
            {
                return(StatusCode(500));
            }
        }