public void RegistrarMatricula(MatriculaCapacitacao pMatriculaCapacitacao) { ValidarRegistroMatriculaEnviado(pMatriculaCapacitacao); //pMatriculaPrograma.DataAlteracao = DateTime.Now; repositorio.Salvar(pMatriculaCapacitacao); }
public void AtualizarMatriculaCapacitacao(MatriculaCapacitacao matriculaCapacitacao) { if (matriculaCapacitacao == null) { return; } if (matriculaCapacitacao.StatusMatricula.Equals(enumStatusMatricula.CanceladoAdm)) { if (matriculaCapacitacao.ListaMatriculaTurmaCapacitacao != null) { new BMMatriculaTurmaCapacitacao().ExcluirLista(matriculaCapacitacao.ListaMatriculaTurmaCapacitacao); } } var lsIgnorarStatusMatricula = new List <enumStatusMatricula> { enumStatusMatricula.FilaEspera, enumStatusMatricula.Inscrito, enumStatusMatricula.PendenteConfirmacaoAluno }; if (!lsIgnorarStatusMatricula.Contains(matriculaCapacitacao.StatusMatricula) && !matriculaCapacitacao.DataFim.HasValue) { matriculaCapacitacao.DataFim = DateTime.Now; } else { matriculaCapacitacao.DataFim = null; } bmMatriculaCapacitacao.Salvar(matriculaCapacitacao); }
private MatriculaCapacitacao ObterObjetoMatriculaCapacitacao() { MatriculaCapacitacao matriculaCapacitacao = new MatriculaCapacitacao(); //Usuário if (this.LupaUsuario.SelectedUser != null) { matriculaCapacitacao.Usuario = this.LupaUsuario.SelectedUser; } //Oferta if (this.IdCapacitacao > 0) { matriculaCapacitacao.Capacitacao = new Capacitacao() { ID = this.IdCapacitacao }; } //UF matriculaCapacitacao.UF = matriculaCapacitacao.Usuario.UF; //Nivel Ocupacional matriculaCapacitacao.NivelOcupacional = matriculaCapacitacao.Usuario.NivelOcupacional; //Status if (this.ddlStatus.SelectedItem != null && !string.IsNullOrWhiteSpace(this.ddlStatus.SelectedItem.Value)) { matriculaCapacitacao.StatusMatricula = (enumStatusMatricula)int.Parse(this.ddlStatus.SelectedItem.Value); } matriculaCapacitacao.DataInicio = DateTime.Now; return(matriculaCapacitacao); }
public bool VerificarDuplicidadeDeRegistroChave(MatriculaCapacitacao pMatriculaCapacitacao) { bool usuarioJaMatriculado = false; var query = repositorio.session.Query <MatriculaCapacitacao>(); usuarioJaMatriculado = query.Any(x => x.Usuario.ID == pMatriculaCapacitacao.Usuario.ID && x.Capacitacao.ID == pMatriculaCapacitacao.Capacitacao.ID); return(usuarioJaMatriculado); }
public void Salvar(MatriculaCapacitacao pMatriculaCapacitacao) { if (pMatriculaCapacitacao.ID == 0 && pMatriculaCapacitacao.Usuario != null) { pMatriculaCapacitacao.NivelOcupacional = pMatriculaCapacitacao.Usuario.NivelOcupacional; pMatriculaCapacitacao.UF = pMatriculaCapacitacao.Usuario.UF; } ValidarRegistroMatriculaEnviado(pMatriculaCapacitacao); repositorio.Salvar(pMatriculaCapacitacao); }
public string MatriculaCapacitacao(int idUsuario, int idCapacitacao, int idTurma) { var usuario = new BMUsuario().ObterPorId(idUsuario); if (usuario == null) { throw new AcademicoException("Usuário não localizado na base"); } var capacitacao = new BMCapacitacao().ObterPorId(idCapacitacao); if (capacitacao == null) { throw new AcademicoException("Capacitação não localizado na base"); } var matCap = new BMMatriculaCapacitacao().ObterUsuariosPorCapacitacao(usuario.ID, capacitacao.ID); if (matCap.Count > 0) { throw new AcademicoException("Usuário já matriculado nesta capacitação."); } var turmaCap = new BMTurmaCapacitacao().ObterPorId(idTurma); if (turmaCap == null) { throw new AcademicoException("Turma não localizada na base"); } var matriculaCapacitacao = new MatriculaCapacitacao { Usuario = usuario, Capacitacao = capacitacao, UF = usuario.UF, NivelOcupacional = usuario.NivelOcupacional, StatusMatricula = enumStatusMatricula.Inscrito, DataInicio = DateTime.Today }; new BMMatriculaCapacitacao().Salvar(matriculaCapacitacao); var matriculaTurmaCapacitacao = new MatriculaTurmaCapacitacao { MatriculaCapacitacao = matriculaCapacitacao, TurmaCapacitacao = turmaCap, DataMatricula = DateTime.Today }; new BMMatriculaTurmaCapacitacao().Salvar(matriculaTurmaCapacitacao); return(string.Empty); }
public IList <MatriculaCapacitacao> ObterPorFiltros(MatriculaCapacitacao pMatriculaCapacitacao, bool vigente = false) { var query = repositorio.session.Query <MatriculaCapacitacao>(); if (pMatriculaCapacitacao.ID != 0) { query = query.Where(x => x.ID == pMatriculaCapacitacao.ID); } if (pMatriculaCapacitacao.NivelOcupacional != null) { query = query.Where(x => x.NivelOcupacional.ID == pMatriculaCapacitacao.NivelOcupacional.ID); } if (pMatriculaCapacitacao.Capacitacao != null && pMatriculaCapacitacao.Capacitacao.ID != 0) { query = query.Where(x => x.Capacitacao.ID == pMatriculaCapacitacao.Capacitacao.ID); } if (pMatriculaCapacitacao.StatusMatricula != null) { query = query.Where(x => x.StatusMatricula == pMatriculaCapacitacao.StatusMatricula); } if (pMatriculaCapacitacao.UF != null) { query = query.Where(x => x.UF.ID == pMatriculaCapacitacao.UF.ID); } if (pMatriculaCapacitacao.Usuario != null) { query = query.Where(x => x.Usuario.ID == pMatriculaCapacitacao.Usuario.ID); } if (vigente) { query = query.Where(x => (x.Capacitacao.DataInicio <= DateTime.Today && x.Capacitacao.DataFim >= DateTime.Today)); } query = query.Fetch(x => x.NivelOcupacional); query = query.Fetch(x => x.Capacitacao); query = query.Fetch(x => x.Usuario); return(query.ToList()); }
private void ValidarRegistroMatriculaEnviado(MatriculaCapacitacao pMatriculaCapacitacao) { this.ValidarInstancia(pMatriculaCapacitacao); if (pMatriculaCapacitacao.Capacitacao == null || pMatriculaCapacitacao.Capacitacao.ID == 0) { throw new AcademicoException("Capacitação não informada. Campo Obrigatório!"); } if (pMatriculaCapacitacao.Usuario == null || pMatriculaCapacitacao.Usuario.ID == 0) { throw new AcademicoException("Usuário não informado. Campo Obrigatório!"); } if (pMatriculaCapacitacao.UF == null || pMatriculaCapacitacao.UF.ID == 0) { throw new AcademicoException("UF não informado. Campo Obrigatório!"); } if (pMatriculaCapacitacao.StatusMatricula == null) { throw new AcademicoException("Status da Matrícula não informado. Campo Obrigatório!"); } if (pMatriculaCapacitacao.NivelOcupacional == null || pMatriculaCapacitacao.NivelOcupacional.ID == 0) { throw new AcademicoException("Nível Ocupacional não informado. Campo Obrigatório!"); } if (pMatriculaCapacitacao.ID == 0) { bool registroDuplicado = VerificarDuplicidadeDeRegistroChave(pMatriculaCapacitacao); if (registroDuplicado) { throw new AcademicoException("O usuário informado encontra-se matriculado neste programa."); } } }
private static bool UsuarioPossuiPendenciaCapacitacaoPrograma(int solucaoId, Usuario usuario, ref DTODisponibilidadeSolucaoEducacional retorno) { var filtroMatriculaCapacitacao = new MatriculaCapacitacao { StatusMatricula = enumStatusMatricula.Inscrito, Usuario = usuario }; var listaMatriculaCapacitacao = new BMMatriculaCapacitacao().ObterPorFiltros(filtroMatriculaCapacitacao, true); // Verificar se a capacitação possui pré-capacitações. foreach ( var modNecessario in listaMatriculaCapacitacao.Select( matriculaCapacitacao => new BMModuloSolucaoEducacional().CapacitacaoPossuiSolucao( matriculaCapacitacao.Capacitacao.ID, solucaoId)) .Where(modSol => modSol != null) .Select(modSol => new BMModuloPreRequisito().ListPreRequisitosPorModulo(modSol, usuario.ID)) .Where(modNecessario => modNecessario.ID != 0)) { retorno.TextoDisponibilidade = string.Format( "Existe uma solução educacional do \"{0}\" da capacitação \"{1}\" do programa \"{2}\" que precisa ser concluída antes que possa ser realizada a inscrição nesse curso. <br /><br /><a href='" + //modNecessario.Capacitacao.Programa.Acesso + "'>Clique aqui</a> para acessar a página do Programa.", modNecessario.Nome, modNecessario.Capacitacao.Nome, modNecessario.Capacitacao.Programa.Nome); retorno.CodigoDisponibilidade = (int)enumDisponibilidadeSolucaoEducacional.PossuiPreReqPrograma; return(true); } return(false); }
protected void btnEnviar_Click(object sender, EventArgs e) { try { BMMatriculaCapacitacao manterMatriculaCapacitacao = new BMMatriculaCapacitacao(); MatriculaCapacitacao matriculaCapacitacao = this.ObterObjetoMatriculaCapacitacao(); manterMatriculaCapacitacao.Salvar(matriculaCapacitacao); if (ddlTurmaCapacitacao.SelectedIndex > 0) { MatriculaTurmaCapacitacao matriculaTurmaCapacitacao = ObterObjetoMatriculaTurmaCapacitacao(matriculaCapacitacao.ID); new BMMatriculaTurmaCapacitacao().Salvar(matriculaTurmaCapacitacao); } //Dispara o evento informando que a matricula em uma oferta foi realizada if (MatriculouAlunoEmUmaCapacitacao != null) { //Obtem as informações da matricula Oferta (inclusive a lista de turmas da oferta) matriculaCapacitacao = manterMatriculaCapacitacao.ObterPorId(matriculaCapacitacao.ID); MatriculouAlunoEmUmaCapacitacao(this, new MatricularAlunoEmUmaCapacitacaoEventArgs(matriculaCapacitacao)); ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "myscript", " $('#EdicaoNivel, #modal-background').removeClass('active');", true); } GerenciarMatriculaCapacitacao gerenciarMatriculaCapacitacao = (GerenciarMatriculaCapacitacao)this.Page; gerenciarMatriculaCapacitacao.PreencherMatriculas(); WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Dados cadastrados com sucesso."); } catch (AcademicoException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); return; } }
public MatricularAlunoEmUmaCapacitacaoEventArgs(MatriculaCapacitacao matriculaCapacitacao) { InformacoesDaMatriculaOfertaRealizada = matriculaCapacitacao; }
public DTOCapacitacao AprovacoesSolucoesEducacionais(MatriculaCapacitacao matriculaCapacitacao, int pIdUsuario) { DTOCapacitacao dtoCapacitacao = new DTOCapacitacao { NomeCapacitacao = matriculaCapacitacao.Capacitacao.Nome, idMatricula = matriculaCapacitacao.ID, DataInicio = matriculaCapacitacao.DataInicio.ToString("dd/MM/yyyy"), DataFim = matriculaCapacitacao.DataFim.HasValue ? matriculaCapacitacao.DataFim.Value.ToString("dd/MM/yyyy") : "" }; var bmMatricula = new ManterMatriculaOferta(); ConsultarMeusCursos ConsultaMeusCursos = new ConsultarMeusCursos(); int totalAprovacoes = 0; int totalSolEdu = 0; var manterPreRequisito = new ManterModuloPreRequisito(); foreach (var modulo in matriculaCapacitacao.Capacitacao.ListaModulos.Distinct()) { DTOModulo dtoModulo = new DTOModulo { ID = modulo.ID, Nome = modulo.Nome, Descricao = modulo.Descricao, DataInicio = modulo.DataInicio.ToString("dd/MM/yyyy"), DataFim = modulo.DataFim.HasValue ? modulo.DataFim.Value.ToString("dd/MM/yyyy") : "" }; var lsSolucoesModulo = modulo.ListaSolucaoEducacional.Distinct(); var totalAprovadoModulo = 0; foreach (var solucao in lsSolucoesModulo) { var aprovado = bmMatricula.AprovacaoPorUsuarioESolucaoEducacional(pIdUsuario, solucao.SolucaoEducacional.ID); if (aprovado) { totalAprovacoes++; totalAprovadoModulo++; } var matOfertas = bmMatricula.ObterPorUsuarioESolucaoEducacional(pIdUsuario, solucao.SolucaoEducacional.ID).ToList(); var meusCursos = new List <DTOItemMeusCursos>(); // Se tiver Status inscrito ou pendente de confirmação segue o fluxo normal de matrículas em oferta if (matOfertas.Any(x => (x.StatusMatricula == enumStatusMatricula.Inscrito || x.StatusMatricula == enumStatusMatricula.PendenteConfirmacaoAluno))) { ConsultaMeusCursos.PreencherDTOComInformacoesDaMatriculaOferta(meusCursos, matOfertas); //dtoModulo.SolucoesModulo.Add(new DTOItemMeusCursos { Nome = solucao.SolucaoEducacional.Nome, Concluido = aprovado, IDNode = solucao.SolucaoEducacional.IdNode }); foreach (var curso in meusCursos) { dtoModulo.SolucoesModulo.Add(curso); } } // Se não tiver inscrito escreve as informações básicas else { DTOItemMeusCursos dtoItemMeusCursos = new DTOItemMeusCursos(); dtoItemMeusCursos.ID = solucao.SolucaoEducacional.ID; dtoItemMeusCursos.NomeSolucao = solucao.SolucaoEducacional.Nome; dtoItemMeusCursos.Fornecedor = solucao.SolucaoEducacional.Fornecedor.Nome; if (aprovado) { dtoItemMeusCursos.SituacaoID = 9; dtoItemMeusCursos.Situacao = "Aprovado"; } else { dtoItemMeusCursos.SituacaoID = 0; dtoItemMeusCursos.Situacao = "Você não está inscrito nesse curso"; } dtoItemMeusCursos.IDChaveExterna = solucao.SolucaoEducacional.IDChaveExterna; dtoItemMeusCursos.IDNode = solucao.SolucaoEducacional.IdNode; dtoModulo.SolucoesModulo.Add(dtoItemMeusCursos); } } var totalSeMod = modulo.ListaSolucaoEducacional.Count(); dtoModulo.PorcentagemConclusaoModulo = (int)(Math.Round((double)totalAprovadoModulo / (double)totalSeMod, 2) * 100); dtoModulo.TextoConclusaoModulo = totalAprovadoModulo.ToString() + "/" + totalSeMod.ToString(); // Verificar pré requisitos do módulo dtoModulo.PreRequisitoPendente = manterPreRequisito.VerificarPreRequisitoPendente(modulo, pIdUsuario); totalSolEdu += totalSeMod; // Insere o Módulo no DTO dtoCapacitacao.ModulosCapacitacao.Add(dtoModulo); } // CAPACITAÇÕES int diasCancelamento = int.Parse(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.DiasCancelamentoCurso).Registro.ToString()); bool habilitaCancelamento; if (matriculaCapacitacao.Capacitacao.PermiteCancelarMatricula && matriculaCapacitacao.DataInicio.Date.AddDays(diasCancelamento) >= DateTime.Now) { habilitaCancelamento = true; } else { habilitaCancelamento = false; } int percentage = 0; // Se não tiver soluções disponíveis ou se não tiver feito nada retorna 0 if (totalAprovacoes != 0 && totalSolEdu != 0) { percentage = (int)(Math.Round((double)totalAprovacoes / (double)totalSolEdu, 2) * 100); } // Insere o resto dos dados da capacitação dtoCapacitacao.PorcentagemConclusaoCapacitacao = percentage; dtoCapacitacao.TextoConclusaoCapacitacao = totalAprovacoes.ToString() + "/" + totalSolEdu.ToString(); dtoCapacitacao.HabilitaCancelamento = habilitaCancelamento; return(dtoCapacitacao); }
public void Excluir(MatriculaCapacitacao pMatriculaCapacitacao) { repositorio.Excluir(pMatriculaCapacitacao); }