private void ClickAgregar(object sender, EventArgs e) { try { if (DatosValidos(0)) { this.BloquearCombos(true); int cantidad = int.Parse(((TextBox)controles.Find(x => x.Name == "txtCantidad")).Text);; int idArticulo = int.Parse(((ComboBox)controles.Find(x => x.Name == "comboArticulo")).SelectedValue.ToString()); int idUbicacionOrigen = int.Parse(((ComboBox)controles.Find(x => x.Name == "comboUbicacionOrigen")).SelectedValue.ToString()); var articuloAgregado = envioDetalle.Find(x => x.Articulo.Id == idArticulo); cantidad += articuloAgregado != null ? articuloAgregado.Cantidad : 0; if (stockBLL.ValidarStock(idArticulo, idUbicacionOrigen, cantidad)) { var detalle = new EnvioDetalle(); detalle.Cantidad = cantidad; detalle.Articulo = articuloBLL.Obtener(idArticulo); detalle.PrecioUnitario = articuloBLL.Obtener(idArticulo).PrecioUnitario; if (articuloAgregado == null) { envioDetalle.Add(detalle); } else { articuloAgregado.Cantidad = cantidad; } ServicioConfiguracionDeControles.LimpiarControles(this.controles); this.CargarGrilla(); } else { MessageBox.Show("La prenda no se puede agregar porque la ubicacion origen " + "no cuenta con el stock suficiente. Revise el stock desde Administracion > Stock", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }