/// <summary> /// Modifica los estados actuación cargados en la entidad sobre la base de datos /// </summary> /// <param name="pActuacion"></param> /// <param name="conn"></param> /// <param name="trans"></param> public static void Modificar(Entidades.Actuacion pActuacion, SQLiteConnection conn, SQLiteTransaction trans) { // Eliminamos en primera instancia todos los estados relacionados con la actuacio´n Eliminar(pActuacion, conn, trans); // Cargamos los estados que se encuentran almacenados dentro de la entidad Agregar(pActuacion, conn, trans); }
private void InicializarActuacion() { // Generamos una nueva entidad actuación entActuacion = new Entidades.Actuacion(); // Cargamos los datos correspondientes de la actuación entActuacion.Operador = App.Current.Properties["user"] as Entidades.Operador; // Generamos una nueva lista de entidades estado List <Entidades.Estado> lstEntEstado = new List <Entidades.Estado>(); // Generamos un estado y lo agregamos al listado generado Entidades.Estado entEstado = new Entidades.Estado() { Ord = 1, Detalle = "Nueva actuacion", Tipo = Logica.TipoEstado.TraerEstadoActuacionInicialNormal(), FechaHora = DateTime.Now }; // Agregamos el estado nuevo al listado de estados lstEntEstado.Add(entEstado); // Establecemos la lista como miembro de la entidad actuación entActuacion.Estados = lstEntEstado; // Vinculamos el listado de estados al DataGrid dgListadoActuacionEstados.ItemsSource = entActuacion.Estados; // Activamos la modificación de la nueva actuación en la interfaz gráfica ModificarEstado(entEstado); }
/// <summary> /// Resetea a los valores por defecto de los campos genéricos /// </summary> public void ResetearCamposActuacion() { txtNumActuacion.Text = ""; txtRemedy.Text = ""; cboGrupos.ItemsSource = null; cboTipoActuacion.ItemsSource = null; dgListadoActuacionEstados.ItemsSource = null; entActuacion = null; }
/// <summary> /// Modifica los estados de actuación en la base de datos /// Como las actuaciones relacionadas con asuntos pueden eliminarse los estados, y esto afecta a las actuaciones, se deben eliminar en primera instancia las actuaciones relacionadas y /// </summary> /// <param name="pAsunto"></param> /// <param name="conn"></param> /// <param name="trans"></param> public static void Modificar(Entidades.Asunto pAsunto, SQLiteConnection conn, SQLiteTransaction trans) { // Disponemos la variable de actuación separada para mejorar la legibilidad del código Entidades.Actuacion pActuacion = pAsunto.Actuacion; // Tenemos que recolectar de la base de datos las actuaciones relacionadas con el asunto, para que asi podamos eliminarlas y poder hacer el ingreso sin dejar actuaciones huerfanas Eliminar(pAsunto, conn, trans); // Se agrega las actuaciones modificadas Agregar(pAsunto, conn, trans); }
/// <summary> /// Procedimiento que elimina los estados de actuación almacenados en la base de datos /// </summary> /// <param name="pActuacion"></param> /// <param name="conn"></param> /// <param name="trans"></param> public static void Eliminar(Entidades.Actuacion pActuacion, SQLiteConnection conn, SQLiteTransaction trans) { // Cadena de caracteres que se utilizará para realizar la baja de estados string sCmdEliminarEstados = "DELETE FROM actuacion_estados where numero=@Numero and operador=@Operador"; // Comando que ejecutará la tarea de eliminación using (SQLiteCommand cmdEliminarEstados = new SQLiteCommand(sCmdEliminarEstados, conn, trans)) { // Parametrizamos el comando cmdEliminarEstados.Parameters.Agregar("@Numero", pActuacion.Numero); cmdEliminarEstados.Parameters.Agregar("@Operador", pActuacion.Operador.UserName); // Ejecutamos el comando cmdEliminarEstados.ExecuteNonQuery(); } }
/// <summary> /// Procesa la baja de una o varias actuaciones /// </summary> /// <param name="pAsunto"></param> /// <param name="conn"></param> /// <param name="trans"></param> public static void Eliminar(Entidades.Asunto pAsunto, SQLiteConnection conn, SQLiteTransaction trans) { // Parametrizamos el string que se utilizará para eliminar la actuación // Recolectamos los números de actuacion para poder eliminarlos también de actuaciones estados string sConsultaActuaciones = "SELECT numero FROM actuacion WHERE asunto_relacionado=@Asunto and operador=@Operador"; // Generamos un comando para realizar la lectura total de actuaciones relacionadas con el asunto using (SQLiteCommand cmdEliminarActuacion = new SQLiteCommand(sConsultaActuaciones, conn, trans)) { // Parametrizamos la consulta cmdEliminarActuacion.Parameters.Agregar("@Asunto", pAsunto.Numero); cmdEliminarActuacion.Parameters.Agregar("@Operador", pAsunto.Oper.UserName); // Ejecutamos el lector relacionado al comando using (SQLiteDataReader rdrActRelacionadas = cmdEliminarActuacion.ExecuteReader()) { // Generamos un listado de actuaciones donde almacenaremos los resultados recolectados List <Entidades.Actuacion> lstAct = new List <Entidades.Actuacion>(); // Leemos los resultados obtenidos while (rdrActRelacionadas.Read()) { // Generamos una nueva entidad de actuacion Entidades.Actuacion entAct = new Entidades.Actuacion() { Numero = rdrActRelacionadas["numero"].ToString(), Operador = pAsunto.Oper }; // Agregamos la entidad al listado lstAct.Add(entAct); } // Recorremos el listado de actuaciones foreach (Entidades.Actuacion entAct in lstAct) { // Eliminamos cada una de los estados de actuación relacionados EstadoActuacion.Eliminar(entAct, conn, trans); } } } string sCmdEliminarActuacion = "DELETE FROM actuacion where asunto_relacionado=@Numero and operador=@Operador"; // Generamos un comando que permitirá eliminar la actuación de la base de datos using (SQLiteCommand cmdEliminarActuacion = new SQLiteCommand(sCmdEliminarActuacion, conn, trans)) { // Parametrizamos la consulta cmdEliminarActuacion.Parameters.Agregar("@Numero", pAsunto.Numero); cmdEliminarActuacion.Parameters.Agregar("@Operador", pAsunto.Oper.UserName); // Ejecutamos el comando cmdEliminarActuacion.ExecuteNonQuery(); } }
/// <summary> /// Trae una actuación desde la base de datos /// </summary> /// <param name="pAsunto"></param> /// <param name="conn"></param> public static Entidades.Actuacion TraerActuaciones(Entidades.Asunto pAsunto, SQLiteConnection conn) { // Generamos el listado que luego devolveremos Entidades.Actuacion entActuacion = null; // Preparamos la cadena de caracteres para que sea usada en la consulta string strCmdConsultaActuacion = "SELECT numero, tipo, remedy_relacionado, grupo_asignado FROM actuacion WHERE asunto_relacionado=@AsuntoRelacionado and operador=@Operador"; // Disponemos del comando que ejecutara la consulta using (SQLiteCommand cmdConsultaActuacion = new SQLiteCommand(strCmdConsultaActuacion, conn)) { // Parametrizamos la consulta a ejecutar cmdConsultaActuacion.Parameters.Agregar("@AsuntoRelacionado", pAsunto.Numero); cmdConsultaActuacion.Parameters.Agregar("@Operador", pAsunto.Oper.UserName); // Ejecutamos el lector de datos sobre el comando generado using (SQLiteDataReader rdrActuacion = cmdConsultaActuacion.ExecuteReader()) { // Realizamos lectura sobre todos los resultados if (rdrActuacion.Read()) { // Generamos la entidad a agregar en el listado entActuacion = new Entidades.Actuacion() { Numero = rdrActuacion["numero"].ToString(), Grupo = new Entidades.GrupoResolutor() { Id = Convert.ToInt32(rdrActuacion["grupo_asignado"]) }, Tipo = new Entidades.ActuacionTipo() { Id = Convert.ToInt32(rdrActuacion["tipo"]) }, RemedyRelacionado = rdrActuacion["remedy_relacionado"].ToString() }; entActuacion.Operador = pAsunto.Oper; // Traemos los estados de actuación y lo cargamos sobre la entidad entActuacion.Estados = EstadoActuacion.TraerSegunActuacion(entActuacion, conn); } } } // Devolvemos el listado procesado return(entActuacion); }
/// <summary> /// Trae un listado completo de estados a través de una actuación /// </summary> /// <param name="entAct"></param> /// <param name="conn"></param> /// <returns></returns> public static List <Entidades.Estado> TraerSegunActuacion(Entidades.Actuacion entAct, SQLiteConnection conn) { // Generamos el listado de estados a devolver List <Entidades.Estado> lstEstados = new List <Entidades.Estado>(); // Generamos la cadena de caracteres que se utilizara en la consulta string strCmdEstadosActuacion = "SELECT ord, fechaHora, tipo, detalle FROM actuacion_estados WHERE numero=@Numero and operador=@Operador"; // Generamos el comando a ejecutar using (SQLiteCommand cmdEstadosActuacion = new SQLiteCommand(strCmdEstadosActuacion, conn)) { // Parametrizamos los comandos antes de ejecutar el lector cmdEstadosActuacion.Parameters.Agregar("@Numero", entAct.Numero); cmdEstadosActuacion.Parameters.Agregar("@Operador", entAct.Operador.UserName); // Ejecutamos el lector de estados using (SQLiteDataReader rdrLectorEstados = cmdEstadosActuacion.ExecuteReader()) { // Leemo todos los registros recolectados while (rdrLectorEstados.Read()) { // Generamos la entidad a agregar al listado de estados Entidades.Estado entEstado = new Entidades.Estado() { Ord = Convert.ToInt32(rdrLectorEstados["ord"]), FechaHora = Convert.ToDateTime(rdrLectorEstados["fechaHora"]), Detalle = rdrLectorEstados["detalle"].ToString(), Tipo = new Entidades.TipoEstado() { Id = Convert.ToInt32(rdrLectorEstados["tipo"]) } }; // Agregamos el estado al listado de estados lstEstados.Add(entEstado); } } } // Devolvemos el listado luego de ser procesado return(lstEstados); }
/// <summary> /// Agrega los estados de la actuación a la base de datos /// </summary> /// <param name="pActuacion"></param> /// <param name="conn"></param> /// <param name="trans"></param> public static void Agregar(Entidades.Actuacion pActuacion, SQLiteConnection conn, SQLiteTransaction trans) { // Preparamos la cadena que se usara para la inserción String sAgregarEstadoActuacion = "INSERT INTO actuacion_estados (numero, operador, fechaHora, detalle, ord, tipo) VALUES (@Numero, @Operador, @FechaHora, @Detalle, @Ord, @Tipo)"; using (SQLiteCommand cmdAgregarEstadoAct = new SQLiteCommand(sAgregarEstadoActuacion, conn, trans)) { // Parametrizamos los valores que se repetiran en cada inserción a la base cmdAgregarEstadoAct.Parameters.Agregar("@Numero", pActuacion.Numero); cmdAgregarEstadoAct.Parameters.Agregar("@Operador", pActuacion.Operador.UserName); // Recorremos los estados almacenados foreach (var estado in pActuacion.Estados) { // Parametrizamos los detalles especificos de cada orden cmdAgregarEstadoAct.Parameters.Agregar("@Ord", estado.Ord); cmdAgregarEstadoAct.Parameters.Agregar("@Tipo", estado.Tipo.Id); cmdAgregarEstadoAct.Parameters.Agregar("@FechaHora", estado.FechaHora); cmdAgregarEstadoAct.Parameters.Agregar("@Detalle", estado.Detalle); // Una vez cargado todos los parametros procedemos a ejecutar el comando cmdAgregarEstadoAct.ExecuteNonQuery(); } } }
/// <summary> /// Gestiona el alta de una actuación en la base de datos /// </summary> /// <param name="pActuacion"></param> public static void Agregar(Entidades.Asunto pAsunto, SQLiteConnection conn, SQLiteTransaction trans) { // Preparamos la cadena de caracteres que se utilizará para realizar el ingreso String strCmdAgregarActuacion = "INSERT INTO actuacion (numero, asunto_relacionado, operador, tipo, remedy_relacionado, grupo_asignado) values(@Numero, @AsuntoRelacionado, @Operador, @Tipo, @RemedyRelacionado, @GrupoAsignado)"; // Disponemos de forma simplificada la variable actuación Entidades.Actuacion pActuacion = pAsunto.Actuacion; // Preparamos el comando a ejecutar using (SQLiteCommand cmdAgregarActuacion = new SQLiteCommand(strCmdAgregarActuacion, conn, trans)) { // Parametrizamos los valores recibidos cmdAgregarActuacion.Parameters.Agregar("@Numero", pActuacion.Numero); cmdAgregarActuacion.Parameters.Agregar("@AsuntoRelacionado", pAsunto.Numero); cmdAgregarActuacion.Parameters.Agregar("@Operador", pActuacion.Operador.UserName); cmdAgregarActuacion.Parameters.Agregar("@Tipo", pActuacion.Tipo.Id); cmdAgregarActuacion.Parameters.Agregar("@RemedyRelacionado", pActuacion.RemedyRelacionado); cmdAgregarActuacion.Parameters.Agregar("@GrupoAsignado", pActuacion.Grupo.Id); // Ejecutamos el comando cmdAgregarActuacion.ExecuteNonQuery(); } // Agregamos los estados de actuación a la base de datos EstadoActuacion.Agregar(pActuacion, conn, trans); }
public void CargarActuacion(Entidades.Actuacion entAct) { paginaActuacion.ActCargada = entAct; }