public List <BE.Usuario> GetUsuariosFamilia(BE.Familia familia) { List <BE.Usuario> listaUsuarios = new List <BE.Usuario>(); string sql = $@"SELECT u.* FROM usuario u INNER JOIN patenteusuario pu ON pu.id_usuario=u.id WHERE id_patente = {familia.id};"; var reader = _acceso.GetReader(sql); while (reader.Read()) { BE.Usuario usuario = new BE.Usuario(); usuario.id = int.Parse(reader["id"].ToString()); usuario.usuario = reader["usuario"].ToString(); usuario.contrasena = reader["contrasena"].ToString(); usuario.contador = int.Parse(reader["contador"].ToString()); usuario.estado = int.Parse(reader["estado"].ToString()); usuario.email = reader["email"].ToString(); usuario.dvh = long.Parse(reader["dvh"].ToString()); listaUsuarios.Add(usuario); } _acceso.CloseReader(reader); return(listaUsuarios); }
public ModificarFamilia(BE.Familia f) { familia = f; _permisoBll = new BLL.Permiso(); _listaAsignados = f.Hijos.ToList(); InitializeComponent(); }
private void btn_baja_Click(object sender, EventArgs e) { if (dgv_familias.SelectedRows.Count == 1) { int id_familia = Convert.ToInt32(dgv_familias.CurrentRow.Cells[0].Value); List <BE.Patente> patentes_familia = famPat_BLL.GetPatentesFamilia(id_familia); if (BLL.Services.VerificarUsoPatente(0, patentes_familia, id_familia) != 0) { BE.Familia famAinhabilitar = new BE.Familia(); famAinhabilitar.id = Convert.ToInt32(dgv_familias.CurrentRow.Cells[0].Value); familia_BLL.Delete(famAinhabilitar); this.ActualizarGrilla(); MessageBox.Show("Se inhabilitó el registro seleccionado"); bitacora_BAJA.RegistrarEnBitacora(this.usuario_logueado, DateTime.Now, "Se inhabilitó una Familia"); } else { MessageBox.Show("La operación no se puede realizar ya que viola la regla de verificación de uso de patente"); } } else { MessageBox.Show("Se debe seleccionar un registro a inhabilitar"); } }
public void GuardarFamilia(BE.Familia f) { _permisosDAL.InsertarFamilia(f); Bitacora _bitacoraBll = new Bitacora(); var usuarioRegistra = Services.SessionManager.GetInstance.Usuario; _bitacoraBll.RegistrarBitacora(usuarioRegistra, $@"Se creo la familia = {f.nombre}", 1); }
public void ListarFamiliaPatentes(BE.Familia familia) { familia.VaciarHijos(); foreach (var item in GetAll("=" + familia.id)) { familia.AgregarHijo(item); } }
private bool verificarRepeticionUsuarioPatente() { /* * VERIFICACION REGLA DE USO DE PATENTES * Validación extra para confirmar si el usuario tiene asignada x patente individualmente y por familia */ bool validacionRepeticion = false; List <BE.Patente> patentesAvalidar = new List <BE.Patente>(); //CONDICION: validación de repetición al desasociar patentes foreach (DataGridViewRow fila in dgv_patentesAsociadas.SelectedRows) { if (this.patentesUsuarioDB.Any(pu => pu.id == (int)fila.Cells[0].Value)) { BE.Patente patSeleccionada = (BE.Patente) this.patentesUsuarioDB.Where(pu => pu.id == (int)fila.Cells[0].Value).FirstOrDefault(); patentesAvalidar.Add(patSeleccionada); } } //CONDICION: validación de repetición al desasociar familia/s //1) Familias seleccionadas a validar List <BE.Familia> famSeleccionadasAValidar = new List <BE.Familia>(); foreach (DataGridViewRow fila in dgv_familiasAsociadas.SelectedRows) { if (this.familiasUsuarioDB.Any(fu => fu.id == (int)fila.Cells[0].Value)) { BE.Familia famSeleccionada = (BE.Familia) this.familiasUsuarioDB.Where(fu => fu.id == (int)fila.Cells[0].Value).FirstOrDefault(); if (famSeleccionada.activo) { famSeleccionadasAValidar.Add(famSeleccionada); } } } //2) Patentes de las familias a validar foreach (BE.Familia fam in famSeleccionadasAValidar) { foreach (BE.Patente pat in famPat_BLL.GetPatentesFamilia(fam.id)) { if (!patentesAvalidar.Any(p => p.id == pat.id)) { patentesAvalidar.Add(pat); } } } //VALIDACION DE REPETICIÓN if (BLL.Services.VerificarAsignacionRepetida((int)usuario_seleccionado.Cells[0].Value, patentesAvalidar)) { validacionRepeticion = true; } return(validacionRepeticion); }
private BE.Familia MapDataReaderFam(SqlDataReader dataReader) { BE.Familia familia = new BE.Familia(); familia.id = dataReader.GetInt32(0); familia.descripcion = dataReader.GetString(1); familia.activo = dataReader.GetBoolean(2); return(familia); }
public bool FamiliaEnUso(BE.Familia familia) { Empleado _empleadoBll = new Empleado(); var listaEmpleados = _empleadoBll.ListarEmpleados(); bool enUso = false; if (familia.Hijos.Count() != 0) { foreach (BE.Permiso patente in familia.Hijos) { foreach (BE.Empleado emp in listaEmpleados) { if (emp.estado == 1) { foreach (BE.Permiso p in emp.usuario.Permisos) { if (p.Hijos.Count == 0) { if (patente.id == p.id) { enUso = true; return(enUso); } } else { if (p.id != familia.id) { foreach (BE.Permiso pFam in p.Hijos) { if (patente.id == pFam.id) { enUso = true; return(enUso); } } } } } } } } } else { enUso = true; } return(enUso); }
private void btn_habilitar_Click(object sender, EventArgs e) { if (dgv_familias.SelectedRows.Count == 1) { BE.Familia famAhabilitar = new BE.Familia(); famAhabilitar.id = Convert.ToInt32(dgv_familias.CurrentRow.Cells[0].Value); familia_BLL.Habilitar(famAhabilitar); this.ActualizarGrilla(); MessageBox.Show("Se habilitó el registro seleccionado"); bitacora_BAJA.RegistrarEnBitacora(this.usuario_logueado, DateTime.Now, "Se habilitó una Familia"); } else { MessageBox.Show("Se debe seleccionar un registro a inhabilitar"); } }
private void btnDesasignar_Click(object sender, EventArgs e) { BE.Familia familia = lboxFamAsignadas.SelectedItem as BE.Familia; _permisoBll.FillFamilyComponents(familia); bool enUso = _permisoBll.FamiliaEnUso(familia); if (enUso) { _listaAsignados.Remove(familia); ActualizarlistAsignados(_listaAsignados); } else { MessageBox.Show("No se puede desasignar la familia ya que hay permisos que no estarian asignados"); } }
public List <BE.Familia> GetFamilias(int idUsuario) { string query = "SELECT Familia.id_familia, Familia.descripcion, Familia.activo FROM FamiliaUsuario INNER JOIN Familia ON FamiliaUsuario.id_familia = Familia.id_familia WHERE id_usuario = " + idUsuario + ""; using (SqlDataReader dataReader = helper.ExecuteReader(query)) { List <BE.Familia> familia_list = new List <BE.Familia>(); while (dataReader.Read()) { BE.Familia familiaUsuario = MapDataReaderFam(dataReader); familia_list.Add(familiaUsuario); } return(familia_list); } }
private bool validarUsoPatentesFamSeleccionadas() { /* * VALIDAR REGLA DE USO DE PATENTES * Solo para las familias que el usuario ya tenía asignadas en la DB y fueron seleccionadas */ bool validacionUsoPatente = false; //1) Familias seleccionadas a validar List <BE.Familia> famSeleccionadasAValidar = new List <BE.Familia>(); foreach (DataGridViewRow fila in dgv_familiasAsociadas.SelectedRows) { if (this.familiasUsuarioDB.Any(fu => fu.id == (int)fila.Cells[0].Value)) { BE.Familia famSeleccionada = (BE.Familia) this.familiasUsuarioDB.Where(fu => fu.id == (int)fila.Cells[0].Value).FirstOrDefault(); if (famSeleccionada.activo) { famSeleccionadasAValidar.Add(famSeleccionada); } } } //2) Patentes de las familias a validar List <BE.Patente> patentesAvalidar = new List <BE.Patente>(); foreach (BE.Familia fam in famSeleccionadasAValidar) { foreach (BE.Patente pat in famPat_BLL.GetPatentesFamilia(fam.id)) { if (!patentesAvalidar.Any(p => p.id == pat.id)) { patentesAvalidar.Add(pat); } } } //3) Validacion de la regla de uso de las patentes if (BLL.Services.VerificarUsoPatente((int)usuario_seleccionado.Cells[0].Value, patentesAvalidar, 0) != 0) { validacionUsoPatente = true; } return(validacionUsoPatente); }
private void btnEliminarFamilia_Click(object sender, EventArgs e) { int indice = (int)grillaFamilias.CurrentRow.Cells[0].Value; var listaFamilias = _permisoBLL.GetAllFamilias(); BE.Familia familia = listaFamilias.Where(i => i.id == indice).FirstOrDefault(); _permisoBLL.FillFamilyComponents(familia); try { _permisoBLL.EliminarFamilia(familia); MessageBox.Show("Familia eliminada correctamente"); } catch (Exception exp) { MessageBox.Show(exp.Message); } CargarFamilias(); }
private void btnAsignar_Click(object sender, EventArgs e) { BE.Familia familia = lboxFamDisponibles.SelectedItem as BE.Familia; int repetido = 0; foreach (BE.Familia fam in _listaAsignados) { if (fam.id.Equals(familia.id)) { repetido = 1; } } if (repetido == 0) { _listaAsignados.Add(familia); } ActualizarlistAsignados(_listaAsignados); }
public void InsertarFamilia(BE.Familia familia) { try { var sql = string.Format(@"delete from compuesto where id_familia={0};", familia.id); _acceso.ExecuteNonQuery(sql); foreach (var item in familia.Hijos) { sql = string.Format(@"insert into compuesto (id_familia,id_patente) values ({0},{1})", familia.id, item.id); _acceso.ExecuteNonQuery(sql); } } catch (Exception) { throw; } }
public IList <BE.Familia> GetAllFamilias() { string sql = @"select * from patente p where p.es_familia = 1;"; DataTable tb = _acceso.ExecuteReader(sql); var lista = new List <BE.Familia>(); foreach (DataRow row in tb.Rows) { BE.Familia c = new BE.Familia(); c.id = int.Parse(row["id"].ToString());; c.nombre = row["nombre"].ToString(); c.esFamilia = bool.Parse(row["es_familia"].ToString()) ? 1 : 0; c.dvh = long.Parse(row["dvh"].ToString()); lista.Add(c); } return(lista); }
public void LlenarUsuarioPermisos(BE.Usuario u) { string sql = string.Format(@"select p.* from PatenteUsuario up inner join patente p on up.id_patente=p.id where up.id_usuario={0};", u.id); DataTable tb = _acceso.ExecuteReader(sql); u.Permisos.Clear(); foreach (DataRow row in tb.Rows) { int idpat = int.Parse(row["id"].ToString()); string nombrepat = row["nombre"].ToString(); int esFamiliaPat = bool.Parse(row["es_familia"].ToString()) ? 1 : 0; BE.Permiso permiso; if (esFamiliaPat != 1) { permiso = new BE.Patente(); permiso.id = idpat; permiso.nombre = nombrepat; permiso.esFamilia = esFamiliaPat; u.Permisos.Add(permiso); } else { permiso = new BE.Familia(); permiso.id = idpat; permiso.nombre = nombrepat; permiso.esFamilia = esFamiliaPat; var familia = GetAll("=" + idpat); foreach (var p in familia) { permiso.AgregarHijo(p); } u.Permisos.Add(permiso); } } }
private void btnAceptar_Click(object sender, EventArgs e) { string nombreFamilia = txtNombre.Text; BE.Familia familia = new BE.Familia(); familia.nombre = nombreFamilia; foreach (BE.Patente patente in _listaAsignados) { familia.AgregarHijo(patente); } long dvh = BLL.DigitoVerificador.CalcularDV(familia, "Patente"); familia.dvh = dvh; familia.esFamilia = 1; _permisoBll.GuardarPermiso(familia); _permisoBll.GuardarFamilia(familia); var opcion = MessageBox.Show("Familia creada con exito"); if (opcion == DialogResult.OK) { CerrarVentana(); } }
public IList <BE.Permiso> GetAll(string familia) { string condicion = "is NULL"; if (!String.IsNullOrEmpty(familia)) { condicion = familia; } string sql = $@"select com2.id_familia,p.id,p.nombre, p.es_familia from compuesto com2 inner join patente p on com2.id_patente = p.id where com2.id_familia {condicion};"; var reader = _acceso.GetReader(sql); var lista = new List <BE.Permiso>(); while (reader.Read()) { int id_padre = 0; if (reader["id_familia"] != DBNull.Value) { id_padre = int.Parse(reader["id_familia"].ToString()); } int id = int.Parse(reader["id"].ToString()); string nombre = reader["nombre"].ToString(); int esFamilia = bool.Parse(reader["es_familia"].ToString()) ? 1 : 0; BE.Permiso p; if (esFamilia == 1)//usamos este campo para identificar. Solo las patentes van a tener un permiso del sistema relacionado { p = new BE.Familia(); } else { p = new BE.Patente(); } p.id = id; p.nombre = nombre; /*if (!string.IsNullOrEmpty(permiso)) * c.Permiso = (TipoPermiso)Enum.Parse(typeof(TipoPermiso), permiso);*/ p.esFamilia = esFamilia; var padre = GetPermiso(id_padre, lista); if (padre == null) { lista.Add(p); } else { padre.AgregarHijo(p); } } _acceso.CloseReader(reader); return(lista); }
public void EliminarFamilia(BE.Familia familia) { string sql = $@"DELETE FROM patente where id = {familia.id}"; _acceso.ExecuteNonQuery(sql); }
public void FillFamilyComponents(BE.Familia f) { _permisosDAL.ListarFamiliaPatentes(f); }
public void EliminarFamilia(BE.Familia familia) { var listaFamilias = GetAllFamilias(); var listaPatentes = GetAllPatentes(); Empleado _empleadoBll = new Empleado(); var listaEmpleados = _empleadoBll.ListarEmpleados(); HashSet <BE.Permiso> permisosUtilizados = new HashSet <BE.Permiso>(); DAL.Usuario _usuarioDal = new DAL.Usuario(); //List<BE.Usuario> listaUsuarios = _usuarioDal.GetUsuariosFamilia(familia); foreach (BE.Permiso p in listaPatentes) {/* * foreach (BE.Permiso fam in listaFamilias) * { * if(familia.id != fam.id) * { * foreach(BE.Permiso pFam in fam.Hijos) * { * if(p.id == pFam.id) * { * permisosUtilizados.Add(p); * } * } * } * }*/ foreach (BE.Empleado emp in listaEmpleados) { foreach (BE.Permiso pEmp in emp.usuario.Permisos) { if (pEmp.Hijos.Count == 0) { if (p.id == pEmp.id) { permisosUtilizados.Add(p); } } else { if (pEmp.id != familia.id) { foreach (BE.Permiso phijo in pEmp.Hijos) { if (p.id == phijo.id) { permisosUtilizados.Add(p); } } } } } } } /*if (listaUsuarios.Count > 0) * { * throw new Exception("La familia tiene usuarios asignados, por favor desasigne la familia del o los usuarios y vuelva a intentar"); * }*/ if (listaPatentes.Count() == permisosUtilizados.Count()) { familia.VaciarHijos(); GuardarFamilia(familia); _permisosDAL.EliminarFamilia(familia); } else { throw new Exception("No se puede borrar la familia porque hay permisos que quedarian sin utilizar"); } }