/// <summary>
        /// Cambia el contrato de Sucursal
        /// </summary>
        public void CambiarSucursal()
        {
            try
            {
                string s = this.ValidarCampos();
                if (!String.IsNullOrEmpty(s))
                {
                    this.vista.MostrarMensaje(s, ETipoMensajeIU.ADVERTENCIA);
                    return;
                }

                ContratoBO contrato = (ContratoBO)InterfazUsuarioDato();
                if (contrato == null)
                {
                    throw new Exception("No se pudo obtener el contrato que sera cambiado de sucursal desde la interfaz");
                }

                SeguridadBO seguridadBo = this.CrearObjetoSeguridad();
                #region Conexion a BD

                Guid firma = Guid.NewGuid();
                try
                {
                    this.dataContext.OpenConnection(firma);
                    this.dataContext.BeginTransaction(firma);
                }
                catch (Exception)
                {
                    if (this.dataContext.ConnectionState == ConnectionState.Open)
                    {
                        this.dataContext.CloseConnection(firma);
                    }
                    throw new Exception("Se encontraron inconsistencias al Cambiar la Sucursal del Contrato.");
                }

                #endregion
                try
                {
                    bool cambioExitoso = false;
                    switch (this.vista.TipoContrato)
                    {
                    case ETipoContrato.RD:
                        this.controlador = new ContratoRDBR();
                        cambioExitoso    = ((ContratoRDBR)controlador).CambiarSucursalContrato(this.dataContext, (ContratoRDBO)contrato, (ContratoRDBO)this.vista.ObjetoAnterior, this.vista.Observaciones, seguridadBo);
                        break;

                    case ETipoContrato.FSL:
                        this.controlador = new ContratoFSLBR();
                        cambioExitoso    = ((ContratoFSLBR)controlador).CambiarSucursalContrato(this.dataContext, (ContratoFSLBO)contrato, (ContratoFSLBO)this.vista.ObjetoAnterior, this.vista.Observaciones, seguridadBo);
                        break;

                    case ETipoContrato.CM:
                    case ETipoContrato.SD:
                        this.controlador = new ContratoManttoBR();
                        cambioExitoso    = ((ContratoManttoBR)controlador).CambiarSucursalContrato(this.dataContext, (ContratoManttoBO)contrato, (ContratoManttoBO)this.vista.ObjetoAnterior, this.vista.Observaciones, seguridadBo);
                        break;
                    }

                    if (!cambioExitoso)
                    {
                        throw new Exception("Ocurrio un problema al cambiar El contrato y las Unidades de Sucursal");
                    }

                    ModificarPagosBR modificarPagosBr = new ModificarPagosBR();
                    cambioExitoso = modificarPagosBr.CambiarPagosSucursal(this.dataContext, contrato, seguridadBo);

                    if (!cambioExitoso)
                    {
                        throw new Exception("Ocurrio un problema al cambiar Los Pagos de Sucursal");
                    }

                    this.dataContext.CommitTransaction(firma);
                    this.vista.PermitirGuardar(false);

                    this.vista.MostrarMensaje("El Contrato cambio de Sucursal con Éxito", ETipoMensajeIU.EXITO);
                }
                catch (Exception ex)
                {
                    this.dataContext.RollbackTransaction(firma);
                    throw;
                }
                finally
                {
                    if (this.dataContext.ConnectionState == ConnectionState.Open)
                    {
                        this.dataContext.CloseConnection(firma);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(nombreClase + ".CambiarSucursal: " + ex.Message, ex.InnerException);
            }
        }
        /// <summary>
        /// Cambia la Frecuencia de Facturacion de un contrato de RD
        /// </summary>
        public void CambiarFrecuencia()
        {
            try
            {
                var s = this.ValidarCampos();
                if (!String.IsNullOrEmpty(s))
                {
                    this.vista.MostrarMensaje(s, ETipoMensajeIU.ADVERTENCIA);
                    return;
                }

                var contratoRd = (ContratoRDBO)this.InterfazUsuarioDato();
                contratoRd.FUA = DateTime.Now;
                contratoRd.UUA = this.vista.UsuarioId;

                SeguridadBO seguridadBo = this.CrearObjetoSeguridad();

                #region Conexion a BD

                Guid firma = Guid.NewGuid();
                try
                {
                    this.dataContext.OpenConnection(firma);
                    this.dataContext.BeginTransaction(firma);
                }
                catch (Exception)
                {
                    if (this.dataContext.ConnectionState == ConnectionState.Open)
                    {
                        this.dataContext.CloseConnection(firma);
                    }
                    throw new Exception("Se encontraron inconsistencias al Cambiar la Frecuencia del Contrato.");
                }

                #endregion
                try
                {
                    controladorContrato.Actualizar(this.dataContext, contratoRd, this.vista.ContratoAntiguo, seguridadBo);
                    ModificarPagosBR modificarPagosBr = new ModificarPagosBR();
                    modificarPagosBr.CambiarFrecuenciaPagos(this.dataContext, contratoRd, this.vista.CantidadPagosFaltantes != 0, this.vista.CantidadPagosFaltantes, seguridadBo);

                    this.dataContext.CommitTransaction(firma);

                    this.vista.PermitirCancelar(false);
                    this.vista.PermitirGuardar(false);
                    this.vista.PermitirFrecuencia(false);

                    this.vista.MostrarMensaje("La Frecuencia de Facturación del contrato se cambió con ÉXITO", ETipoMensajeIU.EXITO);
                }
                catch (Exception ex)
                {
                    this.dataContext.RollbackTransaction(firma);
                    throw;
                }
                finally
                {
                    if (this.dataContext.ConnectionState == ConnectionState.Open)
                    {
                        this.dataContext.CloseConnection(firma);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(nombreClase + ".CambiarFrecuencia(): " + ex.Message, ex.InnerException);
            }
        }