Example #1
0
        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);
        }
Example #2
0
 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));
 }
Example #3
0
        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);
        }
Example #4
0
        /*
         * 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() : ""
            });
        }
Example #6
0
        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());
            }
        }
Example #8
0
 public IList <Usuario> ObterTodosUsuarios(EtapaResposta etapa)
 {
     return(etapa.PermissoesNucleoEtapaResposta.Select(x => x.EtapaPermissaoNucleo.HierarquiaNucleoUsuario.Usuario).ToList());
 }