예제 #1
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();
            }
        }
예제 #2
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;
            }
        }
예제 #3
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();
        }