Beispiel #1
0
        /// <summary>
        /// Verifica se existem pendências de resposta do questionário informado
        /// </summary>
        /// <param name="matricula"></param>
        /// <param name="mtOferta"></param>
        /// <param name="tipoQuestionario"></param>
        /// <returns></returns>
        public bool VerificarQuestionarioPendente(MatriculaTurma matricula, MatriculaOferta mtOferta, enumTipoQuestionarioAssociacao tipoQuestionario)
        {
            if (matricula.Turma.ListaQuestionarioAssociacao.Count > 0)
            {
                var questionarioAssociacao =
                    matricula.Turma.ListaQuestionarioAssociacao.FirstOrDefault(
                        x => x.TipoQuestionarioAssociacao.ID == (int)tipoQuestionario);

                if (questionarioAssociacao != null)
                {
                    if (
                        !(new BMQuestionarioParticipacao().ObterPorUsuario(mtOferta.Usuario)
                          .Any(
                              x =>
                              x.TipoQuestionarioAssociacao.ID ==
                              (int)tipoQuestionario &&
                              x.Turma.ID == mtOferta.MatriculaTurma.FirstOrDefault().Turma.ID&&
                              x.DataParticipacao != null)))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Beispiel #2
0
        public string CancelaMatriculaSolucaoEducacionalGestorUC(int idMatriculaOferta, string solicitante)
        {
            BMMatriculaOferta bmMatriculaOferta = new BMMatriculaOferta();
            MatriculaOferta   matriculaOferta   = bmMatriculaOferta.ObterPorID(idMatriculaOferta);

            if (matriculaOferta.StatusMatricula == enumStatusMatricula.Inscrito)
            {
                matriculaOferta.StatusMatricula = enumStatusMatricula.CanceladoAdm;
                if (matriculaOferta.MatriculaTurma != null && matriculaOferta.MatriculaTurma.Count > 0)
                {
                    matriculaOferta.MatriculaTurma.Clear();
                }
                matriculaOferta.Auditoria = new Auditoria(solicitante);
                bmMatriculaOferta.Salvar(matriculaOferta);
            }
            else if (matriculaOferta.StatusMatricula == enumStatusMatricula.CanceladoAdm || matriculaOferta.StatusMatricula == enumStatusMatricula.CanceladoAluno)
            {
                throw new AcademicoException("A matrícula já se encontra cancelada");
            }
            else
            {
                throw new AcademicoException("O status atual da matrícula não permite o cancelamento.");
            }

            return(string.Empty);
        }
Beispiel #3
0
        private void EfetuarMatricula(Usuario usuarioLogado, Dominio.Classes.Oferta oferta, Usuario usuario, ManterMatriculaOferta manterMatriculaOferta, ManterMatriculaTurma manterMatriculaTurma)
        {
            var novaMatriculaOferta = new MatriculaOferta
            {
                Auditoria       = new Auditoria(usuarioLogado.CPF),
                Oferta          = oferta,
                Usuario         = usuario,
                StatusMatricula = enumStatusMatricula.Inscrito,
                UF = usuario.UF,
                NivelOcupacional = usuario.NivelOcupacional,
                DataSolicitacao  = DateTime.Today
            };

            manterMatriculaOferta.Salvar(novaMatriculaOferta);

            var novaMatriculaTurma = new MatriculaTurma
            {
                Auditoria = new Auditoria(usuarioLogado.CPF),
                Turma     =
                    oferta.ListaTurma.FirstOrDefault(t => Helpers.Util.ObterVigente(t.DataInicio, t.DataFinal)),
                MatriculaOferta = novaMatriculaOferta,
                DataMatricula   = DateTime.Today
            };

            novaMatriculaTurma.DataLimite = novaMatriculaTurma.CalcularDataLimite();

            manterMatriculaTurma.Salvar(novaMatriculaTurma);
        }
        public void vinculaMatriculaOferta(MatriculaOferta matriculaOferta)
        {
            matriculaOferta = new ManterMatriculaOferta().ObterMatriculaOfertaPorID(matriculaOferta.ID);

            // VERIFICA SE MATRICULA OFERTA PERTENCE A ALGUM ITEM TRILHA
            if (!matriculaOferta.ListaItemTrilhaParticipacao.Any())
            {
                //BUSCA A LISTA DE TURMAS DA MESMA OFERTA CONTINUA
                var turmasOfertaID = new ManterTurma().ObterTodosIQueryable()
                                     .Where(x => x.Oferta.ID == matriculaOferta.Oferta.ID)
                                     .Select(x => x.ID).ToList();

                //BUSCA A LISTA DE MATRICULAS OFERTA DO USUARIO POR TURMA
                var matriculasOfertaID = new ManterMatriculaTurma().ObterTodosIQueryable()
                                         .Where(x => turmasOfertaID.Contains(x.Turma.ID) && matriculaOferta.Usuario.ID == x.MatriculaOferta.Usuario.ID)
                                         .Select(y => y.MatriculaOferta.ID)
                                         .ToList();

                var itemTrilhaParticipacaoUsuario = new ManterItemTrilhaParticipacao().ObterTodosIQueryable()
                                                    .FirstOrDefault(x => matriculasOfertaID.Contains(x.MatriculaOferta.ID) && x.Autorizado == false);

                if (itemTrilhaParticipacaoUsuario != null)
                {
                    itemTrilhaParticipacaoUsuario.MatriculaOferta = matriculaOferta;
                    Salvar(itemTrilhaParticipacaoUsuario);
                }
            }
        }
        /// <summary>
        /// Obterm A Matrícula Oferta pelo Filtro de Uma Matricula Oferta Informados.
        /// </summary>
        /// <param name="pMatriculaOferta">Dados da Matricula Oferta a Serem Filtrados</param>
        /// <returns></returns>
        public IList <MatriculaOferta> ObterPorFiltro(MatriculaOferta pMatriculaOferta)
        {
            var query = Repositorio.session.Query <MatriculaOferta>();

            query = query.Fetch(x => x.Oferta).ThenFetch(x => x.SolucaoEducacional);
            query = query.Fetch(x => x.Usuario).ThenFetch(x => x.NivelOcupacional);
            query = query.Fetch(x => x.Usuario).ThenFetch(x => x.UF);
            query = query.Fetch(x => x.Oferta).ThenFetch(x => x.ListaTurma);

            if (pMatriculaOferta.Oferta != null && pMatriculaOferta.Oferta.ID > 0)
            {
                query = query.Where(x => x.Oferta.ID == pMatriculaOferta.Oferta.ID);
            }

            if (pMatriculaOferta.Usuario != null && pMatriculaOferta.Usuario.ID > 0)
            {
                query = query.Where(x => x.Usuario.ID == pMatriculaOferta.Usuario.ID);
            }

            if (pMatriculaOferta.StatusMatricula > 0)
            {
                query = query.Where(x => x.StatusMatricula == pMatriculaOferta.StatusMatricula);
            }

            if (pMatriculaOferta.DataSolicitacao != DateTime.MinValue)
            {
                query = query.Where(x => x.DataSolicitacao.Date == pMatriculaOferta.DataSolicitacao.Date);
            }

            return(query.ToList());
        }
        private MatriculaOferta ObterObjetoMatriculaOferta()
        {
            ValidarMatriculaOferta();

            var matriculaOferta = new MatriculaOferta();

            //Usuário
            if (LupaUsuario.SelectedUser != null)
            {
                matriculaOferta.Usuario = this.LupaUsuario.SelectedUser;
            }

            //Oferta
            if (IdOferta > 0)
            {
                matriculaOferta.Oferta = new ManterOferta().ObterOfertaPorID(IdOferta);
            }

            //UF
            matriculaOferta.UF = matriculaOferta.Usuario.UF;

            //Nivel Ocupacional
            matriculaOferta.NivelOcupacional = matriculaOferta.Usuario.NivelOcupacional;

            //Status
            if (ddlStatus.SelectedItem != null && !string.IsNullOrWhiteSpace(ddlStatus.SelectedItem.Value))
            {
                matriculaOferta.StatusMatricula = (enumStatusMatricula)int.Parse(ddlStatus.SelectedItem.Value);
            }

            return(matriculaOferta);
        }
        private MatriculaTurma AdicionaOfertEmMatriculaTurma(MatriculaOferta matriculaOferta)
        {
            if (ddlTurma.SelectedIndex <= 0)
            {
                return(null);
            }
            var matriculaTurma = ObterObjetoMatriculaTurma(matriculaOferta.ID);

            if (matriculaTurma == null)
            {
                return(null);
            }

            int statusSelecionado = 0;

            int.TryParse(ddlStatus.SelectedValue.ToString(), out statusSelecionado);

            if (statusSelecionado == (int)enumStatusMatricula.Inscrito || statusSelecionado == (int)enumStatusMatricula.Ouvinte || statusSelecionado == (int)enumStatusMatricula.PendenteConfirmacaoAluno)
            {
                matriculaTurma.DataTermino = null;
            }

            (new BMMatriculaTurma()).Salvar(matriculaTurma);

            return(matriculaTurma);
        }
Beispiel #8
0
        protected void dgvOferta_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType.Equals(DataControlRowType.DataRow))
            {
                MatriculaOferta matriculaOferta = (MatriculaOferta)e.Row.DataItem;

                var certificado = this.ListaHistoricoAcademico.FirstOrDefault(x => x.IdMatricula == matriculaOferta.ID);

                LinkButton lbEmitirCertificado = (LinkButton)e.Row.FindControl("lbEmitirCertificado");
                lbEmitirCertificado.Visible = false;

                if (certificado != null)
                {
                    if (certificado.TemCertificado)
                    {
                        lbEmitirCertificado.Visible = true;
                    }
                }

                if (matriculaOferta != null)
                {
                    //this.usuario = new ManterUsuario().ObterUsuarioPorID(this.IdUsuario);
                    //this.AplicarRegraParaExibirBotaoFazerInscricao(this.usuario, solucaoEducacional, e);
                }

                this.AplicarRegraParaExibirBotaoCertificado(e);
                this.AplicarRegraParaExibirNomeTurma(e);
            }
        }
        public void AtualizaStatusMatriculaMoodle(MatriculaOferta pMatriculaOferta, enumStatusMatricula statusMatriculaAnterior)
        {
            pMatriculaOferta.Oferta = new BMOferta().ObterPorId(pMatriculaOferta.Oferta.ID);

            if (pMatriculaOferta != null && pMatriculaOferta.Oferta != null)
            {
                // Status que provocam suspensão no moodle
                System.Collections.ArrayList failStatus = new System.Collections.ArrayList();
                failStatus.Add(3);
                failStatus.Add(4);
                failStatus.Add(5);
                failStatus.Add(10);

                // Se for uma matricula em uma oferta de uma solução educacional do SEBRAE, e tiver indo de um status válido para um de suspensão
                if (pMatriculaOferta.Oferta.CodigoMoodle != null && pMatriculaOferta.Oferta.SolucaoEducacional.Fornecedor.ID.Equals((int)enumFornecedor.MoodleSebrae))
                {
                    Moodle.BMInscricao bmInscricao = new Moodle.BMInscricao();

                    // Indo de um status de não suspensão para um de suspensão
                    if (failStatus.Contains((int)pMatriculaOferta.StatusMatricula) && !failStatus.Contains((int)statusMatriculaAnterior))
                    {
                        bmInscricao.alterarInscricao(pMatriculaOferta.Oferta.CodigoMoodle.Value, pMatriculaOferta.Usuario.CPF, 1);

                        // Indo de um status de suspensão para Inscrito
                    }
                    else if (!failStatus.Contains((int)pMatriculaOferta.StatusMatricula) && enumStatusMatricula.Inscrito.Equals(pMatriculaOferta.StatusMatricula))
                    {
                        bmInscricao.alterarInscricao(pMatriculaOferta.Oferta.CodigoMoodle.Value, pMatriculaOferta.Usuario.CPF, 0);
                    }
                }
            }
        }
Beispiel #10
0
        private void MatricularNovoUsuarioEmCursosObrigatorios(Usuario usuario)
        {
            try
            {
                var listaSolucoesEducacionais =
                    new ManterSolucaoEducacional().ObterObrigatorios(usuario.NivelOcupacional)
                    .Select(x => x.SolucaoEducacional);

                foreach (var solucaoEducacional in listaSolucoesEducacionais)
                {
                    //VER SE O USUÁRIO JÁ ESTÁ MATRICULADO
                    if (usuario.ListaMatriculaOferta.All(x => x.Oferta.SolucaoEducacional != solucaoEducacional))
                    {
                        var oferta =
                            solucaoEducacional.ListaOferta.FirstOrDefault(
                                x =>
                                Helpers.Util.ObterVigente(x.DataInicioInscricoes, x.DataFimInscricoes) &&
                                x.ListaTurma.Any(t => Helpers.Util.ObterVigente(t.DataInicio, t.DataFinal)));

                        var novaMatriculaOferta = new MatriculaOferta
                        {
                            Auditoria       = new Auditoria(new ManterUsuario().ObterUsuarioLogado().CPF),
                            Oferta          = oferta,
                            Usuario         = usuario,
                            StatusMatricula = enumStatusMatricula.Inscrito,
                            UF = usuario.UF,
                            NivelOcupacional = usuario.NivelOcupacional,
                            DataSolicitacao  = DateTime.Today
                        };

                        new ManterMatriculaOferta().Salvar(novaMatriculaOferta);

                        if (oferta == null)
                        {
                            continue;
                        }

                        var novaMatriculaTurma = new MatriculaTurma
                        {
                            Auditoria = new Auditoria(new ManterUsuario().ObterUsuarioLogado().CPF),
                            Turma     =
                                oferta.ListaTurma.FirstOrDefault(
                                    t => Helpers.Util.ObterVigente(t.DataInicio, t.DataFinal)),
                            MatriculaOferta = novaMatriculaOferta,
                            DataMatricula   = DateTime.Today
                        };

                        novaMatriculaTurma.DataLimite = novaMatriculaTurma.CalcularDataLimite();

                        new ManterMatriculaTurma().Salvar(novaMatriculaTurma);
                    }
                }
            }
            catch (Exception)
            {
                // ignored
            }
        }
        public DTO.Services.RetornoWebService EntrarNaFilaDeEspera(int pUsuario, int idOferta)
        {
            try
            {
                var usuario = new BMUsuario().ObterPorId(pUsuario);
                var oferta  = new BMOferta().ObterPorId(idOferta);

                if (EstaInscrito(pUsuario, idOferta))
                {
                    return(new DTO.Services.RetornoWebService
                    {
                        Erro = 0,
                        Mensagem = "Já Inscrito"
                    });
                }

                var matriculaOferta = new MatriculaOferta
                {
                    Usuario         = usuario,
                    Oferta          = oferta,
                    StatusMatricula = enumStatusMatricula.FilaEspera,
                    UF = usuario.UF,
                    NivelOcupacional = usuario.NivelOcupacional,
                    DataSolicitacao  = DateTime.Now,
                    Auditoria        = new Auditoria(usuario.CPF)
                };

                new BMMatriculaOferta().Salvar(matriculaOferta);

                var matriculaTurma = new MatriculaTurma
                {
                    Turma           = oferta.ListaTurma.FirstOrDefault(),
                    MatriculaOferta = matriculaOferta,
                    DataMatricula   = DateTime.Now,
                    Auditoria       = new Auditoria(usuario.CPF)
                };

                matriculaTurma.DataLimite = matriculaTurma.CalcularDataLimite(matriculaOferta.Oferta);
                new BMMatriculaTurma().Salvar(matriculaTurma);

                EnvialEmailFilaEspera(usuario);

                return(new DTO.Services.RetornoWebService
                {
                    Erro = 0,
                    Mensagem = "Success"
                });
            }
            catch (Exception ex)
            {
                return(new DTO.Services.RetornoWebService
                {
                    Erro = 1,
                    Mensagem = "Falha",
                    Stack = ex.Message
                });
            }
        }
Beispiel #12
0
        public void ValidarPreRequisitosDaMatricula(MatriculaOferta pMatriculaOferta, int idTurma = 0)
        {
            if (pMatriculaOferta.Oferta == null)
            {
                throw new AcademicoException("A matrícula não está vinculada adequadamente a uma Oferta. Tente novamente.");
            }
            ;

            if (pMatriculaOferta.Oferta.SolucaoEducacional == null)
            {
                pMatriculaOferta.Oferta.SolucaoEducacional = ObterPorId(new BMOferta().ObterPorId(pMatriculaOferta.Oferta.ID).SolucaoEducacional.ID);
            }

            ValidarVagasPorUf(pMatriculaOferta);

            if (idTurma > 0)
            {
                //Quantidade Máxima de Inscrições
                var turma = new BMTurma().ObterPorID(idTurma);

                var maxInscricoesOferta = new BMOferta().ObterPorId(pMatriculaOferta.Oferta.ID).QuantidadeMaximaInscricoes;

                if (turma.QuantidadeMaximaInscricoes > maxInscricoesOferta)
                {
                    throw new AcademicoException("A quantidade de inscrições da turma, excede o máximo permitido para a oferta.");
                }
            }

            if (!pMatriculaOferta.Oferta.SolucaoEducacional.ListaPreRequisito.Any())
            {
                return;
            }

            var aprovados = new List <enumStatusMatricula>
            {
                enumStatusMatricula.Aprovado,
                enumStatusMatricula.Concluido
            };

            var oferta = pMatriculaOferta.Oferta;

            foreach (var item in pMatriculaOferta.Oferta.SolucaoEducacional.ListaPreRequisito)
            {
                var matriculaOferta = new BMMatriculaOferta().ObterPorUsuarioESolucaoEducacional(pMatriculaOferta.Usuario.ID, item.PreRequisito.ID).ToList();

                if (matriculaOferta != null && matriculaOferta.Any())
                {
                    var lastOrDefault = matriculaOferta.LastOrDefault();

                    if (lastOrDefault != null &&
                        (oferta.SolucaoEducacional.ID == item.SolucaoEducacional.ID &&
                         !aprovados.Contains(lastOrDefault.StatusMatricula)))
                    {
                        throw new AcademicoException("Erro: Existem soluções como pré-requisito que não estão cursadas");
                    }
                }
            }
        }
Beispiel #13
0
        private void ValidarOfertaNormal(Oferta oferta, int idUsuario, List <int> pListaIdMetaIndividualAssociada,
                                         List <int> pListaIdMetaInstitucionalAssociada, AuthenticationRequest autenticacao)
        {
            int qtdInscritosNaOferta =
                oferta.ListaMatriculaOferta.Where(x => (x.StatusMatricula != enumStatusMatricula.CanceladoAdm &&
                                                        x.StatusMatricula != enumStatusMatricula.CanceladoAluno))
                .Count();

            Usuario usuario = new BMUsuario().ObterPorId(idUsuario);

            MatriculaOferta matriculaOferta = new MatriculaOferta()
            {
                Oferta          = new BMOferta().ObterPorId(oferta.ID),
                Usuario         = usuario,
                Auditoria       = new Auditoria(autenticacao.Login),
                DataSolicitacao = DateTime.Now,
                UF = new BMUf().ObterPorId(usuario.UF.ID),
                NivelOcupacional = new BMNivelOcupacional().ObterPorID(usuario.NivelOcupacional.ID)
            };

            if ((oferta.QuantidadeMaximaInscricoes > 0) && qtdInscritosNaOferta >= oferta.QuantidadeMaximaInscricoes)
            {
                if (oferta.FiladeEspera)
                {
                    matriculaOferta.StatusMatricula = enumStatusMatricula.FilaEspera;
                }
                else
                {
                    throw new AcademicoException("Erro: A quantidade máxima de alunos foi atingida");
                }
            }
            else
            {
                matriculaOferta.StatusMatricula = enumStatusMatricula.Inscrito;
            }


            BMMatriculaOferta bmMatriculaOferta = new BMMatriculaOferta();

            bmMatriculaOferta.Salvar(matriculaOferta);
            qtdInscritosNaOferta++;

            //validando se a turma já está chegando ao limite.
            if (qtdInscritosNaOferta >
                (oferta.QuantidadeMaximaInscricoes -
                 int.Parse(
                     ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.LimiteAlertaInscricaoOferta)
                     .Registro)))
            {
                EnviarEmailLimiteOferta(oferta, matriculaOferta);
            }


            ValidarMetaIndividual(idUsuario, oferta.SolucaoEducacional.ID, pListaIdMetaIndividualAssociada, autenticacao);
            ValidarMetaInstitucional(idUsuario, oferta.SolucaoEducacional.ID, pListaIdMetaInstitucionalAssociada,
                                     autenticacao);
        }
        private void PrepararTelaParaEdicaoDeUmaMatriculaOferta(MatriculaOferta pMatriculaOferta)
        {
            //Oferta
            if (pMatriculaOferta.Oferta != null && !pMatriculaOferta.Oferta.ID.Equals(0))
            {
                this.PreencherCombos();
            }

            this.SetarAcaoDaTela(enumAcaoTelaMatriculaOferta.EdicaoDeUmaMatricula);
        }
