Beispiel #1
0
        /// <summary>
        /// Validação da data de movimentação, pois a data atual não pode ser anterior a última.
        /// </summary>
        /// <param name="dataMovimentacao">Data da movimentação</param>
        /// <param name="alu_id">Id do aluno</param>
        /// <param name="ent_id">Id da entidade</param>
        /// <param name="tmo_id">Id do tipo de movimentação</param>
        /// <param name="bancoGestao">Conexão aberta com o banco de dados</param>
        /// <param name="listasFechamentoMatricula">Listas carregadas com dados do fechamento de matrícula</param>
        public static void ValidaDataMovimentacao
        (
            DateTime dataMovimentacao,
            long alu_id,
            Guid ent_id,
            int tmo_id,
            TalkDBTransaction bancoGestao,
            FormacaoTurmaBO.ListasFechamentoMatricula listasFechamentoMatricula = null
        )
        {
            dataMovimentacao = dataMovimentacao == new DateTime() ? DateTime.Now : dataMovimentacao;

            // Recupera o último currículo do aluno, caso exista.
            ACA_AlunoCurriculo entityUltimoAlunoCurriculo;

            ACA_AlunoCurriculoBO.CarregaUltimoCurriculo(alu_id, out entityUltimoAlunoCurriculo);

            MTR_TipoMovimentacao tmo = null;

            if (listasFechamentoMatricula != null && listasFechamentoMatricula.listTipoMovimentacao != null)
            {
                // Se a lista de fechamento de matrícula foi passada, busca o tipo de movimentação dela ao invés de dar GetEntity.
                tmo = listasFechamentoMatricula.listTipoMovimentacao.
                      Find(p => p.tmo_id == tmo_id);
            }

            if (tmo == null)
            {
                tmo = new MTR_TipoMovimentacao
                {
                    tmo_id = tmo_id
                };
                MTR_TipoMovimentacaoBO.GetEntity(tmo, bancoGestao);
            }

            // Verifica a data da movimentação, necessário no caso  de ações retroativas.
            if ((entityUltimoAlunoCurriculo.alc_dataPrimeiraMatricula != new DateTime()) && (entityUltimoAlunoCurriculo.alc_dataPrimeiraMatricula.Date > dataMovimentacao.Date) ||
                (entityUltimoAlunoCurriculo.alc_dataSaida != new DateTime()) && (entityUltimoAlunoCurriculo.alc_dataSaida.Date > dataMovimentacao.Date))
            {
                throw new ValidationException("Data da movimentação não pode ser anterior à data da última matrícula do aluno.");
            }

            DateTime dataRealizacaoUltimaMovimentacao = MTR_TipoMovimentacaoBO.SelecionaDataRealizacaoUltimaMovimentacao(alu_id, bancoGestao);

            if (dataRealizacaoUltimaMovimentacao != new DateTime() && dataMovimentacao.Date < dataRealizacaoUltimaMovimentacao.Date)
            {
                throw new ValidationException("Data da movimentação não pode ser anterior à data da última movimentação do aluno.");
            }

            if ((MTR_TipoMovimentacaoTipoMovimento)tmo.tmo_tipoMovimento == MTR_TipoMovimentacaoTipoMovimento.Falecimento && dataMovimentacao.Date > DateTime.Now.Date)
            {
                throw new ValidationException("Data da movimentação deve ser menor ou igual à " + DateTime.Now.ToString("dd/MM/yyyy") + ".");
            }
        }
Beispiel #2
0
 /// <summary>
 /// Validação da data de movimentação, pois a data atual não pode ser anterior a última.
 /// </summary>
 /// <param name="cadMov">Estrutura de movimentação</param>
 /// <param name="tmo">Entidade tipo de movimentação</param>
 /// <param name="alu">Entidade do aluno</param>
 /// <param name="bancoGestao">Conexão aberta com o banco de dados do gestão</param>
 /// <param name="listasFechamentoMatricula">Listas carregadas com dados do fechamento de matrícula</param>
 private static void ValidaDataMovimentacao
 (
     MTR_Movimentacao_Cadastro cadMov
     , MTR_TipoMovimentacao tmo
     , ACA_Aluno alu
     , TalkDBTransaction bancoGestao
     , FormacaoTurmaBO.ListasFechamentoMatricula listasFechamentoMatricula = null
 )
 {
     // Chama o método padrão para validar data da movimetação
     ValidaDataMovimentacao(cadMov.dataMovimentacao, alu.alu_id, alu.ent_id, tmo.tmo_id, bancoGestao, listasFechamentoMatricula);
 }
