private void BuscarProducto()
 {
     if (!txtBuscar.Text.Equals(""))
     {
         if (radioButtonId.Checked)
         {
             productoActual = ProductoNegocio.DevolverProductoPorID(Convert.ToInt32(txtBuscar.Text));
             if (productoActual.Id != 0)
             {
                 cargarProducto();
             }
             else
             {
                 MessageBox.Show("Sin resultados. Verifique el Id ingresado");
             }
         }
         else if (radioButtonNombre.Checked)
         {
             listaProductos          = ProductoNegocio.DevolverProductosPorNombre(txtBuscar.Text);
             dgvProductos.DataSource = listaProductos;
         }
         else
         {
             MessageBox.Show("Seleccione un metodo de busqueda");
         }
     }
     else
     {
         MessageBox.Show("Ingrese un valor para buscar");
     }
 }
        public static ProductoEntidadMostrar DevolverProductoPorID(int idProducto)
        {
            ProductoEntidadMostrar producto = new ProductoEntidadMostrar();

            using (SqlConnection cn = new SqlConnection(ConfiguracionApp.Default.ConexionVentasSql))
            {
                cn.Open();
                String     sql = @"SELECT [Id_Pro]
                                  ,[Nom_Pro]
                                  ,[Des_Pro]
                                  ,[Pre_Pro]
                                  ,[Can_Pro]
                              FROM [dbo].[Productos_Cabecera]
                                WHERE [Id_Pro]= @productoId";
                SqlCommand cmd = new SqlCommand(sql, cn);
                cmd.Parameters.AddWithValue("@productoId", idProducto);
                SqlDataReader reader = cmd.ExecuteReader();
                //repita la ejecucion mientras tenga datos
                while (reader.Read())
                {
                    producto = CargarProducto(reader);
                }
            }
            return(producto);
        }
 private void limpiarIngreso()
 {
     txtId.Text          = "";
     txtNombre.Text      = "";
     txtDescripcion.Text = "";
     txtPrecio.Text      = "";
     txtCantidad.Text    = "";
     productoActual      = new ProductoEntidadMostrar();
 }
        private void AgregarProductosVenta()
        {
            bool productoYaExiste         = false;
            DetalleEntidadMostrar detalle = CrearObjetoDetalle();
            int cant = productoActual.Cantidad;

            if (cant < detalle.Cantidad || cant == 0)
            {
                MessageBox.Show("No dispone de la cantidad especificada.");
            }
            else
            {
                for (int i = 0; i < dgvDetallesCompra.RowCount; i++)
                {
                    if (productoActual.Id == int.Parse(dgvDetallesCompra.Rows[i].Cells["Id"].Value.ToString()))
                    {
                        var cantidadAnterior = Convert.ToInt32(
                            dgvDetallesCompra.Rows[i].Cells["Cantidad"].Value);
                        if (cant < (cantidadAnterior + detalle.Cantidad))
                        {
                            MessageBox.Show("No dispone de la cantidad especificada");
                            productoYaExiste = true;
                            break;
                        }
                        else
                        {
                            dgvDetallesCompra.Rows[i].Cells["Cantidad"].Value =
                                cantidadAnterior + detalle.Cantidad;
                            dgvDetallesCompra.Rows[i].Cells["Precio_Total"].Value =
                                Convert.ToDouble(dgvDetallesCompra.Rows[i].Cells["Precio"].Value) *
                                Convert.ToInt32(dgvDetallesCompra.Rows[i].Cells["Cantidad"].Value);
                            productoYaExiste = true;
                            LimpiarCamposProductos();
                            txtVentaCantidad.ReadOnly = true;
                            button1.Enabled           = false;
                            ventaRealizada            = true;
                            CalcularMontosVenta();
                        }
                    }
                }
                if (!productoYaExiste)
                {
                    ventaRealizada = true;
                    listaProductos.Add(detalle);
                    dgvDetallesCompra.DataSource = null;
                    dgvDetallesCompra.DataSource = listaProductos;
                    LimpiarCamposProductos();
                    button1.Enabled           = false;
                    txtVentaCantidad.ReadOnly = true;
                    productoActual            = null;
                    EstablecerFilasEditablesDataGridView_DetalleVenta();
                    CalcularMontosVenta();
                }
            }
        }
        private static ProductoEntidadMostrar CargarProducto(IDataReader reader)
        {
            ProductoEntidadMostrar producto = new ProductoEntidadMostrar();

            producto.Id          = Convert.ToInt32(reader["Id_Pro"]);
            producto.Nombre      = Convert.ToString(reader["Nom_Pro"]);
            producto.Descripcion = Convert.ToString(reader["Des_Pro"]);
            producto.Precio      = Convert.ToDouble(reader["Pre_Pro"]);
            producto.Cantidad    = Convert.ToInt32(reader["Can_Pro"]);

            return(producto);
        }
 private void btnAgregarProducto_Click(object sender, EventArgs e)
 {
     try
     {
         SeleccionarProducto frm = new SeleccionarProducto(true);
         if (frm.ShowDialog() == DialogResult.OK)
         {
             productoActual = ProductoNegocio.DevolverProductoPorID(frm.IdProducto);
             LlenarCamposTextoProducto();
             txtVentaCantidad.ReadOnly = false;
             button1.Enabled           = true;
         }
     }
     catch
     {
         MessageBox.Show("No se ha podido obtener el producto");
     }
 }