public bool Delete(string empresaid, tb_co_Comprascab BE)
 {
     using (SqlConnection cnx = new SqlConnection(conex.empConexion(empresaid)))
     {
         using (SqlCommand cmd = new SqlCommand("gspTbCoComprascab_DELETE", cnx))
         {
             {
                 cmd.CommandTimeout = 0;
                 cmd.CommandType = CommandType.StoredProcedure;
                 cmd.Parameters.Add("@perianio", SqlDbType.Char, 4).Value = BE.perianio;
                 cmd.Parameters.Add("@perimes", SqlDbType.Char, 2).Value = BE.perimes;
                 cmd.Parameters.Add("@moduloid", SqlDbType.Char, 4).Value = BE.moduloid;
                 cmd.Parameters.Add("@local", SqlDbType.Char, 3).Value = BE.local;
                 cmd.Parameters.Add("@diarioid", SqlDbType.Char, 4).Value = BE.diarioid;
                 cmd.Parameters.Add("@asiento", SqlDbType.Char, 6).Value = BE.asiento;
             }
             try
             {
                 cnx.Open();
                 if (cmd.ExecuteNonQuery() > 0)
                 {
                     return true;
                 }
                 else
                 {
                     return false;
                 }
             }
             catch (Exception ex)
             {
                 throw new Exception(ex.Message);
             }
         }
     }
 }
 public DataSet GetAll(string empresaid, tb_co_Comprascab BE)
 {
     //return tablaDA.GetAll(empresaid, BE);
     DataSet xreturn = null;
     xreturn = tablaDA.GetAll(empresaid, BE);
     Sql_Error = tablaDA.Sql_Error;
     return xreturn;
 }
 public DataSet GetAll(string empresaid, tb_co_Comprascab BE)
 {
     using (SqlConnection cnx = new SqlConnection(conex.empConexion(empresaid)))
     {
         using (SqlCommand cmd = new SqlCommand("gspTbCoComprascab_SEARCH", cnx))
         {
             DataSet ds = new DataSet();
             {
                 cmd.CommandTimeout = 0;
                 cmd.CommandType = CommandType.StoredProcedure;
                 cmd.Parameters.Add("@perianio", SqlDbType.Char, 4).Value = BE.perianio;
                 cmd.Parameters.Add("@perimes", SqlDbType.Char, 2).Value = BE.perimes;
                 cmd.Parameters.Add("@moduloid", SqlDbType.Char, 4).Value = BE.moduloid;
                 cmd.Parameters.Add("@local", SqlDbType.Char, 3).Value = BE.local;
                 cmd.Parameters.Add("@diarioid", SqlDbType.Char, 4).Value = BE.diarioid;
                 cmd.Parameters.Add("@asiento", SqlDbType.Char, 6).Value = BE.asiento;
                 cmd.Parameters.Add("@tipodoc", SqlDbType.Char, 2).Value = BE.tipodoc;
                 cmd.Parameters.Add("@serdoc", SqlDbType.Char, 4).Value = BE.serdoc;
                 cmd.Parameters.Add("@numdoc", SqlDbType.Char, 10).Value = BE.numdoc;
                 cmd.Parameters.Add("@status", SqlDbType.Bit).Value = BE.status;
                 cmd.Parameters.Add("@ctacte", SqlDbType.Char, 7).Value = BE.ctacte;
                 cmd.Parameters.Add("@ctactename", SqlDbType.VarChar, 70).Value = BE.ctactename;
                 cmd.Parameters.Add("@direc", SqlDbType.VarChar, 70).Value = BE.direc;
                 cmd.Parameters.Add("@ubige", SqlDbType.Char, 6).Value = BE.ubige;
                 cmd.Parameters.Add("@tipdid", SqlDbType.Char, 1).Value = BE.tipdid;
                 cmd.Parameters.Add("@nmruc", SqlDbType.Char, 11).Value = BE.nmruc;
                 cmd.Parameters.Add("@tipref", SqlDbType.Char, 2).Value = BE.tipref;
                 cmd.Parameters.Add("@serref", SqlDbType.Char, 4).Value = BE.serref;
                 cmd.Parameters.Add("@numref", SqlDbType.Char, 10).Value = BE.numref;
                 cmd.Parameters.Add("@tipOp", SqlDbType.Char, 2).Value = BE.tipOp;
                 cmd.Parameters.Add("@serOp", SqlDbType.Char, 4).Value = BE.serOp;
                 cmd.Parameters.Add("@numOp", SqlDbType.Char, 10).Value = BE.numOp;
                 cmd.Parameters.Add("@arrayguias", SqlDbType.VarChar, 70).Value = BE.arrayguias;
                 cmd.Parameters.Add("@arrayfechasguia", SqlDbType.VarChar, 50).Value = BE.arrayfechasguia;
                 cmd.Parameters.Add("@cencosid", SqlDbType.Char, 5).Value = BE.cencosid;
                 cmd.Parameters.Add("@compradorid", SqlDbType.Char, 4).Value = BE.compradorid;
                 cmd.Parameters.Add("@condcompraid", SqlDbType.Char, 4).Value = BE.condcompraid;
                 cmd.Parameters.Add("@tipimptoid", SqlDbType.Char, 1).Value = BE.tipimptoid;
                 cmd.Parameters.Add("@moneda", SqlDbType.Char, 1).Value = BE.moneda;
                 cmd.Parameters.Add("@codctadebe", SqlDbType.Char, 10).Value = BE.codctadebe;
                 cmd.Parameters.Add("@tipoid", SqlDbType.Char, 2).Value = BE.tipoid;
                 cmd.Parameters.Add("@glosa", SqlDbType.VarChar, 100).Value = BE.glosa;
                 //cmd.Parameters.Add("@totpzas", SqlDbType.Decimal).Value = BE.totpzas;
                 cmd.Parameters.Add("@modofactu", SqlDbType.Char, 1).Value = BE.modofactu;
                 cmd.Parameters.Add("@fechregistro", SqlDbType.DateTime).Value = BE.fechregistro;
                 cmd.Parameters.Add("@vinculante", SqlDbType.Char, 1).Value = BE.vinculante;
                 cmd.Parameters.Add("@origen", SqlDbType.Char, 2).Value = BE.origen;
                 cmd.Parameters.Add("@afecdetraccion", SqlDbType.Bit).Value = BE.afecdetraccion;
                 cmd.Parameters.Add("@nconstdetrac", SqlDbType.Char, 10).Value = BE.nconstdetrac;
                 cmd.Parameters.Add("@fechconstdetrac", SqlDbType.DateTime).Value = BE.fechconstdetrac;
                 cmd.Parameters.Add("@detraccionid", SqlDbType.Char, 5).Value = BE.detraccionid;
                 cmd.Parameters.Add("@bnctadetraccion", SqlDbType.VarChar, 40).Value = BE.bnctadetraccion;
                 cmd.Parameters.Add("@afectretencion", SqlDbType.Bit).Value = BE.afectretencion;
                 cmd.Parameters.Add("@afecpercepcion", SqlDbType.Bit).Value = BE.afecpercepcion;
                 cmd.Parameters.Add("@serdocpercepcion", SqlDbType.Char, 4).Value = BE.serdocpercepcion;
                 cmd.Parameters.Add("@numdocpercepcion", SqlDbType.Char, 10).Value = BE.numdocpercepcion;
                 cmd.Parameters.Add("@percepcionid", SqlDbType.Char, 2).Value = BE.percepcionid;
                 cmd.Parameters.Add("@afectoigvid", SqlDbType.Bit).Value = BE.afectoigvid;
                 cmd.Parameters.Add("@aduanaid", SqlDbType.Char, 3).Value = BE.aduanaid;
                 cmd.Parameters.Add("@aniodua", SqlDbType.Char, 4).Value = BE.aniodua;
                 cmd.Parameters.Add("@numdua", SqlDbType.Char, 10).Value = BE.numdua;
                 cmd.Parameters.Add("@fechembdua", SqlDbType.DateTime).Value = BE.fechembdua;
                 cmd.Parameters.Add("@fechreguldua", SqlDbType.DateTime).Value = BE.fechreguldua;
                 //cmd.Parameters.Add("@valorfobdua", SqlDbType.Decimal).Value = BE.valorfobdua;
                 cmd.Parameters.Add("@tipoexportid", SqlDbType.Char, 2).Value = BE.tipoexportid;
                 //cmd.Parameters.Add("@valor2", SqlDbType.Decimal).Value = BE.valor2;
                 //cmd.Parameters.Add("@dscto2", SqlDbType.Decimal).Value = BE.dscto2;
                 cmd.Parameters.Add("@tipersona", SqlDbType.Char, 2).Value = BE.tipersona;
             }
             try
             {
                 cnx.Open();
                 using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                 {
                     da.Fill(ds);
                 }
                 return ds;
             }
             catch (Exception ex)
             {
                 Sql_Error = ex.Message;
                 throw new Exception(ex.Message);
             }
         }
     }
 }
 public bool Update(string empresaid, tb_co_Comprascab BE)
 {
     using (SqlConnection cnx = new SqlConnection(conex.empConexion(empresaid)))
     {
         using (SqlCommand cmd = new SqlCommand("gspTbCoComprascab_UPDATE", cnx))
         {
             {
                 cmd.CommandTimeout = 0;
                 cmd.CommandType = CommandType.StoredProcedure;
                 cmd.Parameters.Add("@perianio", SqlDbType.Char, 4).Value = BE.perianio;
                 cmd.Parameters.Add("@perimes", SqlDbType.Char, 2).Value = BE.perimes;
                 cmd.Parameters.Add("@moduloid", SqlDbType.Char, 4).Value = BE.moduloid;
                 cmd.Parameters.Add("@local", SqlDbType.Char, 3).Value = BE.local;
                 cmd.Parameters.Add("@diarioid", SqlDbType.Char, 4).Value = BE.diarioid;
                 cmd.Parameters.Add("@asiento", SqlDbType.Char, 6).Value = BE.asiento;
                 cmd.Parameters.Add("@tipodoc", SqlDbType.Char, 2).Value = BE.tipodoc;
                 cmd.Parameters.Add("@serdoc", SqlDbType.Char, 4).Value = BE.serdoc;
                 cmd.Parameters.Add("@numdoc", SqlDbType.Char, 10).Value = BE.numdoc;
                 cmd.Parameters.Add("@status", SqlDbType.Bit).Value = BE.status;
                 cmd.Parameters.Add("@fechdoc", SqlDbType.DateTime).Value = BE.fechdoc;
                 cmd.Parameters.Add("@ctacte", SqlDbType.Char, 7).Value = BE.ctacte;
                 cmd.Parameters.Add("@ctactename", SqlDbType.VarChar, 70).Value = BE.ctactename;
                 cmd.Parameters.Add("@direc", SqlDbType.VarChar, 70).Value = BE.direc;
                 cmd.Parameters.Add("@ubige", SqlDbType.Char, 6).Value = BE.ubige;
                 cmd.Parameters.Add("@tipdid", SqlDbType.Char, 1).Value = BE.tipdid;
                 cmd.Parameters.Add("@nmruc", SqlDbType.Char, 11).Value = BE.nmruc;
                 cmd.Parameters.Add("@tipref", SqlDbType.Char, 2).Value = BE.tipref;
                 cmd.Parameters.Add("@serref", SqlDbType.Char, 4).Value = BE.serref;
                 cmd.Parameters.Add("@numref", SqlDbType.Char, 10).Value = BE.numref;
                 cmd.Parameters.Add("@fechref", SqlDbType.DateTime).Value = BE.fechref;
                 cmd.Parameters.Add("@tipOp", SqlDbType.Char, 2).Value = BE.tipOp;
                 cmd.Parameters.Add("@serOp", SqlDbType.Char, 4).Value = BE.serOp;
                 cmd.Parameters.Add("@numOp", SqlDbType.Char, 10).Value = BE.numOp;
                 cmd.Parameters.Add("@arrayguias", SqlDbType.VarChar, 70).Value = BE.arrayguias;
                 cmd.Parameters.Add("@arrayfechasguia", SqlDbType.VarChar, 50).Value = BE.arrayfechasguia;
                 cmd.Parameters.Add("@cencosid", SqlDbType.Char, 5).Value = BE.cencosid;
                 cmd.Parameters.Add("@compradorid", SqlDbType.Char, 4).Value = BE.compradorid;
                 cmd.Parameters.Add("@condcompraid", SqlDbType.Char, 4).Value = BE.condcompraid;
                 cmd.Parameters.Add("@bruto", SqlDbType.Decimal).Value = BE.bruto;
                 cmd.Parameters.Add("@dscto3", SqlDbType.Decimal).Value = BE.dscto3;
                 cmd.Parameters.Add("@totdscto3", SqlDbType.Decimal).Value = BE.totdscto3;
                 cmd.Parameters.Add("@transporte", SqlDbType.Decimal).Value = BE.transporte;
                 cmd.Parameters.Add("@embalaje", SqlDbType.Decimal).Value = BE.embalaje;
                 cmd.Parameters.Add("@otros", SqlDbType.Decimal).Value = BE.otros;
                 cmd.Parameters.Add("@tipimptoid", SqlDbType.Char, 1).Value = BE.tipimptoid;
                 cmd.Parameters.Add("@igv", SqlDbType.Decimal).Value = BE.igv;
                 cmd.Parameters.Add("@incprec", SqlDbType.Bit).Value = BE.incprec;
                 cmd.Parameters.Add("@impexo", SqlDbType.Decimal).Value = BE.impexo;
                 cmd.Parameters.Add("@valorcompra1", SqlDbType.Decimal).Value = BE.valorcompra1;
                 cmd.Parameters.Add("@igv1", SqlDbType.Decimal).Value = BE.igv1;
                 cmd.Parameters.Add("@cargo", SqlDbType.Decimal).Value = BE.cargo;
                 cmd.Parameters.Add("@preciocompra1", SqlDbType.Decimal).Value = BE.preciocompra1;
                 cmd.Parameters.Add("@moneda", SqlDbType.Char, 1).Value = BE.moneda;
                 cmd.Parameters.Add("@tipcamb", SqlDbType.Decimal).Value = BE.tipcamb;
                 cmd.Parameters.Add("@codctadebe", SqlDbType.Char, 10).Value = BE.codctadebe;
                 cmd.Parameters.Add("@tipoid", SqlDbType.Char, 2).Value = BE.tipoid;
                 cmd.Parameters.Add("@glosa", SqlDbType.VarChar, 100).Value = BE.glosa;
                 cmd.Parameters.Add("@totpzas", SqlDbType.Decimal).Value = BE.totpzas;
                 cmd.Parameters.Add("@fechentrega", SqlDbType.DateTime).Value = BE.fechentrega;
                 cmd.Parameters.Add("@fechpago", SqlDbType.DateTime).Value = BE.fechpago;
                 cmd.Parameters.Add("@fechcancel", SqlDbType.DateTime).Value = BE.fechcancel;
                 cmd.Parameters.Add("@modofactu", SqlDbType.Char, 1).Value = BE.modofactu;
                 cmd.Parameters.Add("@items", SqlDbType.Decimal).Value = BE.items;
                 cmd.Parameters.Add("@fechregistro", SqlDbType.DateTime).Value = BE.fechregistro;
                 cmd.Parameters.Add("@vinculante", SqlDbType.Char, 1).Value = BE.vinculante;
                 cmd.Parameters.Add("@origen", SqlDbType.Char, 2).Value = BE.origen;
                 cmd.Parameters.Add("@afecdetraccion", SqlDbType.Bit).Value = BE.afecdetraccion;
                 cmd.Parameters.Add("@nconstdetrac", SqlDbType.Char, 10).Value = BE.nconstdetrac;
                 cmd.Parameters.Add("@fechconstdetrac", SqlDbType.DateTime).Value = BE.fechconstdetrac;
                 cmd.Parameters.Add("@detraccionid", SqlDbType.Char, 5).Value = BE.detraccionid;
                 cmd.Parameters.Add("@porcdetraccion", SqlDbType.Decimal).Value = BE.porcdetraccion;
                 cmd.Parameters.Add("@bnctadetraccion", SqlDbType.VarChar, 40).Value = BE.bnctadetraccion;
                 cmd.Parameters.Add("@afectretencion", SqlDbType.Bit).Value = BE.afectretencion;
                 cmd.Parameters.Add("@afecpercepcion", SqlDbType.Bit).Value = BE.afecpercepcion;
                 cmd.Parameters.Add("@serdocpercepcion", SqlDbType.Char, 4).Value = BE.serdocpercepcion;
                 cmd.Parameters.Add("@numdocpercepcion", SqlDbType.Char, 10).Value = BE.numdocpercepcion;
                 cmd.Parameters.Add("@percepcionid", SqlDbType.Char, 2).Value = BE.percepcionid;
                 cmd.Parameters.Add("@afectoigvid", SqlDbType.Bit).Value = BE.afectoigvid;
                 cmd.Parameters.Add("@aduanaid", SqlDbType.Char, 3).Value = BE.aduanaid;
                 cmd.Parameters.Add("@aniodua", SqlDbType.Char, 4).Value = BE.aniodua;
                 cmd.Parameters.Add("@numdua", SqlDbType.Char, 10).Value = BE.numdua;
                 cmd.Parameters.Add("@fechembdua", SqlDbType.DateTime).Value = BE.fechembdua;
                 cmd.Parameters.Add("@fechreguldua", SqlDbType.DateTime).Value = BE.fechreguldua;
                 cmd.Parameters.Add("@valorfobdua", SqlDbType.Decimal).Value = BE.valorfobdua;
                 cmd.Parameters.Add("@tipoexportid", SqlDbType.Char, 2).Value = BE.tipoexportid;
                 cmd.Parameters.Add("@valor2", SqlDbType.Decimal).Value = BE.valor2;
                 cmd.Parameters.Add("@dscto2", SqlDbType.Decimal).Value = BE.dscto2;
                 cmd.Parameters.Add("@impexo2", SqlDbType.Decimal).Value = BE.impexo2;
                 cmd.Parameters.Add("@valorcompra2", SqlDbType.Decimal).Value = BE.valorcompra2;
                 cmd.Parameters.Add("@igv2", SqlDbType.Decimal).Value = BE.igv2;
                 cmd.Parameters.Add("@preciocompra2", SqlDbType.Decimal).Value = BE.preciocompra2;
                 cmd.Parameters.Add("@tipersona", SqlDbType.Char, 2).Value = BE.tipersona;
                 cmd.Parameters.Add("@usuar", SqlDbType.Char, 15).Value = BE.usuar;
             }
             try
             {
                 cnx.Open();
                 if (cmd.ExecuteNonQuery() > 0)
                 {
                     return true;
                 }
                 else
                 {
                     return false;
                 }
             }
             catch (Exception ex)
             {
                 throw new Exception(ex.Message);
             }
         }
     }
 }
        public DataSet GetOne(string empresaid, tb_co_Comprascab BE)
        {
            using (SqlConnection cnx = new SqlConnection(conex.empConexion(empresaid)))
            {
                using (SqlCommand cmd = new SqlCommand("gspTbCoComprascab_SELECT", cnx))
                {
                    DataSet ds = new DataSet();
                    {
                        cmd.CommandTimeout = 0;
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Parameters.Add("@perianio", SqlDbType.Char, 4).Value = BE.perianio;
                        cmd.Parameters.Add("@perimes", SqlDbType.Char, 2).Value = BE.perimes;
                        cmd.Parameters.Add("@moduloid", SqlDbType.Char, 4).Value = BE.moduloid;
                        cmd.Parameters.Add("@local", SqlDbType.Char, 3).Value = BE.local;
                        cmd.Parameters.Add("@diarioid", SqlDbType.Char, 4).Value = BE.diarioid;
                        cmd.Parameters.Add("@asiento", SqlDbType.Char, 6).Value = BE.asiento;
                    }

                    try
                    {
                        cnx.Open();
                        using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                        {
                            da.Fill(ds);
                        }
                        return ds;
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message);
                    }
                }
            }
        }
 public bool Update(string empresaid, tb_co_Comprascab BE)
 {
     return tablaDA.Update(empresaid, BE);
 }
 public bool Insert(string empresaid, tb_co_Comprascab BE)
 {
     return tablaDA.Insert(empresaid, BE);
 }
 public DataSet GetOne(string empresaid, tb_co_Comprascab BE)
 {
     return tablaDA.GetOne(empresaid, BE);
 }
 public DataSet GetAsientoRoleo(string empresaid, tb_co_Comprascab BE)
 {
     return tablaDA.GetAsientoRoleo(empresaid, BE);
 }
        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;
            }
        }
        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 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();
                }
            //}
        }