diff --git a/Principal/MenuPrincipal.cs b/Principal/MenuPrincipal.cs index 0d55162..cc618ef 100644 --- a/Principal/MenuPrincipal.cs +++ b/Principal/MenuPrincipal.cs @@ -77,10 +77,8 @@ namespace compabetov2 private void pictureBox4_Click(object sender, EventArgs e) { inventario inventario = new inventario(loginPrincipal); - inventario.Show(); - - - + inventario.Show(); + } private void lblfecha_Click(object sender, EventArgs e) @@ -92,26 +90,42 @@ namespace compabetov2 { - + // Establecer el formulario de menĂº principal (this) como el formulario MDI padre // Mostrar el formulario de ventas + + if (loginPrincipal.tipo.Equals("empleado")) + { + MessageBox.Show("Usted no tiene permisos de acceder a este apartado"); + } + else + { + personal personal = new personal(loginPrincipal); + + personal.Show(); + } - - personal personal = new personal(loginPrincipal); - - personal.Show(); } private void pictureBox3_Click(object sender, EventArgs e) { - envios envios = new envios(loginPrincipal); - envios.Show(); + if (loginPrincipal.tipo.Equals("empleado")) + { + MessageBox.Show("Usted no tiene permisos de acceder a este apartado"); + } + else + { + envios envios = new envios(loginPrincipal); + + envios.Show(); + } + } @@ -120,7 +134,6 @@ namespace compabetov2 { cuentas cuentas = new cuentas(loginPrincipal); cuentas.Show(); -; } private void pictureBox6_Click(object sender, EventArgs e) @@ -171,8 +184,17 @@ namespace compabetov2 private void button2_Click(object sender, EventArgs e) { - Estadiscticas estadiscticas = new Estadiscticas(); - estadiscticas.Show(); + + if (loginPrincipal.tipo.Equals("empleado")) + { + MessageBox.Show("Usted no tiene permisos de acceder a este apartado"); + } + else + { + Estadiscticas estadiscticas = new Estadiscticas(); + estadiscticas.Show(); + } + } diff --git a/Ventas/vender.cs b/Ventas/vender.cs index aadb28c..9cad6b1 100644 --- a/Ventas/vender.cs +++ b/Ventas/vender.cs @@ -22,10 +22,7 @@ namespace compabetov2 { - private bool masBtnPresionado = false; - private bool menosBtnPresionado = false; private List productos; - private List cartas = new List(); private decimal total = 0; private LoginModel loginPrincipal; @@ -120,7 +117,8 @@ namespace compabetov2 int numeroContador = int.Parse(contador.Text.ToString()); // Validar que el contador no sea 0 antes de restar - if (numeroContador > 0) + + if (existeTocket(producto.nombre)) { contador.Text = (numeroContador - 1).ToString(); total -= producto.precion; @@ -135,7 +133,6 @@ namespace compabetov2 } else { - // Mostrar mensaje de advertencia MessageBox.Show("No puedes vender menos de 0 cosas", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }); @@ -155,6 +152,9 @@ namespace compabetov2 btnMas.FlatAppearance.BorderSize = 0; btnMas.Click += new EventHandler(delegate (object sender, EventArgs e) { + if(int.Parse(contador.Text.ToString()) < 0 && !existeTocket(producto.nombre)) { + contador.Text = "0"; + } int numeroContador = int.Parse(contador.Text.ToString()); contador.Text = (numeroContador + 1).ToString(); total += producto.precion; @@ -173,10 +173,7 @@ namespace compabetov2 carta.Controls.Add(pic, 0, 0); carta.Controls.Add(HUD, 0, 1); - cartas.Add(carta); flowLayoutPanel3.Controls.Add(carta); - - } } @@ -185,6 +182,7 @@ namespace compabetov2 { foreach (var item in flowLayoutPanel2.Controls) { + TableLayoutPanel panelProducto = item as TableLayoutPanel; if (panelProducto != null && panelProducto.Controls.Count > 1) { @@ -207,20 +205,28 @@ namespace compabetov2 { string textcantidad = Lbcantidad.Text; string[] cantidadCadenas = textcantidad.Split(' '); - int NuevaCantiad = int.Parse(cantidadCadenas[1]) - cantidad; - - int NuevoTotal = (int)(NuevaCantiad * precio); - - // Actualizar el ticket existente - Lbcantidad.Text = $"Cantidad: {NuevaCantiad}"; - Lbtotal.Text = $"Total: ${NuevoTotal}"; - - // Si la cantidad llega a 0, eliminar el ticket del flowLayoutPanel2 - if (NuevaCantiad == 0) + if(int.Parse(cantidadCadenas[1]) > 0) { - flowLayoutPanel2.Controls.Remove(panelProducto); + int NuevaCantiad = int.Parse(cantidadCadenas[1]) - cantidad; + + int NuevoTotal = (int)(NuevaCantiad * precio); + + // Actualizar el ticket existente + Lbcantidad.Text = $"Cantidad: {NuevaCantiad}"; + Lbtotal.Text = $"Total: ${NuevoTotal}"; + + // Si la cantidad llega a 0, eliminar el ticket del flowLayoutPanel2 + if (NuevaCantiad == 0) + { + flowLayoutPanel2.Controls.Remove(panelProducto); + } + break; + } + else + { + // Mostrar mensaje de advertencia + MessageBox.Show("No puedes vender menos de 0 cosas", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); } - break; } } } @@ -229,6 +235,31 @@ namespace compabetov2 } } + private bool existeTocket(string nombreProducto) + { + int contador_saltar_2_vueltas = 1; + foreach (var item in flowLayoutPanel2.Controls) + { + if (contador_saltar_2_vueltas <= 3) + { + contador_saltar_2_vueltas++; + continue; + } + TableLayoutPanel panelProducto = item as TableLayoutPanel; + TableLayoutPanel panelInfo = panelProducto.Controls[1] as TableLayoutPanel; + Label lbnombre = panelInfo.Controls[0] as Label; + string textoLb = lbnombre.Text; + string[] cadenas = textoLb.Split(':'); + string cadena = cadenas[1].Remove(0, 1); + + if (cadena.Equals(nombreProducto)) + { + + return true; + } + } + return false; + } private void GenerarTicket(int idProducto, string nombreProducto, decimal precio, int cantidad, decimal total, string rutaImg) { @@ -432,6 +463,7 @@ namespace compabetov2 MessageBox.Show("Venta hecha"); eliminarProductosTocket(); llenarLayout(); + } } else @@ -677,8 +709,16 @@ namespace compabetov2 private void txtbusqueda_TextChanged(object sender, EventArgs e) { - - + if (!txtbusqueda.Text.Equals("")) + { + productos = service.conseguirProductosFiltrados(txtbusqueda.Text); + llenarLayout(); + } + else + { + getData(); + llenarLayout(); + } } private List listaProductosEnvio() @@ -749,6 +789,7 @@ namespace compabetov2 flowLayoutPanel1.Controls.Remove(c); } label1.Text = "Total: 0"; + txtbusqueda.Text = ""; } } } diff --git a/database/DAO.cs b/database/DAO.cs index 1d578fa..b048ae8 100644 --- a/database/DAO.cs +++ b/database/DAO.cs @@ -1483,6 +1483,31 @@ namespace compabetov2.database } } + public static SQLiteDataReader conseguirProductosFiltradosDAO(string nombreProducto) + { + SQLiteDataReader reader = null; + var db_conexion = new Conexion(); + try + { + SQLiteConnection conexion = db_conexion.get_connection(); + + conexion.Open(); + + string sql = "SELECT * FROM Producto WHERE nombre LIKE @nombre"; + SQLiteCommand command = new SQLiteCommand(sql, conexion); + command.Parameters.AddWithValue("@nombre", $"%{nombreProducto}%"); + reader = command.ExecuteReader(); + + return reader; + + } + catch (SQLiteException ex) + { + MessageBox.Show(ex.Message); + return reader; + } + } + private static void crearDB() { var db_conexion = new Conexion(); diff --git a/database/service.cs b/database/service.cs index 5da2b38..5d924d3 100644 --- a/database/service.cs +++ b/database/service.cs @@ -439,5 +439,26 @@ namespace compabetov2.database return resumen; } + + public static List conseguirProductosFiltrados(string nombreProducto) { + List productos = new List(); + SQLiteDataReader reader = DAO.conseguirProductosFiltradosDAO(nombreProducto); + + while (reader.Read()) + { + Producto producto = new Producto( + int.Parse(reader["idproducto"].ToString()), + reader["nombre"].ToString(), + reader["descripcion"].ToString(), + decimal.Parse(reader["precio"].ToString()), + reader["img"].ToString(), + int.Parse(reader["stock"].ToString()) + ); + + productos.Add(producto); + } + + return productos; + } } }