private void cbxProveedor_DropDown(object sender, EventArgs e)
        {
            ProductosBl pro = new ProductosBl();

            cbxProveedor.DataSource    = pro.verProveedor();
            cbxProveedor.DisplayMember = "Nombre_Compañia";
        }
        void BuscarProveedor(int Id_Proveedor)
        {
            ProductosBl bc = new ProductosBl();

            // bc.BuscarCombo(Id_Proveedor);
            CbxProveedor.DataSource    = bc.BuscarCombo(Id_Proveedor);
            CbxProveedor.DisplayMember = "Nombre_Compañia";
        }
        private void CbxProveedor_DropDown(object sender, EventArgs e)
        {
            ProductosBl propd = new ProductosBl();

            CbxProveedor.DataSource    = propd.verProveedor();
            CbxProveedor.DisplayMember = "Nombre_Compañia";
            CbxProveedor.ValueMember   = "ID_Proveedor";
        }
        private void BtnBuscar_Click(object sender, EventArgs e)
        {
            string      rdb = "";
            ProductosBl pro = new ProductosBl();

            if (rbSi.Checked == true)
            {
                rdb = "Si";
            }
            if (rbNo.Checked == true)
            {
                rdb = "No";
            }
            dgvInventario.DataSource = pro.buscarInventario(TxtProducto.Text, dtpFrom.Value.ToString("yyyy-MM-dd"), dtpTo.Value.ToString("yyyy-MM-dd"), rdb, cbxProveedor.Text);
        }
        private void BtnBuscar_Click(object sender, EventArgs e)
        {
            ProductosBl busqueda = new ProductosBl();

            if (RdDesc.Checked == true)
            {
                dgvProductos.DataSource = busqueda.BusquedaProductos(txtBusqueda.Text, "Descripcion_Producto");
            }
            else if (RdID_Producto.Checked == true)
            {
                dgvProductos.DataSource = busqueda.BusquedaProductos(txtBusqueda.Text, "ID_Producto");
            }
            if (txtBusqueda.Text == "")
            {
                dgvProductos.DataSource = null;
            }
        }
        private void ToolstGuardar_Click(object sender, EventArgs e)
        {
            ProductosBl pro     = new ProductosBl();
            Productos   entidad = new Productos();

            try
            {
                if (Validar())
                {
                }
                else
                {
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            //Regex rx = new Regex("^[0-9]+([.|,]+[0-9]+)?$");
            //if (rx.IsMatch(TxtCantidad.Text))



            ProductosBl val = new ProductosBl();

            if (TxtCantidad.Text == "")
            {
                LbcCantidad.Visible = false;
                LblTotal.Text       = "0.00";
                //LblTotaApagar.Text = "0.00";
                return;
            }

            try
            {
                bool             textval = false;
                ValidarTextboxBl ValiTex = new ValidarTextboxBl();
                textval = ValiTex.SoloNumero(TxtCantidad.Text);
                if (textval)
                {
                    int    cant = Convert.ToInt32(TxtCantidad.Text);
                    string pr   = TxtProducto.Text;

                    Validar = val.ValidarInvetario(cant, pr);
                    errorProvider1.Clear();
                    if (Validar)
                    {
                        LbcCantidad.Visible = true;
                        LblPrecio.Visible   = true;
                        LblTotal.Visible    = true;
                        //double can = 0.00;
                        //double it = 0.00;
                        //foreach (DataGridViewRow row in dgvDetalleF.Rows)
                        //{

                        //    can += Convert.ToDouble(row.Cells["Precio_Producto"].Value);
                        //    it += Convert.ToDouble(row.Cells["Generales"].Value);
                        //}
                        //double t = can + it;
                        //LblTotaApagar.Text = t.ToString();
                        LbcCantidad.Text      = "Disponible";
                        LbcCantidad.ForeColor = Color.Lime;
                        LblTotal.Text         = (float.Parse(TxtCantidad.Text) * float.Parse(LblPrecio.Text)).ToString();
                        //  LblTotal.Text = Convert.ToDouble(LblPrecio.Text*TxtCantidad.Text).ToString();
                    }
                    else
                    {
                        LbcCantidad.Text      = "No Disponible";
                        LbcCantidad.ForeColor = Color.Red;
                        LblTotal.Text         = "0.00";
                    }
                }
                else
                {
                    //          MessageBox.Show("Solo se permiten numeros","Error de entrada de datos",MessageBoxIcon.Error,MessageBoxButtons.OK.ToString());
                    MessageBox.Show("Solo se permiten numeros", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    TxtCantidad.Clear();
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        private void ToolstGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                if (ValidarT())
                {
                    if (UP == true)
                    {
                        Factura   entidad    = new Factura();
                        FacturaBl actualizar = new FacturaBl();
                    }


                    if (UP == false)
                    {
                        FacturaBl        fac     = new FacturaBl();
                        Factura          entidad = new Factura();
                        DetalleFacturaBl dtf     = new DetalleFacturaBl();
                        DetalleFacturas  entidf  = new DetalleFacturas();
                        ProductosBl      pb      = new ProductosBl();
                        Productos        pd      = new Productos();

                        // entidad.ID_Producto = ID;
                        entidad.Fecha      = Convert.ToDateTime(toolStripStatusLabel1.Text);
                        entidad.Forma_Pago = CbxForamPago.Text;
                        entidad.Vendedor   = Usu.ToString();
                        entidad.Total      = double.Parse(LblTotaApagar.Text);
                        entidad.Id_Cliente = Id_Cliente;

                        fac.RegFactura(entidad);
                        foreach (DataGridViewRow row in dgvDetalleF.Rows)
                        {
                            entidf.Monto       = Convert.ToDouble(row.Cells["Precio_Producto"].Value);
                            entidf.Cantidad    = Convert.ToInt16(row.Cells["Fecha"].Value);
                            entidf.Itbis       = Convert.ToDouble(row.Cells["Generales"].Value);
                            entidf.ID_Producto = Convert.ToInt16(row.Cells["IDProducto"].Value);

                            var dt  = fac.ObtenerIDFactura(Id_Cliente, Convert.ToDouble(LblTotaApagar.Text));
                            var Id1 = dt.Rows[0]["ID_Factura"];
                            entidf.ID_Factura = Convert.ToInt16(Id1);
                            ID_Factura        = Convert.ToInt16(Id1);

                            pd.ID_Producto = Convert.ToInt16(row.Cells["IDProducto"].Value);;
                            pd.Inventario  = Convert.ToInt16(row.Cells["Fecha"].Value);
                            pb.ActualizarInventario(pd);
                            dtf.RegDetalleFactura(entidf);
                        }
                        //  dgvClientes.Update();
                        // LlenarGrid();
                        MessageBox.Show("Registro agregado con exito.", "Agregado", MessageBoxButtons.OK,
                                        MessageBoxIcon.Information);
                        ToolstNuevo.PerformClick();
                        if (MessageBox.Show("¿Desea imprimir la factura? ", "Imprimir", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                        {
                            tsImprimir.PerformClick();
                        }
                        else
                        {
                            return;
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Hay campos que son obligatorios que se encuentran vacios.", "Error de validación", MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                    if (string.IsNullOrWhiteSpace(TxtProducto.Text))
                    {
                        errorProvider1.SetError(TxtProducto, "Este Campo es requerido");
                    }
                    if (string.IsNullOrWhiteSpace(TxtCliente.Text))
                    {
                        errorProvider1.SetError(TxtCliente, "Este Campo es requerido");
                    }
                    if (string.IsNullOrWhiteSpace(CbxForamPago.Text))
                    {
                        errorProvider1.SetError(CbxForamPago, "Este Campo es requerido");
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
 void validar()
 {
     ProductosBl valid = new ProductosBl();
 }
        private void ToolstGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                if (Validar())
                {
                    if (UP == true)
                    {
                        Productos   entidad    = new Productos();
                        ProductosBl actualizar = new ProductosBl();


                        if (ID < 1)
                        {
                            MessageBox.Show("Debe seleccionar un registro valido antes de actualizar." +
                                            " Por favor seleccione un registro en la pestaña de busqueda que desea actualizar "
                                            + "y vuelva a intentarlo.", "Error de eliminación",
                                            MessageBoxButtons.OK, MessageBoxIcon.Stop);
                        }
                        else
                        {
                            DateTime Fecha = DateTime.Today;
                            entidad.ID_Producto          = ID;
                            entidad.Descripcion_Producto = TxtDescPro.Text;
                            entidad.Precio_Compra        = double.Parse(TxtPCompra.Text);
                            entidad.Precio_Venta         = double.Parse(TxtPVenta.Text);
                            entidad.Inventario           = Convert.ToInt32(TxtInventario.Text);
                            //string fecha= dateTimePicker1.Value.ToString("yyyy-MM-dd");
                            entidad.Fecha_Entrada = Convert.ToDateTime(Fecha.ToString("yyyy-MM-dd"));
                            //entidad.ID_Proveedor = int.Parse(CbxProveedor.SelectedValue.ToString());

                            actualizar.ActualizarProductos(entidad);
                            MessageBox.Show("Registro Actualizado.", "Actualización", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            UP = false;
                            return;
                        }
                    }


                    if (UP == false)
                    {
                        ProductosBl Pro     = new ProductosBl();
                        Productos   entidad = new Productos();



                        //if (TxtApellido.Text == string.Empty)
                        //    TxtApellido.Text = null;
                        //if (TxtDireccion.Text == string.Empty)
                        //    TxtDireccion.Text = null;
                        //if (TxtTelefono.Text == string.Empty)
                        //    TxtTelefono.Text = null;
                        //if (TxtApellido.Text == string.Empty)
                        //    TxtApellido.Text = null;

                        //if (txtSaldoActual.Text == string.Empty)
                        //    txtSaldoActual.Text = "0.0";

                        //float SaldoIn = float.Parse(txtSaldoInicial.Text);
                        //float SaldoAct = float.Parse(txtSaldoActual.Text);
                        DateTime Fecha = DateTime.Today;
                        // entidad.ID_Producto = ID;
                        entidad.Descripcion_Producto = TxtDescPro.Text;
                        entidad.Precio_Compra        = double.Parse(TxtPCompra.Text);
                        entidad.Precio_Venta         = double.Parse(TxtPVenta.Text);
                        entidad.Inventario           = Convert.ToInt32(TxtInventario.Text);
                        entidad.ID_Proveedor         = int.Parse(CbxProveedor.SelectedValue.ToString());
                        entidad.ID_Proveedor         = int.Parse(CbxProveedor.SelectedValue.ToString());
                        entidad.Fecha_Entrada        = Convert.ToDateTime(Fecha.ToString("yyyy-MM-dd"));

                        Pro.RegProducto(entidad);
                        //  dgvClientes.Update();
                        // LlenarGrid();
                        MessageBox.Show("Registro agregado con exito.", "Agregado", MessageBoxButtons.OK,
                                        MessageBoxIcon.Information);
                        ToolstNuevo.PerformClick();
                    }
                }
                else
                {
                    MessageBox.Show("Hay campos que son obligatorios que se encuentran vacios.", "Error de validación", MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                    if (string.IsNullOrWhiteSpace(TxtDescPro.Text))
                    {
                        errorProvider1.SetError(TxtDescPro, "Este Campo es requerido");
                    }
                    if (string.IsNullOrWhiteSpace(TxtPCompra.Text))
                    {
                        errorProvider1.SetError(TxtPCompra, "Este Campo es requerido");
                    }
                    if (string.IsNullOrWhiteSpace(TxtInventario.Text))
                    {
                        errorProvider1.SetError(TxtInventario, "Este Campo es requerido");
                    }
                    if (string.IsNullOrWhiteSpace(TxtPVenta.Text))
                    {
                        errorProvider1.SetError(TxtPVenta, "Este Campo es requerido");
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }