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); }
// 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)); }
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); }
// 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)); }
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")); }
//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. }
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); }
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)); }
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")); }
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; } }
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(); }
// 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)); }
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")); }
// 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")); }
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) { } }
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")); }
// 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")); }
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)); }
// 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)); }
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")); }
// 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")); }
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")); } }