public static List <ListaProductoFactura> ListaProductosFactura()
        {
            //Producto pr = new Producto();
            ListaProductoFactura        lPro;
            List <ListaProductoFactura> listPro = new List <ListaProductoFactura>();

            using (MySqlCommand cmd = new MySqlCommand())
            {
                try
                {
                    ConexionDB.Conexion().Open();

                    // setear parametros del command
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Connection  = ConexionDB.Conexion();
                    cmd.CommandText = "SpProductoListar";

                    MySqlDataReader lectorProductos;
                    lectorProductos = cmd.ExecuteReader();

                    if (lectorProductos.HasRows)
                    {
                        while (lectorProductos.Read())
                        {
                            lPro          = new ListaProductoFactura();
                            lPro.codigo   = Convert.ToString(lectorProductos["Codigo"]);
                            lPro.nombre   = Convert.ToString(lectorProductos["Nombre"]);
                            lPro.cantidad = Convert.ToInt32(lectorProductos["Cantidad"]);
                            lPro.precio   = Convert.ToDecimal(lectorProductos["Precio"]);
                            //pr = new ListaProducto(Convert.ToString(lectorProductos["Código"]), Convert.ToString(lectorProductos["Nombre"]), Convert.ToInt32(lectorProductos["Cantidad"]), Convert.ToInt32(lectorProductos["Cantidad_Mínima"]), Convert.ToDecimal(lectorProductos["Precio"]), Convert.ToString(lectorProductos["Descripción"]));
                            listPro.Add(lPro);
                        }
                    }
                }
                catch (MySqlException ex)
                {
                    throw ex;
                }
                finally
                {
                    ConexionDB.Conexion().Close();
                }
            }
            return(listPro);
        }
        private void btn_Agregar_Click(object sender, RoutedEventArgs e)
        {
            int     capturarCantidad = 0;
            decimal capturaSTotal    = 0;
            decimal sumaStotal       = 0;

            int.TryParse(txt_CantidadProducto.Text, out capturarCantidad);
            decimal.TryParse(txt_SubTotal.Text, out capturaSTotal);

            ListaProductoVenta lpv = new ListaProductoVenta();

            if (dg_ListaProductos.SelectedIndex >= 0 && capturarCantidad > 0)
            {
                ListaProductoFactura lpf = new ListaProductoFactura();
                lpf             = (ListaProductoFactura)dg_ListaProductos.SelectedValue;
                lpv.codigo      = lpf.codigo;
                lpv.nombre      = lpf.nombre;
                lpv.cantidad    = int.Parse(txt_CantidadProducto.Text);
                lpv.precio      = lpf.precio;
                lpv.precioTotal = (lpf.precio * int.Parse(txt_CantidadProducto.Text));

                sumaStotal = capturaSTotal + lpv.precioTotal;

                lProVent.Add(lpv);
                LLenarTablaVenta();

                txt_SubTotal.Text = sumaStotal.ToString();
                txt_Total.Text    = sumaStotal.ToString();
            }
            else if (capturarCantidad == 0)
            {
                MessageBox.Show("Debe asignar una cantidad!");
            }

            txt_CantidadProducto.Text = "";
            txt_FiltrarNombre.Text    = "";
        }
        private void txt_FiltrarNombre_TextChanged(object sender, TextChangedEventArgs e)
        {
            ICollectionView             IcvProductosFiltro;
            List <ListaProductoFactura> listPro = new List <ListaProductoFactura>();
            ListaProductoFactura        lp      = new ListaProductoFactura();

            if (txt_FiltrarNombre.Text != "" && txt_FiltrarNombre.Text.Length > 2)
            {
                var filtro = from pro in AdministrarProducto.ListaProductosFactura()
                             where pro.nombre.Contains(txt_FiltrarNombre.Text)
                             select new { pro.codigo, pro.nombre, pro.cantidad, pro.precio };

                foreach (var fil in filtro)
                {
                    lp.codigo   = fil.codigo;
                    lp.nombre   = fil.nombre;
                    lp.precio   = fil.precio;
                    lp.cantidad = fil.cantidad;
                    listPro.Add(lp);
                }

                IcvProductosFiltro = CollectionViewSource.GetDefaultView(listPro);

                if (IcvProductosFiltro != null)
                {
                    dg_ListaProductos.AutoGenerateColumns = true;
                    dg_ListaProductos.IsReadOnly          = true;
                    dg_ListaProductos.MinColumnWidth      = 126;
                    dg_ListaProductos.MaxColumnWidth      = 300;
                    dg_ListaProductos.ItemsSource         = IcvProductosFiltro;
                }
            }
            else
            {
                LLenarTabla();
            }
        }