private void btn_agragar_venta_Click(object sender, RoutedEventArgs e) { if (dgrid_existencia.SelectedItem == null || !(dgrid_existencia.SelectedItem is objeto_existencia)) { MessageBox.Show("Debe seleccionar un producto antes de agregar"); return; } var existencia = dgrid_existencia.SelectedItem as objeto_existencia; bool existe_venta = source_venta.Find(p => p.ExistenciaId == existencia.ExistenciaId) != null; bool existe_deuda = source_deuda.Find(p => p.ExistenciaId == existencia.ExistenciaId) != null; bool existe_devolucion = source_devolucion.Find(p => p.ExistenciaId == existencia.ExistenciaId) != null; if (existe_venta) { dgrid_venta.SelectedIndex = dgrid_venta.Items.IndexOf(source_venta.Find(p => p.ExistenciaId == existencia.ExistenciaId)); return; } var venta_new = new objeto_venta(existencia.ExistenciaId); source_venta.Add(venta_new); Metodos_Auxiliares.refresh(dgrid_venta, source_venta); }
private void dgrid_entrada_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { int valor; if (!int.TryParse((e.EditingElement as TextBox).Text, out valor)) { e.Cancel = true; return; } if (valor < 0) { valor = 0; } var objeto = e.Row.Item as entrada; var column = ((e.Column as DataGridBoundColumn).Binding as Binding).Path.Path; var obj = source_entrada.Find(r => r.Codigo == objeto.Codigo); if (column == "CantidadBuenEstado") { obj.CantidadBuenEstado = valor; } else { obj.CantidadDefectuoso = valor; } Metodos_Auxiliares.refresh(dgrid_entrada, source_entrada); }
private void dg_trab_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { var row = e.Row.Item as Trabajador; if (row.TrabajadorId == 0) { using (var db = new TiendaDbContext()) { var tienda = db.Tiendas.First(); var trabajador = new Trabajador { Nombre = (e.EditingElement as TextBox).Text, ShopId = tienda.ShopId }; if (trabajador.Nombre == "") { e.Cancel = true; return; } db.Trabajadores.Add(trabajador); db.SaveChanges(); data_trabajador.Add(trabajador); Metodos_Auxiliares.refresh(dg_trab, data_trabajador); } } else if (MessageBox.Show("Esta seguro", "Cambio de Nombre", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { using (var db = new TiendaDbContext()) { db.Trabajadores.Find((dg_trab.SelectedItem as Trabajador).TrabajadorId).Nombre = (e.EditingElement as TextBox).Text; db.SaveChanges(); } } }
void fillEntrada(Func <ReporteEntrada, bool> pred) { int total = 0; entrada_sp.Children.Clear(); using (var db = new TiendaDbContext()) { var vs = db.ReporteEntradas.Where(pred).ToList(); List <string> header = new List <string> { "Codigo", "Descripcion", "Cant. BE", "Cant. ME" }; List <string> path = new List <string> { "Codigo", "Descripcion", "CantidadBuenEstado", "CantidadDefectuoso" }; foreach (var item in vs) { List <objeto_entrada> source2 = new List <objeto_entrada>(); foreach (var i in item.Articulos) { source2.Add(new objeto_entrada(i.ArticuloEntradaId)); } var p = new UserControllers.ReporteVentaController(Metodos_Auxiliares.make_dg(source2, header, path)); p.fecha_inform.Content = item.Fecha.ToString(); p.nombre_inform.Content = "Almacen"; p.pago_inform.Content = "Cant. de Productos: " + item.CantidadTotal.ToString(); p.Background = Brushes.AntiqueWhite; entrada_sp.Children.Add(p); total += item.CantidadTotal; } } entrada_total.Content = total.ToString(); }
private void dgrid_entrada_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { int valor; if (!int.TryParse((e.EditingElement as TextBox).Text, out valor)) { e.Cancel = true; return; } valor = Math.Max(valor, 0); var objeto = e.Row.Item as entrada; Existencia exist; using (var db = new TiendaDbContext()) exist = db.Tiendas.First().Productos.Where(p => p.Codigo == objeto.Codigo).First(); var column = e.Column as DataGridBoundColumn; if (column != null) { var bindingPath = (column.Binding as Binding).Path.Path; if (bindingPath == "CantidadBuenEstado") { source_entrada.Find(a => a.Codigo == objeto.Codigo).CantidadBuenEstado = Math.Min(valor, exist.CantidadBuenEstado); } else { source_entrada.Find(a => a.Codigo == objeto.Codigo).CantidadDefectuoso = Math.Min(valor, exist.CantidadDefectuoso); } } Metodos_Auxiliares.refresh(dgrid_entrada, source_entrada); }
void fillVentas(Func <ReporteVenta, bool> pred) { int prods = 0; double total = 0; venta_sp.Children.Clear(); using (var db = new TiendaDbContext()) { var vs = db.ReporteVentas.Where(pred).ToList(); List <string> header = new List <string> { "Codigo", "Descripcion", "Cant. BE", "Cant. ME", "BE $", "ME $" }; List <string> path = new List <string> { "Codigo", "Descripcion", "CantidadBuenEstado", "CantidadDefectuoso", "PrecioBuenEstado", "PrecioDefectuoso" }; foreach (var item in vs) { List <objeto_venta> source2 = new List <objeto_venta>(); foreach (var i in item.Articulos) { source2.Add(new objeto_venta(i.ArticuloVentaId)); } var p = new UserControllers.ReporteVentaController(Metodos_Auxiliares.make_dg(source2, header, path)); p.fecha_inform.Content = item.Fecha.ToString(); p.nombre_inform.Content = item.Trabajador.Nombre; p.pago_inform.Content = "Pago: " + item.CostoTotal.ToString() + " $"; p.Background = Brushes.AntiqueWhite; venta_sp.Children.Add(p); prods += item.CantidadTotal; total += item.CostoTotal; } } venta_prod_total.Content = prods.ToString(); venta_ganancia_total.Content = total.ToString(); }
private void Button_Click_1(object sender, RoutedEventArgs e) { using (var db = new TiendaDbContext()) { var art_deuda = source_deuda.Where(p => p.CantidadTotal > 0).Count() > 0 ? source_deuda.Where(p => p.CantidadTotal > 0).ToList() : new List <objeto_deuda>(); var art_devolucion = source_devolucion.Where(p => p.CantidadTotal > 0).Count() > 0 ? source_devolucion.Where(p => p.CantidadTotal > 0).ToList() : new List <objeto_devolucion>(); var art_venta = source_venta.Where(p => p.CantidadTotal > 0).Count() > 0 ? source_venta.Where(p => p.CantidadTotal > 0).ToList() : new List <objeto_venta>(); if (art_deuda.Count() + art_devolucion.Count() + art_venta.Count() == 0) { MessageBox.Show("No se ha agregado nada"); return; } var reporte_deuda = objeto_deuda.generar_reporte(tienda_id, art_deuda, Fecha); var reporte_devolucion = objeto_devolucion.generar_reporte(tienda_id, art_devolucion, Fecha); var tienda = db.Tiendas.Find(tienda_id); var reporte_venta = objeto_venta.generar_reporte(tienda_id, tienda.Encargado.TrabajadorId, art_venta, Fecha); var informe = Metodos_Auxiliares.genera_informe(tienda_id, reporte_deuda, reporte_devolucion, reporte_venta, Fecha); foreach (var item in art_deuda) { var existencia = db.Existencias.Find(item.ExistenciaId); existencia.CantidadBuenEstado -= item.CantidadBuenEstado; existencia.CantidadDefectuoso -= item.CantidadDefectuoso; db.Entry(existencia).State = EntityState.Modified; db.SaveChanges(); } foreach (var item in art_venta) { var existencia = db.Existencias.Find(item.ExistenciaId); existencia.CantidadBuenEstado -= item.CantidadBuenEstado; existencia.CantidadDefectuoso -= item.CantidadDefectuoso; db.Entry(existencia).State = EntityState.Modified; db.SaveChanges(); } foreach (var item in art_devolucion) { var existencia_origen = db.Existencias.Find(item.ExistenciaId); var existencia_destino = db.Existencias.Where(p => p.Codigo == item.Codigo).First(); existencia_origen.CantidadBuenEstado -= item.CantidadBuenEstado; existencia_origen.CantidadDefectuoso -= item.CantidadDefectuoso; existencia_destino.CantidadBuenEstado += item.CantidadBuenEstado; existencia_destino.CantidadDefectuoso += item.CantidadDefectuoso; db.Entry(existencia_origen).State = EntityState.Modified; db.Entry(existencia_destino).State = EntityState.Modified; db.SaveChanges(); } } this.NavigationService.GoBack(); }
private void dgrid_venta_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { int value; if (!int.TryParse((e.EditingElement as TextBox).Text, out value)) { e.Cancel = true; return; } var column = e.Column as DataGridBoundColumn; if (column != null) { int id = (dgrid_venta.SelectedItem as objeto_venta).ExistenciaId; var art = venta_source.Find(p => p.ExistenciaId == id); if (value < 0) { value = 0; } var bindingPath = (column.Binding as Binding).Path.Path; if (bindingPath == "CantidadBuenEstado") { if (art.CantidadExistenteBE < value) { value = art.CantidadExistenteBE; } venta_source.Find(s => s.ExistenciaId == id).CantidadBuenEstado = value; } else { if (art.CantidadExistenteDefec < value) { value = art.CantidadExistenteDefec; } venta_source.Find(s => s.ExistenciaId == id).CantidadDefectuoso = value; } } Metodos_Auxiliares.refresh(dgrid_venta, venta_source); double costo_total = 0; venta_source.ForEach(p => costo_total += p.PrecioTotal); tbox_pagado.Text = costo_total.ToString(); }
private void btn_Eliminar_Click(object sender, RoutedEventArgs e) { if (dgrid_venta.SelectedItem == null || !(dgrid_venta.SelectedItem is objeto_venta)) { MessageBox.Show("Necesita seleccionar un producto para remover"); return; } var obj_venta = dgrid_venta.SelectedItem as objeto_venta; venta_source.RemoveAt(venta_source.FindIndex(p => p.Codigo == obj_venta.Codigo)); Metodos_Auxiliares.refresh(dgrid_venta, venta_source); double costo_total = 0; venta_source.ForEach(p => costo_total += p.PrecioTotal); tbox_pagado.Text = costo_total.ToString(); }
private void btn_retirar_deuda_Click(object sender, RoutedEventArgs e) { if (dgrid_deuda.SelectedItem == null || !(dgrid_deuda.SelectedItem is objeto_deuda)) { MessageBox.Show("Necesita seleccionar un producto para retirar"); return; } var objeto = dgrid_deuda.SelectedItem as objeto_deuda; bool existe_venta = source_venta.Find(p => p.ExistenciaId == objeto.ExistenciaId) != null; bool existe_deuda = source_deuda.Find(p => p.ExistenciaId == objeto.ExistenciaId) != null; bool existe_devolucion = source_devolucion.Find(p => p.ExistenciaId == objeto.ExistenciaId) != null; bool existe_existencia = source_existencia.Find(p => p.ExistenciaId == objeto.ExistenciaId) != null; source_deuda.RemoveAt(source_deuda.FindIndex(p => p.ExistenciaId == objeto.ExistenciaId)); Metodos_Auxiliares.refresh(dgrid_deuda, source_deuda); }
private void delete_empleado_Click(object sender, RoutedEventArgs e) { if (dg_trab.SelectedItem == null || !(dg_trab.SelectedItem is Trabajador)) { MessageBox.Show("Debe escoger un trabajador"); } else { if (MessageBox.Show("Esta seguro", "Eliminar Trabajador", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { using (var db = new TiendaDbContext()) { db.Trabajadores.Find((dg_trab.SelectedItem as Trabajador).TrabajadorId).eliminado = true; db.SaveChanges(); data_trabajador.Remove(dg_trab.SelectedItem as Trabajador); Metodos_Auxiliares.refresh(dg_trab, data_trabajador); } } } }
void fillDeuda(Func <ReporteDeuda, bool> pred) { double total = 0; double pagada = 0; deuda_sp.Children.Clear(); using (var db = new TiendaDbContext()) { var vs = db.ReporteDeudas.Where(pred).ToList(); List <string> header = new List <string> { "Codigo", "Descripcion", "Cant. BE", "Cant. ME", "BE $", "ME $" }; List <string> path = new List <string> { "Codigo", "Descripcion", "CantidadBuenEstado", "CantidadDefectuoso", "PrecioBuenEstado", "PrecioDefectuoso" }; foreach (var item in vs) { List <objeto_deuda> source2 = new List <objeto_deuda>(); foreach (var i in item.Articulos) { source2.Add(new objeto_deuda(i.ArticuloDeudaId)); } var p = new UserControllers.ReporteVentaController(Metodos_Auxiliares.make_dg(source2, header, path)); p.fecha_inform.Content = item.Fecha.ToString(); p.nombre_inform.Content = item.Tienda.Nombre; p.pago_inform.Content = "Pagado: " + item.Pagado.ToString() + " $"; var l = new Label(); l.Content = "Deuda: " + item.CostoTotal.ToString() + " $"; l.Style = (Style)FindResource("Label_inf"); p.dp.Children.Add(l); p.Background = Brushes.AntiqueWhite; deuda_sp.Children.Add(p); total += item.CostoTotal; pagada += item.Pagado; } } deuda_total.Content = total.ToString(); deuda_pagado_total.Content = pagada.ToString(); }
private void btn_Eliminar_Click_1(object sender, RoutedEventArgs e) { var objeto_select = dgrid_entrada.SelectedItem; if (objeto_select == null || !(objeto_select is entrada)) { MessageBox.Show("Antes de retirar necesita seleccionar un producto"); return; } var exist = objeto_select as entrada; int existencia_id; using (var db = new TiendaDbContext()) existencia_id = db.Tiendas.First().Productos.Where(p => p.Codigo == exist.Codigo).First().ExistenciaId; source_entrada.RemoveAt(source_entrada.FindIndex(p => p.Codigo == exist.Codigo)); source_producto.Add(new objeto_existencia(existencia_id)); Metodos_Auxiliares.refresh(dgrid_entrada, source_entrada); Metodos_Auxiliares.refresh(dgrid_productos, source_producto.Where(s => s.Codigo.ToLower().Contains(codigo_src) && s.Descripcion.ToLower().Contains(descrip_src)).ToList()); }
private void btn_Agregar_Click(object sender, RoutedEventArgs e) { var objeto_select = dgrid_productos.SelectedItem; if (objeto_select == null || !(objeto_select is objeto_existencia)) { MessageBox.Show("Antes de agregar necesita seleccionar un producto"); return; } var exist = objeto_select as objeto_existencia; if (source_entrada.Exists(p => p.Codigo == exist.Codigo)) { var objeto = source_entrada.Find(p => p.Codigo == exist.Codigo); dgrid_entrada.SelectedIndex = dgrid_entrada.Items.IndexOf(objeto); return; } source_entrada.Add(new entrada(exist.Codigo, exist.Descripcion)); Metodos_Auxiliares.refresh(dgrid_entrada, source_entrada); Metodos_Auxiliares.refresh(dgrid_productos, source_producto.Where(s => s.Codigo.ToLower().Contains(codigo_src) && s.Descripcion.ToLower().Contains(descrip_src)).ToList()); }
private void btn_buscar_Click(object sender, RoutedEventArgs e) { codigo_src = tbox_codigo.Text.ToLower(); descrip_src = tbox_descripcion.Text.ToLower(); Metodos_Auxiliares.refresh(dgrid_productos, productos_source.Where(exis => exis.Codigo.ToLower().Contains(codigo_src) && exis.Descripcion.ToLower().Contains(descrip_src)).ToList()); }
void fillLiquidacion(Func <InformeLiquidacion, bool> pred) { int art = 0; double deuda = 0; double ganancia = 0; liquidacion_sp.Children.Clear(); List <UIElement> t; using (var db = new TiendaDbContext()) { var vs = db.InformeLiquidaciones.Where(pred).ToList(); foreach (var item in vs) { t = new List <UIElement>(); if (item.ReporteVenta.CantidadTotal > 0) { List <string> header1 = new List <string> { "Codigo", "Descripcion", "Cant. BE", "Cant. ME", "BE $", "ME $" }; List <string> path1 = new List <string> { "Codigo", "Descripcion", "CantidadBuenEstado", "CantidadDefectuoso", "PrecioBuenEstado", "PrecioDefectuoso" }; List <objeto_venta> source1 = new List <objeto_venta>(); foreach (var i in item.ReporteVenta.Articulos) { source1.Add(new objeto_venta(i.ArticuloVentaId)); } var ventas = new UserControllers.ReporteVentaController(Metodos_Auxiliares.make_dg(source1, header1, path1)); ventas.fecha_inform.Content = item.ReporteVenta.Fecha.ToString(); ventas.nombre_inform.Content = item.ReporteVenta.Tienda.Nombre; ventas.pago_inform.Content = "Pago: " + item.ReporteVenta.CostoTotal.ToString() + " $"; ventas.Background = Brushes.White; t.Add(ventas); art += item.ReporteVenta.CantidadTotal; ganancia += item.ReporteVenta.CostoTotal; } if (item.ReporteDevolucion.CantidadTotal > 0) { List <string> header2 = new List <string> { "Codigo", "Descripcion", "Cant. BE", "Cant. ME" }; List <string> path2 = new List <string> { "Codigo", "Descripcion", "CantidadBuenEstado", "CantidadDefectuoso" }; List <objeto_devolucion> source2 = new List <objeto_devolucion>(); foreach (var i in item.ReporteDevolucion.Articulos) { source2.Add(new objeto_devolucion(i.ArticuloDevolucionId)); } var devoluciones = new UserControllers.ReporteVentaController(Metodos_Auxiliares.make_dg(source2, header2, path2)); devoluciones.fecha_inform.Content = item.ReporteDevolucion.Fecha.ToString(); devoluciones.nombre_inform.Content = item.ReporteDevolucion.Tienda.Nombre; devoluciones.pago_inform.Content = "Cant. de Productos: " + item.ReporteDevolucion.CantidadTotal.ToString(); devoluciones.Background = Brushes.White; t.Add(devoluciones); art += item.ReporteDevolucion.CantidadTotal; } if (item.ReporteDeuda.CantidadTotal > 0) { List <string> header3 = new List <string> { "Codigo", "Descripcion", "Cant. BE", "Cant. ME", "BE $", "ME $" }; List <string> path3 = new List <string> { "Codigo", "Descripcion", "CantidadBuenEstado", "CantidadDefectuoso", "PrecioBuenEstado", "PrecioDefectuoso" }; List <objeto_deuda> source3 = new List <objeto_deuda>(); foreach (var i in item.ReporteDeuda.Articulos) { source3.Add(new objeto_deuda(i.ReporteDeudaId)); } var deudas = new UserControllers.ReporteVentaController(Metodos_Auxiliares.make_dg(source3, header3, path3)); deudas.fecha_inform.Content = item.ReporteDeuda.Fecha.ToString(); deudas.nombre_inform.Content = item.ReporteDeuda.Tienda.Nombre; deudas.pago_inform.Content = "Pagado: " + item.ReporteDeuda.Pagado.ToString() + " $"; var l = new Label(); l.Content = "Deuda: " + item.ReporteDeuda.CostoTotal.ToString() + " $"; l.Style = (Style)FindResource("Label_inf"); deudas.dp.Children.Add(l); deudas.Background = Brushes.White; t.Add(deudas); art += item.ReporteDeuda.CantidadTotal; deuda += item.ReporteDeuda.CostoTotal; } var p = new UserControllers.ReporteVentaController(t.ToArray()); p.Background = Brushes.AntiqueWhite; p.fecha_inform.Content = item.Fecha.ToString(); p.nombre_inform.Content = item.Tienda.Nombre.ToString(); p.pago_inform.Content = "Cant. Articulos: " + (item.ReporteVenta.CantidadTotal + item.ReporteDevolucion.CantidadTotal + item.ReporteDeuda.CantidadTotal).ToString(); liquidacion_sp.Children.Add(p); liquidacion_art.Content = art.ToString(); liquidacion_deuda.Content = deuda.ToString(); liquidacion_ganancia.Content = ganancia.ToString(); } } }
private void dgrid_deuda_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { var columna = e.Column as DataGridBoundColumn; if (columna != null && (columna.Binding as Binding).Path.Path == "Pagado") { double value = 0; if (!double.TryParse((e.EditingElement as TextBox).Text, out value)) { e.Cancel = true; return; } if (!(e.Row.Item is objeto_deuda)) { return; } var obj = e.Row.Item as objeto_deuda; value = Math.Max(0, value); value = Math.Min(value, obj.PrecioTotal); source_deuda.Find(s => s.Codigo == obj.Codigo).Pagado = value; CostoDeuda = 0; source_deuda.ForEach(s => CostoDeuda += s.Pagado); tbox_importe_total.Text = CostoTotal.ToString(); Metodos_Auxiliares.refresh(dgrid_deuda, source_deuda); return; } int valor; if (!int.TryParse((e.EditingElement as TextBox).Text, out valor)) { e.Cancel = true; return; } if (!(e.Row.Item is objeto_deuda)) { return; } var objeto = e.Row.Item as objeto_deuda; bool existe_venta = source_venta.Find(p => p.ExistenciaId == objeto.ExistenciaId) != null; bool existe_deuda = source_deuda.Find(p => p.ExistenciaId == objeto.ExistenciaId) != null; bool existe_devolucion = source_devolucion.Find(p => p.ExistenciaId == objeto.ExistenciaId) != null; bool existe_existencia = source_existencia.Find(p => p.ExistenciaId == objeto.ExistenciaId) != null; int cantidadBuenEstado = 0; int cantidadDefectuoso = 0; if (existe_venta) { var venta = source_venta.Find(p => p.ExistenciaId == objeto.ExistenciaId); cantidadBuenEstado += venta.CantidadBuenEstado; cantidadDefectuoso += venta.CantidadDefectuoso; } if (existe_devolucion) { var devolucion = source_devolucion.Find(p => p.ExistenciaId == objeto.ExistenciaId); cantidadBuenEstado += devolucion.CantidadBuenEstado; cantidadDefectuoso += devolucion.CantidadBuenEstado; } var existencia = source_existencia.Find(p => p.ExistenciaId == objeto.ExistenciaId); int cantidadBEmax = existencia.CantidadBuenEstado - cantidadBuenEstado; int cantidadDefmax = existencia.CantidadDefectuoso - cantidadDefectuoso; cantidadBuenEstado = Math.Max(0, valor); cantidadDefectuoso = Math.Max(0, valor); cantidadBuenEstado = Math.Min(cantidadBEmax, valor); cantidadDefectuoso = Math.Min(cantidadDefmax, valor); var column = e.Column as DataGridBoundColumn; if (column != null) { var bindingPath = (column.Binding as Binding).Path.Path; if (bindingPath == "CantidadBuenEstado") { source_deuda.Find(s => s.Codigo == objeto.Codigo).CantidadBuenEstado = cantidadBuenEstado; } else { source_deuda.Find(s => s.Codigo == objeto.Codigo).CantidadDefectuoso = cantidadDefectuoso; } } Metodos_Auxiliares.refresh(dgrid_deuda, source_deuda); }
private void dgrid_devolucion_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { int valor; if (!int.TryParse((e.EditingElement as TextBox).Text, out valor)) { e.Cancel = true; return; } if (!(e.Row.Item is objeto_devolucion)) { return; } var objeto = e.Row.Item as objeto_devolucion; bool existe_venta = source_venta.Find(p => p.ExistenciaId == objeto.ExistenciaId) != null; bool existe_deuda = source_deuda.Find(p => p.ExistenciaId == objeto.ExistenciaId) != null; bool existe_devolucion = source_devolucion.Find(p => p.ExistenciaId == objeto.ExistenciaId) != null; bool existe_existencia = source_existencia.Find(p => p.ExistenciaId == objeto.ExistenciaId) != null; int cantidadBuenEstado = 0; int cantidadDefectuoso = 0; if (existe_deuda) { var deuda = source_deuda.Find(p => p.ExistenciaId == objeto.ExistenciaId); cantidadBuenEstado += deuda.CantidadBuenEstado; cantidadDefectuoso += deuda.CantidadDefectuoso; } if (existe_venta) { var venta = source_venta.Find(p => p.ExistenciaId == objeto.ExistenciaId); cantidadBuenEstado += venta.CantidadBuenEstado; cantidadDefectuoso += venta.CantidadBuenEstado; } var existencia = source_existencia.Find(p => p.ExistenciaId == objeto.ExistenciaId); int cantidadBEmax = existencia.CantidadBuenEstado - cantidadBuenEstado; int cantidadDefmax = existencia.CantidadDefectuoso - cantidadDefectuoso; cantidadBuenEstado = Math.Max(0, valor); cantidadDefectuoso = Math.Max(0, valor); cantidadBuenEstado = Math.Min(cantidadBEmax, valor); cantidadDefectuoso = Math.Min(cantidadDefmax, valor); var column = e.Column as DataGridBoundColumn; if (column != null) { var bindingPath = (column.Binding as Binding).Path.Path; if (bindingPath == "CantidadBuenEstado") { source_devolucion.Find(s => s.Codigo == objeto.Codigo).CantidadBuenEstado = cantidadBuenEstado; } else { source_devolucion.Find(s => s.Codigo == objeto.Codigo).CantidadDefectuoso = cantidadDefectuoso; } } Metodos_Auxiliares.refresh(dgrid_devolucion, source_devolucion); }