Beispiel #15
0
        public MatriculaOferta ObterInformacoesDaMatricula(int IdMatriculaOferta)
        {
            MatriculaOferta InformacoesDaMatricula = null;
            var             query = Repositorio.session.Query <MatriculaOferta>();

            query = query.Fetch(x => x.Oferta).ThenFetch(x => x.ListaTurma);
            InformacoesDaMatricula = query.FirstOrDefault(x => x.ID == IdMatriculaOferta);

            return(InformacoesDaMatricula);
        }
        public void AtualizarStatusParticipacoesTrilhas(MatriculaOferta matriculaOferta)
        {
            matriculaOferta = new ManterMatriculaOferta().ObterMatriculaOfertaPorID(matriculaOferta.ID);

            List <ItemTrilhaParticipacao> participacoes;

            try
            {
                participacoes = matriculaOferta.ListaItemTrilhaParticipacao.ToList();
            }
            catch
            {
                try
                {
                    participacoes = new ManterMatriculaOferta().ObterMatriculaOfertaPorID(matriculaOferta.ID).ListaItemTrilhaParticipacao.ToList();
                }
                catch (Exception)
                {
                    throw new AcademicoException("Erro ao atualizar participação na Solução Sebrae de Trilhas.");
                }
            }


            // Verificar se a matrícula do aluno está vinculada a algum ItemTrilhaParticipacao e altera a participação de acordo.
            if (participacoes.Any())
            {
                var participacao = participacoes.LastOrDefault();

                if (participacao == null)
                {
                    throw new AcademicoException("Item Trilha Participação inválido para a matrícula.");
                }

                var anterior = participacoes.LastOrDefault(x => x.ID != participacao.ID);

                bool?autorizacaoAnterior = (anterior != null) ? anterior.Autorizado : false;

                participacao.Autorizado = IsAutorizado(participacao.MatriculaOferta, participacao.Autorizado);

                if (autorizacaoAnterior == false && participacao.Autorizado == true)
                {
                    participacao.DataAvaliacao = DateTime.Now;
                    participacao.DataEnvio     = DateTime.Now;
                }

                Salvar(participacao);

                if (autorizacaoAnterior == false && participacao.Autorizado == true)
                {
                    new ManterTrilhaTopicoTematicoParticipacao().IncluirUltimaParticipacao(participacao.UsuarioTrilha, participacao.ItemTrilha);
                    new ManterUsuarioTrilhaMoedas().Incluir(participacao.UsuarioTrilha, participacao.ItemTrilha, null, 0,
                                                            participacao.ItemTrilha.Moedas ?? 0);
                }
            }
        }
        protected void Setup()
        {
            oferta = new Oferta
            {
                ID         = 1,
                DiasPrazo  = 5,
                TipoOferta = Academico.Dominio.Enumeracao.enumTipoOferta.Continua,
                Nome       = "Oferta Test"
            };

            turma = new Turma
            {
                ID         = 1,
                Nome       = "TURMA 1",
                DataInicio = DateTime.Today.AddDays(-1),
                DataFinal  = DateTime.Today.AddDays(10),
                Oferta     = oferta
            };

            matriculaOferta = new MatriculaOferta
            {
                ID     = 1,
                Oferta = oferta
            };

            matriculaTurma = new MatriculaTurma
            {
                ID              = 1,
                DataMatricula   = DateTime.Today,
                DataLimite      = DateTime.Today.AddDays(10),
                DataTermino     = DateTime.Today.AddDays(5),
                MatriculaOferta = matriculaOferta,
                Turma           = turma
            };

            turmaFechada = new Turma
            {
                ID         = 2,
                Nome       = "TURMA 2",
                DataInicio = DateTime.Today.AddDays(-30),
                DataFinal  = DateTime.Today.AddDays(-10),
                Oferta     = oferta
            };


            matriculaTurmaFechada = new MatriculaTurma
            {
                ID              = 2,
                DataMatricula   = DateTime.Today.AddDays(-10),
                DataLimite      = DateTime.Today.AddDays(10),
                DataTermino     = DateTime.Today.AddDays(5),
                MatriculaOferta = matriculaOferta,
                Turma           = turmaFechada
            };
        }
 public void PreencherCamposDaMatriculaOferta(MatriculaOferta pMatriculaOferta)
 {
     if (pMatriculaOferta != null)
     {
         this.PrepararTelaParaEdicaoDeUmaMatriculaOferta(pMatriculaOferta);
     }
     else
     {
         this.PrepararTelaParaInclusaoDeUmaMatricula();
     }
 }
        private void PrepararTelaParaEdicaoDeUmaMatriculaOferta(MatriculaOferta pMatriculaOferta)
        {
            //Oferta
            if (pMatriculaOferta.Oferta != null && !pMatriculaOferta.Oferta.ID.Equals(0))
            {
                this.PreencherCombos();
                //WebFormHelper.SetarValorNaCombo(pMatriculaOferta.Oferta.ID.ToString(), ddlOferta, false);
            }

            this.SetarAcaoDaTela(enumAcaoTelaMatriculaOferta.EdicaoDeUmaMatricula);
        }
