Пример #1
0
        public async Task <CarritoCompra> updateCarritoCompra(CarritoCompra carritoCompra)
        {
            //Convierto a string el objeto carritoCompra. Si no existe el id crea un nuevo record y si existe lo actualiza. Va estar disponible la data por 30 días
            var status = await _database.StringSetAsync(carritoCompra.Id, JsonSerializer.Serialize(carritoCompra), TimeSpan.FromDays(30));

            if (!status)
            {
                return(null);
            }
            else
            {
                return(await getCarritoCompra(carritoCompra.Id));
            }
        }
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            CarritoCompra cc = (controllerContext.HttpContext.Session != null) ?
                               (controllerContext.HttpContext.Session["key_cc"] as CarritoCompra) :
                               null;

            if (cc == null)
            {
                cc = new CarritoCompra();
                controllerContext.HttpContext.Session["key_cc"] = cc;
            }

            return(cc);
        }
Пример #3
0
        // GET: CarritoCompras/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CarritoCompra carritoCompra = db.CarritoCompras.Find(id);

            if (carritoCompra == null)
            {
                return(HttpNotFound());
            }
            return(View(carritoCompra));
        }
Пример #4
0
        public object BindModel(ControllerContext controllerContext,
                                ModelBindingContext bindingContext)
        {
            CarritoCompra cc =
                (CarritoCompra)controllerContext.HttpContext.Session["mikey"];

            if (cc == null)
            {
                cc = new CarritoCompra();
                controllerContext.HttpContext.Session["mikey"] = cc;
            }


            return(cc);
        }
Пример #5
0
        // GET: Product/Details/5
        public ActionResult Details(int?id, CarritoCompra carritoCompra)
        {
            ViewData["Carrito"] = carritoCompra.Count();
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Producto producto = db.Producto.Find(id);

            if (producto == null)
            {
                return(HttpNotFound());
            }
            return(View(producto));
        }
Пример #6
0
 public ActionResult ProcesarCarrito(CarritoCompra cc)
 {
     /*Pedido pedido = new Pedido();
      * db.Pedido.Add(pedido);
      * foreach (Producto producto in cc)
      * {
      *  Pedido_producto pedidoProducto = new Pedido_producto();
      *  pedidoProducto.Id_pedido = pedido.Id;
      *  pedidoProducto.Id_producto = producto.Id;
      *  db.Pedido_producto.Add(pedidoProducto);
      *
      * }
      * db.SaveChanges();*/
     return(RedirectToAction("Index"));
 }
Пример #7
0
        //A partir del indice del combo de herramientas seleccionado se instanciará el formulario para la creación de la
        //herramienta específica.
        private void CompletarAtributoHerramienta(Herramienta herramienta)
        {
            switch (this.cmbProductos.SelectedIndex)
            {
            case 0:
                FormCinta cintaform = new FormCinta(herramienta);    //para una cinta.
                if (cintaform.ShowDialog() == DialogResult.OK)
                {
                    this.carrito += cintaform.CintaForm; //se agrega al carrito
                    this.deposito.StockCinta--;          //se quita una unidad del depósito.
                }
                break;

            case 1:
                FormEscalera escalera = new FormEscalera(herramienta);    //para una escalera
                if (escalera.ShowDialog() == DialogResult.OK)
                {
                    this.carrito += escalera.EscaleraForm;
                    this.deposito.StockEscalera--;    //se quita una unidad del depósito.
                }
                break;

            case 2:
                FormMartillo martillo = new FormMartillo(herramienta);    //para un martillo.
                if (martillo.ShowDialog() == DialogResult.OK)
                {
                    this.carrito += martillo.MartilloForm;
                    this.deposito.StockMartillo--;    //se quita una unidad del depósito.
                }
                break;

            case 3:
                FormTaladro taladro = new FormTaladro(herramienta);    //para un taladro.

                //Se asocia el manejador de evento al evento.
                taladro.EventoDescuento += new FormTaladro.DelegadoTaladroBarato(this.ProductoConDescuento);
                if (taladro.ShowDialog() == DialogResult.OK)
                {
                    this.carrito += taladro.TaladroForm;
                    this.deposito.StockTaladro--;    //se quita una unidad del depósito.
                }
                break;
            }
            //Se actualizan los datos de pantalla.
            this.ActualizarGroupBox();
            this.txtProdCarrito.Text = this.carrito.Carrito.Count.ToString();
            this.richtxtDetalle.Text = this.carrito.MostrarContenidoCarrito();//METODO DE EXTENSIÓN.
        }
