Ejemplo n.º 1
0
        public bool VerificarPermissaoPorSubUnidade(int idPessoa, List <int> SubUnidade, string descricaoPermissao, string pagina)
        {
            Atividade oAtividade = Atividade.FindFirst(Expression.InsensitiveLike("Url", "%" + pagina + "%"));

            //Primeiro verifica se a sub-unidade de exercicio tem a permissão desejada
            DetachedCriteria dc = DetachedCriteria.For(typeof(AtividadeUnidadeExercicioPermissao));

            dc.Add(Expression.In("UnidadeExercicio.Id", SubUnidade));
            dc.Add(Expression.Eq("Atividade.Id", oAtividade.Id));
            dc.CreateAlias("Permissao", "per");
            dc.Add(Expression.Eq("per.Descricao", descricaoPermissao));

            if (AtividadeFuncaoPermissao.Exists(dc))
            {
                return(true);
            }
            else
            {
                //Se a sub-unidade não tem permissão, verifica se o usuário tem.
                DetachedCriteria dc2 = DetachedCriteria.For(typeof(AtividadePessoaPermissao));
                dc2.Add(Expression.Eq("Pessoa.Id", idPessoa));
                dc2.Add(Expression.Eq("Atividade.Id", oAtividade.Id));
                dc2.CreateAlias("Permissao", "per");
                dc2.Add(Expression.Eq("per.Descricao", descricaoPermissao));
                dc2.Add(Expression.Eq("AcessoPermitido", true));

                if (AtividadePessoaPermissao.Exists(dc2))
                {
                    return(true);
                }
            }

            return(false);
        }
Ejemplo n.º 2
0
        public FluxoAndamento RetornaFluxoAndamento(string modalidade, string tipoAndamento, string fase)
        {
            DetachedCriteria pesqAtividade = DetachedCriteria.For(typeof(Atividade));

            pesqAtividade.Add(Expression.Eq("Descricao", tipoAndamento).IgnoreCase());

            DetachedCriteria pesqFase = DetachedCriteria.For(typeof(Fase));

            pesqFase.Add(Expression.Eq("Descricao", fase.ToUpper()).IgnoreCase());


            DetachedCriteria pesqWorkFlow = DetachedCriteria.For(typeof(Workflow));

            pesqWorkFlow.Add(Expression.Sql(@"
				this_.pk_cod_workflow_wor =
				(select fk_cod_workflow_wor from adm_licitar.tb_workflow_modalidade_unidade_exercicio_wmu wmu
				inner join adm_licitar.tb_modalidade_mod mod on mod.pk_cod_modalidade_mod = wmu.fk_cod_modalidade_mod
				where txt_descricao_mod ilike '"                 + modalidade + @"')"));


            Atividade.FindFirst(pesqAtividade);
            Workflow.FindFirst(pesqWorkFlow);
            Fase.FindFirst(pesqFase);


            DetachedCriteria pesqFluxoAndamento = DetachedCriteria.For(typeof(FluxoAndamento));

            pesqFluxoAndamento.CreateAlias("Atividade", "ati").CreateAlias("Fase", "fas").CreateAlias("Workflow", "work");
            pesqFluxoAndamento.Add(Expression.Eq("ati.Id", Atividade.FindFirst(pesqAtividade).Id));
            pesqFluxoAndamento.Add(Expression.Eq("fas.Id", Fase.FindFirst(pesqFase).Id));
            pesqFluxoAndamento.Add(Expression.Eq("work.Id", Workflow.FindFirst(pesqWorkFlow).Id));
            pesqFluxoAndamento.Add(Expression.Eq("CombinacaoAtiva", true));

            return(FluxoAndamento.FindFirst(pesqFluxoAndamento));
        }
Ejemplo n.º 3
0
        public int getAtividadePorUrl(string url)
        {
            DetachedCriteria dc = DetachedCriteria.For(typeof(Atividade));

            dc.Add(Expression.InsensitiveLike("Url", "%" + url + "%"));

            Atividade obj = Atividade.FindFirst(dc);

            return(obj == null ? 0 : obj.Id);
        }