/// <summary>
        /// Implementación del método de la interfaz.
        /// </summary>
        public void saveResultado(Gestion gestion, Parametro tipo, string descripcion, DateTime fecha)
        {
            if (gestion != null) {
                // Primero graba y actualiza algunas cosas
                try {
                    long scn = Persistencia.Controlador.iniciarTransaccion();
                    gestion.FechaInicio = DateTime.Now;
                    gestion.Resultado = tipo;
                    gestion.ResultadoDesc = descripcion;
                    gestion.ResultadoFecha = fecha;
                    gestion.Usuario = Sistema.Controlador.SecurityService.getUsuario();
                    gestion.Estado = Parametros.GetByClave("ESTADOGESTION.ENPROCESO");
                    gestion.Cuenta.agregarGestion(gestion);
                    gestion.save();
                    Persistencia.Controlador.commitTransaccion(scn);
                } catch (Exception e) {
                    Persistencia.Controlador.rollbackTransaccion();
                    throw new DataErrorException("DATA-SAVENOK", e.ToString());
                }

                // Finalmente ejecuta el resultado y finaliza la gestion
                try {
                    ResultadoGestion.EjecutarResultado(gestion, gestion.Resultado);
                    gestion.Estado = Parametros.GetByClave("ESTADOGESTION.FINALIZADA");
                    gestion.FechaCierre = DateTime.Now;
                    gestion.save();
                } catch (Exception e) {
                    throw new DataErrorException("ERROR-EJECUTAR-RESULTADO", e.ToString());
                }
            }
        }
Exemple #2
0
        public bool iniciar(object padre, params object[] valor)
        {
            // Asigna el padre
            Padre = padre;

            // Obtiene la gestión correspondiente
            if (valor.Count() < 2)
                return false;

            // Imprime una sola o genera toda una lista
            if (valor[1] is Gestion && ((Gestion)valor[1]).Tipo != null) {
                _gestionEnCurso = valor[1] as Gestion;

                // Crea el panel para seleccionar el template de la carta
                var panel = new PanelSeleccionTemplate(this) {Dock = DockStyle.Fill};

                // Crea el formulario
                var ventana =
                    new FrmVisualizador(
                        String.Format("{0} - Imprimir carta", _gestionEnCurso.Tipo.Valorstring)) {
                                    Owner = (Form) Padre,
                                    Size = new Size(540, 125),
                                    MaximizeBox = false,
                                    MinimizeBox = false,
                                    FormBorderStyle =
                                        FormBorderStyle.FixedSingle
                                };

                // Agrega el panel al formulario
                ventana.Controls.Add(panel);
                DialogResult resultado = ventana.ShowDialog();

                if (resultado == DialogResult.OK) {
                    // Asigna el nombre de la carta seleccionada a la descripción
                    // del resultado de la gestión
                    _gestionEnCurso.ResultadoDesc += panel.NombreCarta;
                    _gestionEnCurso.save();
                }

                return true;
            }

            if (valor[1] is ListaGestion) {
                _listaEnCurso = valor[1] as ListaGestion;

                // Crea el panel para seleccionar el template de la carta
                var panel = new PanelSeleccionTemplateLista(this, _listaEnCurso) { Dock = DockStyle.Fill };

                // Crea el formulario
                var ventana =
                    new FrmVisualizador(
                        String.Format("{0} - Generar Documentos", _listaEnCurso.Nombre))
                        {
                            Owner = (Form)Padre,
                            Size = new Size(540, 165),
                            MaximizeBox = false,
                            MinimizeBox = false,
                            FormBorderStyle =
                                FormBorderStyle.FixedSingle
                        };

                // Agrega el panel al formulario
                ventana.Controls.Add(panel);
                DialogResult resultado = ventana.ShowDialog();
            }

            return false;
        }
        /// <summary>
        /// Ejecución de un resultado de alta de convenio.
        /// </summary>
        private static void EjecutarResultadoAltaConvenio(Gestion gestion)
        {
            gestion.Estado = Parametros.GetByClave("ESTADOGESTION.FINALIZADA");
            gestion.Usuario = Sistema.Controlador.SecurityService.getUsuario();
            gestion.Resultado = Parametros.GetByClave("RESULTADOGESTION.ALTACONVENIO");
            gestion.FechaInicio = gestion.FechaInicio.Equals(Fechas.FechaNull) ? DateTime.Now : gestion.FechaInicio;
            gestion.FechaUMod = DateTime.Now;
            gestion.FechaCierre = DateTime.Now;
            gestion.save();

            gestion.Cuenta.ListaAsignada = null;
            gestion.Cuenta.FechaElegible =
                gestion.Cuenta.ConvenioActivo.getPrimeraCuota().FechaVencimiento.AddDays(
                    (Parametros.GetByClave("GESTION.DIASGRACIA"))
                        .Valorlong);
            gestion.Cuenta.save();
        }