Beispiel #20
0
        private static Usuario NotificarAlunos(MatriculaOferta matriculaOferta, enumTemplate tipoTemplate)
        {
            var usuario = new ManterUsuario().ObterPorID(matriculaOferta.Usuario.ID);

            var template = new ManterTemplate().ObterTemplatePorID((int)tipoTemplate);

            template.TextoTemplate = template.TextoTemplate.Replace("#ALUNO", usuario?.NomeExibicao ?? "");
            template.TextoTemplate = template.TextoTemplate.Replace("#TURMA", matriculaOferta.Oferta.ListaTurma?.FirstOrDefault()?.Nome ?? "");

            EmailUtil.Instancia.EnviarEmail(usuario.Email, template.Assunto, template.TextoTemplate);
            return(usuario);
        }
Beispiel #21
0
 public void VerificarPoliticaDeConsequencia(MatriculaOferta matricula)
 {
     try
     {
         VerificarPoliticaDeConsequencia(matricula.Usuario, matricula.Oferta.SolucaoEducacional);
     }
     catch (PoliticaConsequenciaException e)
     {
         e.MatriculaOferta = matricula;
         throw;
     }
 }
Beispiel #22
0
        private void ValidarMatriculaOfertaInformada(MatriculaOferta pMatriculaOferta)
        {
            if ((pMatriculaOferta.Usuario == null) || (pMatriculaOferta.Usuario != null && pMatriculaOferta.Usuario.ID <= 0))
            {
                throw new AcademicoException("Usuário. Campo Obrigatório.");
            }

            if (pMatriculaOferta.StatusMatricula <= 0)
            {
                throw new AcademicoException("Status. Campo Obrigatório.");
            }
        }
        private static void ObterQuestionariosCancelamentoAbandono(MatriculaOferta matriculaOferta,
                                                                   DTOItemHistoricoAcademico dto)
        {
            if (matriculaOferta.StatusMatricula == enumStatusMatricula.CanceladoAluno ||
                matriculaOferta.StatusMatricula == enumStatusMatricula.Abandono &&
                matriculaOferta.MatriculaTurma != null && matriculaOferta.MatriculaTurma.Any())
            {
                var matriculaTurma = matriculaOferta.MatriculaTurma.FirstOrDefault();

                if (matriculaTurma != null)
                {
                    var turma = matriculaTurma.Turma;

                    var questionariosAssociacoes = new BMQuestionarioAssociacao().ObterPorTurma(turma).ToList();

                    if (matriculaOferta.StatusMatricula == enumStatusMatricula.CanceladoAluno)
                    {
                        // Obter questionário de cancelamento.
                        var associacaoCancelamento =
                            questionariosAssociacoes.FirstOrDefault(
                                q =>
                                q.TipoQuestionarioAssociacao.ID == (int)enumTipoQuestionarioAssociacao.Cancelamento);

                        if (associacaoCancelamento != null)
                        {
                            // Caso não tenha sido respondido, retorna o ID da turma do questionário de cancelamento para o usuário responder.
                            if (!associacaoCancelamento.Questionario.IsRespondido(matriculaOferta.Usuario, turma))
                            {
                                dto.IdTurmaQuestionarioCancelamento = turma.ID;
                            }
                        }
                    }

                    // Obter questionário de abandono.
                    if (matriculaOferta.StatusMatricula == enumStatusMatricula.Abandono)
                    {
                        var associacaoAbandono =
                            questionariosAssociacoes.FirstOrDefault(
                                q => q.TipoQuestionarioAssociacao.ID == (int)enumTipoQuestionarioAssociacao.Abandono);

                        if (associacaoAbandono != null)
                        {
                            // Caso não tenha sido respondido, retorna o ID da turma do questionário de abandono para o usuário responder.
                            if (!associacaoAbandono.Questionario.IsRespondido(matriculaOferta.Usuario, turma))
                            {
                                dto.IdTurmaQuestionarioAbandono = turma.ID;
                            }
                        }
                    }
                }
            }
        }
