예제 #1
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));
        }