private void SuprimirFila() { if (dgvListado.SelectedRows.Count > 0) { var indice = dgvListado.SelectedRows[0].Index; //Modifico el stock var unidades = Convert.ToDecimal(dgvListado.SelectedRows[0].Cells["Cantidad"].Value.ToString()); var productoId = Convert.ToInt32(dgvListado.SelectedRows[0].Cells["productoId"].Value.ToString()); var prod = ProductosDatasource.First(p => p.ProductoId == productoId); prod.StockActual += unidades; dgvListado.Rows.RemoveAt(indice); CalcularTotal(); if (indice > 0) { dgvListado.ClearSelection(); dgvListado.Rows[indice - 1].Selected = true; } HabilitarBotones(); txtCodigo.Focus(); } }
private void ActualizarStockPromociones(int productoId, int cantidad) { var promociones = ProductoPromocionRepository.Listado().Where(p => p.PadreId == productoId).ToList(); foreach (var promo in promociones) { var prod = ProductosDatasource.First(p => p.ProductoId == promo.HijoId); prod.StockActual -= promo.Unidades * cantidad; } }
private void ModificarCantidad() { if (dgvListado.SelectedRows.Count > 0 && (txtCodigo.Text == "*" || string.IsNullOrEmpty(txtCodigo.Text))) { PopupAbierto = true; var selectedIndex = dgvListado.SelectedRows[0].Index; var unidades = Convert.ToDecimal(dgvListado.SelectedRows[0].Cells["Cantidad"].Value.ToString()); var productoId = Convert.ToInt32(dgvListado.SelectedRows[0].Cells["productoId"].Value.ToString()); var original = ProductoRepository.Obtener(productoId); using (var frm = new IngresarUnidades(dgvListado.SelectedRows[0].Cells["descripcion"].Value.ToString(), unidades, original.AceptaCantidadesDecimales, true)) { var result = frm.ShowDialog(); if (result == DialogResult.OK) { var prod = ProductosDatasource.First(p => p.ProductoId == productoId); var diferenciaStock = frm.Unidades - unidades; if (original.EsPromocion && prod.StockActual - diferenciaStock < 0) { MessageBox.Show("Esta promoción no se encuentra disponible para la cantidad solicitada"); } else { SetCantidad(frm.Unidades); //Modifico el stock prod.StockActual -= diferenciaStock; if (original.EsPromocion) { ActualizarStockPromociones(original.ProductoId, Convert.ToInt32(diferenciaStock)); } } } } dgvListado.ClearSelection(); dgvListado.Rows[selectedIndex].Selected = true; } txtCodigo.Text = ""; txtCodigo.Focus(); }