Ejemplo n.º 1
0
        /// <summary>
        /// Retorna a lista com a estrutura necessária para salvar a TurmaDisciplina.
        /// </summary>
        /// <param name="entTurma">Entidade da turma que será salva</param>
        /// <returns></returns>
        private List <CadastroTurmaDisciplina> RetornaTurmaDisciplina(TUR_Turma entTurma)
        {
            List <CadastroTurmaDisciplina> listaTurmaDisciplina = new List <CadastroTurmaDisciplina>();

            TUR_TurmaDisciplina entTurmaDisciplina = new TUR_TurmaDisciplina
            {
                tud_codigo                = entTurma.tur_codigo,
                tud_vagas                 = entTurma.tur_vagas,
                tud_minimoMatriculados    = entTurma.tur_minimoMatriculados,
                tud_duracao               = entTurma.tur_duracao,
                tud_cargaHorariaSemanal   = Convert.ToInt32(txtAulasSemanais.Text),
                tud_aulaForaPeriodoNormal = false,
                tud_global                = false,
                tud_nome         = RetornaNomeDisciplina(),
                tud_situacao     = (byte)TurmaDisciplinaSituacao.Ativo,
                tud_tipo         = (byte)TurmaDisciplinaTipo.DisciplinaEletivaAluno,
                tud_modo         = (byte)TurmaDisciplinaModo.Normal,
                tud_multiseriado = false,
                tud_id           = VS_tud_id,
                IsNew            = entTurma.IsNew
            };

            TUR_TurmaDisciplinaRelDisciplina entRelDis = new TUR_TurmaDisciplinaRelDisciplina
            {
                dis_id = uccDisciplina.Valor,
                tud_id = entTurmaDisciplina.tud_id
            };

            List <TUR_Turma_Docentes_Disciplina> listaDocentes = UCControleVigenciaDocentes.RetornaDadosGrid();

            listaDocentes.ForEach(p => p.entDocente.tdt_posicao = 1);

            List <TUR_TurmaDisciplinaCalendario> listaCalendario = new List <TUR_TurmaDisciplinaCalendario>();

            foreach (ListItem item in chkPeriodosCalendario.Items)
            {
                if (item.Selected)
                {
                    TUR_TurmaDisciplinaCalendario ent = new TUR_TurmaDisciplinaCalendario
                    {
                        tpc_id = Convert.ToInt32(item.Value),
                        tud_id = entTurmaDisciplina.tud_id
                    };

                    listaCalendario.Add(ent);
                }
            }

            CadastroTurmaDisciplina entCadTurmaDisciplina = new CadastroTurmaDisciplina
            {
                listaTurmaDocente         = listaDocentes,
                entTurmaCalendario        = listaCalendario,
                entTurmaDisciplina        = entTurmaDisciplina,
                entTurmaDiscRelDisciplina = entRelDis
            };

            listaTurmaDisciplina.Add(entCadTurmaDisciplina);
            return(listaTurmaDisciplina);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Salvar avaliações não avaliadas para a disciplina.
        /// </summary>
        /// <param name="banco">Transação com banco</param>
        /// <param name="cad">Entidade de cadastro de turmaDisciplina</param>
        /// <param name="listaDisciplinaNaoAvaliado_Turma">Lista de avaliações já cadastradas para a turma</param>
        internal static void SalvarAvaliacoesDisciplinas(TalkDBTransaction banco, CadastroTurmaDisciplina cad, List <TUR_TurmaDisciplinaNaoAvaliado> listaDisciplinaNaoAvaliado_Turma)
        {
            foreach (TUR_TurmaDisciplinaNaoAvaliado entDisciplinaNaoAvaliado in cad.listaAvaliacoesNaoAvaliar)
            {
                entDisciplinaNaoAvaliado.tud_id = cad.entTurmaDisciplina.tud_id;

                if (!entDisciplinaNaoAvaliado.Validate())
                {
                    throw new ValidationException(GestaoEscolarUtilBO.ErrosValidacao(entDisciplinaNaoAvaliado));
                }

                TUR_TurmaDisciplinaNaoAvaliado entAux = new TUR_TurmaDisciplinaNaoAvaliado
                {
                    tud_id = entDisciplinaNaoAvaliado.tud_id
                    ,
                    fav_id = entDisciplinaNaoAvaliado.fav_id
                    ,
                    ava_id = entDisciplinaNaoAvaliado.ava_id
                };
                GetEntity(entAux, banco);

                if (entAux.IsNew)
                {
                    Save(entDisciplinaNaoAvaliado, banco);
                }
            }

            // Busca avaliações para a disciplina.
            List <TUR_TurmaDisciplinaNaoAvaliado> listaDisciplinaNaoAvaliado =
                (from TUR_TurmaDisciplinaNaoAvaliado item in listaDisciplinaNaoAvaliado_Turma
                 where item.tud_id == cad.entTurmaDisciplina.tud_id
                 select item).ToList();

            // Excluir as avaliações para a disciplina que não foram inseridas e existiam antes.
            foreach (TUR_TurmaDisciplinaNaoAvaliado entDisciplinaNaoAvaliado in listaDisciplinaNaoAvaliado)
            {
                if (!cad.listaAvaliacoesNaoAvaliar.Exists
                    (
                        p =>
                        p.tud_id == entDisciplinaNaoAvaliado.tud_id &&
                        p.fav_id == entDisciplinaNaoAvaliado.fav_id &&
                        p.ava_id == entDisciplinaNaoAvaliado.ava_id
                    ))
                {
                    Delete(entDisciplinaNaoAvaliado, banco);
                }
            }
        }
Ejemplo n.º 3
0
    /// <summary>
    /// Retorna os lists necessários para salvar a turma.
    /// </summary>
    /// <param name="tud_codigo">código da turma disciplina</param>
    /// <param name="tud_vagas">quantidade de vagas turma disciplina</param>
    /// <param name="tud_minimoMatriculados">quantidade mínima de vagas turma disciplina</param>
    /// <param name="tud_duracao">Disciplina duração</param>
    /// <returns>As listas de entidades com as discplinas a serem salvas</returns>
    public List <CadastroTurmaDisciplina> RetornaDisciplinas(string tud_codigo
                                                             , int tud_vagas
                                                             , int tud_minimoMatriculados
                                                             , byte tud_duracao)
    {
        List <CadastroTurmaDisciplina> listTurmaDisciplina = new List <CadastroTurmaDisciplina>();

        // Disciplinas obrigatórias.
        foreach (GridViewRow row in gvDisciplina.Rows)
        {
            CadastroTurmaDisciplina ent = AdicionaDisciplina(row, tud_codigo, tud_vagas, tud_minimoMatriculados, tud_duracao);

            listTurmaDisciplina.Add(ent);
        }

        return(listTurmaDisciplina);
    }
Ejemplo n.º 4
0
        /// <summary>
        /// Retorna os lists necessários para salvar a turma.
        /// </summary>
        /// <param name="tud_codigo">código da turma disciplina</param>
        /// <param name="tud_vagas">quantidade de vagas turma disciplina</param>
        /// <param name="tud_minimoMatriculados">quantidade mínima de vagas turma disciplina</param>
        /// <param name="tud_duracao">Disciplina duração</param>
        /// <returns>As listas de entidades com as discplinas a serem salvas</returns>
        public List <CadastroTurmaDisciplina> RetornaDisciplinas(string tud_codigo
                                                                 , int tud_vagas
                                                                 , int tud_minimoMatriculados
                                                                 , byte tud_duracao)
        {
            List <CadastroTurmaDisciplina> listTurmaDisciplina = new List <CadastroTurmaDisciplina>();
            CadastroTurmaDisciplina        entRegencia         = new CadastroTurmaDisciplina();

            // Disciplinas obrigatórias.
            foreach (GridViewRow row in gvRegencia.Rows)
            {
                CadastroTurmaDisciplina ent = AdicionaDisciplina(row, tud_codigo, tud_vagas, tud_minimoMatriculados, tud_duracao);

                entRegencia = ent;

                listTurmaDisciplina.Add(ent);
            }

            int totalCargaHorariaSemanal = 0;

            foreach (GridViewRow row in gvCompRegencia.Rows)
            {
                CadastroTurmaDisciplina ent = AdicionaCompRegencia(row, tud_codigo, tud_vagas, tud_minimoMatriculados, tud_duracao);

                ent.listaTurmaDocente         = entRegencia.listaTurmaDocente;
                ent.entTurmaCalendario        = entRegencia.entTurmaCalendario;
                ent.listaAvaliacoesNaoAvaliar = entRegencia.listaAvaliacoesNaoAvaliar;
                totalCargaHorariaSemanal     += ent.entTurmaDisciplina.tud_cargaHorariaSemanal;

                listTurmaDisciplina.Add(ent);
            }

            if (listTurmaDisciplina.Any())
            {
                listTurmaDisciplina[listTurmaDisciplina.IndexOf(entRegencia)].entTurmaDisciplina.tud_cargaHorariaSemanal = totalCargaHorariaSemanal;
            }

            return(listTurmaDisciplina);
        }
Ejemplo n.º 5
0
    /// <summary>
    /// Retorna os lists necessários para salvar a turma.
    /// </summary>
    /// <param name="tud_codigo">código da turma disciplina</param>
    /// <param name="tud_vagas">quantidade de vagas turma disciplina</param>
    /// <param name="tud_minimoMatriculados">quantidade mínima de vagas turma disciplina</param>
    /// <param name="tud_duracao">Disciplina duração</param>
    /// <returns>As listas de entidades com as discplinas a serem salvas</returns>
    public List <CadastroTurmaDisciplina> RetornaDisciplinas
    (
        string tud_codigo
        , int tud_vagas
        , int tud_minimoMatriculados
        , byte tud_duracao
    )
    {
        List <CadastroTurmaDisciplina> listTurmaDisciplina = new List <CadastroTurmaDisciplina>();

        // Disciplinas eletivas.
        foreach (RepeaterItem item in rptDisciplinasEletivas.Items)
        {
            CadastroTurmaDisciplina ent = AdicionaDisciplina(item,
                                                             tud_codigo,
                                                             tud_vagas,
                                                             tud_minimoMatriculados,
                                                             tud_duracao);

            listTurmaDisciplina.Add(ent);
        }

        return(listTurmaDisciplina);
    }
Ejemplo n.º 6
0
        /// <summary>
        /// Salva as entidades dos docentes para a disciplina.
        /// </summary>
        /// <param name="tur_id">ID da turma</param>
        /// <param name="cad">Estrutura com dados da disciplina e lista de docentes</param>
        /// <param name="banco">Transação com banco</param>
        /// <param name="listaDocentesTodasDisciplinas">Lista de todos os docentes cadastrados para todas as disciplinas da turma - para verificar os que irá excluir</param>
        /// <param name="ent_id">Id da entidade do usuário logado.</param>
        public static void SalvarDocentesDisciplina(long tur_id
                                                    , CadastroTurmaDisciplina cad
                                                    , TalkDBTransaction banco
                                                    , List <TUR_Turma_Docentes_Disciplina> listaDocentesTodasDisciplinas
                                                    , Guid ent_id)
        {
            // Pegar os docentes que existiam antes na disciplina.
            List <TUR_Turma_Docentes_Disciplina> docentesCadastrados =
                (from TUR_Turma_Docentes_Disciplina item in listaDocentesTodasDisciplinas
                 where item.entDocente.tud_id == cad.entTurmaDisciplina.tud_id
                 select item
                ).ToList();

            foreach (TUR_Turma_Docentes_Disciplina docente in cad.listaTurmaDocente)
            {
                DateTime VigenciaFinalDocente = docente.entDocente.tdt_vigenciaFim == new DateTime() ? DateTime.MaxValue : docente.entDocente.tdt_vigenciaFim;

                // Validar se existem vigências com conflito de data.
                var x = from TUR_Turma_Docentes_Disciplina item in cad.listaTurmaDocente
                        where
                        GestaoEscolarUtilBO.ExisteConflitoDatas
                            (item.entDocente.tdt_vigenciaInicio, item.entDocente.tdt_vigenciaFim == new DateTime() ? DateTime.MaxValue : item.entDocente.tdt_vigenciaFim
                            , docente.entDocente.tdt_vigenciaInicio, VigenciaFinalDocente) &&
                        item.indice != docente.indice &&
                        item.entDocente.tdt_posicao == docente.entDocente.tdt_posicao
                        select item;

                if (x.Count() > 0)
                {
                    throw new ValidationException(
                              "Existe um conflito de datas da vigência do docente \"" + docente.doc_nome + "\".");
                }

                // Verifica se o mesmo docente está vigente em mais de uma posição.
                var y = from TUR_Turma_Docentes_Disciplina item in cad.listaTurmaDocente
                        where
                        GestaoEscolarUtilBO.ExisteConflitoDatas
                            (item.entDocente.tdt_vigenciaInicio, item.entDocente.tdt_vigenciaFim == new DateTime() ? DateTime.MaxValue : item.entDocente.tdt_vigenciaFim
                            , docente.entDocente.tdt_vigenciaInicio, VigenciaFinalDocente) &&
                        item.entDocente.tdt_posicao != docente.entDocente.tdt_posicao &&
                        item.entDocente.doc_id == docente.entDocente.doc_id &&
                        item.entDocente.coc_id == docente.entDocente.coc_id &&
                        item.entDocente.col_id == docente.entDocente.col_id &&
                        item.entDocente.crg_id == docente.entDocente.crg_id
                        select item;

                if (y.Count() > 0)
                {
                    throw new ValidationException(
                              "O docente \"" + docente.doc_nome + "\" não pode estar vigente em mais de uma posição.");
                }

                // Remove do cache as turmas do docente.
                TUR_TurmaBO.RemoveCacheDocenteControleTurma(ent_id, docente.entDocente.doc_id);
                TUR_TurmaBO.RemoveCacheDocente_TurmaDisciplina(tur_id, docente.entDocente.doc_id, ent_id);

                TUR_TurmaDocente entTurmaDocente = docente.entDocente;
                entTurmaDocente.tud_id = cad.entTurmaDisciplina.tud_id;

                LimpaCache(entTurmaDocente, ent_id);

                // Salvar entidade.
                Save(entTurmaDocente, banco);
            }

            // Se remover docente, transfere os lançamentos.
            if (!cad.listaTurmaDocente.Exists(p => (p.entDocente.tdt_posicao > 1 && p.entDocente.tdt_situacao == 1)) &&
                ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.ALTERAR_AULAS_PARA_TITULAR_ATRIBUICAO_DOCENTES, ent_id))
            {
                TransferirLancamentos_Posicao(cad.entTurmaDisciplina.tud_id, banco);
            }

            foreach (TUR_Turma_Docentes_Disciplina docente in docentesCadastrados)
            {
                // Verificar se o docente existia antes e não existe mais.
                if (!cad.listaTurmaDocente.Exists(p =>
                                                  (p.entDocente.tud_id == docente.entDocente.tud_id &&
                                                   p.entDocente.tdt_id == docente.entDocente.tdt_id)))
                {
                    // Excluir.
                    Delete(docente.entDocente, banco);
                }
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Retorna a lista com a estrutura necessária para salvar a TurmaDisciplina.
        /// </summary>
        /// <param name="entTurma">Entidade da turma que será salva</param>
        /// <returns></returns>
        private List <CadastroTurmaDisciplina> RetornaTurmaDisciplina(TUR_Turma entTurma)
        {
            List <CadastroTurmaDisciplina> listaTurmaDisciplina = new List <CadastroTurmaDisciplina>();

            TUR_TurmaDisciplina entTurmaDisciplina = new TUR_TurmaDisciplina
            {
                tud_codigo                = entTurma.tur_codigo,
                tud_vagas                 = entTurma.tur_vagas,
                tud_minimoMatriculados    = entTurma.tur_minimoMatriculados,
                tud_duracao               = entTurma.tur_duracao,
                tud_cargaHorariaSemanal   = Convert.ToInt32(txtAulasSemanais.Text),
                tud_aulaForaPeriodoNormal = false,
                tud_global                = false,
                tud_nome         = VS_ListaCurriculoDisciplina[0].dis_nome,
                tud_situacao     = (byte)TurmaDisciplinaSituacao.Ativo,
                tud_tipo         = (byte)TurmaDisciplinaTipo.Multisseriada,
                tud_modo         = (byte)TurmaDisciplinaModo.Normal,
                tud_multiseriado = false,
                tud_id           = VS_tud_id,
                IsNew            = entTurma.IsNew
            };

            List <TUR_TurmaDisciplinaRelDisciplina> lstEntTurmaDiscRelDisciplina = new List <TUR_TurmaDisciplinaRelDisciplina>();

            foreach (ACA_CurriculoDisciplina item in VS_ListaCurriculoDisciplina.Where(p => p.dis_id > 0))
            {
                TUR_TurmaDisciplinaRelDisciplina entRelDis = new TUR_TurmaDisciplinaRelDisciplina
                {
                    dis_id = item.dis_id,
                    tud_id = entTurmaDisciplina.tud_id
                };
                lstEntTurmaDiscRelDisciplina.Add(entRelDis);
            }

            List <TUR_Turma_Docentes_Disciplina> docentes = (from RepeaterItem item in rptDocentes.Items
                                                             let UCControleVigenciaDocentes = (ControleVigenciaDocentes)item.FindControl("UCControleVigenciaDocentes")
                                                                                              let posicao = Convert.ToByte(((Label)item.FindControl("lblposicao")).Text)
                                                                                                            from TUR_Turma_Docentes_Disciplina turmadocente in UCControleVigenciaDocentes.RetornaDadosGrid()
                                                                                                            let entityDocente = turmadocente.entDocente
                                                                                                                                select new TUR_Turma_Docentes_Disciplina
            {
                doc_nome = turmadocente.doc_nome
                ,
                indice = turmadocente.indice
                ,
                entDocente = new TUR_TurmaDocente
                {
                    doc_id = entityDocente.doc_id,
                    col_id = entityDocente.col_id,
                    crg_id = entityDocente.crg_id,
                    coc_id = entityDocente.coc_id,
                    tdt_vigenciaInicio = entityDocente.tdt_vigenciaInicio,
                    tdt_vigenciaFim = entityDocente.tdt_vigenciaFim,
                    tdt_id = entityDocente.tdt_id,
                    tdt_tipo = entityDocente.tdt_tipo,
                    tdt_posicao = posicao
                }
            }).ToList();

            List <TUR_TurmaDisciplinaCalendario> listaCalendario = new List <TUR_TurmaDisciplinaCalendario>();

            CadastroTurmaDisciplina entCadTurmaDisciplina = new CadastroTurmaDisciplina
            {
                listaTurmaDocente              = docentes,
                entTurmaCalendario             = listaCalendario,
                entTurmaDisciplina             = entTurmaDisciplina,
                listaEntTurmaDiscRelDisciplina = lstEntTurmaDiscRelDisciplina
            };

            listaTurmaDisciplina.Add(entCadTurmaDisciplina);
            return(listaTurmaDisciplina);
        }