private void CambiarUnidades() { if (dvgCompraProducto.SelectedRows.Count > 0) { var item = (CompraProducto)dvgCompraProducto.SelectedRows[0].DataBoundItem; //obtengo las unidades actuales DataGridViewRow row = dvgCompraProducto.SelectedRows[0]; var selectedIndex = row.Index; var unidades = item.Cantidad; var productoId = item.ProductoId; var original = ProductoRepository.MaxiKioscosEntities.ProductoListadoCompleto(AppSettings.MaxiKioscoId, ProveedorId, null).ToList().FirstOrDefault(p => p.ProductoId == productoId); var prod = item.ProductoDescripcion; using (var frm = new IngresarUnidades(prod, unidades, original.AceptaCantidadesDecimales, false)) { var result = frm.ShowDialog(); if (result == DialogResult.OK) { var linea = ComprasProducto.FirstOrDefault(c => c.ProductoId == productoId); linea.Cantidad = frm.Unidades; linea.StockActual = linea.StockAnterior + linea.Cantidad; RefrescarGrilla(); CalcularTotales(); } txtCodigo.Text = string.Empty; } dvgCompraProducto.ClearSelection(); dvgCompraProducto.Rows[selectedIndex].Selected = true; dvgCompraProducto.FirstDisplayedScrollingRowIndex = selectedIndex; } }
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(); }