Beispiel #24
0
        public void ValidarVagasPorUf(MatriculaOferta matriculaOferta)
        {
            var oferta = new BMOferta().ObterPorId(matriculaOferta.Oferta.ID);
            var quantidadeDeMatriculas = oferta.ListaMatriculaOferta.Count(x => x.StatusMatricula.IsNotAny(enumStatusMatricula.CanceladoAdm, enumStatusMatricula.CanceladoGestor, enumStatusMatricula.CanceladoAluno) && x.UF.Sigla == matriculaOferta.UF.Sigla && x.Usuario.ID != matriculaOferta.Usuario.ID);

            if (oferta.ListaPermissao.Count(
                    l =>
                    l.Uf != null && (l.Uf.Nome == matriculaOferta.UF.Nome && l.Uf.Regiao.SiglaRegiao == matriculaOferta.UF.Regiao.SiglaRegiao &&
                                     l.QuantidadeVagasPorEstado > 0 && quantidadeDeMatriculas >= l.QuantidadeVagasPorEstado)) > 0 && !oferta.FiladeEspera)
            {
                throw new AcademicoException("Erro: Quantidade máxima de inscritos por UF atingida");
            }
        }
Beispiel #25
0
        public MatriculaOferta ObterPorID(int Id)
        {
            MatriculaOferta matriculaOferta = null;

            var query = Repositorio.session.Query <MatriculaOferta>();

            query = query.Fetch(x => x.Oferta).ThenFetch(x => x.SolucaoEducacional);
            query = query.Fetch(x => x.Usuario).ThenFetch(x => x.NivelOcupacional);
            query = query.Fetch(x => x.Usuario).ThenFetch(x => x.UF);
            query = query.Fetch(x => x.Oferta).ThenFetch(x => x.ListaTurma);

            matriculaOferta = query.FirstOrDefault(x => x.ID == Id);

            return(matriculaOferta);
        }
        /// <summary>
        /// Aprova ou reprova o aluno de acordo com o Status da MatriculaOferta.
        /// </summary>
        /// <param name="matriculaOferta"></param>
        /// <param name="prevAutorizacao"></param>
        /// <returns></returns>
        private static bool?IsAutorizado(MatriculaOferta matriculaOferta, bool?prevAutorizacao)
        {
            if (matriculaOferta.IsAprovado())
            {
                return(true);
            }

            if (matriculaOferta.IsCancelado() || matriculaOferta.IsAbandono() ||
                matriculaOferta.IsReprovado() || matriculaOferta.IsDesistencia())
            {
                return(false);
            }

            return(prevAutorizacao);
        }
