public EtapaResposta pegaUltimaEtapaReprovada(ProcessoResposta processoResposta, Usuario usuario) { EtapaResposta etapaResposta = new EtapaResposta(); // Se o usuário é dono do processo e já teve alguma reprovação nesse if (usuario.ID == processoResposta.Usuario.ID && processoResposta.ListaEtapaResposta.Where(x => !x.Ativo).Count() > 0) { // Pega a última negada etapaResposta = processoResposta.ListaEtapaResposta.Where(x => !x.Ativo && x.Status == (int)enumStatusEtapaResposta.Negado).OrderByDescending(x => x.ID).First(); } return(etapaResposta); }
public bool UsuarioPodeAnalisar(List <UsuarioCargo> diretores, EtapaResposta er, int?numero, int?demandanteId, int?processoId, int?etapaId, Usuario usuario, List <Cargo> cargos = null, bool somenteEtapasComUmAnalista = false) { return ((numero == null || er.ProcessoResposta.ID == numero) && (demandanteId == null || er.ProcessoResposta.Usuario.ID == demandanteId) && (processoId == null || er.ProcessoResposta.Processo.ID == processoId) && (etapaId == null || er.Etapa.ID == etapaId) && (!usuario.IsGestor() || er.ProcessoResposta.Processo.Uf.ID == usuario.UF.ID) && // Aqui que filtra se o usuário logado está na lista de analistas da etapa. UsuarioEstaNaListaDeAnalistas(er.ObterAnalistas(diretores, usuario, cargos), usuario, somenteEtapasComUmAnalista)); }
internal void IncluirPermissoes(EtapaResposta etapaResposta, IEnumerable <int> idsPermissoes) { List <EtapaRespostaPermissao> permissoes = new List <EtapaRespostaPermissao>(); foreach (var id in idsPermissoes) { EtapaRespostaPermissao permissao = new EtapaRespostaPermissao { EtapaResposta = new EtapaResposta { ID = etapaResposta.ID }, EtapaPermissaoNucleo = new EtapaPermissaoNucleo { ID = id } }; permissoes.Add(permissao); } Salvar(permissoes); }
/* * Recebe o ID do processo resposta e etapa resposta atual */ public EtapaResposta ObterEtapaRespostaAtual(int pr_id) { EtapaResposta etapaResposta = new EtapaResposta(); var query = (from p in repositorio.session.Query <ProcessoResposta>() join er in repositorio.session.Query <EtapaResposta>() on p.ID equals er.ProcessoResposta.ID join e in repositorio.session.Query <Etapa>() on er.Etapa.ID equals e.ID where p.ID.Equals(pr_id) && er.Ativo select er); // Caso a etapa esteja sendo realizada, ou seja alguma etapa ainda está em andamento IList <EtapaResposta> etapasRespostaFluxoNormal = query .Where(x => x.ProcessoResposta.Concluido == false && x.Status.Equals((int)enumStatusEtapaResposta.Aguardando)).OrderByDescending(x => x.Etapa.Ordem).ToList(); if (etapasRespostaFluxoNormal.Count() > 0) { etapaResposta = etapasRespostaFluxoNormal.First(); } else { // Se tiver finalizado pega o último status deixado IList <EtapaResposta> etapasRespostaFluxoFinalizado = query.Where(x => x.ProcessoResposta.Concluido == true && !x.Status.Equals((int)enumStatusEtapaResposta.Aguardando)).OrderByDescending(x => x.Etapa.Ordem).ToList(); if (etapasRespostaFluxoFinalizado.Count() > 0) { etapaResposta = etapasRespostaFluxoFinalizado.First(); } } return(etapaResposta); }
public DTOSituacaoProcesso ObterSituacao(int statusResposta, EtapaResposta etapa) { StringBuilder situacaoNome = new StringBuilder(); if (etapa != null) { if (statusResposta == (int)enumStatusEtapaResposta.Aguardando && etapa.PermissoesNucleoEtapaResposta != null && etapa.PermissoesNucleoEtapaResposta.Count > 0) { situacaoNome.Append("Aguardando avaliação pelo Núcleo"); } else { situacaoNome.Append(EnumExtensions.GetDescription(((enumStatusEtapaResposta)statusResposta))); } } return(new DTOSituacaoProcesso() { ID = statusResposta, Nome = situacaoNome != null?situacaoNome.ToString() : "" }); }
public IEnumerable <CampoResposta> ObterCamposPadrao(EtapaResposta etapa, int idEtapa) { var camposEtapaResposta = etapa.ListaCampoResposta; var listaCamposResposta = new List <CampoResposta>().ToList(); var cargaHoraria = camposEtapaResposta.FirstOrDefault(x => x.Campo.Nome.Contains("Carga-horária")); if (cargaHoraria == null) { listaCamposResposta.Add(new CampoResposta { Campo = new Campo { Nome = "Carga-horária" }, Resposta = "-" }); } else { listaCamposResposta.Add(cargaHoraria); } var dataInicioCapacitacao = camposEtapaResposta.FirstOrDefault(x => x.Campo.Nome == "Data de Início da Capacitação"); if (dataInicioCapacitacao == null) { listaCamposResposta.Add(new CampoResposta { Campo = new Campo { Nome = "Data de Início da Capacitação" }, Resposta = "-" }); } else { listaCamposResposta.Add(dataInicioCapacitacao); } var dataTerminoCapacitacao = camposEtapaResposta.FirstOrDefault(x => x.Campo.Nome == "Data de Término da Capacitação"); if (dataTerminoCapacitacao == null) { listaCamposResposta.Add(new CampoResposta { Campo = new Campo { Nome = "Data de Término da Capacitação" }, Resposta = "-" }); } else { listaCamposResposta.Add(dataTerminoCapacitacao); } var local = listaCamposResposta.FirstOrDefault(x => x.Campo.Nome == "Local"); if (local == null) { listaCamposResposta.Add(new CampoResposta { Campo = new Campo { Nome = "Local" }, Resposta = "-" }); } else { listaCamposResposta.Add(local); } var tituloCapacitacao = camposEtapaResposta.FirstOrDefault(x => x.Campo.Nome == "Título da Capacitação"); if (tituloCapacitacao == null) { listaCamposResposta.Add(new CampoResposta { Campo = new Campo { Nome = "Título da Capacitação" }, Resposta = "-" }); } else { listaCamposResposta.Add(tituloCapacitacao); } var valorPrevistoInscricao = camposEtapaResposta.FirstOrDefault(x => x.Campo.Nome == "Valor Previsto de Inscrição"); if (valorPrevistoInscricao == null) { listaCamposResposta.Add(new CampoResposta { Campo = new Campo { Nome = "Valor Previsto de Inscrição" }, Resposta = "-" }); } else { listaCamposResposta.Add(valorPrevistoInscricao); } var valorPrevistoPassagem = camposEtapaResposta.FirstOrDefault(x => x.Campo.Nome == "Valor Previsto de Passagem"); if (valorPrevistoPassagem == null) { listaCamposResposta.Add(new CampoResposta { Campo = new Campo { Nome = "Valor Previsto de Passagem" }, Resposta = "-" }); } else { listaCamposResposta.Add(valorPrevistoPassagem); } var valorPrevistoDiaria = camposEtapaResposta.FirstOrDefault(x => x.Campo.Nome == "Valor Previsto de Diária"); if (valorPrevistoDiaria == null) { listaCamposResposta.Add(new CampoResposta { Campo = new Campo { Nome = "Valor Previsto de Diária" }, Resposta = "-" }); } else { listaCamposResposta.Add(valorPrevistoDiaria); } var valorExecutadoInscricao = camposEtapaResposta.FirstOrDefault(x => x.Campo.Nome == "Valor Executado de Inscrição"); if (valorExecutadoInscricao == null) { listaCamposResposta.Add(new CampoResposta { Campo = new Campo { Nome = "Valor Executado de Inscrição" }, Resposta = "-" }); } else { listaCamposResposta.Add(valorExecutadoInscricao); } var valorExecutadoPassagem = camposEtapaResposta.FirstOrDefault(x => x.Campo.Nome == "Valor Executado de Passagem"); if (valorExecutadoPassagem == null) { listaCamposResposta.Add(new CampoResposta { Campo = new Campo { Nome = "Valor Executado de Passagem" }, Resposta = "-" }); } else { listaCamposResposta.Add(valorExecutadoPassagem); } var valorExecutadoDiaria = camposEtapaResposta.FirstOrDefault(x => x.Campo.Nome == "Valor Executado de Diária"); if (valorExecutadoDiaria == null) { listaCamposResposta.Add(new CampoResposta { Campo = new Campo { Nome = "Valor Executado de Diária" }, Resposta = "-" }); } else { listaCamposResposta.Add(valorExecutadoDiaria); } if (idEtapa > 0) { var camposDaEtapa = etapa.ListaCampoResposta.Where(x => !listaCamposResposta.Contains(x)); listaCamposResposta.AddRange(camposDaEtapa); } return(listaCamposResposta); }
public IEnumerable <Etapa> ObterEtapasNaoIniciadasPorVersao(ProcessoResposta processoResposta, EtapaResposta etapaAtual) { var versoes = manterEtapaVersao.ObterTodosIQueryable().Where(x => processoResposta.VersaoEtapa != null && x.Etapa.Processo.ID == processoResposta.Processo.ID && x.Versao == processoResposta.VersaoEtapa).ToList(); var etapas = versoes != null && versoes.Any() ? versoes.OrderBy(x => x.Ordem).Select(e => e.Etapa) : processoResposta.Processo.ListaEtapas.Select(x => x).OrderBy(x => x.Ordem); if (versoes.Any()) { var etapaAtualNaOrdem = versoes.FirstOrDefault(x => x.Etapa.ID == etapaAtual.Etapa.ID); return(versoes.Where(x => x.Ordem > etapaAtualNaOrdem.Ordem).OrderBy(x => x.Ordem).Select(x => x.Etapa)); } else { return(etapas.Where(x => x.Ordem > etapaAtual.Etapa.Ordem).OrderBy(x => x.Ordem).ToList()); } }
public IList <Usuario> ObterTodosUsuarios(EtapaResposta etapa) { return(etapa.PermissoesNucleoEtapaResposta.Select(x => x.EtapaPermissaoNucleo.HierarquiaNucleoUsuario.Usuario).ToList()); }