Exemple #1
0
        /// <summary>
        /// Implementación del método de la interfaz.
        /// </summary>
        /// <param name="padre">
        /// En éste caso el objeto padre del caso de uso es un Form.
        /// </param>       
        /// <param name="valor">
        /// Aqui se espera que venga: [0](Parametro) el tipo de gestión que se 
        /// espera se ejecute ahora;[1](Cuenta)=la cuenta que debe gestionarse;
        /// [3](Gestión)=la gestion que debe utilizarse actualmente (puede no 
        /// venir en cuyo caso se crea).
        /// </param>
        public bool iniciar(object padre, params object[] valor)
        {
            try {
                // Crea el panel para asignar el objeto a trabajar
                Padre = padre;

                // Verifica y acepta los parámetros
                aceptarParametros(valor);

                // Si viene una gestion verifica su estado y asignacion
                // y si no viene entonces crea una nueva para gestionar
                if (_gestion != null) {
                    // Esto se hace en modo "SELECT ... FOR UPDATE"
                    Persistencia.Controlador.getSsp().Refresh(_gestion, LockMode.Upgrade);

                    // Controla que no este asignada o lo este al usuario actual
                    if (_gestion.Usuario != null &&
                        !_gestion.Usuario.Equals(Sistema.Controlador.SecurityService.getUsuario()))
                        throw new DataErrorException("ERROR-GESTION-YAASGINADA", _gestion.Usuario.ToString());

                    // ...si solo esta creada la coloca como asignada
                    if (_gestion.Estado.Equals(_creada))
                        _gestion.Estado = _asignada;

                    // ...luego se asigna el usuario que corresponde
                    _gestion.Usuario = Sistema.Controlador.SecurityService.getUsuario();

                    // ...finalmente se graba liberando el registro
                    _gestion.save();
                }

                _ventana = new WinGestionCuenta(this) {
                    StartPosition = FormStartPosition.CenterScreen,
                    Text = string.Format("{0} - {1}", Mensaje.TextoMensaje("TITULO-SHOW"), getTitulo())
                };
                _ventana.ShowDialog();

                return true;
            } catch (Exception e) {
                Persistencia.Controlador.cerrarSsp();
                throw new AppErrorException("UCCALLER-NOINIT", e.ToString());
            }
        }
 /// <summary>
 /// Ver descripción en clase base.
 /// </summary>
 /// <param name="ventana">
 /// El objeto cuyos datos se muestran en el panel.
 /// </param>  
 public void setVentanaPadre(Form ventana)
 {
     _ventanaPadre = (WinGestionCuenta)ventana;
 }
 /// <summary>
 /// Ver descripción en clase base.
 /// </summary>
 /// <param name="ventana">
 /// El objeto cuyos datos se muestran en el panel.
 /// </param>  
 public void setVentanaPadre(Form ventana)
 {
     try {
         _ventanaPadre = (WinGestionCuenta)ventana;
     } catch (Exception e) {
         throw new VistaErrorException("PANEL-NOK", e.ToString());
     }
 }