private void clbProductos_Click(object sender, EventArgs e) { Producto seleccionado = (Producto)clbProductos.SelectedItem; int index = clbProductos.SelectedIndex; //Van al reves ya que apenas hace click el check del item no cambia de estado. //clbProductos_ItemChek no me sirve en este caso ya que cuando se refresca la grilla //les hago check con una función y me activa ese método if (clbProductos.GetItemCheckState(index) == CheckState.Checked && seleccionados.Count >= 0) { foreach (var item in seleccionados) { if (item.Producto.Nombre == seleccionado.Nombre) { seleccionados.RemoveAt(seleccionados.IndexOf(item)); calcularCosto(); return; } } } else { DetalleCombo nuevo = new DetalleCombo(); nuevo.Producto = seleccionado; nuevo.Unidades = 1; seleccionados.Add(nuevo); calcularCosto(); } }
private bool llenarCombo() { try { if (seleccionados.Count < 1) { MessageBox.Show("El combo que desea agregar no posee suficientes productos.", "Atención!", MessageBoxButtons.OK); return(false); } if (txtRuta.Text != "") { local.RutaImagen = txtRuta.Text; } if (txtNombre.Text != "") { local.Nombre = txtNombre.Text; } else { MessageBox.Show("El combo que desea agregar no posee nombre.", "Atención!", MessageBoxButtons.OK); return(false); ; } local.Descripcion = txtDescripcion.Text; if (txtDiasAnticipo.Text != "") { local.DiasAnticipo = Convert.ToInt32(txtDiasAnticipo.Text); } else { local.DiasAnticipo = 0; } if (nudPrecio.Value > 0) { local.Precio = Decimal.Round(nudPrecio.Value, 2); } else { MessageBox.Show("El combo que desea agregar no posee precio.\nCosto del combo: " + lblCosto.Text.Substring(lblCosto.Text.IndexOf("$")) + ".", "Atención!", MessageBoxButtons.OK); return(false); } local.Productos.Clear(); foreach (DetalleCombo item in seleccionados) { DetalleCombo prod = new DetalleCombo(); prod.Producto = item.Producto; prod.Unidades = item.Unidades; prod.Kilos = item.Kilos; local.Productos.Add(prod); } return(true); } catch (Exception ex) { MessageBox.Show(ex.ToString()); return(false); } }
public bool InsertarDetalleCombo(DetalleCombo detC, long idCombo, SqlTransaction tran) { var sql = @"insert into DetalleCombo (idCombo, idProducto, cantidad) values (@idCombo, @idProducto, @cantidad)"; var parameters = new Dictionary <string, object>() { { "@idCombo", idCombo }, { "@idProducto", detC.IdProducto }, { "@cantidad", detC.Cantidad } }; ExecuteNonQuery(sql, parameters, false, tran.Connection, tran); return(true); }
//PRODUCTOS X COMBO public void agregarProdXCombo(Combo cmb, DetalleCombo prod) { AccesoDatosManager accesoDatos = new AccesoDatosManager(); try { accesoDatos.setearConsulta("INSERT INTO PRODUCTOS_X_COMBO (IDCOMBO, IDPRODUCTO, UNIDADES, KILOS) VALUES (" + cmb.ID + ", " + prod.Producto.ID + ", " + prod.Unidades + ", " + prod.Kilos.ToString().Replace(',', '.') + ")"); accesoDatos.abrirConexion(); accesoDatos.ejecutarAccion(); } catch (Exception ex) { throw ex; } finally { accesoDatos.cerrarConexion(); } }
private void listarProductosXCombo(Combo cmb) { AccesoDatosManager accesoDatos = new AccesoDatosManager(); ProductoNegocio negocioP = new ProductoNegocio(); try { accesoDatos.setearConsulta("SELECT PC.* FROM PRODUCTOS AS P INNER JOIN PRODUCTOS_X_COMBO AS PC ON PC.IDPRODUCTO = P.ID WHERE PC.IDCOMBO = " + cmb.ID); accesoDatos.abrirConexion(); accesoDatos.ejecutarConsulta(); DetalleCombo nuevo; while (accesoDatos.Lector.Read()) { nuevo = new DetalleCombo(); nuevo.Producto = new Producto(); nuevo.Producto = negocioP.listarProducto(accesoDatos.Lector.GetInt32(1)); if (!Convert.IsDBNull(accesoDatos.Lector["UNIDADES"])) { nuevo.Unidades = accesoDatos.Lector.GetInt32(2); } if (!Convert.IsDBNull(accesoDatos.Lector["KILOS"])) { nuevo.Kilos = accesoDatos.Lector.GetDecimal(3); } cmb.Productos.Add(nuevo); } } catch (Exception ex) { throw ex; } finally { accesoDatos.cerrarConexion(); } }