Beispiel #1
0
        protected void btnEnviar_Click(object sender, EventArgs e)
        {
            try
            {
                MatriculaTurma       matriculaTurma       = this.ObterObjetoMatriculaTurma();
                ManterMatriculaTurma manterMatriculaTurma = new ManterMatriculaTurma();

                validaNotasMatricula(matriculaTurma);

                if (matriculaTurma.Turma.Oferta.TipoOferta != enumTipoOferta.Continua && matriculaTurma.DataTermino > matriculaTurma.DataLimite)
                {
                    throw new AcademicoException("A Data de Conclusão não pode ser maior que a Data Limite da Turma.");
                }

                var usuarioLogado = new ManterUsuario().ObterUsuarioLogado();
                matriculaTurma.Auditoria = new Auditoria(usuarioLogado.CPF);

                manterMatriculaTurma.AlterarMatriculaTurma(matriculaTurma);

                if (MatriculouAlunoEmUmaTurma != null)
                {
                    MatriculouAlunoEmUmaTurma(this, new MatricularAlunoEmUmaTurmaEventArgs(matriculaTurma));
                }
            }
            catch (AcademicoException ex)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
                return;
            }
        }
        protected void btnSalvarModalDataConclusao_OnClick(object sender, EventArgs e)
        {
            try
            {
                if (!string.IsNullOrEmpty(hdfModalDataConclusaoIdMatriculaTurma.Value))
                {
                    var manterMatriculaTurma = new ManterMatriculaTurma();
                    var idMatriculaTurma     = Convert.ToInt32(hdfModalDataConclusaoIdMatriculaTurma.Value);
                    var matriculaTurma       = manterMatriculaTurma.ObterMatriculaTurmaPorId(idMatriculaTurma);

                    var dataConclusao = DateTime.Now;

                    if (!DateTime.TryParse(txtModalDataConclusao.Text, out dataConclusao))
                    {
                        throw new AcademicoException("Informe uma data válida para conclusão do aluno.");
                    }

                    matriculaTurma.DataTermino = dataConclusao;

                    var data = matriculaTurma.Turma.DataFinal;

                    if (data.HasValue)
                    {
                        if (matriculaTurma.DataTermino.Value.Date > data.Value.Date)
                        {
                            throw new AcademicoException(string.Format("Data de conclusão não pode ser maior que a data final da turma ({0}).", data.Value.ToString("dd/MM/yyyy")));
                        }
                    }

                    manterMatriculaTurma.AlterarMatriculaTurma(matriculaTurma);

                    var manterMatriculaOferta = new ManterMatriculaOferta();
                    var matriculaOferta       = manterMatriculaOferta.ObterMatriculaOfertaPorID(matriculaTurma.MatriculaOferta.ID);

                    AtualizarStatusDaOferta((enumStatusMatricula)Convert.ToInt32(hdfModalDataConclusaoIdStatusMatriculaOferta.Value), matriculaOferta, ref manterMatriculaOferta);

                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "O Status da Matrícula da Turma foi Atualizado com Sucesso !");

                    consultarMatriculasUsuario();

                    AtualizarStatusUsuarioTurma(matriculaTurma);
                }

                OcultarModalDataConclusao();
            }
            catch (PoliticaConsequenciaException ex)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
            }
            catch (AcademicoException ex)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
            }
        }
        public void SalvarQuestionario()
        {
            try
            {
                QuestionarioParticipacao questionarioParticipacao;

                if (!string.IsNullOrWhiteSpace(hdnIdQuestionarioParticipacao.Value))
                {
                    questionarioParticipacao = new ManterQuestionarioParticipacao().ObterQuestionarioParticipacaoPorId(int.Parse(hdnIdQuestionarioParticipacao.Value));
                }
                else
                {
                    var questionario = new ManterQuestionario().ObterQuestionarioPorID(int.Parse(hdnIdQuestionario.Value));

                    var usuarioLogado = new ManterUsuario().ObterUsuarioLogado();

                    questionarioParticipacao = new QuestionarioParticipacao
                    {
                        Questionario               = questionario,
                        DataGeracao                = DateTime.Now,
                        Usuario                    = usuarioLogado,
                        DataParticipacao           = DateTime.Now,
                        TipoQuestionarioAssociacao = new ManterTipoQuestionarioAssociacao().ObterTipoQuestionarioAssociacaoPorID(5),
                        TextoEnunciadoPre          = questionario.TextoEnunciado,
                        Evolutivo                  = false,
                        NivelOcupacional           = new NivelOcupacional {
                            ID = usuarioLogado.NivelOcupacional.ID
                        },
                        Uf = new Uf {
                            ID = usuarioLogado.UF.ID
                        },
                        Turma = new Turma {
                            ID = int.Parse(hdnIdTurma.Value)
                        }
                    };
                }

                var listaItemQuestionarioParticipacao = new List <ItemQuestionarioParticipacao>();

                // Obter respostas dissertivas do questionário.
                foreach (Control row in rptQuestionario.Controls)
                {
                    var hdnIdItemQuestionario = (HiddenField)row.FindControl("hdnIdItemQuestionario");

                    if (hdnIdItemQuestionario == null)
                    {
                        throw new AcademicoException("Questionário mal formatado ou alterado, atualize a página e tente novamente.");
                    }

                    int idItemQuestionario;
                    int.TryParse(hdnIdItemQuestionario.Value, out idItemQuestionario);

                    var itemQuestionario = new ManterItemQuestionario().ObterItemQuestionarioPorID(idItemQuestionario);

                    if (itemQuestionario == null)
                    {
                        throw new AcademicoException("Questionário mal formatado ou alterado, atualize a página e tente novamente.");
                    }

                    var txtResposta = (TextBox)row.FindControl("txtResposta");

                    if (txtResposta == null)
                    {
                        throw new AcademicoException("Questionário mal formatado ou alterado, atualize a página e tente novamente.");
                    }

                    var itemQuestionarioParticipacao = Mapper.Map <ItemQuestionarioParticipacao>(itemQuestionario);

                    itemQuestionarioParticipacao.QuestionarioParticipacao = questionarioParticipacao;

                    if (itemQuestionarioParticipacao.TipoItemQuestionario.ID == (int)enumTipoItemQuestionario.Discursiva)
                    {
                        // Validação do campo em branco.
                        if (string.IsNullOrWhiteSpace(txtResposta.Text))
                        {
                            throw new AcademicoException(string.Format("A questão \"{0}\" é obrigatória",
                                                                       string.IsNullOrWhiteSpace(itemQuestionarioParticipacao.Ordem.ToString())
                                    ? itemQuestionarioParticipacao.Questao
                                    : itemQuestionarioParticipacao.Ordem.ToString()));
                        }

                        itemQuestionarioParticipacao.Resposta = txtResposta.Text;
                    }

                    listaItemQuestionarioParticipacao.Add(itemQuestionarioParticipacao);
                }

                questionarioParticipacao.ListaItemQuestionarioParticipacao = listaItemQuestionarioParticipacao;

                // Executar lógica para questionário de cancelamento.
                if (questionarioParticipacao.TipoQuestionarioAssociacao.ID == (int)enumTipoQuestionarioAssociacao.Cancelamento)
                {
                    var matriculasTurmasIds = hdnIdMatriculaTurma.Value.Split(',');

                    foreach (var matriculaIdString in matriculasTurmasIds)
                    {
                        int matriculaId;

                        if (int.TryParse(matriculaIdString, out matriculaId))
                        {
                            var matriculaTurma       = new MatriculaTurma();
                            var manterMatriculaTurma = new ManterMatriculaTurma();

                            if (matriculaId > 0)
                            {
                                matriculaTurma = manterMatriculaTurma.ObterMatriculaTurmaPorId(matriculaId);

                                // Caso seja Gestor, só altera a matrícula caso seja da sua UF.
                                if (matriculaTurma != null)
                                {
                                    questionarioParticipacao.Turma = matriculaTurma.Turma;
                                }
                            }

                            // Alterar Status da matrícula.
                            if (matriculaTurma != null && matriculaTurma.ID != 0)
                            {
                                var manterMatriculaOferta = new ManterMatriculaOferta();

                                var matriculaOferta = manterMatriculaOferta.ObterMatriculaOfertaPorID(matriculaTurma.MatriculaOferta.ID);

                                matriculaOferta.StatusMatricula = (enumStatusMatricula)int.Parse(hdnIdStatusMatricula.Value);

                                // Salvar Data de conclusão e nota final em lote
                                if ((!string.IsNullOrWhiteSpace(txtDataConclusao.Text) ||
                                     !string.IsNullOrWhiteSpace(hdnNotaFinal.Value)) &&
                                    matriculaOferta.Oferta.SolucaoEducacional.FormaAquisicao.Presencial)
                                {
                                    var dataConclusao = CommonHelper.TratarData(txtDataConclusao.Text,
                                                                                "Data Conclusão do lote");

                                    double?notaFinal = null;

                                    double n;

                                    if (double.TryParse(hdnNotaFinal.Value.Trim(), out n))
                                    {
                                        notaFinal = n;
                                    }

                                    foreach (var mt in matriculaOferta.MatriculaTurma)
                                    {
                                        if (dataConclusao.HasValue &&
                                            (!mt.Turma.DataFinal.HasValue || mt.Turma.DataFinal.Value >= dataConclusao))
                                        {
                                            mt.DataTermino = dataConclusao;
                                        }

                                        if (notaFinal.HasValue)
                                        {
                                            mt.MediaFinal = notaFinal;
                                        }
                                    }
                                }

                                manterMatriculaOferta.AtualizarMatriculaOferta(matriculaOferta, false);

                                matriculaTurma.DataTermino = !string.IsNullOrEmpty(txtDataConclusao.Text) ? DateTime.Parse(txtDataConclusao.Text) : DateTime.Now;

                                manterMatriculaTurma.AlterarMatriculaTurma(matriculaTurma);
                            }
                        }
                    }
                }

                // Salvar participação no questionário.
                new ManterQuestionarioParticipacao().Salvar(questionarioParticipacao);

                WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Questionário respondido com Sucesso.");
            }
            catch (AcademicoException ex)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
            }
        }