private void dgvComposicion_CellLeave(object sender, DataGridViewCellEventArgs e) { if (dgvComposicion.EditingControl == null) { return; } switch (dgvComposicion[e.ColumnIndex, e.RowIndex].OwningColumn.Name) { case "clmArt": TipoArticulo art = Global.Servicio.obtenerArticulo(dgvComposicion.EditingControl.Text); if (art != null) { ComposicionArticulos hijo = new ComposicionArticulos(); hijo.TipoArticulo1 = art; dgvComposicion.Rows[e.RowIndex].Tag = hijo; } break; case "clmCant": decimal val; if (decimal.TryParse(dgvComposicion.EditingControl.Text, out val)) { if (val > 0 && val <= 1) { dgvComposicion.EditingControl.Text = Math.Round(val, 2).ToString(); } else { dgvComposicion.EditingControl.Text = "0"; Mensaje unMensaje = new Mensaje("La proporción debe ser un número mayor a cero (0) y menor o igual a uno (1).", Mensaje.TipoMensaje.Error, Mensaje.Botones.OK); unMensaje.ShowDialog(); } } else { dgvComposicion.EditingControl.Text = "0"; Mensaje unMensaje = new Mensaje("La proporción debe ser un número mayor a cero (0) y menor o igual a uno (1).", Mensaje.TipoMensaje.Error, Mensaje.Botones.OK); unMensaje.ShowDialog(); } break; case "clmFactor": decimal valF; if (decimal.TryParse(dgvComposicion.EditingControl.Text, out valF)) { dgvComposicion.EditingControl.Text = Math.Round(valF, 2).ToString(); } else { dgvComposicion.EditingControl.Text = "0"; Mensaje unMensaje = new Mensaje("El factor de conversión debe ser un número.", Mensaje.TipoMensaje.Error, Mensaje.Botones.OK); unMensaje.ShowDialog(); } break; default: return; } }
protected override bool guardar() { Articulo.nombre = txtNombre.Text; Articulo.idUnidad = cboUnidad.SelectedItem != null ? ((Unidad)((ComboBoxItem)cboUnidad.SelectedItem).Value).id : -1; if (cboUnidadStock.SelectedIndex != 0 && cboUnidadStock.SelectedIndex != -1) { Articulo.idUnidadStock = ((Unidad)((ComboBoxItem)cboUnidadStock.SelectedItem).Value).id; } Articulo.ComposicionArticulos.Clear(); foreach (DataGridViewRow fila in dgvComposicion.Rows) { if (!fila.IsNewRow) { ComposicionArticulos compHijo = (ComposicionArticulos)fila.Tag; compHijo.cantComposicion = decimal.Parse(fila.Cells["clmCant"].FormattedValue.ToString()); compHijo.factorConversion = decimal.Parse(fila.Cells["clmFactor"].FormattedValue.ToString()); Articulo.ComposicionArticulos.Add(compHijo); } } try { string cadenaMensaje = ""; // Guardamos los datos del Articulo if (Estado == Estados.Agregar) { Articulo = Global.Servicio.agregarArticulo(Articulo, Global.DatosSesion); cadenaMensaje = "Artículo dado de Alta exitosamente."; } else { Global.Servicio.actualizarArticulo(Articulo, Global.DatosSesion); cadenaMensaje = "Artículo Modificado con éxito."; } // Mostramos mensaje de éxito Mensaje mensaje = new Mensaje(string.Format(cadenaMensaje, Articulo.nombre), Mensaje.TipoMensaje.Exito, Mensaje.Botones.OK); mensaje.ShowDialog(); // Indica que el Articulo se guardó correctamente return(true); } catch (Exception ex) { Mensaje unMensaje = new Mensaje(ex.Message, Mensaje.TipoMensaje.Error, Mensaje.Botones.OK); unMensaje.ShowDialog(); } return(false); }