Beispiel #27
0
 public MatriculaOferta ObterInformacoesDaMatricula(int IdMatriculaOferta)
 {
     try
     {
         //TODO: verificar motivo pelo qual ele não está carregando a oferta;
         var mo = new MatriculaOferta();
         mo        = _bmMatriculaOferta.ObterPorID(IdMatriculaOferta);
         mo.Oferta = new BMOferta().ObterPorId(mo.Oferta.ID);
         return(mo);
     }
     catch (AcademicoException ex)
     {
         throw ex;
     }
 }
        private void PreencherCertificado(MatriculaOferta itemHistorico, DTOItemHistoricoAcademico item, Usuario usuario)
        {
            if (itemHistorico.IsAprovado() && !itemHistorico.IsOuvinte())
            // Alunos com o status de Ouvinte não podem emitir certificados.
            {
                item.TemCertificado = itemHistorico.Oferta.CertificadoTemplate != null;
                item.CargaHoraria   = itemHistorico.Oferta.CargaHoraria.ToString();

                if (itemHistorico.Oferta.SolucaoEducacional.Fornecedor.ID == (int)enumFornecedor.FGVOCW)
                {
                    var nomeArquivoOriginal = "FGVOCW_" + itemHistorico.Usuario.CPF + "_" +
                                              itemHistorico.Oferta.IDChaveExterna + ".pdf";
                    var mFS        = new ManterFileServer();
                    var fileServer = mFS.ObterFileServerPorFiltro(new FileServer
                    {
                        NomeDoArquivoOriginal = nomeArquivoOriginal,
                        MediaServer           = true
                    }).FirstOrDefault();
                    item.TemCertificado = true;
                    if (fileServer != null)
                    {
                        item.LKCertificado =
                            Util.Classes.ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.EnderecoSGUS)
                            .Registro + "/MediaServer.ashx?Identificador=" + fileServer.ID;
                    }
                    else
                    {
                        item.LKCertificado = "http://www5.fgv.br/ucsebraeocw/CertificadoCursoGratuitoOnline.aspx?cpf=" +
                                             itemHistorico.Usuario.CPF + "&oferta=" +
                                             itemHistorico.Oferta.IDChaveExterna;
                    }
                }

                // Link de acesso ao curso - Somente se tiver sido aprovado
                if (itemHistorico.MatriculaTurma != null && itemHistorico.MatriculaTurma.FirstOrDefault() != null)
                {
                    var matTurma = itemHistorico.MatriculaTurma.FirstOrDefault();
                    if (matTurma.Turma.AcessoAposConclusao)
                    {
                        item.LKAcesso = string.IsNullOrEmpty(matTurma.MatriculaOferta.LinkAcesso)
                            ? (new ConsultarMeusCursos()).ConsultarLinkAcessoFornecedor(
                            matTurma.MatriculaOferta.Oferta.SolucaoEducacional.Fornecedor, usuario,
                            matTurma.MatriculaOferta.Oferta.CodigoMoodle.ToString())
                            : matTurma.MatriculaOferta.LinkAcesso;
                    }
                }
            }
        }
