/// <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](string)=el nombre del caso de uso; /// [1](ListaGestion)=La lista con la que se debe trabajar aqui. /// </param> public virtual bool iniciar(object padre, params object[] valor) { try { // Crea el panel para asignar el objeto a trabajar Padre = padre; // Si se pasa un objeto lo toma para trabajar, sino // arranca sin nada (o con lo que ya tiene setado) if (valor.Length > 0) _lista = (ListaGestion) valor[0]; // Abre la ventana para las tareas de edición, etc. WinCargaResultado vista = new WinCargaResultado(); // Finalmente muestra la ventana y al luego retorna vista.ShowDialog(); // Al retornar verifica si hay un resultado cargado if (vista.Tipo != null) cargarResultado(vista.Tipo, vista.Descripcion, vista.Fecha); return true; } catch (Exception e) { throw new AppErrorException("UCCALLER-NOINIT", e.ToString()); } }
/// <summary> /// Este método asienta efectivamente las gestiones generadas pasándolas desde /// la tabla temporal a la tabla gestión (de ese modo recién ahora quedan como /// gestiones efectivas). Ademas marca cuentas como "acaparadas" por la lista. /// SE AGREGO:establece el usuario gestor tanto a la cuenta como a la gestion. /// </summary> public static void AsentarGestiones(ListaGestion lista, Usuario usuario) { Sistema.Controlador.logear("GESPER-ASENTADA", ENivelMensaje.INFORMACION, null); string sql = "update cuenta"; sql += " set cta_listaasignada = '" + lista.Id + "'"; sql += (usuario == null) ? string.Empty : " , cta_gestor = '" + usuario.Id + "'"; sql += " where cta_id in (select tgl_cuenta from tempgenlis)"; long res = Persistencia.EjecutarSqlDML(sql, Persistencia.Controlador.CadenaConexion); Sistema.Controlador.logear( "GENERICO", ENivelMensaje.INFORMACION, "Se marcaron " + res + " cuentas " + ((usuario == null) ? "sin asignar gestor" : "y se asignaron al gestor " + usuario)); sql = "insert into gestion"; sql += " (ges_id, ges_tipo, ges_estado, ges_fechaumod, ges_cuenta, ges_lista, ges_usuario,"; sql += " ges_resultadofecha, ges_fechainicio, ges_fechacierre, ges_fechabaja, ges_fechaanulacion)"; sql += "select newid(), tgl_tipo, tgl_estado, tgl_fechaalta, tgl_cuenta, tgl_lista, tgl_gestor,"; sql += " convert(datetime, '1753-01-01 00:00:000', 121), convert(datetime, '1753-01-01 00:00:000', 121),"; sql += " convert(datetime, '1753-01-01 00:00:000', 121), convert(datetime, '1753-01-01 00:00:000', 121),"; sql += " convert(datetime, '1753-01-01 00:00:000', 121)"; sql += " from tempgenlis"; res = Persistencia.EjecutarSqlDML(sql, Persistencia.Controlador.CadenaConexion); Sistema.Controlador.logear( "GENERICO", ENivelMensaje.INFORMACION, "Se asentaron " + res + " gestiones"); }
public PanelSeleccionTemplateLista(CUGenerarCarta unCtrl, ListaGestion unaLista) { InitializeComponent(); _control = unCtrl; _lista = unaLista; cargaComboTemplates(); inicializaDestino(); }
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> /// Este método crea una nueva lista de gestión, asignando el nombre /// y la fecha de creación. Además graba la lista, por lo que se debe /// tener en cuenta si debe estar dentro de una transacción o no la /// llamada al mismo. /// </summary> /// <returns> /// La lista de gestión recien creada y guardada, vacía. /// </returns> public static ListaGestion CrearYPrepararNuevaLista(TipoListaGestion tlg, string mensaje) { ListaGestion lg = new ListaGestion { TipoLista = tlg, Descripcion = "RESULTADO:" + mensaje, FchCreacion = Fechas.GetOkDate(DateTime.Now), Nombre = string.Format("{0}-{1:yyMMddHHmmss}", tlg.Nombre.Replace(" ", "").Substring(0, 10), DateTime.Now) }; lg.save(); return lg; }
/// <summary> /// Este método inserta una gestion en la tabla temporal del proceso /// de generación de listas. Esta tabla guarda las gestiones generadas /// durante un proceso, las cuales sond escargadas al finalizar el mismo /// a la tabla Gestión. /// </summary> public static void InsertarTemporal(string cuentaId, ListaGestion lg, long orden, string gestor, Parametro tipoGestion) { try { string sql = "insert into tempgenlis "; sql += "(tgl_orden,tgl_tipo,tgl_estado,tgl_cuenta,tgl_lista,tgl_fechaalta,tgl_gestor)"; sql += " values (" + orden + ", '"; sql += tipoGestion.Id + "', '" + (gestor.Equals("null") ? _creada.Id : _asignada.Id) + "', '"; sql += cuentaId + "', '" + lg.Id + "', getdate(), " + gestor + ")"; long res = Persistencia.EjecutarSqlDML(sql, Persistencia.Controlador.CadenaConexion); if (res < 1) throw new AppErrorException("ERROR-INSERT-GESTION-TEMP", cuentaId); } catch (Exception e) { Sistema.Controlador.logear("ERROR-GENERACION-GESTION", ENivelMensaje.ERROR, e.ToString()); } }
/// <summary> /// Este método descarta todas las gestiones no asignadas de una lista determinada. /// </summary> public static string DescartarGestiones(ListaGestion lista) { Sistema.Controlador.logear("JOBRUN-DEL-GES-LISTA", ENivelMensaje.INFORMACION, lista.ToString()); string sql = "delete from gestion" + " where ges_usuario is null" + " and ges_estado = '" + _creada.Id + "'" + " and ges_lista = '" + lista.Id + "'"; long res = Persistencia.EjecutarSqlDML(sql, Persistencia.Controlador.CadenaConexion); Sistema.Controlador.logear("GENERICO",ENivelMensaje.INFORMACION, "Descarto " + res + " gestiones creadas de Lista: " + lista.ToString()); sql = "delete from gestion" + " where ges_estado = '" + _asignada.Id + "'" + " and ges_resultado is null" + " and ges_resultadodesc is null" + " and ges_fechainicio = '" + Fechas.FechaNull + "'" + " and ges_lista = '" + lista.Id + "'"; long res2 = Persistencia.EjecutarSqlDML(sql, Persistencia.Controlador.CadenaConexion); Sistema.Controlador.logear("GENERICO",ENivelMensaje.INFORMACION, "Descarto " + res2 + " gestiones asignadas de Lista: " + lista.ToString()); sql = "update cuenta" + " set cta_listaasignada = null" + " where cta_listaasignada = '" + lista.Id + "'" + " and not exists (select 1 " + " from gestion " + " where ges_cuenta = cta_id " + " and ges_estado <> '" + _finalizada.Id + "'" + " and ges_fechabaja = '" + Fechas.FechaNull + "'" + " and ges_lista = '" + lista.Id + "')"; long res3 = Persistencia.EjecutarSqlDML(sql, Persistencia.Controlador.CadenaConexion); Sistema.Controlador.logear("GENERICO", ENivelMensaje.INFORMACION, "Desasocio " + res3 + " Cuentas asignadas a la Lista: " + lista.ToString()); return (" **DESCARTADA** (eliminó " + res + "/" + res2 + " gestiones y actualizó " + res3 + " cuentas)"); }