Beispiel #1
0
        /// <summary>
        /// Verifica se o curso da turma possui avaliação do tipo seriado.
        /// </summary>
        /// <param name="entTurma">Entidade da turma.</param>
        /// <param name="EntFormatoAvaliacao">Entidade do formato de avaliação da turma.</param>
        /// <param name="banco">Transação.</param>
        /// <param name="entCurriculoPeriodo">Entidade do grupamento da turma (parâmatro de sáida)</param>
        /// <param name="Seriado">Flag que indica se o curso ~possui avaliação do tipo seriado (parâmatro de sáida)</param>
        /// <returns></returns>
        public static bool ValidaCursoSeriadoAvaliacao(TUR_Turma entTurma, ACA_FormatoAvaliacao EntFormatoAvaliacao, TalkDBTransaction banco, out ACA_CurriculoPeriodo entCurriculoPeriodo, out bool Seriado)
        {
            Seriado = false;

            List <TUR_TurmaCurriculo> listCurriculos = TUR_TurmaCurriculoBO.GetSelectBy_Turma(entTurma.tur_id, banco, GestaoEscolarUtilBO.MinutosCacheLongo);

            if (listCurriculos.Count == 0)
            {
                throw new Exception("A turma (tur_id: " + entTurma.tur_id + ") não possui nenhum curriculoPeriodo cadastrado.");
            }

            ACA_Curriculo entCurriculo = new ACA_Curriculo
            {
                cur_id = listCurriculos[0].cur_id
                ,
                crr_id = listCurriculos[0].crr_id
            };

            ACA_CurriculoBO.GetEntity(entCurriculo, banco);

            // Se curso for seriado por avaliações - EJA.
            if (entCurriculo.crr_regimeMatricula ==
                (byte)ACA_CurriculoRegimeMatricula.SeriadoPorAvaliacoes)
            {
                Seriado = true;

                if ((EntFormatoAvaliacao.fav_tipo != (byte)ACA_FormatoAvaliacaoTipo.ConceitoGlobal) &&
                    (EntFormatoAvaliacao.fav_tipo != (byte)ACA_FormatoAvaliacaoTipo.GlobalDisciplina))
                {
                    // Curso do EJA não pode efetivar notas por disciplina - não possui ligação
                    // com lançamento por disciplina.
                    throw new ValidationException("O formato de avaliação \"" + EntFormatoAvaliacao.fav_nome +
                                                  "\" deve ser do tipo \"Conceito global\" ou " +
                                                  "\"Conceito global e nota por " + CustomResource.GetGlobalResourceObject("Mensagens", "MSG_DISCIPLINA") + "\", " +
                                                  "pois o curso da turma é seriado por avaliações.");
                }
            }

            entCurriculoPeriodo = new ACA_CurriculoPeriodo
            {
                cur_id = entCurriculo.cur_id
                ,
                crr_id = entCurriculo.crr_id
                ,
                crp_id = listCurriculos[0].crp_id
            };
            ACA_CurriculoPeriodoBO.GetEntity(entCurriculoPeriodo, banco);

            return(true);
        }
        /// <summary>
        /// Retorna a matriz curricular das disciplinas da turma
        /// </summary>
        /// <param name="tur_id">ID da turma</param>
        /// <param name="cur_efetivacaoSemestral">flag que indica se o curso permite efetivação semestral</param>
        /// <returns></returns>
        public static List <MatrizCurricular> SelecionaMatrizCurricularTurma
        (
            long tur_id
            , out bool efetivacaoSemestral
        )
        {
            List <TUR_TurmaCurriculo> listaCurriculo = TUR_TurmaCurriculoBO.GetSelectBy_Turma(tur_id, GestaoEscolarUtilBO.MinutosCacheLongo);

            ACA_Curso entityCurso = new ACA_Curso {
                cur_id = listaCurriculo[0].cur_id
            };

            ACA_CursoBO.GetEntity(entityCurso);

            List <MatrizCurricular> lista = new List <MatrizCurricular>();

            if (entityCurso.cur_efetivacaoSemestral)
            {
                efetivacaoSemestral = true;

                ACA_CurriculoControleSemestralDisciplinaPeriodoDAO dao = new ACA_CurriculoControleSemestralDisciplinaPeriodoDAO();
                DataTable dt = dao.SelecionaMatrizCurricularTurma(tur_id);

                foreach (DataRow dr in dt.Rows)
                {
                    MatrizCurricular ent = new MatrizCurricular();

                    ent.tud_id         = Convert.ToInt64(dr["tud_id"]);
                    ent.tpc_id         = Convert.ToInt32(dr["tpc_id"]);
                    ent.csp_nota       = Convert.ToBoolean(dr["csp_nota"]);
                    ent.csp_frequencia = Convert.ToBoolean(dr["csp_frequencia"]);

                    lista.Add(ent);
                }
            }
            else
            {
                efetivacaoSemestral = false;
            }

            return(lista);
        }