Beispiel #29
0
        private static void CalcularPolitica(MatriculaOferta matricula, int qntMeses, string nomePolitica, DateTime dataReferencia, enumRespostaPoliticaDeConsequencia consequencia)
        {
            var data = dataReferencia.AddMonths(-qntMeses);

            if (matricula.DataSolicitacao.Date < data.Date)
            {
                return;
            }

            var msg = string.Format("O usuário '{0}' possui {1} neste curso e não pode se matricular até {2}",
                                    matricula.Usuario.Nome,
                                    nomePolitica,
                                    matricula.DataSolicitacao.AddMonths(qntMeses).ToString("dd/MM/yyyy"));

            throw new PoliticaConsequenciaException(msg, consequencia);
        }
Beispiel #30
0
        public MatriculaOferta VerificarFilaEspera(MatriculaOferta matricula)
        {
            var matriculaOferta = ObterTodosIQueryable()
                                  .Where(x => x.Oferta.ID == matricula.Oferta.ID)
                                  .OrderByDescending(x => x.DataSolicitacao)
                                  .FirstOrDefault(x => x.StatusMatricula == enumStatusMatricula.FilaEspera);

            if (matriculaOferta != null)
            {
                matriculaOferta.StatusMatricula = enumStatusMatricula.Inscrito;
                Salvar(matriculaOferta);
                NotificarAlunos(matriculaOferta, enumTemplate.NotificarFilaEspera);
            }

            return(ObterMatriculaOfertaPorID(matricula.ID));
        }