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;
     }
 }
Пример #2
0
        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();
        }