Exemple #1
0
        public Boolean tieneAlgunaPatenteSinOtraAsignacion(Familia familia)
        {
            try
            {
                List <Patente> lista = new List <Patente>();
                string         query = "select P.* from patente P inner join familia_patente FP on FP.id_familia=@id_familia and FP.id_patente=p.id";
                Dictionary <string, object> paramList = new Dictionary <string, object>();
                paramList.Add("@id_familia", familia.Id);

                DataTable list = sqlHelper.ExecuteQueryWithParamsRetDataTable(query, paramList);

                foreach (DataRow row in list.Rows)
                {
                    Patente patente = new Patente
                    {
                        Id     = Convert.ToInt32(row["id"]),
                        Nombre = Convert.ToString(row["nombre"])
                    };
                    lista.Add(patente);
                }

                foreach (Patente patente in lista)
                {
                    query = "select count(*) from (select * from usuario_patente where id_patente=" + patente.Id +
                            " union " +
                            "select * from usuario_familia " +
                            "where id_familia in (" +
                            "select distinct id_familia from familia_patente where id_patente != " + patente.Id + " and id_familia!=" + familia.Id +
                            ")) UFC";
                    if (sqlHelper.ExecuteScalar(query) < 1)
                    {
                        return(true);
                    }
                }
                return(false);
            }
            catch (ProEasyException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new ProEasyException(1, ex.Message);
            }
        }
Exemple #2
0
        public void desasignarPatente(Familia familia, Patente patente)
        {
            try
            {
                string query = "DELLETE FROM FAMILIA_PATENTE WHERE id_familia = @id_familia AND id_patente = @id_patente";

                Dictionary <string, object> paramList = new Dictionary <string, object>();
                paramList.Add("@id_familia", familia.Id);
                paramList.Add("@id_patente", patente.Id);

                sqlHelper.ExecuteQueryWithParams(query, paramList);
            }
            catch (ProEasyException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new ProEasyException(1, ex.Message);
            }
        }
Exemple #3
0
        public void asignarPatente(Familia familia, Patente patente)
        {
            try
            {
                string query = "INSERT INTO FAMILIA_PATENTE (id_familia,id_patente,dvh) VALUES (@id_familia,@id_patente,@dvh)";

                Dictionary <string, object> paramList = new Dictionary <string, object>();
                paramList.Add("@id_familia", familia.Id);
                paramList.Add("@id_patente", patente.Id);
                paramList.Add("@dvh", null);

                sqlHelper.ExecuteQueryWithParams(query, paramList);
            }
            catch (ProEasyException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new ProEasyException(1, ex.Message);
            }
        }
Exemple #4
0
        public bool tieneFamiliasRelacionadasConUsuarios(Patente p, long idFamilia)
        {
            string q = "select count(*) from familia F left join familia_patente FP on FP.id_familia = F.id and FP.id_patente = " + p.Id + " where F.id != " + idFamilia;

            return(sqlHelper.ExecuteScalar(q) > 0);
        }
Exemple #5
0
        public List <Componente> Listar(string familia)
        {
            Abrir();
            var where = "is NULL";

            if (!String.IsNullOrEmpty(familia))
            {
                where = familia;
            }

            var consulta = $@"with recursivo as (
                        select sp2.Id_padre, sp2.Id_hijo  from PermisoPermiso SP2
                        where sp2.Id_padre {where} --acá se va variando la familia que busco
                        UNION ALL 
                        select sp.Id_padre, sp.Id_hijo from PermisoPermiso sp 
                        inner join recursivo r on r.Id_hijo= sp.Id_padre
                        )
                        select r.Id_padre,r.Id_hijo,p.Id_permiso,p.Nombre, p.Tipo
                        from recursivo r 
                        inner join permiso p on r.Id_hijo = p.Id_permiso 
						
                        ";

            var reader = acceso.Read(consulta);

            var lista = new List <Componente>();

            while (reader.Read())
            {
                int id_padre = 0;
                if (reader["Id_padre"] != DBNull.Value)
                {
                    id_padre = reader.GetInt32(reader.GetOrdinal("Id_padre"));
                }

                var id      = reader.GetInt32(reader.GetOrdinal("Id_permiso"));
                var nombre  = reader.GetString(reader.GetOrdinal("Nombre"));
                var patente = reader.GetString(reader.GetOrdinal("Tipo"));


                Componente c;

                if (patente == "familia")
                {
                    c = new Familia();
                }
                else
                {
                    c = new Patente();
                }

                c.ID     = id;
                c.Nombre = nombre;

                var padre = GetComponent(id_padre, lista);

                if (padre == null)
                {
                    lista.Add(c);
                }
                else
                {
                    padre.AgregarHijos(c);
                }
            }
            Cerrar();
            return(lista);
        }