Пример #8
0
        public void ValidarCarritoLleno()
        {
            CarritoCompra <Herramienta> carrito = new CarritoCompra <Herramienta>(1);//solo admite una herramienta.

            carrito += new Martillo(Martillo.EDistribuidor.ElReyDeLasHerramientas,
                                    120,
                                    Martillo.EOrigen.Brasil,
                                    Martillo.ETipoMartillo.Maza,
                                    Martillo.ETipoDeMango.Madera);

            carrito += new Martillo(Martillo.EDistribuidor.HerramientasArgentinas,
                                    120,
                                    Martillo.EOrigen.Argentina,
                                    Martillo.ETipoMartillo.Maza,
                                    Martillo.ETipoDeMango.Plastico);
        }
Пример #9
0
        public ActionResult addCart(int id, int amount, CarritoCompra cc)
        {
            Producto producto = db.Productos.Find(id);

            if (producto.Cantidad >= amount)
            {
                for (int i = 0; i < amount; i++)
                {
                    cc.Add(producto);
                    producto.Cantidad--;
                }
                db.SaveChanges();
            }

            return(RedirectToAction("Index"));
        }
        public ActionResult RemoveFromCart(int id)
        {
            var    cart      = CarritoCompra.GetCart(this.HttpContext);
            string itemName  = tiendaDB.Carritos.Single(item => item.RecordId == id).Articulo.Titulo;
            int    itemCount = cart.QuitarDelCarrito(id);
            var    results   = new CarritoCompraRemoveViewModel
            {
                Mensaje          = Server.HtmlEncode(itemName) + " Se Ha Removido De Tu Carrito",
                CarritoTotal     = cart.GetTotal(),
                CarritoContador  = cart.GetCount(),
                ArticuloContador = itemCount,
                EliminarId       = id
            };

            return(Json(results));
        }
