/* void procesandoProgresabar() {
            progressBar1.RunWorkerAsync();
        }*/
        private void button3_Click(object sender, EventArgs e)
        {
            backgroundWorker1.RunWorkerAsync();

            PedidoBL pbl = new PedidoBL();
            FacturaBL facBl = new FacturaBL();
            FacturaBE factbe = new FacturaBE();
            PedidoBE pedbe = new PedidoBE();
            DataTable dtdetallepedidos = new DataTable();

            if (dtpedidos.Rows.Count >=1)
            {

                Boolean procesados = false;

                DataGridViewCheckBoxCell oCell;
                foreach(DataGridViewRow row in dataGridView1.Rows)
                {
                    dtdetallepedidos.Clear();
                    dtdetallefactura.Clear();

                    //Boolean data = Convert.ToBoolean(int.Parse(row.Cells[0].ToString()));
                    oCell = row.Cells["item"] as DataGridViewCheckBoxCell;
                    bool bChecked = (null != oCell && null != oCell.Value && true == (bool)oCell.Value);

                    int codigo = int.Parse(row.Cells["Numero_Pedido"].Value.ToString());
                    int codigotipocp = int.Parse(row.Cells["codtipodocumento"].Value.ToString());

                    if (bChecked)
                    {

                        procesados = true;
                        pedbe = pbl.getpedido(codigo);
                        dtdetallepedidos = pbl.obtenerDetalledPedidos_completo(codigo);

                        factbe = rellenarfactura(pedbe);
                        factbe.TipoCP = codigotipocp;
                        //construirDetallefactura(dtdetallefactura);
                        dtdetallefactura = rellenardetfactura(dtdetallepedidos);

                        if (facBl.insertFacturaDetalleXLote(factbe, dtdetallefactura))
                        {
                            pbl.updateestadopedido(codigo, "FACTURADO");

                            MessageBox.Show("Pedido Proceso :" + codigo);

                        }

                    }

                }

                if (!procesados)
                {
                    progressBar1.Value = 100;
                    MessageBox.Show("Seleccionar un pedido para su procesamiento");
                    backgroundWorker1.CancelAsync();
                    progressBar1.Value = 0;
                }
                else
                {
                    MessageBox.Show("Proceso Finalizado");
                    backgroundWorker1.CancelAsync();
                    progressBar1.Value = 0;
                    ACTUALIZARREGISTROS();
                }

            }
        }
        private void Button8_Click(object sender, EventArgs e)
        {
            if  (txtCodCliente.Text == "") { MessageBox.Show("Debe seleccionar un Cliente", "Ventas", MessageBoxButtons.OK, MessageBoxIcon.Error); txtCodCliente.Focus(); this.Cursor = Cursors.Default; return; }
            if (txtCodVendedor.Text == "") { MessageBox.Show("Debe seleccionar un Vendedor", "Ventas", MessageBoxButtons.OK, MessageBoxIcon.Error); txtCodVendedor.Focus(); this.Cursor = Cursors.Default; return; }
            if (txtDireccionEntrega.Text == "") { MessageBox.Show("Debe Ingresar una Dirección de entrega", "Ventas", MessageBoxButtons.OK, MessageBoxIcon.Error); this.SelectTabWithoutFocus(this.TabControl1.TabPages[1]); ; this.Cursor = Cursors.Default; return; }
            if (dtgDetalleProd.Rows.Count == 0)
            {
                MessageBox.Show("Debe Ingresar Items", "Ventas", MessageBoxButtons.OK, MessageBoxIcon.Error);
                btnNuevo2.Focus();
                this.Cursor = Cursors.Default;
                return;
            }

            else
                ped = new FacturaBE();

                ped.ClienteId = cli.IdCliente;
            ped.FechaEmision = DateTimePicker1.Value;
            ped.FechaEntrega = DateTimePicker2.Value;
            ped.FechaPago = DateTimePicker1.Value;

            if (cli.IDTipoDocIdentidad ==1)
            {
                ped.TipoCP = 1;
            }else if (cli.IDTipoDocIdentidad == 2)
            {
                ped.TipoCP = 2;
            }

            ped.ModalidadCreditoId = cli.IDModalidadCredito;
            ped.Credito = true;
            ped.Direccion = txtDireccion.Text;
            ped.IdVendedor = int.Parse(txtCodVendedor.Text);
            ped.Observacion = "kjhjkh";
            ped.PrecioIncluyeImpuesto = true;
            ped.EstadoFacturacion = "FACTURADO";
            ped.DireccionEntrega = txtDireccionEntrega.Text;

            ped.FacturaId = 0;

            ped.ValorVenta = double.Parse(txtTotal.Text);

            ped.Subtotal = decimal.Parse(txtSubTotal.Text);
            ped.Total = decimal.Parse(txtTotal.Text);
            ped.MontoIGV = decimal.Parse(txtimpuesto.Text);
            ped.Observaciones = "GENERADO DESDE COMPROBANTE DE VENTA";
            ped.CodigoReq = 1;
            ped.CodigoSolAtencion = 1;
            ped.CodigoFormato = 0;

            //string codigo = cbMonedas.SelectedValue.ToString();
               // ped. = int.Parse(codigo);

            FacturaBL pbl = new FacturaBL();

            Boolean valor =  pbl.insertFactura(ped, dtdetalle);

            if (valor == true)
            {

               MessageBox.Show("Comprobante de Venta guardado satisfactoriamente", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            this.Close();

            }
            else
            {
                MessageBox.Show("Problema con el registro de Comprobante de Venta , Comunciarse con [email protected]", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                 }
        }