public ActionResult AddToCart(int id) { var CPF = Session["clienteCPF"]; var cliente = db.Cliente.Find(CPF); var produto = db.Produto.Find(id); int qtd; try { var carrinho = db.Carrinho.Where(c => c.Cliente.CPF == CPF.ToString() && c.StatusCarrinho.ID == 1); if (carrinho != null && carrinho.Any()) { Carrinho carrinhoNovo = carrinho.First(); var carrinhoProduto = db.CarrinhoProduto.Where(c => c.Carrinho.ID == carrinhoNovo.ID && c.Produto.Codigo == id); if (carrinhoProduto != null && carrinhoProduto.Any()) { CarrinhoProduto cp = carrinhoProduto.First(); cp.Quantidade += 1; qtd = cp.Quantidade; var carrinhoProduto1 = db.CarrinhoProduto.Where(c => c.Carrinho.ID == carrinhoNovo.ID); if (carrinhoProduto1 != null && carrinhoProduto1.Any()) { List <CarrinhoProduto> cpList = carrinhoProduto1.ToList(); qtd = cpList.Count; } } else { CarrinhoProduto cp = new CarrinhoProduto(); cp.Carrinho = carrinhoNovo; cp.Produto = produto; cp.Quantidade = 1; qtd = int.Parse(Session["qtdCarrinho"].ToString()); Session["qtdCarrinho"] = qtd += 1; db.CarrinhoProduto.Add(cp); } db.SaveChanges(); } else { Carrinho c = new Carrinho(); StatusCarrinho st = db.StatusCarrinho.Find(1); c.StatusCarrinho = st; c.Cliente = cliente; db.Carrinho.Add(c); db.SaveChanges(); var newCarrinho = db.Carrinho.Where(ca => ca.Cliente.CPF == CPF.ToString() && ca.StatusCarrinho.ID == 1).First(); CarrinhoProduto cp = new CarrinhoProduto(); cp.Carrinho = newCarrinho; cp.Produto = produto; cp.Quantidade = 1; qtd = 1; db.CarrinhoProduto.Add(cp); db.SaveChanges(); } Session["qtdCarrinho"] = qtd; } catch (System.Exception ex) { Console.WriteLine(ex.Message); } return(RedirectToAction("Index", "Produtos")); }
public ActionResult checkout(string cartaoId, string boleto, string remessa) { //FINALIZAR O CARRINHO var CPF = Session["clienteCPF"]; var cliente = db.Cliente.Find(CPF); double total = 0; List <VendaProduto> lCp = new List <VendaProduto>(0); if (cliente == null) { return(RedirectToAction("Index", "Home")); } var carrinho = db.Carrinho.Where(c => c.Cliente.CPF == CPF.ToString() && c.StatusCarrinho.ID == 1); if (carrinho != null && carrinho.Any()) { Carrinho c = carrinho.First(); StatusCarrinho st = db.StatusCarrinho.Find(3); c.StatusCarrinho = st; var query = db.CarrinhoProduto.Join(db.Produto, cp => cp.Produto.Codigo, p => p.Codigo, (cp, p) => new { CarrinhoProduto = cp, Produto = p }) .Where(a => a.CarrinhoProduto.Carrinho.ID == c.ID) .Join(db.Carrinho, cp => cp.CarrinhoProduto.Carrinho.ID, car => car.ID, (cp, p) => new { CarrinhoProduto = cp, Produto = p }).ToList(); for (int i = 0; i < query.Count; i++) { VendaProduto vp = new VendaProduto(); vp.Produto = query.ElementAt(i).CarrinhoProduto.Produto; vp.Quantidade = query.ElementAt(i).CarrinhoProduto.CarrinhoProduto.Quantidade; lCp.Add(vp); total += query.ElementAt(i).CarrinhoProduto.CarrinhoProduto.Produto.Preco * Convert.ToDouble(query.ElementAt(i).CarrinhoProduto.CarrinhoProduto.Quantidade); } } db.SaveChanges(); //GERAR A VENDA Venda v = new Venda(); v.Cliente = cliente; v.DataCompra = DateTime.Now; v.Entregue = false; v.Desconto = 0; v.Remessa = remessa; StatusPagamento stP = db.StatusPagamento.Find(1); v.StatusPagamento = stP; //VALIDAR O TIPO PARA DEFINIR O PAGAMENTO FormaPagamento f = new FormaPagamento(); if (boleto == null && cartaoId != null && cartaoId.Trim().Length > 0) { var cartaoIdInt = int.Parse(cartaoId); var res = db.FormaPagamento.Where(forma => forma.Cartao.ID == cartaoIdInt); if (res != null && res.Any()) { f = res.First(); } else { Cartao c = db.Cartao.Find(cartaoIdInt); f.Cartao = c; db.FormaPagamento.Add(f); db.SaveChanges(); res = db.FormaPagamento.Where(forma => forma.Cartao.ID == cartaoIdInt); if (res != null && res.Any()) { f = res.First(); } } } else { Boleto b = new Boleto(); b.Codigo = boleto; b.DataEmissao = DateTime.Now; DateTime vencimento = DateTime.Now; vencimento = vencimento.AddDays(30); b.DataVencimento = vencimento; b.Valor = total; db.Boleto.Add(b); db.SaveChanges(); Boleto bol = db.Boleto.Find(boleto); var res = db.FormaPagamento.Where(forma => forma.Boleto.Codigo == boleto); if (res != null && res.Any()) { f = res.First(); } } v.FormaPagamento = f; db.Venda.Add(v); db.SaveChanges(); //DEFINIR OS PRODUTOS NA VENDA. var vendaObj = db.Venda.Where(c => c.Cliente.CPF == CPF.ToString() && c.StatusPagamento.ID == 1); if (vendaObj != null && vendaObj.Any()) { Venda Venda = vendaObj.First(); for (int i = 0; i < lCp.Count; i++) { lCp.ElementAt(i).Venda = Venda; db.VendaProduto.Add(lCp.ElementAt(i)); } db.SaveChanges(); Session["qtdCarrinho"] = null; Session["carrinhoId"] = null; } else { return(RedirectToAction("Index", "Home")); } return(RedirectToAction("List", "Venda")); }