Beispiel #1
0
 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);
     }
 }
Beispiel #2
0
        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();
            }
        }
Beispiel #3
0
        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();
            }
        }
Beispiel #4
0
        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;
            }
        }
Beispiel #5
0
        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();
            }
        }
Beispiel #6
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();
        }
Beispiel #7
0
        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();
            }
        }