Пример #1
0
        public void RegistrarMatricula(MatriculaCapacitacao pMatriculaCapacitacao)
        {
            ValidarRegistroMatriculaEnviado(pMatriculaCapacitacao);
            //pMatriculaPrograma.DataAlteracao = DateTime.Now;

            repositorio.Salvar(pMatriculaCapacitacao);
        }
Пример #2
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #7
0
        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());
        }
Пример #8
0
        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);
        }
Пример #13
0
 public void Excluir(MatriculaCapacitacao pMatriculaCapacitacao)
 {
     repositorio.Excluir(pMatriculaCapacitacao);
 }