/// <summary>Actualiza el estado del articulo a activo/inactivo.</summary> /// <param name="_EstadoElemento">Enum que contrendra el numero del tipo de estado.</param> private void ActualizarEstadoArticulo(ClsEstadosArticulos.EEstadosArticulos _EstadoElemento) { ClsArticulos Articulo = new ClsArticulos(); Articulo ActualizarArticulo = new Articulo(); int TotalDeFilas = dgvEstadoArticulo.Rows.Count; for (int Indice = 0; Indice < TotalDeFilas; Indice++) { //Pregunto si la celda es diferente a null if (dgvEstadoArticulo.Rows[Indice].Cells[(int)ENumColDGVEstadoArticulo.Seleccionar].Value != null) { //Casteo el check del objeto a booleano y pregunto si es true if ((bool)dgvEstadoArticulo.Rows[Indice].Cells[(int)ENumColDGVEstadoArticulo.Seleccionar].Value) { string InformacionDelError = string.Empty; ActualizarArticulo = Articulo.LeerPorNumero((int)dgvEstadoArticulo.Rows[Indice].Cells[(int)ENumColDGVEstadoArticulo.ID_Articulo].Value, ref InformacionDelError); if (ActualizarArticulo != null) { ActualizarArticulo.ID_EstadoArticulo = (int)_EstadoElemento; if (ActualizarArticulo.CategoriaArticulo.ID_EstadoCategoriaArticulo != (int)ClsEstadosCategoriasArticulos.EEstadosCategoriasArticulos.inactivo) { if (Articulo.Actualizar(ActualizarArticulo, ref InformacionDelError) != 0) { dgvEstadoArticulo.Rows.Remove(dgvEstadoArticulo.Rows[Indice]); Indice -= 1; TotalDeFilas -= 1; UltimaFilaSeleccionada = -1; } else if (InformacionDelError != string.Empty) { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { using (FrmInformacion FormInformacion = new FrmInformacion($"El articulo '{ActualizarArticulo.Nombre}' (categoria '{ActualizarArticulo.CategoriaArticulo.Nombre}') " + $"no se puede activar debido a que su categoria fue eliminada.", ClsColores.Blanco, 150, 350)) { FormInformacion.ShowDialog(); } } } else if (InformacionDelError == string.Empty) { MessageBox.Show($"Error al intentar actualizar el articulo", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } }
private void BtnAplicarAumentoDescuento_Click(object sender, EventArgs e) { if (txtCantidad.Text == string.Empty) { txtCantidad.Text = "0"; } CargarDGVCarta(ClsArticulos.ETipoListado.ArticulosActivos); ClsArticulos Articulos = new ClsArticulos(); Articulo ActualizarPrecio = new Articulo(); // Entrar solo si al menos el usuario marco un check para aplicarle aumento if (chkAplicarADelivery.Checked || chkAplicarACarta.Checked) { // TODO - Realizar un aumento/descuento a los articulos seleccionados en funcion del porcentaje y el RBN seleccioando for (int Indice = 0; Indice < dgvCarta.Rows.Count; Indice++) { //Pregunto si la celda es diferente a null if (dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.Seleccionar].Value != null) { //Casteo el check del objeto a booleano y pregunto si es true if ((bool)dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.Seleccionar].Value) { string InformacionDelError = string.Empty; ActualizarPrecio = Articulos.LeerPorNumero((int)dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.ID_Articulo].Value, ref InformacionDelError); if (rbnAumento.Checked) { if (chkAplicarADelivery.Checked && !chkAplicarACarta.Checked) { if (ActualizarPrecio.PrecioDelivery != null) { if (RbnPorcentaje.Checked) { ActualizarPrecio.PrecioDelivery += ActualizarPrecio.PrecioDelivery * (int)nudPorcentaje.Value / 100; } else { ActualizarPrecio.PrecioDelivery += Convert.ToInt32(txtCantidad.Text); } } } else if (!chkAplicarADelivery.Checked && chkAplicarACarta.Checked) { if (ActualizarPrecio.Precio != null) { if (RbnPorcentaje.Checked) { ActualizarPrecio.Precio += ActualizarPrecio.Precio * (int)nudPorcentaje.Value / 100; } else { ActualizarPrecio.Precio += Convert.ToInt32(txtCantidad.Text); } } } else { if (ActualizarPrecio.Precio != null) { if (RbnPorcentaje.Checked) { ActualizarPrecio.Precio += ActualizarPrecio.Precio * (int)nudPorcentaje.Value / 100; } else { ActualizarPrecio.Precio += Convert.ToInt32(txtCantidad.Text); } } if (ActualizarPrecio.PrecioDelivery != null) { if (RbnPorcentaje.Checked) { ActualizarPrecio.PrecioDelivery += ActualizarPrecio.PrecioDelivery * (int)nudPorcentaje.Value / 100; } else { ActualizarPrecio.PrecioDelivery += Convert.ToInt32(txtCantidad.Text); } } } } else { if (chkAplicarADelivery.Checked && !chkAplicarACarta.Checked) { if (ActualizarPrecio.PrecioDelivery != null) { if (RbnPorcentaje.Checked) { ActualizarPrecio.PrecioDelivery -= ActualizarPrecio.PrecioDelivery * (int)nudPorcentaje.Value / 100; } else { ActualizarPrecio.PrecioDelivery -= Convert.ToInt32(txtCantidad.Text); } } } else if (!chkAplicarADelivery.Checked && chkAplicarACarta.Checked) { if (ActualizarPrecio.Precio != null) { if (RbnPorcentaje.Checked) { ActualizarPrecio.Precio -= ActualizarPrecio.Precio * (int)nudPorcentaje.Value / 100; } else { ActualizarPrecio.Precio -= Convert.ToInt32(txtCantidad.Text); } } } else { if (ActualizarPrecio.Precio != null) { if (RbnPorcentaje.Checked) { ActualizarPrecio.Precio -= ActualizarPrecio.Precio * (int)nudPorcentaje.Value / 100; } else { ActualizarPrecio.Precio -= Convert.ToInt32(txtCantidad.Text); } } if (ActualizarPrecio.PrecioDelivery != null) { if (RbnPorcentaje.Checked) { ActualizarPrecio.PrecioDelivery -= ActualizarPrecio.PrecioDelivery * (int)nudPorcentaje.Value / 100; } else { ActualizarPrecio.PrecioDelivery -= Convert.ToInt32(txtCantidad.Text); } } } } if (chkAplicarADelivery.Checked && !chkAplicarACarta.Checked && chkRedondearPrecio.Checked) { if (ActualizarPrecio.PrecioDelivery != null) { ActualizarPrecio.PrecioDelivery = Math.Floor((double)ActualizarPrecio.PrecioDelivery); if (ActualizarPrecio.PrecioDelivery % 5 != 0) { ActualizarPrecio.PrecioDelivery = ActualizarPrecio.PrecioDelivery + (5 - (ActualizarPrecio.PrecioDelivery % 5)); } } } else if (!chkAplicarADelivery.Checked && chkAplicarACarta.Checked && chkRedondearPrecio.Checked) { if (ActualizarPrecio.Precio != null) { ActualizarPrecio.Precio = Math.Floor((double)ActualizarPrecio.Precio); if (ActualizarPrecio.Precio % 5 != 0) { ActualizarPrecio.Precio = ActualizarPrecio.Precio + (5 - (ActualizarPrecio.Precio % 5)); } } } else if (chkRedondearPrecio.Checked) { if (ActualizarPrecio.Precio != null) { ActualizarPrecio.Precio = Math.Floor((double)ActualizarPrecio.Precio); if (ActualizarPrecio.Precio % 5 != 0) { ActualizarPrecio.Precio = ActualizarPrecio.Precio + (5 - (ActualizarPrecio.Precio % 5)); } } if (ActualizarPrecio.PrecioDelivery != null) { ActualizarPrecio.PrecioDelivery = Math.Floor((double)ActualizarPrecio.PrecioDelivery); if (ActualizarPrecio.PrecioDelivery % 5 != 0) { ActualizarPrecio.PrecioDelivery = ActualizarPrecio.PrecioDelivery + (5 - (ActualizarPrecio.PrecioDelivery % 5)); } } } bool PrecioPermitido = false; bool PrecioMinimo = false; if (ActualizarPrecio.Precio == null) { PrecioPermitido = true; } else { if (ActualizarPrecio.Precio >= 10 && ActualizarPrecio.Precio <= 999999) { PrecioPermitido = true; } else if (ActualizarPrecio.Precio < 10) { PrecioPermitido = false; PrecioMinimo = true; } else { PrecioPermitido = false; } } if (ActualizarPrecio.PrecioDelivery == null) { PrecioPermitido = true; } else { if (ActualizarPrecio.PrecioDelivery >= 10 && ActualizarPrecio.PrecioDelivery <= 999999) { PrecioPermitido = true; } else if (ActualizarPrecio.PrecioDelivery < 10) { PrecioPermitido = false; PrecioMinimo = true; } else { PrecioPermitido = false; } } if (PrecioPermitido) { if (ActualizarPrecio.Precio != null) { ActualizarPrecio.Precio = Math.Round((double)ActualizarPrecio.Precio, 2); } if (ActualizarPrecio.PrecioDelivery != null) { ActualizarPrecio.PrecioDelivery = Math.Round((double)ActualizarPrecio.PrecioDelivery, 2); } if (Articulos.Actualizar(ActualizarPrecio, ref InformacionDelError) != 0) { if (ActualizarPrecio.Precio == null) { dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.PrecioCarta].Value = "NO TIENE"; } else { dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.PrecioCarta].Value = ActualizarPrecio.Precio; } if (ActualizarPrecio.PrecioDelivery == null) { dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.PrecioDelivery].Value = "NO TIENE"; } else { dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.PrecioDelivery].Value = ActualizarPrecio.PrecioDelivery; } } else if (InformacionDelError != string.Empty) { FrmPrincipal.ObtenerInstancia().MensajeAdvertencia("Error al intentar actualizar los precios"); MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else if (PrecioMinimo) { using (FrmInformacion FormInformacion = new FrmInformacion($"El articulo '{dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.Nombre].Value.ToString()}' (categoria '{dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.Categoria].Value.ToString()}') " + $"no se puede actualizar debido a que su precio seria inferior al minimo ($10 pesos).", ClsColores.Blanco, 350, 150)) { FormInformacion.ShowDialog(); } } else { using (FrmInformacion FormInformacion = new FrmInformacion($"El articulo '{dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.Nombre].Value.ToString()}' (categoria '{dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.Categoria].Value.ToString()}') " + $"no se puede actualizar debido a que su precio seria superior al maximo permitido (999999).", ClsColores.Blanco, 350, 150)) { FormInformacion.ShowDialog(); } } dgvCarta.Rows[Indice].Cells[(int)ENumColDGVCarta.Seleccionar].Value = false; } } } CambiarCheckboxSeleccion(false); } }
private void BtnGuardarCambios_Click(object sender, EventArgs e) { bool DatosValidos = true; string RegistroDeErrores = string.Empty; int AnchoFormInformacion = 100; CategoriaArticulo CategoriaArticulo = null; txtNombreArticulo.Text = txtNombreArticulo.Text.Trim(); txtDescripcion.Text = txtDescripcion.Text.Trim(); txtPrecio.Text = txtPrecio.Text.Trim(); if (txtNombreArticulo.Text.Length < 3) { DatosValidos = false; RegistroDeErrores += "El campo 'Nombre' debe tener como minimo 3 caracteres.\r\n\r\n"; AnchoFormInformacion += 50; } if (txtPrecio.Text != string.Empty) { if (txtPrecio.Text.Substring(0, 1) == "," || txtPrecio.Text.Substring(txtPrecio.Text.Length - 1, 1) == "," || Convert.ToDouble(txtPrecio.Text) < 10) { DatosValidos = false; RegistroDeErrores += "El campo 'Precio' debe ser mayor a $10 (verifique tambien que no tenga la " + "coma del centavo al principio o al final).\r\n\r\n"; AnchoFormInformacion += 50; } } if (txtPrecioDelivery.Text != string.Empty) { if (txtPrecioDelivery.Text.Substring(0, 1) == "," || txtPrecioDelivery.Text.Substring(txtPrecioDelivery.Text.Length - 1, 1) == "," || Convert.ToDouble(txtPrecioDelivery.Text) < 10) { DatosValidos = false; RegistroDeErrores += "El campo 'Precio delivery' debe ser mayor a $10 (verifique tambien que no tenga la " + "coma del centavo al principio o al final).\r\n\r\n"; AnchoFormInformacion += 50; } } if (cmbCategoria.SelectedItem != null) { CategoriaArticulo = (CategoriaArticulo)cmbCategoria.SelectedItem; } else { DatosValidos = false; RegistroDeErrores += "Seleccione una categoria.\r\n\r\n"; AnchoFormInformacion += 50; } if (VerificarArticuloRepetido(txtNombreArticulo.Text, ID_Articulo)) { DatosValidos = false; RegistroDeErrores += "El nombre del articulo ya se encuentra en uso.\r\n\r\n"; AnchoFormInformacion += 50; } if (txtPrecio.Text == string.Empty && txtPrecioDelivery.Text == string.Empty) { DatosValidos = false; RegistroDeErrores += "El articulo debe tener un precio para carta o delivery.\r\n\r\n"; AnchoFormInformacion += 50; } if (DatosValidos) { txtNombreArticulo.Text = txtNombreArticulo.Text.Substring(0, 1).ToUpper() + txtNombreArticulo.Text.Remove(0, 1).ToLower(); if (txtDescripcion.Text != string.Empty) { txtDescripcion.Text = txtDescripcion.Text.Substring(0, 1).ToUpper() + txtDescripcion.Text.Remove(0, 1).ToLower(); } string InformacionDelError = string.Empty; ClsArticulos Articulo = new ClsArticulos(); Articulo ActualizarArticulo = new Articulo(); ActualizarArticulo.ID_Articulo = ID_Articulo; ActualizarArticulo.Nombre = txtNombreArticulo.Text; ActualizarArticulo.Descripcion = txtDescripcion.Text; if (txtPrecio.Text == string.Empty) { ActualizarArticulo.Precio = null; } else { ActualizarArticulo.Precio = Math.Round(Convert.ToDouble(txtPrecio.Text), 2); } if (txtPrecioDelivery.Text == string.Empty) { ActualizarArticulo.PrecioDelivery = null; } else { ActualizarArticulo.PrecioDelivery = Math.Round(Convert.ToDouble(txtPrecioDelivery.Text), 2); } ActualizarArticulo.ID_EstadoArticulo = (int)ClsEstadosArticulos.EEstadosArticulos.Activo; ActualizarArticulo.ID_CategoriaArticulo = CategoriaArticulo.ID_CategoriaArticulo; if (Articulo.Actualizar(ActualizarArticulo, ref InformacionDelError) != 0) { DialogResult = DialogResult.OK; Close(); } else if (InformacionDelError != string.Empty) { MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } else { using (FrmInformacion FormInformacion = new FrmInformacion(RegistroDeErrores, ClsColores.Blanco, AnchoFormInformacion, 400)) { FormInformacion.ShowDialog(); } } }