public async Task <IActionResult> Edit(int id, [Bind("CarritoId,ProductoId,cantidadProd,precioLinea")] DetalleCarrito detalleCarrito) { if (id != detalleCarrito.CarritoId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(detalleCarrito); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!DetalleCarritoExists(detalleCarrito.CarritoId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["CarritoId"] = new SelectList(_context.Carritos, "CarritoId", "lugarEntrega", detalleCarrito.CarritoId); ViewData["ProductoId"] = new SelectList(_context.productos, "ProductoId", "descripcionProd", detalleCarrito.ProductoId); return(View(detalleCarrito)); }
public ActionResult ConfirmacionCompra() { string nombreTarjeta = Convert.ToString(Session["nombreTarjeta"]); byte formadePago = (byte)Session["formaDePago"]; ViewBag.formadePago = formadePago; string debitoOcredito = Convert.ToString(Session["debitoOcredito"]); Usuario user = new Usuario(); user = (Usuario)Session["user"]; decimal importe = (decimal)Session["importe"]; List <DetalleCarrito> detalleCarrito = (List <DetalleCarrito>)Session["detalleCarrito"]; PedidoNegocio pedidoNegocio = new PedidoNegocio(); Pedido pedido = new Pedido(); pedido.tipoPago = new TipoPago(); pedido.IdUsuario = user.Id; pedido.Importe = importe; pedido.IdEstado = 1; pedido.IdTipoPago = formadePago; if (Session["debitoOcredito"] != null) { pedido.tipoPago.Nombre = debitoOcredito; } else if (Session["nombreTarjeta"] != null) { pedido.tipoPago.Nombre = nombreTarjeta; } pedidoNegocio.Agregar(pedido); DetalleCarrito detalledelCarrito = new DetalleCarrito(); DetalleCarritoNegocio detalleNegocio = new DetalleCarritoNegocio(); long valorDevuelto = pedidoNegocio.InsertarDetalle(); detalledelCarrito.IdPedido = valorDevuelto; detalleNegocio.PasarDeLista_a_detalle(detalleCarrito, valorDevuelto); return(View()); }
public async Task <IActionResult> Create([Bind("CarritoId,ProductoId,cantidadProd,precioLinea")] DetalleCarrito detalleCarrito) { if (ModelState.IsValid) { _context.Add(detalleCarrito); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["CarritoId"] = new SelectList(_context.Carritos, "CarritoId", "lugarEntrega", detalleCarrito.CarritoId); ViewData["ProductoId"] = new SelectList(_context.productos, "ProductoId", "descripcionProd", detalleCarrito.ProductoId); return(View(detalleCarrito)); }
public void GuardarDetalle_DB(DetalleCarrito detalle) { AccesoDatos datos = new AccesoDatos(); datos.setearQuery_ConPa("SP_AgregarDetalle"); datos.agregarParametro("@IdProducto", detalle.IdProducto); datos.agregarParametro("@IdPedido", detalle.IdPedido); datos.agregarParametro("@PrecioActual", detalle.PrecioActual); datos.agregarParametro("@CantidadPedida", detalle.CantidadPedida); datos.agregarParametro("@UrlImagen", detalle.UrlImagen); datos.agregarParametro("@Nombre", detalle.NombreActual); datos.ejecutarAccion(); }
public Int32 Registrar(DetalleCarrito detalleCarrito) { Int32 DetalleCarritoID; try { DetalleCarritoDA detalleCarritoDA = new DetalleCarritoDA(); DetalleCarritoID = detalleCarritoDA.Registrar(detalleCarrito); } catch (Exception ex) { throw ex; } return(DetalleCarritoID); }
public void PasarDeLista_a_detalle(List <DetalleCarrito> detalleCarrito, long valorDevuelto) { DetalleCarrito detalle; foreach (var item in detalleCarrito) { detalle = new DetalleCarrito(); detalle.IdProducto = item.IdProducto; detalle.NombreActual = item.NombreActual; detalle.PrecioActual = item.PrecioActual; detalle.UrlImagen = item.UrlImagen; detalle.CantidadPedida = item.CantidadPedida; detalle.IdPedido = valorDevuelto; GuardarDetalle_DB(detalle); } }
public List <DetalleCarrito> BuscadorDeLong(long Busqueda) { AccesoDatos datos = new AccesoDatos(); List <DetalleCarrito> listaBuscado = new List <DetalleCarrito>(); try { //Producto aux = new Producto(); datos.setearQuery("select * from Detalle where IdPedido = @Busqueda"); //select p.*, c.Id as IdColores, c.Nombre as NombreColores from Producto p join Color as c on c.id = p.IdColor where IdColor = @Busqueda datos.agregarParametro("@Busqueda", Busqueda); datos.ejecutarLector(); datos.lector = datos.comando.ExecuteReader(); while (datos.lector.Read()) { DetalleCarrito aux; aux = new DetalleCarrito(); aux.IdProducto = (long)datos.lector["IdProducto"]; aux.IdPedido = (long)datos.lector["IdPedido"]; aux.PrecioActual = datos.lector.GetDecimal(2); aux.CantidadPedida = (byte)datos.lector["CantidadPedida"]; aux.UrlImagen = datos.lector.GetString(4); aux.NombreActual = (string)datos.lector["Nombre"]; listaBuscado.Add(aux); } datos.lector.Close(); datos.conexion.Close(); return(listaBuscado); } catch (Exception ex) { throw ex; } }
public List <DetalleCarrito> Asignar(List <ItemCarrito> lista) { List <DetalleCarrito> ListaDetalle = new List <DetalleCarrito>(); DetalleCarrito detalle = new DetalleCarrito(); ItemCarrito itemcarrito = new ItemCarrito(); foreach (var item in lista) { detalle = new DetalleCarrito(); // esto es para no pisar lo que esta en la direccion de memoria, si solo tengo un detalle siempre se va a pisar ahi, en cambio instanciandolo le doy un nuevo lugar en memoria detalle.NombreActual = item.Nombre; detalle.PrecioActual = item.Precio; detalle.UrlImagen = item.UrlImagen; detalle.IdProducto = item.IdProducto; detalle.CantidadPedida = item.CantidadItem; ListaDetalle.Add(detalle); } return(ListaDetalle); }
public List <DetalleCarrito> Listar() { AccesoDatos datos = new AccesoDatos();// aca adentro hay magia, estan lector, conexion y comando List <DetalleCarrito> lista = new List <DetalleCarrito>(); datos.setearQuery("Select IdProducto, IdPedido, PrecioActual, CantidadPedida, Detalle.UrlImagen, Detalle.Nombre from Detalle join Producto on Producto.Id = Detalle.IdProducto"); try { datos.ejecutarLector(); datos.lector = datos.comando.ExecuteReader(); while (datos.lector.Read()) { DetalleCarrito aux; aux = new DetalleCarrito(); // es como darle un espacio de memorio al nacer. // aux.id es la parte del setter xq le etoy asignando un valor si el codigo estuviera al reves seria un getter aux.IdProducto = (long)datos.lector["IdProducto"]; aux.IdPedido = (long)datos.lector["IdPedido"]; aux.PrecioActual = datos.lector.GetDecimal(2); aux.CantidadPedida = (byte)datos.lector["CantidadPedida"]; aux.UrlImagen = datos.lector.GetString(4); aux.NombreActual = (string)datos.lector["Nombre"]; lista.Add(aux); } datos.lector.Close(); datos.conexion.Close(); return(lista); } catch (Exception ex) { throw ex; } }
public Int32 Registrar(DetalleCarrito detalleCarrito) { Int32 DetalleCarritoID = 0; try { using (SqlConnection cnx = new SqlConnection(ConnectionString)) { SqlCommand cmd = new SqlCommand("dbo.USP_DetalleCarrito_Registrar", cnx) { CommandType = CommandType.StoredProcedure, CommandTimeout = 600 }; cmd.Parameters.AddWithValue("@CarritoId", detalleCarrito.CarritoId); cmd.Parameters.AddWithValue("@Cantidad", detalleCarrito.Cantidad); cmd.Parameters.AddWithValue("@ProductoId", detalleCarrito.ProductoId); cnx.Open(); DetalleCarritoID = Int32.Parse(cmd.ExecuteScalar().ToString()); if (DetalleCarritoID <= 0) { DetalleCarritoID = -1; } cnx.Close(); } } catch (Exception ex) { throw ex; } return(DetalleCarritoID); }
public IActionResult Registrar([FromBody] RegistroModel registroModel) { ResponseModel responseModel = new ResponseModel(); try { if (registroModel == null) { responseModel.Codigo = CodeEN.Warning; responseModel.Mensaje = "Datos inválidos"; return(BadRequest(responseModel)); } Tuple <Boolean, String> Valid = registroModel.Validate(); if (!Valid.Item1) { responseModel.Codigo = CodeEN.Warning; responseModel.Mensaje = Valid.Item2; return(BadRequest(responseModel)); } DateTime FechaActual = DateTime.UtcNow.AddHours(-5); DetalleCarritoBL detalleCarritoBL = new DetalleCarritoBL(); String carritoId = this.HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.GivenName)?.Value; Int32 CarritoId = Int32.Parse(carritoId); DetalleCarrito detalleCarrito = new DetalleCarrito { CarritoId = CarritoId, Cantidad = registroModel.Cantidad, ProductoId = registroModel.ProductoId }; Int32 DetalleCarritoId = detalleCarritoBL.Registrar(detalleCarrito); if (DetalleCarritoId > 0) { String clienteId = this.HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value; Int32 ClienteId = Int32.Parse(clienteId); CarritoBL carritoBL = new CarritoBL(); Carrito carrito = new Carrito { ClienteId = ClienteId, FechaUltimaActualizacion = FechaActual }; carritoBL.Actualizar(carrito); responseModel.Codigo = CodeEN.Success; responseModel.Mensaje = "Se agregó el producto al carrito de manera satisfactoria"; return(Ok(responseModel)); } else { responseModel.Codigo = CodeEN.Error; responseModel.Mensaje = "No se pudo agregar el producto al carrito"; return(StatusCode(StatusCodes.Status500InternalServerError, responseModel)); } } catch (Exception ex) { responseModel.Codigo = CodeEN.Exception; responseModel.Mensaje = "Ocurrió una excepción"; return(StatusCode(StatusCodes.Status500InternalServerError, responseModel)); } }
public async Task <IActionResult> Agregar([FromBody] ActualizarDetalleViewModel model) { if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } if (model == null) { return(this.BadRequest()); } var carrito = await this.VerificarCarrito(false).ConfigureAwait(false); var userId = this._userId; var guId = this._guid; var fecha = DateTime.Now; if (carrito == null) { carrito = new Carrito { ClienteId = userId, Estado = true, CreatedAt = fecha, UpdatedAt = fecha, }; if (!this._userId.HasValue) { carrito.ClienteGuid = this._guid; } await this._context.Carritos.AddAsync(carrito).ConfigureAwait(false); try { await this._context.SaveChangesAsync().ConfigureAwait(false); var detalle = new DetalleCarrito { CarritoId = carrito.Id, ProductoId = model.ProductoId, Cantidad = model.Cantidad, }; await this._context.DetalleCarritos.AddAsync(detalle).ConfigureAwait(false); await this._context.SaveChangesAsync().ConfigureAwait(false); } catch (DbUpdateConcurrencyException) { return(this.BadRequest("Hubo un error al guardar sus datos.")); } return(this.NoContent()); } carrito.ClienteId = userId; carrito.UpdatedAt = fecha; if (carrito.Detalles.Any(d => d.ProductoId == model.ProductoId)) { foreach (var detalle in carrito.Detalles) { if (detalle.ProductoId == model.ProductoId) { detalle.Cantidad += model.Cantidad; } } } else { carrito.Detalles.Add(new DetalleCarrito { ProductoId = model.ProductoId, Cantidad = model.Cantidad, }); } try { await this._context.SaveChangesAsync().ConfigureAwait(false); } catch (DbUpdateConcurrencyException) { if (!this.CarritoExists(carrito.Id)) { return(this.NotFound()); } return(this.BadRequest("Hubo un error al guardar sus datos.")); } return(this.NoContent()); }