/// <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); }
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); }
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); }
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); } } } }
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 }); } }
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"); } } } }
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); }
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); }
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); }
public void VerificarPoliticaDeConsequencia(MatriculaOferta matricula) { try { VerificarPoliticaDeConsequencia(matricula.Usuario, matricula.Oferta.SolucaoEducacional); } catch (PoliticaConsequenciaException e) { e.MatriculaOferta = matricula; throw; } }
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; } } } } } }
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"); } }
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); }
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; } } } }
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); }
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)); }