Esempio n. 1
0
        public int Eliminar(Entity.Familia familia)
        {
            try
            {
                familia.Nombre    = Util.Encrypt.Encriptar(familia.Nombre, (int)TipoEncriptacion.Reversible);
                familia.Eliminado = true;

                if (!this.ValidarEliminacionFamiliaPorPatentes(familia.Id))
                {
                    throw new Exception("Por normas de control interno no puede quedar zona de nadie. Hay patentes en la familia que NO contienen otra asignacion.");
                }

                using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions {
                    IsolationLevel = IsolationLevel.ReadCommitted
                }))
                {
                    int result = repository.Eliminar(familia, dv.CalcularDVH(this.ConcatenarRegistro(familia)));

                    dv.ActualizarDVV("Permiso");

                    scope.Complete();

                    return(result);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 2
0
        public Entity.Familia Consultar(string nombre)
        {
            string sqlCommand = @"SELECT * FROM permiso p WHERE p.Compuesto = 1 AND p.Eliminado = 0 AND p.Nombre = " + "'" + nombre + "'";

            DataTable tabla = db.ExecuteNonQuery(sqlCommand);

            if (tabla.Rows.Count == 0)
            {
                return(null);
            }

            Entity.Familia familia = new Entity.Familia
            {
                Id          = int.Parse(tabla.Rows[0]["Id"].ToString()),
                Nombre      = Util.Encrypt.Desencriptar(tabla.Rows[0]["Nombre"].ToString()),
                Compuesto   = (bool)tabla.Rows[0]["Compuesto"],
                Eliminado   = (bool)tabla.Rows[0]["Eliminado"],
                Descripcion = tabla.Rows[0]["Descripcion"].ToString(),
                DVH         = tabla.Rows[0]["DVH"].ToString()
            };

            this.ConsultarPatentesPorFamilia(familia);

            return(familia);
        }
Esempio n. 3
0
        public List <Entity.Familia> Listar()
        {
            List <Entity.Familia> familias = new List <Entity.Familia>();
            string sqlCommand = @"SELECT * FROM permiso p WHERE p.Compuesto = 1 AND p.Eliminado = 0";

            DataTable tabla = db.ExecuteNonQuery(sqlCommand);

            foreach (DataRow row in tabla.Rows)
            {
                Entity.Familia r = new Entity.Familia
                {
                    Id          = int.Parse(row["Id"].ToString()),
                    Nombre      = Util.Encrypt.Desencriptar(row["Nombre"].ToString()),
                    Compuesto   = (bool)row["Compuesto"],
                    Eliminado   = (bool)row["Eliminado"],
                    Descripcion = row["Descripcion"].ToString(),
                    DVH         = row["DVH"].ToString()
                };

                this.ConsultarPatentesPorFamilia(r);

                familias.Add(r);
            }

            return(familias);
        }
Esempio n. 4
0
        public int Alta(Entity.Familia familia)
        {
            try
            {
                bool exiteFamilia = this.ValidarFamilia(familia.Nombre);

                if (exiteFamilia)
                {
                    throw new Exception("La familia ya se encuentra dado de alta.");
                }

                familia.Nombre = Util.Encrypt.Encriptar(familia.Nombre, (int)TipoEncriptacion.Reversible);
                //Generacion DVH
                familia.DVH = dv.CalcularDVH(this.ConcatenarRegistro(familia));

                using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions {
                    IsolationLevel = IsolationLevel.ReadCommitted
                }))
                {
                    int result = repository.Alta(familia);

                    dv.ActualizarDVV("Permiso");

                    scope.Complete();

                    return(result);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 5
0
        public int Alta(Entity.Familia familia)
        {
            string sqlCommand = @"INSERT INTO permiso (NOMBRE, DVH, COMPUESTO, ELIMINADO, DESCRIPCION)
                                VALUES (" + "'" + familia.Nombre + "'" + "," + "'" + familia.DVH + "'" + "," + Convert.ToInt16(familia.Compuesto) + "," +
                                +Convert.ToInt16(familia.Eliminado) + "," + "'" + familia.Descripcion + "'" + ")";

            return(db.ExecuteSqlCommand(sqlCommand));
        }
Esempio n. 6
0
        public int ConsultarUsuariosAsignados(Entity.Familia familia, int idUsuario)
        {
            string sqlCommand = @"SELECT COUNT(u.id) FROM usuario_permiso up
                                INNER JOIN usuario u ON u.id = up.id_usuario
                                INNER JOIN permiso p ON p.id = up.id_permiso
                                WHERE p.Eliminado = 0 AND u.id <> " + idUsuario + " AND p.id =" + familia.Id;

            return(Convert.ToInt32(db.ExecuteScalar(sqlCommand)));
        }
Esempio n. 7
0
        private bool ValidarAsignacion(Entity.Familia familia, string nombrePatente)
        {
            if (familia.Permisos == null)
            {
                return(false);
            }

            return(familia.Permisos.Any(p => p.Nombre == nombrePatente));
        }
Esempio n. 8
0
        public int Desasignar(Entity.Familia familia, Entity.Patente patente)
        {
            try
            {
                if (!ValidarDesasignacionPatente(familia.Id, patente.Id))
                {
                    throw new Exception("Por normas de control interno no puede quedar zona de nadie. La patente NO contiene otra asignacion.");
                }

                return(repository.DesasignarPatente(familia.Id, patente.Id));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 9
0
        public int Asignar(Entity.Familia familia, Entity.Patente patente)
        {
            try
            {
                bool contienePatente = this.ValidarAsignacion(familia, patente.Nombre);

                if (contienePatente)
                {
                    throw new Exception("El usuario ya contiene la familia asignada.");
                }

                return(repository.AsignarPatente(familia.Id, patente.Id));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 10
0
        public int Asignar(Entity.Usuario usuario, string nombre)
        {
            try
            {
                bool contieneFamilia = this.ValidarAsignacion(usuario, nombre);

                if (contieneFamilia)
                {
                    throw new Exception("El usuario ya contiene la familia asignada.");
                }

                Entity.Familia familia = this.Consultar(nombre);

                return(repository.Asignar(familia.Id, usuario.Id));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 11
0
        private bool ValidarEliminacionFamiliaPorPatentes(int idFamilia)
        {
            Service.Familia familiaService = new Service.Familia();
            Service.Patente patenteService = new Service.Patente();

            Entity.Familia familia = familiaService.Listar().FirstOrDefault(f => f.Id == idFamilia);

            if (familia.Permisos.Any())
            {
                foreach (Entity.Patente patente in familia.Permisos)
                {
                    if (patenteService.ObtenerUsuariosAsignadosPorPatenteYFamilia(patente.Id, familia.Id) == 0 && patenteService.ObtenerUsuariosAsignados(patente.Id) == 0)
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
Esempio n. 12
0
        public void ConsultarPatentesPorFamilia(Entity.Familia familia)
        {
            string sqlCommand = @"SELECT c.* FROM permiso_compuesto pc
                                 INNER JOIN permiso p on p.Id = pc.Id_Permiso
                                 INNER JOIN permiso c on c.Id = pc.Id_Compuesto
                                 WHERE c.Eliminado = 0 AND p.id = " + familia.Id;

            DataTable tablaPatentes = db.ExecuteNonQuery(sqlCommand);

            foreach (DataRow row in tablaPatentes.Rows)
            {
                familia.Agregar(new Entity.Patente
                {
                    Id          = int.Parse(row["Id"].ToString()),
                    Nombre      = Util.Encrypt.Desencriptar(row["Nombre"].ToString()),
                    Compuesto   = (bool)row["Compuesto"],
                    Eliminado   = (bool)row["Eliminado"],
                    Descripcion = row["Descripcion"].ToString(),
                    DVH         = row["DVH"].ToString()
                });
            }
        }
Esempio n. 13
0
        public int Modificar(Entity.Familia familia)
        {
            try
            {
                familia.Nombre = Util.Encrypt.Encriptar(familia.Nombre, (int)TipoEncriptacion.Reversible);

                using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions {
                    IsolationLevel = IsolationLevel.ReadCommitted
                }))
                {
                    int result = repository.Modificar(familia, dv.CalcularDVH(this.ConcatenarRegistro(familia)));

                    dv.ActualizarDVV("Permiso");

                    scope.Complete();

                    return(result);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 14
0
        public int Modificar(Entity.Familia familia, string DVH)
        {
            string sqlCommand = @"UPDATE permiso SET DVH=" + "'" + DVH + "'" + "," + "Descripcion=" + "'" + familia.Descripcion + "'" + " WHERE Id=" + familia.Id;

            return(db.ExecuteSqlCommand(sqlCommand));
        }
Esempio n. 15
0
        public int Eliminar(Entity.Familia familia, string DVH)
        {
            string sqlCommand = @"UPDATE permiso SET DVH=" + "'" + DVH + "'" + "," + "Eliminado=" + Convert.ToInt16(familia.Eliminado) + " WHERE Id=" + familia.Id;

            return(db.ExecuteSqlCommand(sqlCommand));
        }
Esempio n. 16
0
 private string ConcatenarRegistro(Entity.Familia familia)
 {
     return(familia.Nombre + familia.Compuesto + familia.Eliminado + familia.Descripcion);
 }
Esempio n. 17
0
 public int ObtenerUsuariosAsignados(Entity.Familia familia, int idUsuario)
 {
     return(this.repository.ConsultarUsuariosAsignados(familia, idUsuario));
 }