/// <summary> /// Cuando se haga doble click en algún elemento del datagrid, se mappeara un objeto de tipo producto a un productoItem, /// de esa forma, insertaremos el registro de un productoItem a la tabla ProductosVendidos, y le actualizamos el stock /// de ese producto al producto que fue vendido. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataGridProductos_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { Producto p = (Producto)dataGridProductos.CurrentRow.DataBoundItem; if (!(p is null)) { try { DataBaseHelper.InsertarItem <ProductoItem>( new ProductoItem( p.Nombre, p.Tipo, p.Precio ) ); DataBaseHelper.ActualizarStockProducto(p.StockDisponible - 1, p.Id); this.DialogResult = DialogResult.OK; } catch (Exception exc) { Console.WriteLine($"error: {exc.Message}"); this.DialogResult = DialogResult.Cancel; } } }
public void ActualizarStockDeProducto() { //arrange string nombreProducto = "Pepsi Light-actualizarTest"; Producto producto = new Producto(nombreProducto, ProductoItem.TipoProducto.Bebida, 50.6f, 5); //stock 5 //act DataBaseHelper.InsertarItem(producto); DataBaseHelper.ActualizarStockProducto(producto.StockDisponible - 1, nombreProducto); //stock 4 Producto productoActualizado = DataBaseHelper.GetProductoPorNombre(nombreProducto); //assert Assert.IsTrue(productoActualizado.StockDisponible == producto.StockDisponible - 1); //eliminamos el producto agregado para la prueba DataBaseHelper.EliminarProducto(nombreProducto); }
static void Main(string[] args) { //-----------FEATURES DISPONIBLES--------------- //Base de datos: //INSERT a productos disponibles (puede arrojar una excepcion si se trata de un producto repetido por nombre): Producto p1 = new Producto("ProductoLimpieza", ProductoItem.TipoProducto.Limpieza, 70.5f, 5); Producto p2 = new Producto("ProductoLimpieza", ProductoItem.TipoProducto.Limpieza, 100, 2); Producto p3 = new Producto("Papas lays", ProductoItem.TipoProducto.Comida, 120, 7); Producto p4 = new Producto("Redbull", ProductoItem.TipoProducto.Bebida, 80, 0); DataBaseHelper.InsertarItem(p1); //Agrego ProductoLimpieza DataBaseHelper.InsertarItem(p3); //Agrego Papas lays DataBaseHelper.InsertarItem(p4); //Agrego Redbull //Los siguientes productos serán insertados a la tabla Productos para que puedan probarse en el form de ante mano (no son ventas) DataBaseHelper.InsertarItem(new Producto("Choripan", ProductoItem.TipoProducto.Comida, 150.5f, 25)); DataBaseHelper.InsertarItem(new Producto("Jabón en polvo", ProductoItem.TipoProducto.Limpieza, 42.8f, 13)); DataBaseHelper.InsertarItem(new Producto("Cerveza Quilmes", ProductoItem.TipoProducto.Bebida, 80.6f, 25)); try { DataBaseHelper.InsertarItem(p2); //Captura excepcion por repetido } catch (ProductoRepetidoException e) { Console.WriteLine(e.Message); } //INSERT a productos vendidos ProductoItem item = new ProductoItem("Fanta", ProductoItem.TipoProducto.Bebida, 95.5f); ProductoItem item2 = new ProductoItem("7up", ProductoItem.TipoProducto.Bebida, 95.5f); ProductoItem item3 = new ProductoItem("Fanta zero", ProductoItem.TipoProducto.Bebida, 95.5f); DataBaseHelper.InsertarItem(item); //Este metodo acepta tanto Producto como ProductoItem (los agrega a su tabla correspondiente) DataBaseHelper.InsertarItem(item2); DataBaseHelper.InsertarItem(item3); //UPDATE de stock a algún producto DataBaseHelper.ActualizarStockProducto(p1.StockDisponible - 1, "ProductoLimpieza"); Console.WriteLine($"Nuevo stock: ${p1.StockDisponible}"); //Nuevo stock: 4 //SELECT de productos List <Producto> productosDisponibles = DataBaseHelper.GetListaItems <Producto>(); List <Producto> productosConStock = DataBaseHelper.GetListaItems <Producto>(true); //Devuelve solo los productos con stock foreach (Producto p in productosDisponibles) { Console.WriteLine(p.ToString()); } foreach (Producto p in productosConStock) { Console.WriteLine(p.ToString()); } //SELECT de productos vendidos List <ProductoItem> productosVendidos = DataBaseHelper.GetListaItems <ProductoItem>(); foreach (Producto p in productosConStock) { Console.WriteLine(p.ToString()); } //ARCHIVOS ArchivoTexto texto = new ArchivoTexto(); if (texto.Guardar(GetListaVentas(productosVendidos))) { Console.WriteLine("Archivo de texto guardado con exito! (ruta del proyecto)"); } ArchivoXml <List <Producto> > xml = new ArchivoXml <List <Producto> >(); if (xml.Guardar(productosConStock)) { Console.WriteLine("Archivo XML guardado con exito (ruta del proyecto)!"); } //THREADS, DELEGADOS Y EVENTOS //Estos están funcionando en los FORM (animaciones y mensajes) //METODOS DE EXTENSIÓN string fechaActual = DateTime.Now.FechaActualFormateada(); //devuelve la fecha actual -> dd-MM-yyyy Console.WriteLine($"Fecha de hoy: {fechaActual}"); EliminarProductos(); EliminarProductosVendidos(); }