public IQueryable <Turma> ObterTurmaPorOferta(int pOferta) { using (var turmaBm = new BMTurma()) { return(turmaBm.ObterPorFiltro(null, null, pOferta, 0)); } }
public DTOManterTurma CounsultaTurma(string idChaveExternaTurma, string idChaveExternaOferta, AuthenticationProviderRequest pAutenticacao) { DTOManterTurma result = null; try { this.RegistrarLogExecucaoFornecedor((new BMFornecedor()).ObterPorFiltro(new Fornecedor() { Login = pAutenticacao.Login }).FirstOrDefault(), "CounsultaTurma"); using (BMTurma turmaBM = new BMTurma()) { Turma turma = turmaBM.ObterTurmaPorFornecedoreOferta(pAutenticacao.Login, idChaveExternaTurma, idChaveExternaOferta); if (turma == null) { throw new AcademicoException("Turma não encontrada"); } result = new DTOManterTurma() { DataFinal = turma.DataFinal, DataInicio = turma.DataInicio, IDChaveExternaTurma = turma.IDChaveExterna, Local = turma.Local, NomedaTurma = turma.Nome, TipoTutoria = turma.TipoTutoria, NomeProfessor = turma.Professor != null ? turma.Professor.Nome : string.Empty, CPFProfessor = turma.Professor != null ? turma.Professor.Cpf : string.Empty, EmailProfessor = turma.Professor != null ? turma.Professor.Email : string.Empty, QuantideInscritos = turma.ListaMatriculas.Count, IDChaveExternaOferta = turma.Oferta.IDChaveExterna }; } } catch (AcademicoException ex) { throw ex; } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); } return(result); }
public void PreencherComboTurma() { if (this.IdOferta == 0) { return; } var turmas = new BMTurma().ObterTurmasPorOferta(new Oferta { ID = this.IdOferta }); if (!turmas.Any()) { return; } ddlTurma.Enabled = true; WebFormHelper.PreencherLista(turmas, ddlTurma, false, true); }
public List <DTOItemHistoricoTutoria> ConsultarHistoricoTutoria(int usuarioId) { var turmas = new BMTurma().ObterTurmasFechadasDoProfessor(usuarioId).ToList(); var lista = turmas.Select(t => new DTOItemHistoricoTutoria { IdTurma = t.ID, NomeSolucao = t.Oferta.SolucaoEducacional.Nome, IdOferta = t.Oferta.ID, Instituicao = Constantes.UCSebrae, DataInicio = t.DataInicio.ToString("dd/MM/yyyy"), DataFim = t.DataFinal.HasValue ? t.DataFinal.Value.ToString("dd/MM/yyyy") : "", TemCertificado = t.Oferta.CertificadoTemplateProfessor != null }).ToList(); return(lista); }
public IQueryable <Turma> ObterTurmas(int idOferta, int idUf = 0) { using (var bmO = new BMTurma()) { var retorno = bmO.ObterTodos(); if (idOferta != 0) { retorno = retorno.Where(x => x.Oferta.ID == idOferta); } if (idUf > 0) { retorno = retorno.Where( x => x.Oferta.ListaPermissao.All(c => c.Uf == null) || x.Oferta.ListaPermissao.Any(c => c.Uf != null && c.Uf.ID == idUf)); } return(retorno); } }
public DTOManterOferta ConsultaOferta(string idsOfertas, string idChaveExternaOferta, string idChaveExternaSolucaoEducacional, AuthenticationProviderRequest pAutenticacao) { DTOManterOferta ofResult = null; try { this.RegistrarLogExecucaoFornecedor((new BMFornecedor()).ObterPorFiltro(new Fornecedor() { Login = pAutenticacao.Login }).FirstOrDefault(), "ConsultaOferta"); using (ofertaBM = new BMOferta()) { IList <int> lsIdsOfertas = null; if (!string.IsNullOrEmpty(idsOfertas)) { lsIdsOfertas = idsOfertas.Split(',').Select(Int32.Parse).ToList(); } var oferta = ofertaBM.ObterOfertaPorFornecedor(lsIdsOfertas, pAutenticacao.Login, idChaveExternaOferta, idChaveExternaSolucaoEducacional); if (oferta == null) { throw new AcademicoException("Oferta não encontrada"); } var existeProximaOferta = false; // #1855 - Caso o fornecedor seja Moodle e caso a oferta esteja vencida, // remover o ID da Chave Externa e continuar buscando a oferta atual. if (oferta.SolucaoEducacional.Fornecedor.ID == (int)enumFornecedor.MoodleSebrae) { if (lsIdsOfertas == null) { lsIdsOfertas = new List <int>(); } lsIdsOfertas.Add(oferta.ID); if (oferta.ListaMatriculaOferta.Any(p => p.StatusMatricula != enumStatusMatricula.Inscrito)) { oferta.IDChaveExterna = null; ofertaBM.Salvar(oferta); } var proximaOferta = ofertaBM.ObterOfertaPorFornecedor(lsIdsOfertas, pAutenticacao.Login, idChaveExternaOferta, idChaveExternaSolucaoEducacional); existeProximaOferta = proximaOferta != null && proximaOferta.ID != oferta.ID; } ofResult = new DTOManterOferta { IDChaveExternaOferta = oferta.IDChaveExterna, DataFimInscricoes = oferta.DataFimInscricoes, DataInicioInscricoes = oferta.DataInicioInscricoes, FiladeEspera = oferta.FiladeEspera, TipoOferta = oferta.TipoOferta.ToString(), IDChaveExternaSolucaoEducacional = oferta.SolucaoEducacional.IDChaveExterna, ListaMatriculaAlunoOferta = new List <DTOMatriculaSE>(), ListaTurmasOferta = new List <DTOManterTurma>(), NomedaOferta = oferta.Nome, QuantidadeMaximaInscricoes = oferta.QuantidadeMaximaInscricoes, QTCargaHoraria = oferta.CargaHoraria, InscricaoOnline = oferta.InscricaoOnline, QTDiasPrazo = oferta.DiasPrazo, CodigoMoodle = oferta.CodigoMoodle.ToString(), ProximaOferta = existeProximaOferta, IDOferta = oferta.ID }; foreach (var mo in oferta.ListaMatriculaOferta) { var dtoMatriculaSE = new DTOMatriculaSE { IdMatriculaOferta = mo.ID, Nome = mo.Usuario.Nome, NivelOcupacional = mo.Usuario.NivelOcupacional.Nome, UF = mo.Usuario.UF.Nome, Cpf = mo.Usuario.CPF, DataNascimento = mo.Usuario.DataNascimento, Email = mo.Usuario.Email, Telefone = mo.Usuario.TelefoneExibicao, Endereco = mo.Usuario.Endereco, Cidade = mo.Usuario.Cidade, Estado = mo.Usuario.Estado, Cep = mo.Usuario.Cep, StatusMatricula = mo.StatusMatricula.ToString(), DataSolicitacao = mo.DataSolicitacao, DataStatusMatricula = mo.DataStatusMatricula, LinkAcesso = mo.LinkAcesso, LinkCertificado = mo.LinkCertificado }; if (mo.MatriculaTurma != null && mo.MatriculaTurma.Count > 0) { var matriculaTurma = mo.MatriculaTurma.First(); dtoMatriculaSE.IDTurma = matriculaTurma.Turma.ID; dtoMatriculaSE.IDChaveExternaTurma = matriculaTurma.Turma.IDChaveExterna; dtoMatriculaSE.NomeTurma = matriculaTurma.Turma.Nome; dtoMatriculaSE.DataMatriculaTurma = matriculaTurma.DataMatricula; dtoMatriculaSE.DataLimite = matriculaTurma.DataLimite; dtoMatriculaSE.Nota1 = matriculaTurma.Nota1; dtoMatriculaSE.Nota2 = matriculaTurma.Nota2; dtoMatriculaSE.MediaFinal = matriculaTurma.MediaFinal; dtoMatriculaSE.NotaOnline = matriculaTurma.ValorNotaProvaOnline; dtoMatriculaSE.DataSolicitacao = mo.DataSolicitacao; dtoMatriculaSE.ValorNotaMinima = matriculaTurma.Turma.NotaMinima; dtoMatriculaSE.AcessoAposConclusao = matriculaTurma.Turma.AcessoAposConclusao ? 1 : 0; } ofResult.ListaMatriculaAlunoOferta.Add(dtoMatriculaSE); } //Listando as turmas vinculadas à Oferta. using (var bmTurma = new BMTurma()) { ofResult.ListaTurmasOferta = new BMTurma() .ObterTodos() .Where(turma => turma.Oferta.ID == oferta.ID) .ToList() .Select(MapearListaParaDtoManterTurma()) .ToList(); } } } catch (AcademicoException ex) { throw new AcademicoException(ex.Message); } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); } return(ofResult); }
public bool ManterMatriculaTurma(int idMatriculaOferta, int idTurma, double mediaFinal, AuthenticationProviderRequest autenticacao) { try { RegistrarLogExecucaoFornecedor((new BMFornecedor()).ObterPorFiltro(new Fornecedor() { Login = autenticacao.Login }).FirstOrDefault(), "ManterMatriculaTurma"); var bmMatriculaTurma = new BMMatriculaTurma(); var bmMatriculaOferta = new BMMatriculaOferta(); var bmTurma = new BMTurma(); MatriculaTurma matriculaTurma = new MatriculaTurma(); matriculaTurma.MatriculaOferta = new MatriculaOferta(); matriculaTurma.Turma = new Turma(); matriculaTurma.MatriculaOferta.ID = idMatriculaOferta; matriculaTurma.Turma.ID = idTurma; matriculaTurma = bmMatriculaTurma.ObterPorFiltro(matriculaTurma).FirstOrDefault(); if (matriculaTurma != null) { MatriculaOferta matriculaOferta = bmMatriculaOferta.ObterPorID(idMatriculaOferta); Turma turma = bmTurma.ObterPorID(idTurma); matriculaTurma.MediaFinal = matriculaOferta.StatusMatricula == enumStatusMatricula.Abandono ? null : (double?)mediaFinal; if (matriculaTurma.MediaFinal == 0) { matriculaTurma.MediaFinal = null; } if (!matriculaTurma.DataTermino.HasValue) { matriculaTurma.DataTermino = DateTime.Now; } decimal notaMinima = turma.NotaMinima.HasValue ? turma.NotaMinima.Value : 7; decimal notaFinal = matriculaTurma.MediaFinal.HasValue ? Convert.ToDecimal(matriculaTurma.MediaFinal.Value) : decimal.Zero; if (notaFinal >= notaMinima) { matriculaOferta.StatusMatricula = enumStatusMatricula.Aprovado; } else { // Se já tiver terminada a turma vamos reprovar o aluno e ele não obteve nota para ser aprovado vamos reprovar ele if (matriculaTurma.DataLimite < DateTime.Now) { // Se não obteve nenhuma nota é abandono if (notaFinal == 0) { matriculaOferta.StatusMatricula = enumStatusMatricula.Abandono; } // Do contrário é deve ser reprovado else { matriculaOferta.StatusMatricula = enumStatusMatricula.Reprovado; } } } matriculaTurma.Auditoria.UsuarioAuditoria = matriculaOferta.Auditoria.UsuarioAuditoria = autenticacao.Login; matriculaOferta.Auditoria.DataAuditoria = matriculaTurma.Auditoria.DataAuditoria = DateTime.Now; bmMatriculaTurma.Salvar(matriculaTurma); bmMatriculaOferta.Salvar(matriculaOferta); //CASO A OFERTA FOR CONTINUA, VERIFICA E ATUALIZA O ITEM TRILHA DO USUARIO new BP.ManterItemTrilhaParticipacao().vinculaMatriculaOferta(matriculaOferta); new BP.ManterItemTrilhaParticipacao().AtualizarStatusParticipacoesTrilhas(matriculaOferta); } return(true); } catch { return(false); } }
public void ManterOfertaFornecedor(DTOManterOferta dtoOferta, AuthenticationProviderRequest pAutenticacao) { Fornecedor fornecedor = new BMFornecedor().ObterPorFiltro(new Fornecedor() { Login = pAutenticacao.Login }).FirstOrDefault(); try { this.RegistrarLogExecucaoFornecedor(fornecedor, "ManterOferta"); using (ofertaBM = new BMOferta()) { ValidarCamposObrigatoriosOferta(dtoOferta); SolucaoEducacional solucaoEducacional = new BMSolucaoEducacional().ObterSolucaoEducacionalPorFornecedor(pAutenticacao.Login, dtoOferta.IDChaveExternaSolucaoEducacional); if (solucaoEducacional == null) { throw new AcademicoException("Não foi possível encontrar a Solução Educacional"); } Oferta oferta = ofertaBM.ObterOfertaPorFornecedor(null, fornecedor.Login, dtoOferta.IDChaveExternaOferta, dtoOferta.IDChaveExternaSolucaoEducacional); if (oferta == null) { oferta = new Oferta(); oferta.IDChaveExterna = dtoOferta.IDChaveExternaOferta; oferta.SolucaoEducacional = solucaoEducacional; try { oferta.TipoOferta = (enumTipoOferta)Enum.Parse(typeof(enumTipoOferta), dtoOferta.TipoOferta.ToString()); } catch { throw new AcademicoException("Não foi possível encontrar o Tipo da Oferta"); } oferta.ListaMatriculaOferta = new List <MatriculaOferta>(); } else { if (!string.IsNullOrEmpty(dtoOferta.IDChaveExternaOfertaNova)) { oferta.IDChaveExterna = dtoOferta.IDChaveExternaOfertaNova; } } oferta.DataFimInscricoes = dtoOferta.DataFimInscricoes; oferta.DataInicioInscricoes = dtoOferta.DataInicioInscricoes; oferta.FiladeEspera = dtoOferta.FiladeEspera; oferta.InscricaoOnline = dtoOferta.InscricaoOnline; oferta.Nome = dtoOferta.NomedaOferta; if (dtoOferta.IdCertificado > 0) { oferta.CertificadoTemplate = new BMCertificadoTemplate().ObterPorID(dtoOferta.IdCertificado); } int codigoMoodle = 0; if (int.TryParse(dtoOferta.CodigoMoodle, out codigoMoodle)) { oferta.CodigoMoodle = codigoMoodle; } if (dtoOferta.QTDiasPrazo.HasValue) { oferta.DiasPrazo = dtoOferta.QTDiasPrazo.Value; } else { oferta.DiasPrazo = 30; } oferta.QuantidadeMaximaInscricoes = dtoOferta.QuantidadeMaximaInscricoes; oferta.Auditoria = new Auditoria(pAutenticacao.Login); oferta.CargaHoraria = dtoOferta.QTCargaHoraria; if (dtoOferta.ListaMatriculaAlunoOferta != null && dtoOferta.ListaMatriculaAlunoOferta.Count > 0) { var manterItemTrilhaParticipacao = new BP.ManterItemTrilhaParticipacao(); foreach (var dtoMatriculaSE in dtoOferta.ListaMatriculaAlunoOferta) { if (string.IsNullOrWhiteSpace(dtoMatriculaSE.Cpf)) { throw new AcademicoException("O CPF do aluno é obrigatório"); } if (string.IsNullOrWhiteSpace(dtoMatriculaSE.StatusMatricula)) { throw new AcademicoException("O status da matrícula do aluno é obrigatório"); } enumStatusMatricula statusMatricula; try { statusMatricula = (enumStatusMatricula)Enum.Parse(typeof(enumStatusMatricula), dtoMatriculaSE.StatusMatricula); } catch { throw new AcademicoException("Status da matrícula inválido"); } if (statusMatricula == enumStatusMatricula.CanceladoAdm || statusMatricula == enumStatusMatricula.CanceladoAluno) { continue; } MatriculaOferta matriculaOferta = null; Usuario usuario = null; if (dtoMatriculaSE.IdMatriculaOferta > 0) { matriculaOferta = oferta.ListaMatriculaOferta.Where(x => x.ID == dtoMatriculaSE.IdMatriculaOferta).FirstOrDefault(); usuario = matriculaOferta.Usuario; } else { matriculaOferta = new MatriculaOferta(); usuario = (new BMUsuario()).ObterPorCPF(dtoMatriculaSE.Cpf); if (usuario == null) { throw new AcademicoException("Não foi possível encontrar o aluno"); } matriculaOferta.Oferta = oferta; matriculaOferta.Usuario = usuario; matriculaOferta.UF = usuario.UF; matriculaOferta.NivelOcupacional = usuario.NivelOcupacional; } if (matriculaOferta.ID == 0) { //Criar Matricula Oferta matriculaOferta.StatusMatricula = statusMatricula; matriculaOferta.Auditoria = new Auditoria(pAutenticacao.Login); matriculaOferta.DataSolicitacao = dtoMatriculaSE.DataSolicitacao; matriculaOferta.DataStatusMatricula = dtoMatriculaSE.DataStatusMatricula; matriculaOferta.LinkAcesso = dtoMatriculaSE.LinkAcesso; matriculaOferta.LinkCertificado = dtoMatriculaSE.LinkCertificado; if (!string.IsNullOrWhiteSpace(dtoMatriculaSE.IDChaveExternaTurma)) { //Criar matricula Turma Turma turma = new BMTurma().ObterTurmaPorFornecedor(fornecedor.Login, dtoMatriculaSE.IDChaveExternaTurma); if (turma != null) { MatriculaTurma matriculaTurma = new MatriculaTurma() { Turma = turma, MatriculaOferta = matriculaOferta, DataMatricula = dtoMatriculaSE.DataMatriculaTurma.Value, DataLimite = dtoMatriculaSE.DataLimite.Value, Nota1 = dtoMatriculaSE.Nota1, Nota2 = dtoMatriculaSE.Nota2, MediaFinal = dtoMatriculaSE.MediaFinal, ValorNotaProvaOnline = dtoMatriculaSE.NotaOnline, Auditoria = new Auditoria(pAutenticacao.Login), }; if (matriculaOferta.MatriculaTurma == null) { matriculaOferta.MatriculaTurma = new List <MatriculaTurma>(); } matriculaOferta.MatriculaTurma.Add(matriculaTurma); } } } else { //Alterar Dados da Matricula Oferta bool terminou = false; if (matriculaOferta.StatusMatricula != statusMatricula && (statusMatricula == enumStatusMatricula.Aprovado || statusMatricula == enumStatusMatricula.Concluido)) { terminou = true; } matriculaOferta.StatusMatricula = statusMatricula; matriculaOferta.DataStatusMatricula = dtoMatriculaSE.DataStatusMatricula; matriculaOferta.LinkAcesso = dtoMatriculaSE.LinkAcesso; matriculaOferta.LinkCertificado = dtoMatriculaSE.LinkCertificado; matriculaOferta.Auditoria = new Auditoria(pAutenticacao.Login); //matriculaOferta.DataSolicitacao = dtoMatriculaSE.DataSolicitacao; if (!string.IsNullOrWhiteSpace(dtoMatriculaSE.IDChaveExternaTurma)) { if (matriculaOferta.MatriculaTurma != null && matriculaOferta.MatriculaTurma.Count > 0) { matriculaOferta.MatriculaTurma[0].DataMatricula = dtoMatriculaSE.DataMatriculaTurma.Value; matriculaOferta.MatriculaTurma[0].DataLimite = dtoMatriculaSE.DataLimite.Value; matriculaOferta.MatriculaTurma[0].Nota1 = dtoMatriculaSE.Nota1; matriculaOferta.MatriculaTurma[0].Nota2 = dtoMatriculaSE.Nota2; matriculaOferta.MatriculaTurma[0].MediaFinal = dtoMatriculaSE.MediaFinal; matriculaOferta.MatriculaTurma[0].ValorNotaProvaOnline = dtoMatriculaSE.NotaOnline; if (terminou) { matriculaOferta.MatriculaTurma[0].DataTermino = DateTime.Now; manterItemTrilhaParticipacao.AtualizarStatusParticipacoesTrilhas(matriculaOferta); } matriculaOferta.MatriculaTurma[0].Auditoria = new Auditoria(pAutenticacao.Login); } else { Turma turma = new BMTurma().ObterTurmaPorFornecedor(fornecedor.Login, dtoMatriculaSE.IDChaveExternaTurma); if (turma != null) { MatriculaTurma matriculaTurma = new MatriculaTurma() { Turma = turma, MatriculaOferta = matriculaOferta, DataMatricula = dtoMatriculaSE.DataMatriculaTurma.Value, DataLimite = dtoMatriculaSE.DataLimite.Value, Nota1 = dtoMatriculaSE.Nota1, Nota2 = dtoMatriculaSE.Nota2, MediaFinal = dtoMatriculaSE.MediaFinal, ValorNotaProvaOnline = dtoMatriculaSE.NotaOnline, Auditoria = new Auditoria(pAutenticacao.Login) }; if (matriculaOferta.MatriculaTurma == null) { matriculaOferta.MatriculaTurma = new List <MatriculaTurma>(); } matriculaOferta.MatriculaTurma.Add(matriculaTurma); } } } } if (matriculaOferta.ID == 0) { oferta.ListaMatriculaOferta.Add(matriculaOferta); } } } if (oferta.ID != 0) { ofertaBM.EvictOferta(oferta); } ofertaBM.Salvar(oferta); } } catch (AcademicoException ex) { throw new AcademicoException(ex.Message); } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); } }
/// <summary> /// Método Construtor da classe /// </summary> public ManterTurma() : base() { bmTurma = new BMTurma(); }
public RetornoWebService AtualizarNotaAlunoMoodle(string chaveExternaSolucao, string chaveExternaTurma, string codCurso, string idUsuario, string nota, string dataConclusao) { try { //Pega a última turma var turma = new BMTurma().ObterUltimaTurmaPorChaveExterna(chaveExternaTurma); //Pega o id do pelo cpf(idUsuario) usuário var usuario = new BMUsuario().ObterPorCPF(idUsuario); if (usuario?.ID > 0) { //Pegar a MatriculaOferta var bmMatriculaOrfeta = new BMMatriculaOferta(); var matriculaOferta = bmMatriculaOrfeta.ObterPorOfertaEUsuario(turma.Oferta.ID, usuario.ID); //Pegar a MatriculaTurma var matriculaTurma = new BMMatriculaTurma().ObterMatriculaTurma(usuario.ID, turma.Oferta.ID); double notaFinal; if (double.TryParse(nota, out notaFinal)) { matriculaTurma.MediaFinal = notaFinal; } matriculaTurma.DataTermino = DateTime.Now; new BMMatriculaTurma().Salvar(matriculaTurma); if (notaFinal >= 7) { matriculaOferta.StatusMatricula = enumStatusMatricula.Aprovado; } else { matriculaOferta.StatusMatricula = enumStatusMatricula.Reprovado; } bmMatriculaOrfeta.Salvar(matriculaOferta); return(new RetornoWebService() { Erro = 0, Mensagem = string.Empty }); } return(new RetornoWebService() { Erro = 1, Mensagem = "usuario não encontrado" }); } catch (Exception ex) { return(new RetornoWebService() { Erro = 1, Mensagem = ex.Message }); } }
private void ValidarOfertaContinua(Oferta oferta, int idUsuario, List <int> pListaIdMetaIndividualAssociada, List <int> pListaIdMetaInstitucionalAssociada, AuthenticationRequest autenticacao) { bool fornecedorNotificado = false; Turma t = null; if (oferta.SolucaoEducacional.Fornecedor.PermiteGestaoSGUS || oferta.SolucaoEducacional.Fornecedor.ID == (int)enumFornecedor.FGVOCW) { t = oferta.ListaTurma.FirstOrDefault( x => x.DataFinal == null || x.DataFinal.Value.Date >= DateTime.Now.Date && x.InAberta); } int qtdInscritosNaOferta = oferta.ListaMatriculaOferta.Where(x => (x.StatusMatricula != enumStatusMatricula.CanceladoAdm && x.StatusMatricula != enumStatusMatricula.CanceladoAluno) && x.StatusMatricula != enumStatusMatricula.FilaEspera).Count(); var usuarioLogado = new BMUsuario().ObterPorId(idUsuario); MatriculaOferta matriculaOferta = new MatriculaOferta() { Oferta = new BMOferta().ObterPorId(oferta.ID), Usuario = new BMUsuario().ObterPorId(idUsuario), Auditoria = new Auditoria(new BMUsuario().ObterUsuarioLogado().CPF), DataSolicitacao = DateTime.Now, UF = new BMUf().ObterPorId(usuarioLogado.UF.ID), NivelOcupacional = new BMNivelOcupacional().ObterPorID(usuarioLogado.NivelOcupacional.ID) }; if (!fornecedorNotificado) { try { if (oferta.SolucaoEducacional.Fornecedor.ID == (int)enumFornecedor.FGVOCW && matriculaOferta != null) { //MatriculaOferta mo = new ManterMatriculaOferta().ObterMatriculaOfertaPorID(matriculaOferta.ID); NotificaFornecedor.Instancia.Notificar(matriculaOferta); if (matriculaOferta.ID > 0) { new ManterMatriculaOferta().AtualizarMatriculaOferta(matriculaOferta, false); } } } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); throw new AcademicoException( "Erro: Ocorreu um erro ao matricular neste curso. Por favor, entre em contato com o atendimento ou tente novamente mais tarde. Obrigado"); } } if (oferta.QuantidadeMaximaInscricoes > 0) { if (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; } } else { matriculaOferta.StatusMatricula = enumStatusMatricula.Inscrito; } qtdInscritosNaOferta++; var ofertaEstado = oferta.ListaPermissao.FirstOrDefault(f => f.Uf != null && f.Uf.ID == usuarioLogado.UF.ID); if (ofertaEstado == null) { throw new AcademicoException("Erro: A vaga não é permitida para o seu estado"); } else { if (ofertaEstado.QuantidadeVagasPorEstado > 0) { int qtdMatriculaOfertaPorEstado = oferta.ListaMatriculaOferta.Count(x => !x.IsUtilizado() && x.Usuario.ID == usuarioLogado.UF.ID); if (qtdMatriculaOfertaPorEstado >= ofertaEstado.QuantidadeVagasPorEstado && !oferta.FiladeEspera) { throw new AcademicoException("Erro: As vagas já foram preenchidas para o seu estado"); } } } if (t != null) { var matriculaTurma = new MatriculaTurma { Turma = new BMTurma().ObterPorID(t.ID), Auditoria = new Auditoria(usuarioLogado.CPF), DataMatricula = DateTime.Now, MatriculaOferta = matriculaOferta }; // Obter a DataLimite a partir dos cálculos pela Oferta. matriculaTurma.DataLimite = matriculaTurma.CalcularDataLimite(); if (matriculaOferta.MatriculaTurma == null) { matriculaOferta.MatriculaTurma = new List <MatriculaTurma>(); } matriculaOferta.MatriculaTurma.Add(matriculaTurma); } matriculaOferta.FornecedorNotificado = false; //moBM.Salvar(matriculaOferta); var turma = new BMTurma().ObterPorID(t.ID); if (turma.QuantidadeMaximaInscricoes > 0) { if (turma.QuantidadeAlunosMatriculadosNaTurma >= turma.QuantidadeMaximaInscricoes) { throw new AcademicoException("Erro: As vagas para esta turma já foram preenchidas"); } } //validando se a turma já está chegando ao limite. if (qtdInscritosNaOferta > (oferta.QuantidadeMaximaInscricoes - int.Parse( ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.LimiteAlertaInscricaoOferta) .Registro))) { EnviarEmailLimiteOferta(oferta, matriculaOferta); } string parametrosControle = string.Empty; try { string.Format("Notificar Usuário <br /> Oferta: {0} <br /> Aluno: {1} <br />", matriculaOferta.Oferta.ID.ToString(), usuarioLogado.ID); if (matriculaOferta.Oferta.TipoOferta.Equals(enumTipoOferta.Continua) && matriculaOferta.MatriculaTurma != null) { NotificaFornecedor.Instancia.Notificar(matriculaOferta); } } catch (Exception) { //ErroUtil.Instancia.TratarErro(ex, parametrosControle); } BMMatriculaOferta moBM = new BM.Classes.BMMatriculaOferta(); moBM.Salvar(matriculaOferta); ValidarMetaIndividual(idUsuario, oferta.SolucaoEducacional.ID, pListaIdMetaIndividualAssociada, autenticacao); ValidarMetaInstitucional(idUsuario, oferta.SolucaoEducacional.ID, pListaIdMetaInstitucionalAssociada, autenticacao); }
public void ManterCadastroTurma(DTOManterTurma pTurma, AuthenticationProviderRequest pAutenticacao) { try { ValidarCamposObrigatoriosTurma(pTurma); this.RegistrarLogExecucaoFornecedor((new BMFornecedor()).ObterPorFiltro(new Fornecedor() { Login = pAutenticacao.Login }).FirstOrDefault(), "CadastrarTurma"); using (BMTurma turmaBM = new BMTurma()) { Turma turma = turmaBM.ObterTurmaPorFornecedoreOferta(pAutenticacao.Login, pTurma.IDChaveExternaTurma, pTurma.IDChaveExternaOferta); if (turma == null) { turma = new Turma(); turma.IDChaveExterna = pTurma.IDChaveExternaTurma; turma.Oferta = (new BMOferta()).ObterOfertaPorFornecedor(pAutenticacao.Login, pTurma.IDChaveExternaOferta); if (turma.Oferta == null) { throw new AcademicoException("Oferta não encontrada na base de dados"); } } else { if (!string.IsNullOrEmpty(pTurma.IDChaveExternaTurmaNova)) { turma.IDChaveExterna = pTurma.IDChaveExternaTurmaNova; } } turma.Local = pTurma.Local; turma.Nome = pTurma.NomedaTurma; turma.TipoTutoria = pTurma.TipoTutoria; turma.DataInicio = pTurma.DataInicio; turma.DataFinal = pTurma.DataFinal; turma.InAberta = true; if (!string.IsNullOrEmpty(pTurma.NomeProfessor)) { turma.Professor = (new BMProfessor()).ObterPorFiltros(new Professor() { Nome = pTurma.NomeProfessor }).FirstOrDefault(); } else { turma.Professor = null; } if (pTurma.IDQuestionarioPre > 0) { AdicionarQuestionarioATurma(turma, pTurma.IDQuestionarioPre, enumTipoQuestionarioAssociacao.Pre); } if (pTurma.IDQuestionarioPos > 0) { AdicionarQuestionarioATurma(turma, pTurma.IDQuestionarioPos, enumTipoQuestionarioAssociacao.Pos); } if (pTurma.IDQuestionarioProva > 0) { AdicionarQuestionarioATurma(turma, pTurma.IDQuestionarioProva, enumTipoQuestionarioAssociacao.Prova); } turma.Auditoria = new Auditoria(pAutenticacao.Login); turmaBM.Salvar(turma); } } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); } }
public static string FormatarTextoCertificadoTutor(string texto, int idOferta, int idTurma, int idUsuario) { var tI = new CultureInfo("pt-Br", true).TextInfo; if (idOferta > 0 && idUsuario > 0) { var oferta = new BMOferta().ObterPorId(idOferta); var professor = new BMUsuario().ObterPorId(idUsuario); if (oferta == null || professor == null) { return("Erro ao gerar o certificado"); } var turma = new BMTurma().ObterPorID(idTurma); if (turma == null) { return("Erro ao gerar o certificado"); } var dataInicioTurma = turma.DataInicio.ToString("dd/MM/yyyy"); string dataFimTurma = turma.DataFinal.HasValue ? turma.DataFinal.Value.ToString("dd/MM/yyyy") : ""; var nomeUsuario = tI.ToTitleCase(professor.Nome.ToLower()); int totalHoras = oferta.SolucaoEducacional.ListaItemTrilha .Where(x => x.Aprovado == enumStatusSolucaoEducacionalSugerida.Aprovado) .Sum(x => x.CargaHoraria); return(texto .Replace("#DATASISTEMAEXTENSO", DateTime.Now.ToLongDateString()) .Replace("#DATASISTEMA", DateTime.Now.ToString("dd/MM/yyyy")) .Replace("#DATAHORASISTEMA", DateTime.Now.ToString("dd/MM/yyyy HH:mm")) .Replace("#PROFESSOR", nomeUsuario != null ? nomeUsuario : string.Empty) .Replace("#LOCAL", turma.Local != null ? turma.Local : "Sem Local") .Replace("#CPF", WebFormHelper.FormatarCPF(professor.CPF)) .Replace("#EMAILPROFESSOR", professor.Email) .Replace("#OFERTA", oferta.Nome) .Replace("#CARGAHORARIA", oferta.CargaHoraria.ToString()) .Replace("#NOMESE", oferta.SolucaoEducacional.Nome) .Replace("#EMENTA", oferta.SolucaoEducacional.Ementa) .Replace("#DATEGERACAOCERTIFICADO", DateTime.Now.ToString("dd/MM/yyyy")) .Replace("#DATAGERACAOCERTIFICADO", DateTime.Now.ToString("dd/MM/yyyy")) .Replace("#CODIGOCERTIFICADO", oferta.CertificadoTemplateProfessor.ObterCodigoCertificadoTutor(idOferta, idTurma, idUsuario)) .Replace("#DATAINICIOTURMA", dataInicioTurma) .Replace("#DATAFIMTURMA.", dataFimTurma) .Replace("#TEXTOPORTAL", oferta.SolucaoEducacional.Apresentacao != null ? Regex.Replace(oferta.SolucaoEducacional.Apresentacao, "<.*?>", string.Empty) : string.Empty) .Replace("#INFORMACOESADICIONAIS", oferta.InformacaoAdicional != null ? Regex.Replace(oferta.InformacaoAdicional, "<.*?>", string.Empty) : string.Empty) .Replace("#AREATEMATICA", oferta.SolucaoEducacional.ListaAreasTematicas.Any() ? string.Join(", ", oferta.SolucaoEducacional.ListaAreasTematicas.Select(x => x.AreaTematica.Nome).ToArray()) : string.Empty) .Replace("#CARGAHORARIASOLUCAOSEBRAE", totalHoras.ToString())); } return("Erro ao gerar o certificado"); }
private List <DTOItemHistoricoAcademico> PreencherDTOComInformacoesDaMatriculaOferta(IList <MatriculaOferta> listaMatriculaOferta, int idUsuario) { List <DTOItemHistoricoAcademico> resultado = new List <DTOItemHistoricoAcademico>(); var usuario = (new BMUsuario()).ObterPorId(idUsuario); foreach (var itemHistorico in listaMatriculaOferta) { // Usado para ordenar os objetos corretamente itemHistorico.MatriculaTurma = itemHistorico.MatriculaTurma.OrderByDescending(x => x.DataMatricula).ToList(); var itemMatriculaTurma = itemHistorico.MatriculaTurma.FirstOrDefault(); if (itemMatriculaTurma == null) { continue; } var item = new DTOItemHistoricoAcademico { NomeSolucao = itemHistorico.Oferta.SolucaoEducacional.Nome, Instituicao = Constantes.UCSebrae }; ObterQuestionariosCancelamentoAbandono(itemHistorico, item); if (itemHistorico.MatriculaTurma != null && itemHistorico.MatriculaTurma.Count > 0) { preencherDataInicioDataFimCurso(itemMatriculaTurma, itemHistorico.Oferta, ref item); //A FGV QUE EFETUA A CORREÇÃO NÃO ATUALIZA O CAMPO QUE NÃO É UTILIZADO NO MÉTODO, ENTÃO PRECISAMOS CRIAR ESTA CONDIÇÃO if (itemHistorico.StatusMatricula == enumStatusMatricula.Aprovado || itemHistorico.StatusMatricula == enumStatusMatricula.Concluido) { if (!itemMatriculaTurma.DataTermino.HasValue) { if (itemHistorico.Oferta.SolucaoEducacional.Fornecedor.ID == (int)enumFornecedor.FGVOCW) { if (itemHistorico.DataStatusMatricula.HasValue) { item.DataFim = itemHistorico.DataStatusMatricula.Value.ToString("dd/MM/yyyy"); } } } } item.IdTurma = itemMatriculaTurma.Turma.ID; var turma = new BMTurma().ObterPorID((int)item.IdTurma); var questionarioAssociacao = new BMQuestionarioAssociacao().ObterPorTurma(turma).Select(x => x.DataDisparoLinkEficacia); foreach (var itemQuestionarioAssociacao in questionarioAssociacao) { DateTime dateTime; if (DateTime.TryParse(itemQuestionarioAssociacao.ToString(), out dateTime)) { item.DataDisparoLinkEficacia = dateTime; } } // VALIDAR QUESTIONARIOS if (itemMatriculaTurma.Turma.ListaQuestionarioAssociacao.Count > 0 && !itemHistorico.IsOuvinte()) // Alunos com status Ouvinte não podem responder questionáris. { //QUESTIONARIO POS var itemQuestionarioAssociacaoPos = itemMatriculaTurma.Turma.ListaQuestionarioAssociacao.FirstOrDefault( x => x.TipoQuestionarioAssociacao.ID == (int)enumTipoQuestionarioAssociacao.Pos); if (itemQuestionarioAssociacaoPos != null) { var temParticipacao = new BMQuestionarioParticipacao() .ObterPorUsuario(itemHistorico.Usuario).Any( x => x.TipoQuestionarioAssociacao != null && x.TipoQuestionarioAssociacao.ID == (int)enumTipoQuestionarioAssociacao.Pos && x.Turma.ID == itemMatriculaTurma.Turma.ID && x.DataParticipacao != null); // Usado para exibir o quesitonário pós item.DataDisparoLinkPesquisa = !temParticipacao ? itemQuestionarioAssociacaoPos.DataDisparoLinkPesquisa : null; if (UsuarioAprovado(itemHistorico.StatusMatricula)) { if (!temParticipacao) { item.QuestionarioPosPendente = true; item.DataDisparoLinkPesquisa = itemQuestionarioAssociacaoPos.DataDisparoLinkPesquisa ?? itemMatriculaTurma.DataTermino; } } } //QUESTIONARIO EFICACIA var itemQuestionarioAssociacaoEficacia = itemMatriculaTurma.Turma.ListaQuestionarioAssociacao.FirstOrDefault( x => x.TipoQuestionarioAssociacao.ID == (int)enumTipoQuestionarioAssociacao.Eficacia); if (itemQuestionarioAssociacaoEficacia != null) { var temParticipacao = new BMQuestionarioParticipacao() .ObterPorUsuario(itemHistorico.Usuario).Any( x => x.TipoQuestionarioAssociacao != null && x.TipoQuestionarioAssociacao.ID == (int)enumTipoQuestionarioAssociacao.Eficacia && x.Turma.ID == itemMatriculaTurma.Turma.ID && x.DataParticipacao != null); if (!temParticipacao) { item.QuestionarioEficaciaPendente = true; int quantidadeItens = ConsultarQuantidadeItensQuestionarioAssociados(itemMatriculaTurma); item.QuantidadeItensQuestionarioAgrupados = quantidadeItens > 0 ? quantidadeItens : (int?)null; } } } } else { var matriculaTurma = itemHistorico.MatriculaTurma.FirstOrDefault(); preencherDataInicioDataFimCurso(matriculaTurma, matriculaTurma.MatriculaOferta.Oferta, ref item); } item.IdMatricula = itemHistorico.ID; item.Situacao = itemHistorico.StatusMatriculaFormatado; item.Tipo = Constantes.CursoUC; if (itemHistorico.MatriculaTurma != null) { var matTurma = (new ManterMatriculaTurma()).ObterMatriculaTurmaPorId(itemMatriculaTurma.ID); item.Feedback = (matTurma.Feedback ?? "").Trim(); } PreencherCertificado(itemHistorico, item, usuario); resultado.Add(item); } return(resultado); }