Пример #1
0
        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"));
        }
Пример #2
0
        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"));
        }