//-------------------
        // Get PerCuenta
        //-------------------
        public DataTable Get_PerCuenta(BE_ReqPerCuenta Request)
        {
            DataTable dt = new DataTable();

            try
            {
                clsConection Obj    = new clsConection();
                string       Cadena = Obj.GetConexionString("Naylamp");

                using (SqlConnection cn = new SqlConnection(Cadena))
                {
                    cn.Open();
                    using (SqlCommand cm = new SqlCommand())
                    {
                        cm.CommandText = "[usp_Get_PerCuenta]";
                        cm.CommandType = CommandType.StoredProcedure;
                        cm.Parameters.AddWithValue("cPerCodigo", Request.cPerCodigo);
                        cm.Parameters.AddWithValue("cPerJurCodigo", Request.cPerJurCodigo);

                        cm.Connection = cn;

                        using (SqlDataReader dr = cm.ExecuteReader())
                            dt.Load(dr);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(dt);
        }
        //-------------------
        // Get PerCuenta
        //-------------------
        public DataTable Get_PerCuenta(string cPerCodigo, string cPerJurCodigo)
        {
            BE_ReqPerCuenta Request = new BE_ReqPerCuenta();
            DA_PerCuenta    Obj     = new DA_PerCuenta();

            Request.cPerCodigo    = cPerCodigo;
            Request.cPerJurCodigo = cPerJurCodigo;
            return(Obj.Get_PerCuenta(Request));
        }
        //-------------------
        // Insert PerCuenta
        //-------------------
        public bool Ins_PerCuenta(string cPerCodigo, int nPerCtaTipo, string cPerJurCodigo)
        {
            BE_ReqPerCuenta Request = new BE_ReqPerCuenta();
            DA_PerCuenta    Obj     = new DA_PerCuenta();

            Request.cPerCodigo      = cPerCodigo;
            Request.cNroCuenta      = "";
            Request.nPerCtaTipo     = nPerCtaTipo; //Constante(1015) [16]-Cliente
            Request.cPerJurCodigo   = cPerJurCodigo;
            Request.nMonCodigo      = 1;           //Constante(1001) [1]-Soles
            Request.nPerCtaEstado   = 1;
            Request.cNroCuentaOpera = "";

            return(Obj.Ins_PerCuenta(Request));
        }
        //-----------------
        // Insert PerCuenta
        //-----------------
        public bool Ins_PerCuenta(BE_ReqPerCuenta Request)
        {
            bool exito = false;

            try
            {
                clsConection Obj    = new clsConection();
                string       Cadena = Obj.GetConexionString("Naylamp");

                using (SqlConnection cn = new SqlConnection(Cadena))
                {
                    cn.Open();

                    using (SqlCommand cm = new SqlCommand())
                    {
                        cm.CommandText = "[usp_Ins_PerCuenta]";
                        cm.CommandType = CommandType.StoredProcedure;
                        cm.Parameters.AddWithValue("cPerCodigo", Request.cPerCodigo);
                        cm.Parameters.AddWithValue("cNroCuenta", Request.cNroCuenta);
                        cm.Parameters.AddWithValue("nPerCtaTipo", Request.nPerCtaTipo); //Constante (1015) [16]-Cliente
                        cm.Parameters.AddWithValue("cPerJurCodigo", Request.cPerJurCodigo);
                        cm.Parameters.AddWithValue("nMonCodigo", Request.nMonCodigo);
                        cm.Parameters.AddWithValue("nPerCtaEstado", Request.nPerCtaEstado);
                        cm.Parameters.AddWithValue("cNroCuentaOpera", Request.cNroCuentaOpera);

                        cm.Connection = cn;

                        if (cm.ExecuteNonQuery() > 0)
                        {
                            exito = true;
                        }
                        else
                        {
                            throw new ApplicationException("se ha producido un error procedimiento almacenado: [usp_Ins_PerCuenta]; Consulte al administrador del sistema");
                        }
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(exito);
        }
        //---------------------------------
        // Get y Ins PerCuenta si no existe
        //---------------------------------
        public int Ins_Get_PerCuenta(string cPerCodigo, string cPerJurCodigo, int nPerCtaTipo = 16)
        {
            int nPerCtaCodigo = 0;

            BL_PerCuenta ObjPerCta = new BL_PerCuenta();

            DataTable dt = new DataTable();

            BE_ReqPerCuenta Request = new BE_ReqPerCuenta();
            DA_PerCuenta    Obj     = new DA_PerCuenta();

            Request.cPerCodigo    = cPerCodigo;
            Request.cPerJurCodigo = cPerJurCodigo;
            dt = Obj.Get_PerCuenta(Request);

            //Si existe
            if (dt.Rows.Count > 0)
            {
                nPerCtaCodigo = Convert.ToInt32(dt.Rows[0]["nPerCtaCodigo"]);
            }
            else
            {
                //Creando PerCuenta
                if (!ObjPerCta.Ins_PerCuenta(cPerCodigo, nPerCtaTipo, cPerJurCodigo))
                {
                    throw new ApplicationException("Se encontraron errores al Crear Cuenta Persona. [Ins_PerCuenta].!");
                }
                else
                {
                    dt = ObjPerCta.Get_PerCuenta(cPerCodigo, cPerJurCodigo);
                    if (dt.Rows.Count > 0)
                    {
                        nPerCtaCodigo = Convert.ToInt32(dt.Rows[0]["nPerCtaCodigo"]);
                    }
                    else
                    {
                        throw new ApplicationException("Se encontro Cuenta Registra Persona. [Get_PerCuenta].!");
                    }
                }
            }

            return(nPerCtaCodigo);
        }