Пример #11
0
        public void AltaCarrito(CarritoCompra Alta)
        {
            AccesoADatos Datos = new AccesoADatos();

            try
            {
                Datos.SetearSp("SP_Alta_Carrito");
                Datos.AgregarParametro("@IdUsuario", Convert.ToString(Alta.IdUsuario));
                Datos.AgregarParametro("@Costo", Convert.ToString(Alta.CostoTotal));
                Datos.AgregarParametro("@Estado", Convert.ToString(1));
                Datos.EjecutarLector();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public ActionResult RemoveAll(int id, CarritoCompra cc)
        {
            List <Producto> productos = new List <Producto>();

            foreach (var p in cc)
            {
                if (p.Id == id)
                {
                    productos.Add(p);
                }
            }
            foreach (Producto p in productos)
            {
                cc.Remove(p);
            }
            return(RedirectToAction("Index"));
        }
Пример #13
0
        public async Task <bool> Save(CarritoCompra model)
        {
            try
            {
                var    data    = JsonConvert.SerializeObject(model);
                var    content = new StringContent(data, Encoding.UTF8, "application/json");
                string path    = Commons.Constants.url;
                path += $"Pagos/Carrito";
                HttpResponseMessage response = await client.PostAsync(path, content);

                return(response.IsSuccessStatusCode);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Пример #14
0
        public ActionResult DeleteProductCart(CarritoCompra cc, int id)
        {
            //Buscamos el producto
            Product p = cc.FirstOrDefault(x => x.Id == id);

            //Eliminamos el producto del carrito
            if (p.Cantidad != 1)
            {
                p.Cantidad--;
            }
            else
            {
                cc.Remove(p);
            }
            //Redirigimos a la vista
            return(RedirectToAction("Index"));
        }
        public ActionResult Index(int id)
        {
            List <CarritoCompra> listaCarritoCompras = null;

            //Si no escogido ningun producto
            if (id != 0)
            {
                CarritoCompra objCarrito = new CarritoCompra();

                var productoAgregado = _data.TB_Productos
                                       .Single(Id => Id.Pk_eProducto == id);


                if (Session["Carrito"] != null)
                {
                    listaCarritoCompras            = (List <CarritoCompra>)Session["Carrito"];
                    objCarrito.IdProducto          = productoAgregado.Pk_eProducto;
                    objCarrito.DescripcionProducto = productoAgregado.cDescripcion;
                    objCarrito.PrecioProducto      = productoAgregado.dPrecio;
                    objCarrito.CantProducto        = 1;
                    objCarrito.TotalProducto       = productoAgregado.dPrecio;
                    objCarrito.Peso = productoAgregado.dPeso;
                    listaCarritoCompras.Add(objCarrito);
                    Session["Carrito"] = listaCarritoCompras;
                }
                else
                {
                    objCarrito.IdProducto          = productoAgregado.Pk_eProducto;
                    objCarrito.DescripcionProducto = productoAgregado.cDescripcion;
                    objCarrito.PrecioProducto      = productoAgregado.dPrecio;
                    objCarrito.CantProducto        = 1;
                    objCarrito.TotalProducto       = productoAgregado.dPrecio;
                    objCarrito.Peso     = productoAgregado.dPeso;
                    listaCarritoCompras = new List <CarritoCompra>();
                    listaCarritoCompras.Add(objCarrito);
                    Session["Carrito"] = listaCarritoCompras;
                }
            }
            else
            {
                listaCarritoCompras = (List <CarritoCompra>)Session["Carrito"];
            }

            return(View(listaCarritoCompras));
            // return View();
        }
Пример #16
0
        // GET: Pedido
        public ActionResult Index(CarritoCompra carrito)
        {
            if (carrito.Count == 0)
            {
                return(RedirectToAction("Index", "Home"));
            }
            var identity = (ClaimsPrincipal)Thread.CurrentPrincipal;
            var id       = identity.Claims.Where(c => c.Type == ClaimTypes.NameIdentifier)
                           .Select(c => c.Value).SingleOrDefault();
            var user            = new AccountBL().GetClienteById(Convert.ToInt32(id));
            var metodos         = new PagoBL().GetMetodoPagos();
            var pedidoViewModel = new PedidoViewModels()
            {
                cliente = user, metodoPago = metodos
            };

            return(View(pedidoViewModel));
        }
Пример #17
0
        public ActionResult AddToCart(int id, int cantidad, CarritoCompra carrito)
        {
            List <Producto> productos = db.Productos.ToList();
            Producto        p         = productos.Find(producto => producto.Id == id);
            LineaPedido     l         = carrito.Find(linea => linea.Producto.Nombre == p.Nombre);

            if (l == null)
            {
                LineaPedido lineaPedido = new LineaPedido();
                lineaPedido.Cantidad = cantidad;
                lineaPedido.Producto = p;
                carrito.Add(lineaPedido);
            }
            else
            {
                l.Cantidad = cantidad;
            }
            return(RedirectToAction("Index", "CarritoCompra"));
        }
Пример #18
0
        // GET: Carrito
        public ActionResult AddProductCart(CarritoCompra cc, int id)
        {
            //Buscamos el producto
            Product p = db.Products.Find(id);
            //Añadimos el producto al carrito
            Product producto_encontrado = cc.FirstOrDefault(x => x.Id == id);

            if (producto_encontrado != null)
            {
                producto_encontrado.Cantidad++;
            }
            else
            {
                p.Cantidad = 1;
                cc.Add(p);
            }
            //Redirigimos a la vista
            return(RedirectToAction("Index", "Products"));
        }
Пример #19
0
        protected void btnDec_Click(object sender, EventArgs e)
        {
            carrito = (CarritoCompra)Session["Total"];

            totalAux = 0;


            var argument = ((Button)sender).CommandArgument;
            List <itemCarrito> ListaEnCarrito = (List <itemCarrito>)Session["listaEnCarro"];
            itemCarrito        sobrecarga     = ListaEnCarrito.Find(x => x.id.ToString() == argument);

            if (sobrecarga.cantidad > 1)
            {
                sobrecarga.cantidad--;
                sobrecarga.subtotal = sobrecarga.item.Precio * sobrecarga.cantidad;
                var elementIndex = ListaEnCarrito.FindIndex(x => x.id.ToString() == argument);
                ListaEnCarrito[elementIndex] = sobrecarga;

                foreach (itemCarrito i in ListaEnCarrito)
                {
                    totalAux += i.subtotal;
                }


                carrito.total = totalAux;

                lblTotal.Text = "Total: " + carrito.total.ToString("c", nfi);


                Session.Add("listaEnCarro", ListaEnCarrito);
                Session.Add("Total", carrito);
                repetidor.DataSource = null;
                repetidor.DataSource = ListaEnCarrito;
                repetidor.DataBind();

                Response.Redirect("Carrito.aspx");
                /*Server.TransferRequest(Request.Url.AbsolutePath, false);*/
            }
            if (sobrecarga.cantidad == 1)
            {
            }
        }
Пример #20
0
 public ActionResult Compra(CarritoCompra carrito, PedidoViewModels pedidoViewModels)
 {
     if (carrito.Count > 0)
     {
         PedidoBL pedidoBL = new PedidoBL();
         Pedido   pedido   = new Pedido()
         {
             ClienteId = pedidoViewModels.cliente.Id,
             EstadoId  = 1,//facturado
             Factura   = new Factura()
             {
                 Fecha        = DateTime.Now,
                 MetodoPagoId = pedidoViewModels.methodPay
             },
             Producto = carrito
         };
         if (pedidoBL.CreatePedidoProductos(pedido))
         {
             //REFRESCAR PEDIDO (SE PUEDE HACER MEJOR)
             pedido = pedidoBL.GetPedido(pedido.Id);
             // Reducir Stock
             var productosForUpdate = carrito.GroupBy(u => u.Id)
                                      .Select(x => new
             {
                 cantidadComprar = x.Count(),
                 id = x.First().Id,
             }).ToDictionary(x => x.id, x => x.cantidadComprar);
             if (new ProductoBL().UpdateStock(productosForUpdate))
             {
                 pedido.Factura.MetodoPago     = pedido.Factura.MetodoPago;
                 pedido.Factura.Pedido.Cliente = pedido.Cliente;
                 FacturaViewModels factura = new FacturaViewModels()
                 {
                     factura = pedido.Factura
                 };
                 carrito.Clear();
                 return(View(factura));
             }
         }
     }
     return(View("Error"));
 }
Пример #21
0
        // GET: Orders/CreateWithProducts
        public ActionResult CreateWithProducts(CarritoCompra cc)
        {
            //Crear pedido
            Order pedido = new Order();

            //Guardar pedido
            db.Orders.Add(pedido);
            db.SaveChanges();
            //Añadir productos del carrito a la BBDD de pedidos
            Order pedido_bd = db.Orders.Find(pedido.Id);

            foreach (Product producto in cc)
            {
                Product producto_bd = db.Products.Find(producto.Id);
                //Comprobar disponiblidad
                if (producto_bd.Cantidad >= 1)
                {
                    OrderDetails details = new OrderDetails();
                    details.Order    = pedido_bd;
                    details.Product  = producto_bd;
                    details.Cantidad = producto.Cantidad;
                    db.OrderDetails.Add(details);
                    //Disminuir stock productos
                    producto_bd.Cantidad--;
                }
                else
                {
                    //Vaciar carrito
                    cc = new CarritoCompra();
                    //Redirigir a la vista de error
                    return(RedirectToAction("ErrorBuy"));
                }
            }

            //Actualizar pedido
            db.SaveChanges();
            //Vaciar carrito
            cc = new CarritoCompra();
            //Volver
            return(RedirectToAction("Index", "Products"));
        }
Пример #22
0
        public void AgregarCarrito()
        {
            try
            {
                NegocioCarrito NegocioCarrito = new NegocioCarrito();
                CarritoCompra  Aux            = new CarritoCompra();
                VariablesSession();

                Logueado       = (Usuario)Session[Session.SessionID + "UsuarioLogueado"];
                Aux.IdUsuario  = Logueado.Id;
                Aux.CostoTotal = Total;

                NegocioCarrito.AltaCarrito(Aux);
                AltaElementoCarrito(NegocioCarrito.IdCarrito(Logueado));
                AltaPedido(NegocioCarrito.IdCarrito(Logueado), Logueado.Id);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private List <Producto> ProductList(CarritoCompra cc)
        {
            var res = from c in cc
                      group c by c.Id into g
                      select new { Producto = g };
            List <Producto> productos = new List <Producto>();

            foreach (var g in res)
            {
                Producto producto = new Producto();
                int      cant     = 0;
                foreach (var p in g.Producto)
                {
                    producto = p;
                    cant++;
                }
                producto.Cantidad = cant;
                productos.Add(producto);
            }
            return(productos);
        }
        // GET: Pedidoes/Create
        public ActionResult Create(CarritoCompra carrito)
        {
            Pedido  pedido  = new Pedido();
            Factura factura = new Factura();
            string  userId  = User.Identity.GetUserId();

            factura.Id_Cliente = userId;
            double precioTotal = 0.0;

            foreach (LineaPedido l in carrito)
            {
                precioTotal += l.Cantidad * l.Producto.Precio;
                l.Producto   = db.Productos.FirstOrDefault(producto => producto.Nombre == l.Producto.Nombre);
                Producto productoAlmacen = db.Productos.FirstOrDefault(producto => producto.Nombre == l.Producto.Nombre);
                productoAlmacen.Cantidad -= l.Cantidad;
                if (productoAlmacen.Cantidad < 2 && db.Stocks.First().Producto.FirstOrDefault(p => p.Nombre == l.Producto.Nombre) == null)
                {
                    Stock stock = db.Stocks.First();
                    stock.Producto.Add(productoAlmacen);
                }
            }
            pedido.LineaPedido = carrito;
            factura.Precio     = precioTotal;
            pedido.Factura     = factura;
            db.Pedidos.Add(pedido);
            db.SaveChanges();
            List <int> ids = new List <int> {
            };

            foreach (LineaPedido linea in carrito)
            {
                ids.Add(linea.Id);
            }
            foreach (int i in ids)
            {
                LineaPedido linea2 = db.LineasPedido.Find(i);
                carrito.Remove(linea2);
            }
            return(RedirectToAction("Details", "Facturas", factura));
        }
Пример #25
0
        // GET: Productos/Details/5
        public ActionResult Details(int?id, CarritoCompra cc)
        {
            ViewBag.carritoSize = cc.Count;
            float totalPrecio = 0;

            foreach (Producto p in cc)
            {
                totalPrecio = totalPrecio + p.precio.Value;
            }
            ViewBag.totalPrecio = totalPrecio;
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Producto producto = db.Productos.Find(id);

            if (producto == null)
            {
                return(HttpNotFound());
            }
            return(View(producto));
        }
Пример #26
0
        public ActionResult CheckOut(CarritoCompra carrito)
        {
            Pedido pedido = new Pedido();

            pedido.Usuario = User.Identity.Name;

            foreach (Producto producto in carrito)
            {
                Producto productoDB = tiendaDB.Productoes.Find(producto.Id);
                if (productoDB.Stock > 0)
                {
                    pedido.Productos += productoDB.Nombre + ", ";
                    pedido.Total     += productoDB.Precio;
                    productoDB.Stock  = productoDB.Stock - 1;
                }
            }
            pedido.Productos = pedido.Productos.Substring(0, pedido.Productos.Length - 2);
            tiendaDB.Pedidoes.Add(pedido);
            tiendaDB.SaveChanges();
            carrito.Clear();
            return(RedirectToAction("Index", "Pedido"));
        }
Пример #27
0
        // POST: Producto
        public ActionResult AddCarrito(int productoId, int productoCant, CarritoCompra cc)
        {
            Producto np = new Producto();

            np          = db.Productos.Find(productoId);
            np.cantidad = productoCant;

            //Buscar redundancias
            Producto ep = cc.Find(x => x.Id == productoId);

            if (ep != null)
            {
                np.cantidad += ep.cantidad;
                int index = cc.IndexOf(ep);
                cc[index] = np;
            }
            else
            {
                cc.Add(np);
            }
            return(RedirectToAction("Index", "Home"));
        }
Пример #28
0
        public void VerificarAcumulacionPrecioCarrito()
        {
            CarritoCompra <Herramienta> carrito = new CarritoCompra <Herramienta>(2);

            carrito += new Martillo(Martillo.EDistribuidor.ElReyDeLasHerramientas,
                                    90,
                                    Martillo.EOrigen.Brasil,
                                    Martillo.ETipoMartillo.Maza,
                                    Martillo.ETipoDeMango.Madera);

            carrito += new Martillo(Martillo.EDistribuidor.HerramientasArgentinas,
                                    120,
                                    Martillo.EOrigen.Argentina,
                                    Martillo.ETipoMartillo.Maza,
                                    Martillo.ETipoDeMango.Plastico);

            bool respuesta = carrito.PrecioCarro > 209;//se espera que al haber 2 productos en el carrito la propiedad devuelva

            //210 que es el acumulado de precios,al compararlo con un su nro anterior se verifica si se realizó la acumulación.

            Assert.IsTrue(respuesta);
        }
        public ActionResult Pedido(CarritoCompra cc)
        {
            Pedido pedido = new Pedido();

            pedido.IdUsuario = User.Identity.Name;
            List <Producto> productos = ProductList(cc);

            foreach (Producto producto in productos)
            {
                ProductosPedidos pp = new ProductosPedidos();
                pp.Producto           = db.Productos.Find(producto.Id);
                pp.Cantidad_Productos = producto.Cantidad;
                pp.Pedidoes.Add(pedido);
                db.ProductosPedidos.Add(pp);
            }
            Factura factura = new Factura();

            factura.ImporteTotal = 0;
            foreach (Producto producto in productos)
            {
                Producto productodb = db.Productos.Find(producto.Id);
                productodb.Cantidad  -= producto.Cantidad;
                factura.ImporteTotal += producto.Precio * producto.Cantidad;
                if (productodb.Cantidad <= 2)
                {
                    Stock stock = new Stock();
                    stock.Productoes   = productodb;
                    stock.Reabastecido = false;
                    db.Stocks.Add(stock);
                }
            }
            factura.Pedido = pedido;
            db.Facturas.Add(factura);
            db.Pedidoes.Add(pedido);
            db.SaveChanges();
            cc.Clear();
            return(RedirectToAction("Index"));
        }
        public ActionResult AddPedido(CarritoCompra carrito)
        {
            ViewData["Carrito"] = carrito.Count();
            var query = from producto in db.Producto
                        where producto.Id == pedidosProd.id_producto
                        select producto;

            if (carrito.Count() == 0)
            {
                return(View("Error"));
            }
            else
            {
                foreach (Producto producto in carrito)
                {
                    pedido.Nombre   = producto.Nombre;
                    pedido.Cantidad = 1;
                    db.Pedido.Add(pedido);

                    // LLave entre productos y pedidos

                    pedidosProd.id_producto = producto.Id;
                    pedidosProd.id_pedido   = pedido.Id;

                    db.PedidosProd.Add(pedidosProd);
                    db.SaveChanges();
                    //Stock de productos
                    foreach (Producto productos in query)
                    {
                        productos.Cantidad = producto.Cantidad - 1;
                    }
                }
                db.SaveChanges();
                carrito.Clear();
                ViewData["Carrito"] = carrito.Count();
                return(View("Compra"));
            }
        }