Beispiel #3
0
 /// <summary>
 /// Retorna nas 2 variáveis se a movimentação está no período válido, para o curso e ano letivo
 /// informados (através da matrícula do aluno).
 /// </summary>
 /// <param name="entMatrTurma">Matrícula atual do aluno na turma</param>
 /// <param name="entAluCur">Matrícula atual do aluno no curso</param>
 /// <param name="tmo_id">Tipo de movimentação a ser realizada</param>
 /// <param name="bancoGestao">Transação com banco - obrigatório</param>
 /// <param name="dataComparar">Data para comparação do momento</param>
 /// <param name="estaInicioMovimentacao">OUT - retorna se está no período de início de movimentação</param>
 /// <param name="estaFechamentoMovimentacao">OUT - retorna se está no período de fechamento de movimentação</param>
 /// <param name="listasFechamentoMatricula">Listas carregadas com dados do fechamento de matrícula</param>
 public static void VerificaPeriodoValidoMovimentacao
 (
     MTR_MatriculaTurma entMatrTurma
     , ACA_AlunoCurriculo entAluCur
     , int tmo_id
     , TalkDBTransaction bancoGestao
     , DateTime dataComparar
     , out bool estaInicioMovimentacao
     , out bool estaFechamentoMovimentacao
     , FormacaoTurmaBO.ListasFechamentoMatricula listasFechamentoMatricula = null
 )
 {
     // Chama método padrão para verificar o período valido da movimentação
     VerificaPeriodoValidoMovimentacao(entMatrTurma.tur_id, entAluCur.cur_id, entAluCur.crr_id, tmo_id, dataComparar, bancoGestao, out estaInicioMovimentacao, out estaFechamentoMovimentacao, listasFechamentoMatricula);
 }
Beispiel #4
0
        /// <summary>
        /// Retorna nas 2 variáveis se a movimentação está no período válido, para o curso e ano letivo
        /// informados (através da matrícula do aluno).
        /// </summary>
        /// <param name="tur_id">ID da turma</param>
        /// <param name="cur_id">ID do curso</param>
        /// <param name="crr_id">ID do curriculo do curso</param>
        /// <param name="tmo_id">ID do tipo de movimentação</param>
        /// <param name="dataComparar">Data para comparação do momento</param>
        /// <param name="bancoGestao">Transação com banco - obrigatório</param>
        /// <param name="estaInicioMovimentacao">OUT - retorna se está no período de início de movimentação</param>
        /// <param name="estaFechamentoMovimentacao">OUT - retorna se está no período de fechamento de movimentação</param>
        /// <param name="listasFechamentoMatricula">Listas carregadas com dados do fechamento de matrícula</param>
        public static void VerificaPeriodoValidoMovimentacao
        (
            long tur_id
            , int cur_id
            , int crr_id
            , int tmo_id
            , DateTime dataComparar
            , TalkDBTransaction bancoGestao
            , out bool estaInicioMovimentacao
            , out bool estaFechamentoMovimentacao
            , FormacaoTurmaBO.ListasFechamentoMatricula listasFechamentoMatricula = null
        )
        {
            TUR_Turma entTur = null;

            if (listasFechamentoMatricula != null && listasFechamentoMatricula.listTurma != null)
            {
                // Busca a entidade da lista de fechamento de matrícula.
                entTur = listasFechamentoMatricula.listTurma.Find(p => p.tur_id == tur_id);
            }

            if (entTur == null)
            {
                entTur = new TUR_Turma
                {
                    tur_id = tur_id
                };
                TUR_TurmaBO.GetEntity(entTur, bancoGestao);
            }

            ACA_CalendarioAnual entCalendario = null;

            if (listasFechamentoMatricula != null && listasFechamentoMatricula.listCalendarios != null)
            {
                // Busca a entidade da lista de fechamento de matrícula.
                entCalendario = listasFechamentoMatricula.listCalendarios.Find(p => p.cal_id == entTur.cal_id);
            }

            if (entCalendario == null)
            {
                entCalendario = new ACA_CalendarioAnual
                {
                    cal_id = entTur.cal_id
                };
                ACA_CalendarioAnualBO.GetEntity(entCalendario, bancoGestao);
            }

            int mom_ano = entCalendario.cal_ano;

            MTR_TipoMovimentacaoDAO dao = new MTR_TipoMovimentacaoDAO {
                _Banco = bancoGestao
            };
            DataTable dt = dao.SelectBy_PeriodoValido_Curso(cur_id, crr_id, tmo_id, mom_ano, dataComparar);

            if (dt.Rows.Count > 0)
            {
                if (!String.IsNullOrEmpty(dt.Rows[0]["IsPeriodoInicioProcesso"].ToString()))
                {
                    estaInicioMovimentacao = Convert.ToBoolean(dt.Rows[0]["IsPeriodoInicioProcesso"]);
                }
                else
                {
                    estaInicioMovimentacao = false;
                }

                if (!String.IsNullOrEmpty(dt.Rows[0]["IsPeriodoFimProcesso"].ToString()))
                {
                    estaFechamentoMovimentacao = Convert.ToBoolean(dt.Rows[0]["IsPeriodoFimProcesso"]);
                }
                else
                {
                    estaFechamentoMovimentacao = false;
                }
            }
            else
            {
                estaInicioMovimentacao     = false;
                estaFechamentoMovimentacao = false;
            }
        }