// Modificar o actualizar perfil existente public int ModificarPerfil(EPerfil perfil) { SqlCommand comando = CrearComandoProc("CON_PerfilModificar"); comando.Parameters.AddWithValue("@IdPerfil", perfil.IdPerfil); comando.Parameters.AddWithValue("@NuevoNombre", perfil.Nombre); comando.Parameters.AddWithValue("@Descripcion", perfil.Descripcion); comando.Parameters.AddWithValue("@AgregarPerfil", perfil.RegistrarPerfil); comando.Parameters.AddWithValue("@EliminarPerfil", perfil.EliminarPerfil); comando.Parameters.AddWithValue("@ModificarPerfil", perfil.ModificarPerfil); comando.Parameters.AddWithValue("@VerDetallesPerfil", perfil.VerDetallesPerfil); comando.Parameters.AddWithValue("@AgregarUsuario", perfil.RegistrarUsuario); comando.Parameters.AddWithValue("@EliminarUsuario", perfil.EliminarUsuario); comando.Parameters.AddWithValue("@ModificarUsuario", perfil.ModificarUsuario); comando.Parameters.AddWithValue("@VerDetallesUsuario", perfil.VerDetallesUsuario); comando.Parameters.AddWithValue("@VerBitacora", perfil.VerBitacora); comando.Parameters.AddWithValue("@RegistrarOferta", perfil.RegistrarOferta); comando.Parameters.AddWithValue("@EliminarOferta", perfil.EliminarOferta); comando.Parameters.AddWithValue("@ModificarOferta", perfil.ModificarOferta); comando.Parameters.AddWithValue("@VerDetallesOferta", perfil.VerDetallesOferta); comando.Parameters.AddWithValue("@CambiarEstadoOferta", perfil.CambiarEstadoOferta); comando.Parameters.AddWithValue("@RegistrarCurso", perfil.RegistrarCurso); comando.Parameters.AddWithValue("@EliminarCurso", perfil.EliminarCurso); comando.Parameters.AddWithValue("@ModificarCurso", perfil.ModificarCurso); comando.Parameters.AddWithValue("@VerDetallesCurso", perfil.VerDetallesCurso); comando.Parameters.AddWithValue("@CambiarEstadoCurso", perfil.CambiarEstadoCurso); comando.Parameters.AddWithValue("@MatriculaPres", perfil.MatriculaPres); comando.Parameters.AddWithValue("@CambiarEstadoPart", perfil.CambiarEstadoPart); comando.Parameters.AddWithValue("@ImpComprobante", perfil.ImprimirComprobante); return EjecutarComando(comando); }
// Eliminar perfil public bool EliminarPerfil(EPerfil perfil) { try { if (perfilDAL.EliminarPerfil(perfil.IdPerfil) != 0) { // Notificar cambio a bitácora EBitacora entrada = new EBitacora(); entrada.LoginUsuario = perfil.LoginUsuario; entrada.Accion = "Eliminar perfil"; entrada.TipoEvento = "Eliminar"; entrada.Descripcion = "Se ha eliminado la informacion del perfil '" + perfil.Nombre + "'."; entrada.Entidad = perfil.Nombre; new ReporteNeg().RegistrarBitacora(entrada); return true; } else { return false; } } catch { return false; } }
/// <summary> /// Eliminar el perfil seleccionado en la tabla /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnEliminarPerfil_Click(object sender, EventArgs e) { try { if (GridPerfil.SelectedRows.Count != 0) { DataGridViewRow row = GridPerfil.SelectedRows[0]; string nombrePerfil = row.Cells["Nombre"].Value.ToString(); int idPerfil = int.Parse(row.Cells["ID"].Value.ToString()); DialogResult dialogResult = MessageBox.Show("¿Desea eliminar el perfil seleccionado?", "Confirmación", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { if (this.sesion.NombrePerfil != row.Cells["Nombre"].Value.ToString()) { EPerfil del = new EPerfil(); del.LoginUsuario = sesion.Login; del.IdPerfil = idPerfil; del.Nombre = nombrePerfil; if (new PerfilNeg().EliminarPerfil(del)) { MessageBox.Show("El perfil '" + nombrePerfil + "' se eliminó " + "exitosamente.", "Éxito"); CargarTablaPerfiles("", ""); } else { MessageBox.Show("No se ha podido eliminar el perfil '" + nombrePerfil + "'.", "Imposible continuar"); } } else { MessageBox.Show("No puede eliminar su propio perfil.", "Error"); } } } } catch (Exception ex) { MainForm.NotificarExcepcion("CU CON005", ex); } }
/// <summary> /// Registrar un perfil si la validación resulta exitosa /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnRegistrar_Click(object sender, EventArgs e) { try { if (sesion.permisos.RegistrarPerfil) { EPerfil nuevo = new EPerfil(); nuevo.Nombre = txtbNombre.Text; nuevo.Descripcion = txtbDescripcion.Text; nuevo.RegistrarPerfil = NdAgregarPerfil.Checked; nuevo.EliminarPerfil = NdEliminarPerfil.Checked; nuevo.ModificarPerfil = NdModificarPerfil.Checked; nuevo.VerDetallesPerfil = NdVerDetallesPerfil.Checked; nuevo.RegistrarUsuario = NdAgregarUsuario.Checked; nuevo.EliminarUsuario = NdEliminarUsuario.Checked; nuevo.ModificarUsuario = NdModificarUsuario.Checked; nuevo.VerDetallesUsuario = NdVerDetallesUsuario.Checked; nuevo.VerBitacora = NdVerDetallesBitacora.Checked; nuevo.RegistrarOferta = NdRegistrarOferta.Checked; nuevo.EliminarOferta = NdEliminarOferta.Checked; nuevo.ModificarOferta = NdModificarOferta.Checked; nuevo.VerDetallesOferta = NdVerDetallesOferta.Checked; nuevo.CambiarEstadoOferta = NdCambiarEstOferta.Checked; nuevo.RegistrarCurso = NdRegistrarCurso.Checked; nuevo.EliminarCurso = NdEliminarCurso.Checked; nuevo.ModificarCurso = NdModificarCurso.Checked; nuevo.VerDetallesCurso = NdVerDetallesCurso.Checked; nuevo.CambiarEstadoCurso = NdCambiarEstCurso.Checked; nuevo.MatriculaPres = NdMatriculaPres.Checked; nuevo.CambiarEstadoPart = NdCambiarEstPart.Checked; nuevo.ImprimirComprobante = NdImpComprobante.Checked; // Verificar si el nombre no se repite en la base de datos bool noEstaRepetido = true; DataView perfExistentes = new PerfilNeg().CargarListaPerfiles(); foreach (DataRowView dvr in perfExistentes) { if (dvr["Perfil"].Equals(nuevo.Nombre)) { noEstaRepetido = false; } } if (nuevo.ValidarDatos() && noEstaRepetido) { if (new PerfilNeg().RegistrarPerfil(nuevo)) { MessageBox.Show("El perfil '" + nuevo.Nombre + "' se registró " + "exitosamente.", "Éxito"); this.Close(); } } else { MessageBox.Show("Se ha presentado un error al registrar el perfil.", "Error"); } } else { MessageBox.Show("No se pudo registrar el perfil.", "Error"); } } catch (Exception ex) { MainForm.NotificarExcepcion("CU CON003", ex); } }
/// <summary> /// Guardar cambios efectuados sobre un perfil existente /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnGuardar_Click(object sender, EventArgs e) { try { EPerfil mod = new EPerfil(); mod.IdPerfil = idAnt; mod.Nombre = txtbNombre.Text; mod.Descripcion = txtbDescripcion.Text; mod.LoginUsuario = sesion.Login; mod.RegistrarPerfil = NdAgregarPerfil.Checked; mod.EliminarPerfil = NdEliminarPerfil.Checked; mod.ModificarPerfil = NdModificarPerfil.Checked; mod.VerDetallesPerfil = NdVerDetallesPerfil.Checked; mod.RegistrarUsuario = NdAgregarUsuario.Checked; mod.EliminarUsuario = NdEliminarUsuario.Checked; mod.ModificarUsuario = NdModificarUsuario.Checked; mod.VerDetallesUsuario = NdVerDetallesUsuario.Checked; mod.VerBitacora = NdVerDetallesBitacora.Checked; mod.RegistrarOferta = NdRegistrarOferta.Checked; mod.EliminarOferta = NdEliminarOferta.Checked; mod.ModificarOferta = NdModificarOferta.Checked; mod.VerDetallesOferta = NdVerDetallesOferta.Checked; mod.CambiarEstadoOferta = NdCambiarEstOferta.Checked; mod.RegistrarCurso = NdRegistrarCurso.Checked; mod.EliminarCurso = NdEliminarCurso.Checked; mod.ModificarCurso = NdModificarCurso.Checked; mod.VerDetallesCurso = NdVerDetallesCurso.Checked; mod.CambiarEstadoCurso = NdCambiarEstCurso.Checked; mod.MatriculaPres = NdMatriculaPres.Checked; mod.CambiarEstadoPart = NdCambiarEstPart.Checked; mod.ImprimirComprobante = NdImpComprobante.Checked; if (mod.ValidarDatos()) { if (new PerfilNeg().ModificarPerfil(mod)) { idAnt = mod.IdPerfil; MessageBox.Show(this, "El perfil '" + mod.Nombre + "' se modificó exitosamente.", "Éxito"); } else { MessageBox.Show("Se ha presentado un error al modificar el perfil.", "Error"); } // Actualizar si el usuario cambió sus permisos MainForm.EstablecerSesion(); this.Close(); } } catch (Exception ex) { // Capturar y notificar excepción MainForm.NotificarExcepcion("CU CON004", ex); } }
// Actualizar datos de perfil existente public bool ModificarPerfil(EPerfil perfil) { try { if (perfilDAL.ModificarPerfil(perfil) != 0) { // Notificar cambio a bitácora EBitacora entrada = new EBitacora(); entrada.LoginUsuario = perfil.LoginUsuario; entrada.Accion = "Modificar perfil"; entrada.TipoEvento = "Modificar"; entrada.Descripcion = "Se ha modificado el perfil '" + perfil.Nombre + "' con la siguiente información: " + GenerarStringDescripcion(perfil); entrada.Entidad = perfil.Nombre; new ReporteNeg().RegistrarBitacora(entrada); return true; } else { return false; } } catch { return false; } }
/// <summary> /// Generar string de Descripción para bitácora /// </summary> /// <param name="perfil">Entidad Perfil</param> /// <returns>string con detalles de </returns> private string GenerarStringDescripcion(EPerfil perfil) { string s = ""; s += "Nombre = '" + perfil.Nombre + "', "; s += "Descripción = '" + perfil.Descripcion + "', "; s += "Permisos = {"; if (perfil.RegistrarPerfil) s += "[Permiso = 'Registrar perfil'], "; if (perfil.ModificarPerfil) s += "[Permiso = 'Modificar perfil'], "; if (perfil.EliminarPerfil) s += "[Permiso = 'Eliminar perfil'], "; if (perfil.VerDetallesPerfil) s += "[Permiso = 'Ver detalle de perfil'], "; if (perfil.RegistrarUsuario) s += "[Permiso = 'Registrar usuario'], "; if (perfil.ModificarUsuario) s += "[Permiso = 'Modificar usuario'], "; if (perfil.EliminarUsuario) s += "[Permiso = 'Eliminar usuario'], "; if (perfil.VerDetallesUsuario) s += "[Permiso = 'Ver detalle de usuario'], "; if (perfil.VerBitacora) s += "[Permiso = 'Ver bitácora'], "; if (perfil.RegistrarOferta) s += "[Permiso = 'Registrar oferta'], "; if (perfil.EliminarOferta) s += "[Permiso = 'Eliminar oferta'], "; if (perfil.ModificarOferta) s += "[Permiso = 'Modificar oferta'], "; if (perfil.VerDetallesOferta) s += "[Permiso = 'Ver detalle de oferta'], "; if (perfil.CambiarEstadoOferta) s += "[Permiso = 'Cambiar estado de oferta'], "; if (perfil.RegistrarCurso) s += "[Permiso = 'Registrar curso'], "; if (perfil.EliminarCurso) s += "[Permiso = 'Eliminar curso'], "; if (perfil.ModificarCurso) s += "[Permiso = 'Modificar curso'], "; if (perfil.VerDetallesCurso) s += "[Permiso = 'Ver detalle de curso'], "; if (perfil.CambiarEstadoCurso) s += "[Permiso = 'Cambiar estado de curso'], "; if (perfil.MatriculaPres) s += "[Permiso = 'Matrícula presencial'], "; if (perfil.CambiarEstadoPart) s += "[Permiso = 'Cambiar estado de participante'], "; if (perfil.ImprimirComprobante) s += "[Permiso = 'Imprimir comprobante'], "; s += "}"; return s; }