private void AbrirBuscador(ProductoCriterioBusqueda criterio) { if (!this.OwnedForms.Any()) { PopupAbierto = true; //var productos = ProductosDatasource.Where(p => ObtenerProductosVendidosIds().All(c => c != p.ProductoId)).ToList(); var frm = new frmBuscador(txtCodigo.Text, ProductosDatasource.Where(x => !x.EsPromocion || (x.EsPromocion && x.StockActual > 0)).ToList(), true, criterio); frm.Cambio += BuscarArticulo; frm.TeclaApretada += FrmOnTeclaApretada; frm.MensajeError += FrmOnMensajeError; frm.Owner = this; Point locationOnForm = txtCodigo.PointToScreen(Point.Empty); //frm.ShowDialog(); frm.Top = locationOnForm.Y + 24; frm.Left = locationOnForm.X; frm.Show(); frm.AplicarFiltros(txtCodigo.Text); txtCodigo.Focus(); txtCodigo.Select(txtCodigo.Text.Length, 0); } else { var buscador = this.OwnedForms.First() as frmBuscador; buscador.AplicarFiltros(txtCodigo.Text); } }
private void BuscarPorCodigo(ProductoCriterioBusqueda criterio) { if (!this.OwnedForms.Any()) { PopupAbierto = true; var productos = ProductosDatasource.Where(p => ObtenerProductosVendidosIds().All(c => c != p.ProductoId) && (!p.EsPromocion || (p.EsPromocion && p.StockActual > 0))).ToList(); var frm = new frmBuscador(txtCodigo.Text, productos, true, criterio); frm.Cambio += BuscarArticulo; frm.TeclaApretada += FrmOnTeclaApretada; frm.MensajeError += FrmOnMensajeError; frm.GotFocus += PopupGotFocused; frm.LostFocus += PopupLostFocus; frm.Owner = this; Point locationOnForm = txtCodigo.PointToScreen(Point.Empty); //frm.ShowDialog(); frm.Top = locationOnForm.Y + 24; frm.Left = locationOnForm.X; frm.Show(); SeleccionarUltimaFila(); txtCodigo.Focus(); } }
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 Agregar() { if (this.OwnedForms.Any() || !string.IsNullOrEmpty(txtCodigo.Text)) { if (!this.OwnedForms.Any()) { AbrirBuscador(ProductoCriterioBusqueda.Codigo); } var buscador = this.OwnedForms.First() as frmBuscador; _ultimaBusqueda = buscador.RecordarBusqueda ? txtCodigo.Text : null; buscador.Aceptar(txtCodigo.Text); if (txtCodigo.Focused) { PopupAbierto = false; } if (buscador.ProductoSeleccionado != null) { var prod = ProductosDatasource.FirstOrDefault(p => p.ProductoId == buscador.ProductoSeleccionado.ProductoId); if (prod.EsPromocion) { if (prod.StockActual == 0) { MessageBox.Show("Esta promoción no se encuentra disponible para la cantidad solicitada"); SuprimirUltimaFila(); } else { ActualizarStockPromociones(prod.ProductoId, 1); prod.StockActual--; } } else { prod.StockActual--; } ScrollearHastaElFinal(); } buscador.Close(); txtCodigo.Clear(); txtCodigo.Focus(); SeleccionarUltimaFila(); } else { Aceptar(); } }
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(); }
private void Agregar() { if (this.OwnedForms.Any() || !string.IsNullOrEmpty(txtCodigo.Text)) { if (!this.OwnedForms.Any()) { AbrirBuscador(ProductoCriterioBusqueda.Codigo); } var buscador = this.OwnedForms.First() as frmBuscadorTransferencia; _ultimaBusqueda = buscador.RecordarBusqueda ? txtCodigo.Text : null; buscador.Aceptar(txtCodigo.Text); if (txtCodigo.Focused) { PopupAbierto = false; } if (buscador.ProductoSeleccionado != null) { var prod = ProductosDatasource.FirstOrDefault(p => p.ProductoId == buscador.ProductoSeleccionado.ProductoId); prod.StockActual--; ScrollearHastaElFinal(); } buscador.Close(); txtCodigo.Clear(); txtCodigo.Focus(); SeleccionarUltimaFila(); } else { Aceptar(); } }