//------------------------------------
        // Insert CtaCtePago / CtaCtePagDatos
        //------------------------------------
        public bool Ins_CtaCtePago_PagDatos(string cPerCodigo, string cPerJurCodigo, string cCtaCteRecibo, int nCaja, int nForPago, string cCtaCtePagNroOperacion, DateTime dCtaCtePagfecha, string CtaCtePagGlosa, double fCtaCtePagImporte, string cPerCodigoBanco, string cDescrBanco, string cNroTarjCta, string NroTrasacVoucher)
        {
            bool exito = false;

            try
            {
                using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required))
                {
                    int nCtaCtePagcodigo = 0;
                    int nPerCtaCodigo = 0;
                    //int vnCtaCteTipo = 0;

                    //-------------
                    //Get PerCuenta
                    //-------------
                    BL_PerCuenta ObjPerCta = new BL_PerCuenta();
                    DataTable dt = new DataTable();
                    dt = ObjPerCta.Get_PerCuenta(cPerCodigo, cPerJurCodigo);

                    if (dt.Rows.Count > 0)
                    {
                        nPerCtaCodigo = Convert.ToInt32(dt.Rows[0]["nPerCtaCodigo"]);
                        //vnCtaCteTipo = Convert.ToInt32(dt.Rows[0]["nPerCtaTipo"]);
                    }
                    else {
                        throw new ApplicationException("Persona <NO> tiene Numero Cuenta en. [PerCuenta].!");
                    }

                    //-------------------
                    //Insert: CtaCtePago
                    //-------------------
                    BL_CtaCtePago ObjPago = new BL_CtaCtePago();

                    //OUTPUT inserted.nCtaCtaPagCodigo (cm.ExecuteScalar())
                    nCtaCtePagcodigo = ObjPago.Ins_CtaCtePago(cCtaCteRecibo, cPerCodigo, nPerCtaCodigo, nCaja, nForPago, cCtaCtePagNroOperacion, dCtaCtePagfecha, CtaCtePagGlosa, fCtaCtePagImporte);

                    if (nCtaCtePagcodigo == 0) {
                        throw new ApplicationException("Se encontraron errores en la transaccion: [Ins_CtaCtePago].!");
                    }

                    //----------------------------------------------------------
                    //Insert CtaCtePagDatos.- (Solo es diferente de 1-Efectivo)
                    //----------------------------------------------------------
                    if (nForPago != 1)
                    {
                        BL_CtaCtePagDatos ObjPagDatos = new BL_CtaCtePagDatos();
                        exito = ObjPagDatos.Ins_CtaCtePagDatos(nCtaCtePagcodigo, cPerCodigoBanco, cDescrBanco, cNroTarjCta, dCtaCtePagfecha, NroTrasacVoucher, fCtaCtePagImporte);
                        if (!exito)
                        {
                            throw new ApplicationException("Se encontraron errores en la transaccion: [Ins_CtaCtePagDatos].!");
                        }
                    }
                    tx.Complete();
                }
            }
            catch (Exception)
            {
                throw;
            }
            return exito;
        }
        //------------------------------------
        // Insert CtaCtePago / CtaCtePagDatos
        //------------------------------------
        public bool Ins_CtaCtePago_PagDatos(string cPerCodigo, string cPerJurCodigo, string cCtaCteRecibo, int nCaja, int nForPago, string cCtaCtePagNroOperacion, DateTime dCtaCtePagfecha, string CtaCtePagGlosa, double fCtaCtePagImporte, string cPerCodigoBanco, string cDescrBanco, string cNroTarjCta, string NroTrasacVoucher)
        {
            bool exito = false;

            try
            {
                using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required))
                {
                    int nCtaCtePagcodigo = 0;
                    int nPerCtaCodigo    = 0;
                    //int vnCtaCteTipo = 0;

                    //-------------
                    //Get PerCuenta
                    //-------------
                    BL_PerCuenta ObjPerCta = new BL_PerCuenta();
                    DataTable    dt        = new DataTable();
                    dt = ObjPerCta.Get_PerCuenta(cPerCodigo, cPerJurCodigo);

                    if (dt.Rows.Count > 0)
                    {
                        nPerCtaCodigo = Convert.ToInt32(dt.Rows[0]["nPerCtaCodigo"]);
                        //vnCtaCteTipo = Convert.ToInt32(dt.Rows[0]["nPerCtaTipo"]);
                    }
                    else
                    {
                        throw new ApplicationException("Persona <NO> tiene Numero Cuenta en. [PerCuenta].!");
                    }

                    //-------------------
                    //Insert: CtaCtePago
                    //-------------------
                    BL_CtaCtePago ObjPago = new BL_CtaCtePago();

                    //OUTPUT inserted.nCtaCtaPagCodigo (cm.ExecuteScalar())
                    nCtaCtePagcodigo = ObjPago.Ins_CtaCtePago(cCtaCteRecibo, cPerCodigo, nPerCtaCodigo, nCaja, nForPago, cCtaCtePagNroOperacion, dCtaCtePagfecha, CtaCtePagGlosa, fCtaCtePagImporte);

                    if (nCtaCtePagcodigo == 0)
                    {
                        throw new ApplicationException("Se encontraron errores en la transaccion: [Ins_CtaCtePago].!");
                    }

                    //----------------------------------------------------------
                    //Insert CtaCtePagDatos.- (Solo es diferente de 1-Efectivo)
                    //----------------------------------------------------------
                    if (nForPago != 1)
                    {
                        BL_CtaCtePagDatos ObjPagDatos = new BL_CtaCtePagDatos();
                        exito = ObjPagDatos.Ins_CtaCtePagDatos(nCtaCtePagcodigo, cPerCodigoBanco, cDescrBanco, cNroTarjCta, dCtaCtePagfecha, NroTrasacVoucher, fCtaCtePagImporte);
                        if (!exito)
                        {
                            throw new ApplicationException("Se encontraron errores en la transaccion: [Ins_CtaCtePagDatos].!");
                        }
                    }
                    tx.Complete();
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(exito);
        }