void U_CargaDatos()
        {
            string xpalabra4 = "";
            string xpalabra1 = "";
            string xpalabra2 = "";
            string xpalabra3 = "";
            string xtipocompra = "";
            if (cboTipocompra.Enabled)
            {
                if (!(cboTipocompra.SelectedValue == null))
                {
                    xtipocompra = cboTipocompra.SelectedValue.ToString();
                }
            }
            if (txtGlosa.Enabled)
            {
                xpalabra1 = VariablesPublicas.Palabras(txtGlosa.Text.Trim(), 1);
                xpalabra2 = VariablesPublicas.Palabras(txtGlosa.Text.Trim(), 2);
                xpalabra3 = VariablesPublicas.Palabras(txtGlosa.Text.Trim(), 3);
                xpalabra4 = VariablesPublicas.Palabras(txtGlosa.Text.Trim(), 4);
            }
            string xdetalle = "";
            string xfechaini = "";
            string xfechafin = "";
            if (fechaIni.Enabled)
            {
                xfechaini = Convert.ToDateTime(fechaIni.Text).ToString();
            }
            if (fechaFin.Enabled)
            {
                xfechafin = Convert.ToDateTime(fechaFin.Text).ToString();
            }
            string xcodmes = "";
            if (txtRegmes.Enabled)
            {
                xcodmes = txtRegmes.Text;
            }
            else
            {
                xcodmes = _Mes;
            }
            if (txtRuc.Enabled)
            {
                xdetalle = txtRuc.Text;
            }
            string xorigen = "";
            if (cboOrigen.Enabled)
            {
                if ((cboOrigen.Text.Substring(0, 2) != ""))
                {
                    xorigen = cboOrigen.Text.Substring(0, 2);
                }
            }
            btnRefrescar.Enabled = false;
            string xtipdoc = "";
            if (cboTipdoc.Enabled)
            {
                xtipdoc = cboTipdoc.Text;
            }

            try
            {
                tb_co_ComprascabBL BL = new tb_co_ComprascabBL();
                tb_co_Comprascab BE = new tb_co_Comprascab();

                BE.perianio = VariablesPublicas.perianio;
                BE.perimes = xcodmes;
                //BE.diarioid = cboSubdiario.Text.Substring(0, 4);
                //BE.asiento = txtAsiento.Text;
                BE.nmruc = xdetalle;
                BE.tipodoc = xtipdoc;
                BE.origen = xorigen;
                BE.tipoid = xtipocompra;
                BE.glosa = xpalabra1;

                tabla = BL.GetAll(VariablesPublicas.EmpresaID.ToString(), BE).Tables[0];
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            //tabla = ocapa.CaeSoft_GetAllRegistroCompraCabecera(GlobalVars.GetInstance.Company, GlobalVars.GetInstance.Periodo, xcodmes, "", xfechaini, xfechafin, xdetalle, xpalabra1, xpalabra2, xpalabra3, xorigen, xtipdoc, xtipocompra);
            btnRefrescar.Enabled = true;

            SortOrder sorted = default(SortOrder);
            string xnomcolumna = "";
            if ((dgProveedor.SortedColumn != null))
            {
                xnomcolumna = dgProveedor.Columns[dgProveedor.SortedColumn.Index].Name;
                sorted = dgProveedor.SortOrder;
            }
                dgProveedor.AutoGenerateColumns = false;
                dgProveedor.DataSource = tabla;
                dgProveedor.AllowUserToResizeRows = false;
                if ((xnomcolumna.Trim().Length > 0))
                {
                    if (sorted == SortOrder.Ascending)
                    {
                        dgProveedor.Sort(dgProveedor.Columns[xnomcolumna], System.ComponentModel.ListSortDirection.Ascending);
                    }
                    else
                    {
                        dgProveedor.Sort(dgProveedor.Columns[xnomcolumna], System.ComponentModel.ListSortDirection.Descending);
                    }
                }
                else
                {
                    dgProveedor.Sort(dgProveedor.Columns["fechdoc"], System.ComponentModel.ListSortDirection.Descending);
                }
                if (dgProveedor.Rows.Count > 0)
                {
                    dgProveedor.CurrentCell = dgProveedor.Rows[0].Cells["asiento"];
                    dgProveedor.Focus();
                    dgProveedor.BeginEdit(true);
                }
                pintar();
        }
        private bool Validacion_Grabar()
        {
            object xobjeto = null;
            int lc_cont = 0;
            string xmsgstring = "";
            DataTable tmptabla = new DataTable();
            dynamic xfill = "###...";
            if (txtCuentaid.Text.Trim().Length == 0)
            {
                xmsgstring = (xmsgstring + ("\r\n" + "Configure Cuenta para retención del IGV !!!"));
                xobjeto = txtCuentaid;
            }
            //if (txtCuentaidP.Text.Trim().Length == 0)
            //{
            //    if (rbnPagos.Checked == true | rbnLetras.Checked == true)
            //    {
            //        xmsgstring = (xmsgstring + ("\r\n" + "Configure Cuenta para el pago o canje en letras !!!"));
            //        xobjeto = txtCuentaidP;
            //    }
            //}
            if (txtRuc.Text.Trim().Length == 0)
            {
                xmsgstring = (xmsgstring + ("\r\n" + "Ingrese Proveedor !!!"));
                xobjeto = txtRuc;
            }
            else
            {
                try
                {
                    clienteBL BL = new clienteBL();
                    tb_cliente BE = new tb_cliente();

                    BE.nmruc = txtRuc.Text.Trim();
                    tmptabla = BL.GetAll(VariablesPublicas.EmpresaID, BE).Tables[0];
                    if ((BL.Sql_Error.Length > 0))
                    {
                        Frm_Class.ShowError(("Error al validar datos de proveedor" + ("\r\n" + BL.Sql_Error)), this);
                        return false;
                    }
                    if ((tmptabla.Rows.Count == 0))
                    {
                        xmsgstring = (xmsgstring + ("\r\n" + "Proveedor no existe"));
                        xobjeto = txtRuc;
                    }
                    //if ((BL.GetAll(VariablesPublicas.EmpresaID.ToString(), BE).Tables[0]).Rows.Count == 0)
                    //{
                    //    xmsgstring = (xmsgstring + ('\r' + "Proveedor no existe !!!"));
                    //    xobjeto = txtRuc;
                    //}
                    else
                    {
                        if ((!object.ReferenceEquals(tmptabla.Rows[0]["agerent"], DBNull.Value)))
                        {
                            if (Convert.ToBoolean(tmptabla.Rows[0]["agerent"]))
                            {
                                xmsgstring = (xmsgstring + ("\r\n" + "No se puede aplicar retención sobre un Agente de Retención"));
                                xobjeto = txtRuc;
                            }
                        }
                        if ((!object.ReferenceEquals(tmptabla.Rows[0]["buencontr"], DBNull.Value)))
                        {
                            if (Convert.ToBoolean(tmptabla.Rows[0]["buencontr"]))
                            {
                                xmsgstring = (xmsgstring + ("\r\n" + "No se puede aplicar retención sobre un buen contribuyente"));
                                xobjeto = txtRuc;
                            }
                        }
                        if ((!object.ReferenceEquals(tmptabla.Rows[0]["agenperc"], DBNull.Value)))
                        {
                            if (Convert.ToBoolean(tmptabla.Rows[0]["agenperc"]))
                            {
                                xmsgstring = (xmsgstring + ("\r\n" + "No se puede aplicar retención sobre un Agente de Percepción"));
                                xobjeto = txtRuc;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    DevExpress.XtraEditors.XtraMessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            decimal vmncambio = VariablesPublicas.StringtoDecimal(txtTipocambio.Text);
            if (vmncambio == 0)
            {
                xmsgstring = (xmsgstring + ("\r\n" + "Ingrese Tipo de Cambio !!!"));
                xobjeto = fRegistro;
            }

            if ((txtGlosa.Text.Trim()).Trim().Length == 0)
            {
                xmsgstring = (xmsgstring + ("\r\n" + "Ingrese glosa !!!"));
                xobjeto = txtGlosa;
            }
            //if ((txtNumOpe.Text.Trim()).Trim().Length == 0)
            //{
            //    xmsgstring = (xmsgstring + ("\r\n" + "Ingrese Número Cheque u Operación !!!"));
            //    xobjeto = txtNumOpe;
            //}
            decimal montoretencion = VariablesPublicas.StringtoDecimal(txtImpRetencion.Text);
            if (montoretencion == 0)
            {
                xmsgstring = (xmsgstring + ("\r\n" + "Click en Botón Cálcular Retención !!!"));
                xobjeto = btnCalcular;
            }
            if ((xmsgstring.Trim().Length == 0))
            {
                for (lc_cont = 0; (lc_cont <= (DetFacturacion.Rows.Count - 1)); lc_cont++)
                {
                    if (((Convert.ToDecimal(DetFacturacion.Rows[lc_cont]["importeretencionsoles"]) == 0))) //&& (Convert.ToDecimal(DetFacturacion.Rows[lc_cont]["impretencion1"]) == 0)))
                    {
                        xmsgstring = (xmsgstring + ("\r\n" + "Ingrese Retención del documento"));
                    }
                    if (((DetFacturacion.Rows[lc_cont]["tipdoc"].ToString().Trim().Length > 0) && (DetFacturacion.Rows[lc_cont]["numdoc"].ToString().Trim().Length > 0)))
                    {
                        tb_co_ComprascabBL BLCO = new tb_co_ComprascabBL();
                        tb_co_Comprascab BECO = new tb_co_Comprascab();

                        BECO.nmruc = txtRuc.Text.Trim();
                        BECO.tipodoc = DetFacturacion.Rows[lc_cont]["tipdoc"].ToString();
                        BECO.serdoc = DetFacturacion.Rows[lc_cont]["serdoc"].ToString();
                        BECO.numdoc = DetFacturacion.Rows[lc_cont]["numdoc"].ToString();
                        tmptabla = BLCO.GetAll(VariablesPublicas.EmpresaID.ToString(), BECO).Tables[0];
                        //tmptabla = ocapa.KAG0300_consulta(GlobalVars.GetInstance.Company, "", "", "", "", "", TXTCODCLIENTE.Text, DetFacturacion.Rows[lc_cont]["tipdoc_3a"], DetFacturacion.Rows[lc_cont]["numdoc"].Substring(0, 4), DetFacturacion.Rows[lc_cont]["numdoc"].Substring(5, 8));
                        if ((BLCO.Sql_Error.Length > 0))
                        {
                            Frm_Class.ShowError(("Error al validar documento de Compra " + ("\r\n" + BLCO.Sql_Error)), this);
                            return false;
                        }
                        if ((tmptabla.Rows.Count > 0))
                        {
                            if ((Convert.ToBoolean(tmptabla.Rows[0]["afecdetraccion"]) == true))
                            {
                                xmsgstring = (xmsgstring + "\r\n"
                                            + "Asiento R/C N°: " + tmptabla.Rows[0]["diarioid"].ToString() + "/" + tmptabla.Rows[0]["perimes"].ToString() + "-" + tmptabla.Rows[0]["asiento"].ToString() + "\r\n"

                                            + "Comprobante N°: "
                                            + DetFacturacion.Rows[lc_cont]["tipdoc"].ToString() + "/" + DetFacturacion.Rows[lc_cont]["serdoc"].ToString() + "-" + DetFacturacion.Rows[lc_cont]["numdoc"].ToString() + "\r\n"
                                            + "Tiene Detracción ... Imposible Aplicar Retención");
                            }
                        }
                    }
                }
            }

            if (xmsgstring.Trim().Length == 0)
            {
                //if (u_n_opsel == 1 | (W_KEY0001 != cboTipdoc.SelectedValue.ToString().Trim() + txtSerie.Text.Trim() + txtNumero.Text.Trim()))
                //{
                //    tmptabla = null;
                //    try
                //    {
                //        tb_co_retencionescabBL BL = new tb_co_retencionescabBL();
                //        tb_co_retencionescab BE = new tb_co_retencionescab();

                //        //BE.nmruc = txtRuc.Text;
                //        BE.tipdoc = cboTipdoc.SelectedValue.ToString().Trim();
                //        BE.serdoc = txtSerie.Text.Trim();
                //        BE.numdoc = txtNumero.Text.Trim();

                //        tmptabla = BL.GetAll(VariablesPublicas.EmpresaID.ToString(), BE).Tables[0];

                //        if (!(tmptabla == null))
                //        {
                //            if (tmptabla.Rows.Count > 0)
                //            {
                //                xmsgstring = ("Documento Ya registrado en Periodo : " + tmptabla.Rows[0]["perianio"] + " Registro Nº "
                //                            + tmptabla.Rows[0]["perimes"] + "-" + tmptabla.Rows[0]["asiento"]);
                //                xobjeto = txtNumero;
                //            }
                //        }
                //    }
                //    catch (Exception ex)
                //    {
                //        DevExpress.XtraEditors.XtraMessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                //    }
                //}
            }
            if (!(xobjeto == null))
            {
                try
                {
                    xobjeto = Focus();
                }
                catch (Exception ex)
                {
                    DevExpress.XtraEditors.XtraMessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            if (xmsgstring.Trim().Length > 0 & xmsgstring.Trim() != xfill)
            {
                DevExpress.XtraEditors.XtraMessageBox.Show(xmsgstring, "Validación de Datos", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            if (xmsgstring.Trim().Length == 0)
            {
                if (!PuedeEditarEliminar("Grabar Nuevo Registro", VariablesPublicas.PADL(fRegistro.Value.Month.ToString(), 2, "0")))
                {
                    xmsgstring = "...";
                }
            }
            if (xmsgstring.Trim().Length == 0)
            {
                return VariablesPublicas.U_ValidaFechaRegistroProvision(VariablesPublicas.perianio, txtMes.Text, fRegistro.Value);
            }
            else
            {
                return xmsgstring.Trim().Length == 0;
            }
        }
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            tb_co_ComprascabBL BL = new tb_co_ComprascabBL();
            tb_co_Comprascab BE = new tb_co_Comprascab();

            BE.perianio = VariablesPublicas.perianio;
            BE.nmruc = txtRuc.Text;
            BE.tipodoc = cboTipdoc.SelectedValue.ToString();
            BE.serdoc = txtSerie.Text;
            BE.numdoc = txtNumero.Text;

            tmptabla = BL.GetAll(VariablesPublicas.EmpresaID.ToString(), BE).Tables[0];
            //tmptabla = ocapa.KAG0300_consulta(GlobalVars.GetInstance.Company, GlobalVars.GetInstance.Periodo, "", "", "", "", TXTCODCLIENTE.Text, cmbtipdoc.SelectedValue, txtserie.Text, txtnumero.Text);
            //if ((ocapa.sql_error.Length == 0))
            //{
                if (tmptabla.Rows.Count > 0)
                {
                    _PasaRegCOMPRAS(tmptabla.Rows[0]["perimes"].ToString(),
                                         tmptabla.Rows[0]["diarioid"].ToString(),
                                         tmptabla.Rows[0]["asiento"].ToString());
                    Close();
                }
            //}
        }