예제 #1
0
        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;
            }
        }
예제 #2
0
        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);
        }