/// <summary> /// Verifica se as regras do curso estão sendo cumpridas. /// Quando o regime de matrícula é Seriado por avaliações, o formato tem que /// ser do tipo Conceito Global e a avaliação selecionada tem que ser do tipo /// Periódica ou Periódica + Final. /// </summary> private void VerificaRegrasCurso(TUR_Turma entityTurma, ACA_FormatoAvaliacao entityFormatoAvaliacao) { ACA_CurriculoPeriodo entCurPeriodo; bool Seriado; if (TUR_TurmaCurriculoBO.ValidaCursoSeriadoAvaliacao(entityTurma, entityFormatoAvaliacao, out entCurPeriodo, out Seriado) && Seriado) { VS_crp_nomeAvaliacao = GestaoEscolarUtilBO.nomePadraoPeriodoAvaliacao(entCurPeriodo.crp_nomeAvaliacao); } VS_CursoSeriadoAvaliacoes = Seriado && entCurPeriodo.crp_turmaAvaliacao; }
/// <summary> /// Valida e configura se a turma destino possui a mesma avaliação turma atual do aluno. /// </summary> /// <param name="cadMov">Estrutura de movimentação</param> /// <param name="progressaoPEJA">Verifica se o método é chamado pela tela de progressão</param> /// <param name="bancoGestao">Transação com banco Gestão - obrigatório</param> public static void ConfiguraTurmaAvaliacao(MTR_Movimentacao_Cadastro cadMov, bool progressaoPEJA, TalkDBTransaction bancoGestao) { List <ACA_CurriculoPeriodo> listPeriodosEquivalentes = ACA_CurriculoPeriodoBO. Seleciona_PeriodosRelacionados_Equivalentes(cadMov.entAluCurAnterior.cur_id, cadMov.entAluCurAnterior.crr_id, cadMov.entAluCurAnterior.crp_id); // Apenas valida a avaliação da turma caso seja o mesmo Curso/Período. // Também verifica se os cursos são equivalentes if ( ((cadMov.entAluCurAnterior.cur_id == cadMov.entAluCurNovo.cur_id) && (cadMov.entAluCurAnterior.crr_id == cadMov.entAluCurNovo.crr_id) && (cadMov.entAluCurAnterior.crp_id == cadMov.entAluCurNovo.crp_id)) || (listPeriodosEquivalentes.Count > 0 && listPeriodosEquivalentes.Exists(p => p.cur_id == cadMov.entAluCurNovo.cur_id && p.crr_id == cadMov.entAluCurNovo.crr_id && p.crp_id == cadMov.entAluCurNovo.crp_id))) { // Apenas valida a avaliação da turma caso definido a turma destino. if (cadMov.entMatTurNovo.tur_id > 0) { ACA_CurriculoPeriodo entityCurriculoPeriodo = new ACA_CurriculoPeriodo { cur_id = cadMov.entAluCurAnterior.cur_id, crr_id = cadMov.entAluCurAnterior.crr_id, crp_id = cadMov.entAluCurAnterior.crp_id }; ACA_CurriculoPeriodoBO.GetEntity(entityCurriculoPeriodo, bancoGestao); TUR_TurmaCurriculoAvaliacao entityTurmaCurriculoAvaliacaoAtual = new TUR_TurmaCurriculoAvaliacao { tur_id = cadMov.entAluCurAvaAnterior.tur_id, cur_id = cadMov.entAluCurAvaAnterior.cur_id, crr_id = cadMov.entAluCurAvaAnterior.crr_id, crp_id = cadMov.entAluCurAvaAnterior.crp_id, tca_id = cadMov.entAluCurAvaAnterior.tca_id }; TUR_TurmaCurriculoAvaliacaoBO.GetEntity(entityTurmaCurriculoAvaliacaoAtual, bancoGestao); if (entityTurmaCurriculoAvaliacaoAtual.tca_id > 0) { TUR_TurmaCurriculoAvaliacao entityTurmaCurriculoAvaliacaoDestino; string msg; if (!progressaoPEJA) { // Verifica se a turma destino possui a avaliação da turma origem. entityTurmaCurriculoAvaliacaoDestino = TUR_TurmaCurriculoAvaliacaoBO.SelecionaAvaliacaoExistenteParaTurma(cadMov.entMatTurNovo.tur_id, cadMov.entAluCurNovo.cur_id, cadMov.entAluCurNovo.crr_id, cadMov.entAluCurNovo.crp_id, entityTurmaCurriculoAvaliacaoAtual.tca_numeroAvaliacao); msg = "A turma destino do aluno deve possuir o(a) mesmo(a) " + GestaoEscolarUtilBO.nomePadraoPeriodoAvaliacao(entityCurriculoPeriodo.crp_nomeAvaliacao) + " atual do aluno."; } else { entityTurmaCurriculoAvaliacaoDestino = new TUR_TurmaCurriculoAvaliacao { tur_id = cadMov.entMatTurNovo.tur_id , cur_id = cadMov.entAluCurAvaNovo.cur_id , crr_id = cadMov.entAluCurAvaNovo.crr_id , crp_id = cadMov.entAluCurAvaNovo.crp_id , tca_id = cadMov.entAluCurAvaNovo.tca_id }; TUR_TurmaCurriculoAvaliacaoBO.GetEntity(entityTurmaCurriculoAvaliacaoDestino, bancoGestao); msg = "A turma destino do aluno não possui o(a) " + GestaoEscolarUtilBO.nomePadraoPeriodoAvaliacao(entityCurriculoPeriodo.crp_nomeAvaliacao) + " configurada para o aluno."; } if ((entityTurmaCurriculoAvaliacaoDestino != null) && (entityTurmaCurriculoAvaliacaoDestino.tca_id > 0)) { // Configura o currículo avaliação novo com mesma avaliação, caso necessário. if (cadMov.entAluCurAvaNovo.tca_id <= 0) { cadMov.entAluCurAvaNovo.alu_id = cadMov.entAluCurNovo.alu_id; cadMov.entAluCurAvaNovo.tur_id = entityTurmaCurriculoAvaliacaoDestino.tur_id; cadMov.entAluCurAvaNovo.cur_id = entityTurmaCurriculoAvaliacaoDestino.cur_id; cadMov.entAluCurAvaNovo.crr_id = entityTurmaCurriculoAvaliacaoDestino.crr_id; cadMov.entAluCurAvaNovo.crp_id = entityTurmaCurriculoAvaliacaoDestino.crp_id; cadMov.entAluCurAvaNovo.tca_id = entityTurmaCurriculoAvaliacaoDestino.tca_id; } } else { throw new ValidationException(msg); } } else { throw new ValidationException("Não é possível realizar essa movimentação, pois o aluno não possui " + GestaoEscolarUtilBO.nomePadraoPeriodoAvaliacao(entityCurriculoPeriodo.crp_nomeAvaliacao) + " ativo(a) na turma."); } } } }