public void AgregarItem(Producto_X_Venta nuevo) { SqlConnection conexion = new SqlConnection(); SqlCommand comando = new SqlCommand(); try { conexion.ConnectionString = "data source= DESKTOP-GTFEEVH; initial catalog=MARCATI_DB; integrated security=sspi"; comando.CommandType = System.Data.CommandType.StoredProcedure; comando.CommandText = "spAltaProducto_X_Venta"; comando.Parameters.AddWithValue("@ID_Producto", nuevo.producto.ID); comando.Parameters.AddWithValue("@ID_Venta", nuevo.venta.ID); comando.Parameters.AddWithValue("@Cantidad", nuevo.Cantidad); comando.Parameters.AddWithValue("@Precio", nuevo.Precio); comando.Connection = conexion; conexion.Open(); comando.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } finally { conexion.Close(); } }
public List <Producto_X_Venta> ListarProductoVenta() { List <Producto_X_Venta> listado = new List <Producto_X_Venta>(); SqlConnection conexion = new SqlConnection(); SqlCommand comando = new SqlCommand(); SqlDataReader lector; try { conexion.ConnectionString = "data source= DESKTOP-GTFEEVH; initial catalog=MARCATI_DB; integrated security=sspi"; comando.CommandType = System.Data.CommandType.Text; comando.CommandText = "Select PXV.ID_Venta as idVenta,PXV.ID_Producto as idProducto, P.Nombre as Producto, PXV.Cantidad From Producto_X_Venta AS PXV Inner Join Productos AS P ON P.ID = PXV.ID_Producto"; comando.Connection = conexion; conexion.Open(); lector = comando.ExecuteReader(); while (lector.Read()) { Producto_X_Venta aux = new Producto_X_Venta(); if (!Convert.IsDBNull(lector["idVenta"])) { aux.venta = new Venta(); aux.venta.ID = (Int64)lector["idVenta"]; } if (!Convert.IsDBNull(lector["idProducto"])) { aux.producto = new Producto(); aux.producto.ID = (Int64)lector["idProducto"]; aux.producto.Nombre = (string)lector["Producto"]; } aux.Cantidad = lector.GetInt64(3); listado.Add(aux); } return(listado); } catch (Exception ex) { throw ex; } finally { conexion.Close(); } }
protected void Page_Load(object sender, EventArgs e) { try { if (!IsPostBack) { bandera = false; } carrito.listaItem = (List <ItemCarrito>)Session[Session.SessionID + "listaCarrito"]; if (carrito.listaItem == null) { carrito.listaItem = new List <ItemCarrito>(); } var prodQuitar = Request.QueryString["idQuitar"]; if (prodQuitar != null) { ItemCarrito productoQuitar = carrito.listaItem.Find(J => J.Producto.ID == int.Parse(prodQuitar)); carrito.listaItem.Remove(productoQuitar); Session[Session.SessionID + "listaCarrito"] = carrito.listaItem; Response.Redirect("Carrito.aspx", false); } else if (Request.QueryString["idprod"] != null) { //obtengo lista original (el listado completo) List <Producto> listaOriginal = (List <Producto>)Session[Session.SessionID + "listaProducto"]; var prodSeleccionado = Convert.ToInt32(Request.QueryString["idprod"]); Producto producto = listaOriginal.Find(J => J.ID == prodSeleccionado); ItemCarrito auxCarrito = carrito.listaItem.Find(B => B.Producto.ID == producto.ID); if (auxCarrito == null) { CarritoItem.Producto = producto; CarritoItem.Cantidad++; carrito.Total += CarritoItem.Producto.Precio; carrito.listaItem.Add(CarritoItem); Session[Session.SessionID + "listaCarrito"] = carrito.listaItem; } Response.Redirect("Carrito.aspx", false); } var CantRest = Request.QueryString["idCantRest"]; if (CantRest != null) { if (!bandera) { } ItemCarrito productoRestar = carrito.listaItem.Find(J => J.Producto.ID == int.Parse(CantRest)); if (productoRestar.Cantidad != 0 && productoRestar.Cantidad != 1) { productoRestar.Cantidad--; } else { } Session[Session.SessionID + "listaCarrito"] = carrito.listaItem; Response.Redirect("Carrito.aspx", false); } var CantSum = Request.QueryString["idCantSum"]; if (CantSum != null) { ItemCarrito productoSumar = carrito.listaItem.Find(J => J.Producto.ID == int.Parse(CantSum)); if (productoSumar.Cantidad == productoSumar.Producto.Stock || productoSumar.Cantidad > productoSumar.Producto.Stock) { } else { productoSumar.Cantidad++; } Session[Session.SessionID + "listaCarrito"] = carrito.listaItem; Response.Redirect("Carrito.aspx", false); } var idCarrito = Request.QueryString["idComprar"]; if (idCarrito != null) { Usuario usuario = (Usuario)Session["usersession"]; if ((List <ItemCarrito>)Session[Session.SessionID + "listaCarrito"] == null) { Session["Error" + Session.SessionID] = "Error al realizar la compra."; Response.Redirect("Error.aspx", false); } else if (usuario == null) { Response.Redirect("Login.aspx", false); } else { carrito.listaItem = (List <ItemCarrito>)Session[Session.SessionID + "listaCarrito"]; Producto_X_Venta productoXventa = new Producto_X_Venta(); List <Venta> listaVenta = new List <Venta>(); Producto producto = new Producto(); Venta venta = new Venta(); DateTime fechaHoy = DateTime.Now; //decimal subtotal = 0; //foreach (var item in listaItem) //{ // subtotal += item.PrecioItem(); //} //Total = subtotal; decimal total = carrito.SubTotal(); venta.usuario = usuario; venta.PrecioTotal = total; venta.Fecha = fechaHoy; negocioVenta.Agregar(venta); VentasNegocio negocioVentas = new VentasNegocio(); listaVenta = negocioVentas.Listar(); Int64 idVenta = 0; foreach (var item in listaVenta) { if (item.usuario.ID_Usuario == usuario.ID_Usuario) { idVenta = item.ID; } } venta.ID = idVenta; foreach (var itemCarrito in carrito.listaItem) { productoXventa.venta = venta; productoXventa.producto = itemCarrito.Producto; productoXventa.Cantidad = itemCarrito.Cantidad; //productoXventa.Precio = itemCarrito.PrecioItem(); productoXventa.Precio = itemCarrito.Producto.Precio; producto.ID = itemCarrito.Producto.ID; producto.Stock = itemCarrito.Producto.Stock - itemCarrito.Cantidad; negocioProducto.ModificarStock(producto); negocioVenta.AgregarItem(productoXventa); } Response.Redirect("CompraFinalizada.aspx", false); } //else //{ // Session["Error" + Session.SessionID] = "Error al realizar la compra."; // Response.Redirect("Error.aspx", false); //} //foreach (var item in listaCarrito) //{ // foreach (var item2 in item.listaItem) // { // item2. // negocioVenta.AgregarItem(item2); // } //} } } catch (Exception ex) { Session["Error" + Session.SessionID] = "Error en el carrito."; //Session["Error" + Session.SessionID] = ex; Response.Redirect("Error.aspx"); } }