diff --git a/Ventas/vender.cs b/Ventas/vender.cs index f15eed1..9cad6b1 100644 --- a/Ventas/vender.cs +++ b/Ventas/vender.cs @@ -117,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; @@ -132,7 +133,6 @@ namespace compabetov2 } else { - // Mostrar mensaje de advertencia MessageBox.Show("No puedes vender menos de 0 cosas", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }); @@ -152,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; @@ -179,6 +182,7 @@ namespace compabetov2 { foreach (var item in flowLayoutPanel2.Controls) { + TableLayoutPanel panelProducto = item as TableLayoutPanel; if (panelProducto != null && panelProducto.Controls.Count > 1) { @@ -201,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; } } } @@ -223,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) { diff --git a/bin/Debug/compabetov2.exe b/bin/Debug/compabetov2.exe index 04da98a..60421d3 100644 Binary files a/bin/Debug/compabetov2.exe and b/bin/Debug/compabetov2.exe differ diff --git a/bin/Debug/compabetov2.pdb b/bin/Debug/compabetov2.pdb index d4fd611..76f5380 100644 Binary files a/bin/Debug/compabetov2.pdb and b/bin/Debug/compabetov2.pdb differ diff --git a/obj/Debug/compabetov2.exe b/obj/Debug/compabetov2.exe index 04da98a..60421d3 100644 Binary files a/obj/Debug/compabetov2.exe and b/obj/Debug/compabetov2.exe differ diff --git a/obj/Debug/compabetov2.pdb b/obj/Debug/compabetov2.pdb index d4fd611..76f5380 100644 Binary files a/obj/Debug/compabetov2.pdb and b/obj/Debug/compabetov2.pdb differ