예제 #1
0
 public IActionResult AdicionaVenda([FromBody] Venda dadosVenda)
 {
     try
     {
         var estoqueVendas = JsonConvert.SerializeObject(_vendaBll.InserirVenda(dadosVenda));
         if (estoqueVendas != null && estoqueVendas.Length > 0)
         {
             return(Ok(JsonConvert.SerializeObject(estoqueVendas)));
         }
         else
         {
             return(Ok("Nenhum dado encontrado"));
         }
     }
     catch (Exception ex)
     {
         return(BadRequest("Erro: " + ex.Message));
     }
 }
        /// <summary>
        /// Confirma a compra, registrando dados de venda e dos produtos da venda.
        /// </summary>
        /// <returns></returns>
        public IActionResult ConfirmarCompra()
        {
            try
            {
                List <ProdutoCarrinho> itensCarrinho = new List <ProdutoCarrinho>();
                if (TempData["itensCarrinho"] != null)
                {
                    itensCarrinho = JsonConvert.DeserializeObject <List <ProdutoCarrinho> >((string)TempData["itensCarrinho"]);
                    if (itensCarrinho != null && itensCarrinho.Count > 0)
                    {
                        ViewData["itensCarrinho"] = itensCarrinho;
                        ViewData["numeroItens"]   = itensCarrinho.Count();
                    }
                    else
                    {
                        ViewData["itensCarrinho"] = null;
                        ViewData["numeroItens"]   = 0;
                    }
                }
                else
                {
                    ViewData["itensCarrinho"] = null;
                    ViewData["numeroItens"]   = 0;
                }

                //Recupera dados do usuário logado
                var dadosUsuario = _usuarioBll.BuscarUsuarioCpf(_httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.Name));
                if (dadosUsuario != null)
                {
                    if (itensCarrinho != null && itensCarrinho.Count > 0)
                    {
                        //Registra a venda efetuada
                        Venda dadosVenda = new Venda();
                        dadosVenda.Data       = DateTime.Now;
                        dadosVenda.IdUsuario  = dadosUsuario.Id;
                        dadosVenda.Status     = 1;
                        dadosVenda.VendaAtiva = true;
                        dadosVenda.Valor      = itensCarrinho.Sum(a => a.ValorTotal);
                        Venda dadosVendaEfetuada = _vendaBll.InserirVenda(dadosVenda);

                        //Registra os produtos da venda efetuada
                        foreach (var item in itensCarrinho)
                        {
                            ProdutoVenda dadosProdutoVenda = new ProdutoVenda();
                            dadosProdutoVenda.ValorTotal        = item.ValorTotal;
                            dadosProdutoVenda.ValorUnitario     = item.ValorUnitario;
                            dadosProdutoVenda.IdProduto         = item.IdProduto;
                            dadosProdutoVenda.IdVenda           = dadosVendaEfetuada.Id;
                            dadosProdutoVenda.QuantidadeProduto = item.QuantidadeProduto;
                            _produtoVendaBll.InserirProdutoVenda(dadosProdutoVenda);
                        }
                    }
                    TempData["itensCarrinho"] = null;
                    TempData["numeroItens"]   = 0;
                    TempData["Mensagem"]      = "Compra realizada com sucesso.";
                    return(RedirectToAction("Index", "Carrinho"));
                }
                else
                {
                    TempData["itensCarrinho"] = JsonConvert.SerializeObject(itensCarrinho);
                    TempData["numeroItens"]   = itensCarrinho.Count();
                    ModelState.AddModelError("Message", "Necessário fazer cadastro e login.");
                    return(RedirectToAction("Index", "Carrinho"));
                }
            }
            catch (Exception ex)
            {
                TempData["Mensagem"] = "Erro: " + ex.Message;
                return(RedirectToAction("Index", "Carrinho"));
            }
        }