Esempio n. 1
0
        /// <summary>
        /// Inicializa o user control, setando a visibilidade os botões
        /// conforme a página inicial.
        /// </summary>
        /// <param name="TelaInicial">Tela inicial a ser carregada.</param>
        /// <param name="fav">Formato de avaliação</param>
        /// <param name="tipo">Tipo de turma</param>
        public void Inicializar
        (
            PaginaGestao TelaInicial
            , ACA_FormatoAvaliacao fav
            , TUR_TurmaTipo tipo
            , TUR_TurmaDisciplina entTurmaDisciplina
        )
        {
            lblInfoLancamentoFrequenciaMensal.Text    = UtilBO.GetErroMessage("Para lançar a frequência mensal dessa turma, acessar a frequência mensal das turmas regulares dos alunos.", UtilBO.TipoMensagem.Informacao);
            divInfoLancamentoFrequenciaMensal.Visible = (tipo == TUR_TurmaTipo.EletivaAluno);

            btnEfetivacao.Visible           = (TelaInicial != PaginaGestao.EfetivacaoNotas);
            btnLancamentoFrequencia.Visible =
                (TelaInicial != PaginaGestao.Lancamento_Frequencia) &&
                (fav.fav_tipoLancamentoFrequencia !=
                 Convert.ToByte(ACA_FormatoAvaliacaoTipoLancamentoFrequencia.Mensal))
                // Se a disciplina for do tipo Complementação de regência, não exibe o botão frequência.
                && (entTurmaDisciplina == null ||
                    entTurmaDisciplina.tud_tipo != (byte)TurmaDisciplinaTipo.DocenteEspecificoComplementacaoRegencia);
            btnLancamentoAvaliacao.Visible        = (TelaInicial != PaginaGestao.Lancamento_Avaliacoes);
            btnLancamentoFrequenciaMensal.Visible = (TelaInicial != PaginaGestao.Lancamento_FrequenciaMensal) &&
                                                    (tipo != TUR_TurmaTipo.EletivaAluno) &&
                                                    ((fav.fav_tipoLancamentoFrequencia == Convert.ToByte(ACA_FormatoAvaliacaoTipoLancamentoFrequencia.Mensal) ||
                                                      fav.fav_tipoLancamentoFrequencia == Convert.ToByte(ACA_FormatoAvaliacaoTipoLancamentoFrequencia.AulasPlanejadasMensal)) &&
                                                     __SessionWEB.__UsuarioWEB.Grupo.vis_id != SysVisaoID.Individual);
        }
        /// <summary>
        /// Remove os caches do fechamento automatico.
        /// </summary>
        /// <param name="tud_id">Id da disciplina na turma.</param>
        private static void RemoveCacheFechamentoAutomatico(long tud_id)
        {
            string chave = ModelCache.FECHAMENTO_AUTO_BIMESTRE_PATTERN_KEY + "_" + tud_id;

            CacheManager.Factory.RemoveByPattern(chave);

            chave = ModelCache.FECHAMENTO_AUTO_BIMESTRE_FILTRO_DEFICIENCIA_PATTERN_KEY + "_" + tud_id;
            CacheManager.Factory.RemoveByPattern(chave);

            chave = String.Format(ModelCache.FECHAMENTO_AUTO_FINAL_MODEL_KEY, tud_id);
            CacheManager.Factory.RemoveByPattern(chave);

            chave = String.Format(ModelCache.FECHAMENTO_AUTO_FINAL_FILTRO_DEFICIENCIA_MODEL_KEY, tud_id);
            CacheManager.Factory.RemoveByPattern(chave);

            TUR_TurmaDisciplina turmaDisciplina = TUR_TurmaDisciplinaBO.GetEntity(new TUR_TurmaDisciplina {
                tud_id = tud_id
            });

            if (turmaDisciplina.tud_tipo == (byte)TurmaDisciplinaTipo.Regencia)
            {
                TUR_Turma turma = TUR_TurmaRelTurmaDisciplinaBO.SelecionarTurmaPorTurmaDisciplina(tud_id);

                chave = ModelCache.FECHAMENTO_AUTO_BIMESTRE_COMPONENTES_REGENCIA_PATTERN_KEY + "_" + turma.tur_id;
                CacheManager.Factory.RemoveByPattern(chave);

                chave = String.Format(ModelCache.FECHAMENTO_AUTO_FINAL_COMPONENTES_REGENCIA_MODEL_KEY, turma.tur_id);
                CacheManager.Factory.RemoveByPattern(chave);
            }
        }
Esempio n. 3
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);
        }
Esempio n. 4
0
        private void UCCPeriodoCalendario_IndexChanged()
        {
            rptAlunos.DataSource = null;
            bool possuiAlunos = false;

            if (UCCPeriodoCalendario.Valor[0] != -1 && UCCPeriodoCalendario.Valor[1] != -1)
            {
                long tur_id = Convert.ToInt64(ddlTurma.SelectedValue);

                TUR_Turma tur = new TUR_Turma();
                tur.tur_id = tur_id;
                TUR_TurmaBO.GetEntity(tur);

                TUR_TurmaDisciplina tud = new TUR_TurmaDisciplina();
                tud.tud_id = UCCTurmaDisciplina1.Valor;
                TUR_TurmaDisciplinaBO.GetEntity(tud);

                DateTime cap_dataInicio, cap_dataFim;

                ACA_CalendarioPeriodoBO.RetornaDatasPeriodoPor_FormatoAvaliacaoTurmaDisciplina(UCCPeriodoCalendario.Valor[0], string.Empty, UCCTurmaDisciplina1.Valor, tur.fav_id, out cap_dataInicio, out cap_dataFim);

                DataTable dt = _VS_doc_id > 0 && VS_DisciplinaEspecial?
                               MTR_MatriculaTurmaDisciplinaBO.SelecionaAtivosCompensacaoAusenciaFiltroDeficiencia(tur_id, UCCTurmaDisciplina1.Valor, UCCPeriodoCalendario.Valor[0], 0, VS_tipoDocente, VS_cpa_id, false, true) :
                                   MTR_MatriculaTurmaDisciplinaBO.SelecionaAtivosCompensacaoAusencia(UCCTurmaDisciplina1.Valor, UCCPeriodoCalendario.Valor[0], 0, VS_cpa_id, false, true);

                rptAlunos.DataSource = dt;

                possuiAlunos = dt.Rows.Count > 0;
                rptAlunos.DataBind();

                lblMessage.Text = "";

                if (tud.tud_tipo == (byte)TurmaDisciplinaTipo.Experiencia &&
                    !TUR_TurmaDisciplinaTerritorioBO.VerificaOferecimentoExperienciaBimestre(UCCTurmaDisciplina1.Valor, UCComboCalendario.Valor, UCCPeriodoCalendario.Valor[0]))
                {
                    mostraSalvar     = false;
                    lblMessage.Text += UtilBO.GetErroMessage("A experiência não possui territórios vigentes no bimestre.", UtilBO.TipoMensagem.Alerta);
                }

                if (VS_cpa_id <= 0)
                {
                    if (possuiAlunos)
                    {
                        btnSalvar.Visible = __SessionWEB.__UsuarioWEB.GrupoPermissao.grp_inserir && mostraSalvar;
                    }
                    else
                    {
                        btnSalvar.Visible = false;
                        lblMessage.Text  += UtilBO.GetErroMessage("Não existem alunos com ausências para serem compensadas.", UtilBO.TipoMensagem.Alerta);
                    }
                }
            }

            fdsAlunos.Visible = possuiAlunos;
        }
        /// <summary>
        /// Retorna as disciplinas relacionadas pela atividade extraclasse.
        /// </summary>
        /// <param name="taer_id">ID do relacionamento entre atividades extraclasse.</param>
        /// <returns></returns>
        public static List <TUR_TurmaDisciplina> SelecionaDisciplinaAtividadeExtraclasseRelacionada(Guid taer_id)
        {
            DataTable dt = new CLS_TurmaAtividadeExtraClasseDAO().SelecionaDisciplinaAtividadeExtraclasseRelacionada(taer_id);
            List <TUR_TurmaDisciplina> dados = new List <TUR_TurmaDisciplina>();

            foreach (DataRow dr in dt.Rows)
            {
                TUR_TurmaDisciplina ent = new TUR_TurmaDisciplina();
                dados.Add(new TUR_TurmaDisciplinaDAO().DataRowToEntity(dr, ent));
            }
            return(dados);
        }
Esempio n. 6
0
        /// <summary>
        /// Adiciona nas listas as entidades da disciplina da linha atual.
        /// </summary>
        /// <param name="item"></param>
        /// <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>
        private CadastroTurmaDisciplina AdicionaCompRegencia
        (
            GridViewRow item
            , string tud_codigo
            , int tud_vagas
            , int tud_minimoMatriculados
            , byte tud_duracao
        )
        {
            // Adicionando na entidades os valores a ser salvo.
            TUR_TurmaDisciplina ent = new TUR_TurmaDisciplina
            {
                tud_tipo                  = String.IsNullOrEmpty(gvCompRegencia.DataKeys[item.RowIndex].Values["crd_tipo"].ToString()) ? new byte() : Convert.ToByte(gvCompRegencia.DataKeys[item.RowIndex].Values["crd_tipo"].ToString()),
                tud_global                = false,
                tud_nome                  = gvCompRegencia.DataKeys[item.RowIndex].Values["dis_nome"].ToString(),
                tud_codigo                = tud_codigo,
                tud_id                    = Convert.ToInt32(gvCompRegencia.DataKeys[item.RowIndex].Values["tud_id"]),
                tud_situacao              = (byte)TurmaDisciplinaSituacao.Ativo,
                tud_cargaHorariaSemanal   = String.IsNullOrEmpty(((TextBox)item.FindControl("txtAulaSemanal")).Text) ? 0 : Convert.ToInt32(((TextBox)item.FindControl("txtAulaSemanal")).Text),
                tud_multiseriado          = false,
                tud_vagas                 = tud_vagas,
                tud_minimoMatriculados    = tud_minimoMatriculados,
                tud_duracao               = tud_duracao,
                tud_modo                  = (byte)TurmaDisciplinaModo.Normal,
                tud_aulaForaPeriodoNormal = false,
                IsNew = Convert.ToInt32(gvCompRegencia.DataKeys[item.RowIndex].Values["tud_id"]) <= 0
            };

            // Adicionando valores na entidade de relacionemento.
            TUR_TurmaDisciplinaRelDisciplina relDis = new TUR_TurmaDisciplinaRelDisciplina
            {
                dis_id = Convert.ToInt32(gvCompRegencia.DataKeys[item.RowIndex].Values["dis_id"]),
                tud_id = ent.tud_id,
                IsNew  = Convert.ToInt32(gvCompRegencia.DataKeys[item.RowIndex].Values["tud_id"]) <= 0
            };

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

            // Avaliações que não serão avaliadas.
            List <TUR_TurmaDisciplinaNaoAvaliado> lista = new List <TUR_TurmaDisciplinaNaoAvaliado>();

            List <TUR_Turma_Docentes_Disciplina> listDocentesPosicoes = new List <TUR_Turma_Docentes_Disciplina>();

            return(new CadastroTurmaDisciplina
            {
                entTurmaDisciplina = ent,
                entTurmaDiscRelDisciplina = relDis,
                listaTurmaDocente = listDocentesPosicoes,
                entTurmaCalendario = turCal,
                listaAvaliacoesNaoAvaliar = lista
            });
        }
Esempio n. 7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                UCEfetivacaoNotas1.VisibleNavegacao     = false;
                UCEfetivacaoNotas1.VisibleBotaoCancelar = false;

                if (!IsPostBack)
                {
                    string message = __SessionWEB.PostMessages;
                    if (!String.IsNullOrEmpty(message))
                    {
                        lblMessage.Text = message;
                    }

                    if (PreviousPage == null && Session["DadosPaginaRetorno"] == null && Session["tud_id"] == null)
                    {
                        // Se não carregou nenhuma turma, redireciona pra busca.
                        __SessionWEB.PostMessages = UtilBO.GetErroMessage("É necessário selecionar uma turma.", UtilBO.TipoMensagem.Alerta);
                        if (__SessionWEB.__UsuarioWEB.Grupo.vis_id == SysVisaoID.Gestao ||
                            __SessionWEB.__UsuarioWEB.Grupo.vis_id == SysVisaoID.UnidadeAdministrativa)
                        {
                            RedirecionarPagina("~/Academico/ControleTurma/MinhaEscolaGestor.aspx");
                        }
                        else
                        {
                            RedirecionarPagina("~/Academico/ControleTurma/Busca.aspx");
                        }
                    }
                    else
                    {
                        List <Struct_MinhasTurmas> dadosTodasTurmas = new List <Struct_MinhasTurmas>();
                        long tud_idCompartilhada = -1;

                        if (Session["Historico"] != null)
                        {
                            VS_historico = Convert.ToBoolean(Session["Historico"]) && __SessionWEB.__UsuarioWEB.Docente.doc_id > 0;
                            Session.Remove("Historico");
                        }
                        if (Session["TudIdCompartilhada"] != null)
                        {
                            tud_idCompartilhada = Convert.ToInt64(Session["TudIdCompartilhada"]);
                            Session.Remove("TudIdCompartilhada");
                        }
                        if (Session["tud_id"] != null && Session["tdt_posicao"] != null && Session["PaginaRetorno"] != null)
                        {
                            UCControleTurma1.VS_tud_id              = Convert.ToInt64(Session["tud_id"]);
                            UCControleTurma1.VS_tdt_posicao         = Convert.ToByte(Session["tdt_posicao"]);
                            UCNavegacaoTelaPeriodo.VS_paginaRetorno = Session["PaginaRetorno"].ToString();
                            if (Session["tur_tipo"] != null && Session["tur_idNormal"] != null && Session["tud_idAluno"] != null)
                            {
                                UCControleTurma1.VS_tur_tipo     = Convert.ToByte(Session["tur_tipo"]);
                                UCControleTurma1.VS_tur_idNormal = Convert.ToInt64(Session["tur_idNormal"]);
                                UCControleTurma1.VS_tud_idAluno  = Convert.ToInt64(Session["tud_idAluno"]);
                            }
                            if (VS_EntitiesControleTurma.escola == null)
                            {
                                ViewState["VS_EntitiesControleTurma"] = null;
                            }
                            UCControleTurma1.VS_esc_id                  = VS_EntitiesControleTurma.escola.esc_id;
                            UCControleTurma1.VS_uni_id                  = VS_EntitiesControleTurma.turma.uni_id;
                            UCControleTurma1.VS_tur_id                  = VS_EntitiesControleTurma.turma.tur_id;
                            UCControleTurma1.VS_tud_naoLancarNota       = VS_EntitiesControleTurma.turmaDisciplina.tud_naoLancarNota;
                            UCControleTurma1.VS_tud_naoLancarFrequencia = VS_EntitiesControleTurma.turmaDisciplina.tud_naoLancarFrequencia;
                            UCControleTurma1.VS_tur_dataEncerramento    = VS_EntitiesControleTurma.turma.tur_dataEncerramento;
                            UCNavegacaoTelaPeriodo.VS_cal_id            = VS_EntitiesControleTurma.turma.cal_id;
                            UCControleTurma1.VS_tciIds                  = VS_EntitiesControleTurma.tciIds;
                            if (Session["VS_TpcId"] != null)
                            {
                                UCNavegacaoTelaPeriodo.VS_tpc_id = Convert.ToInt32(Session["VS_TpcId"]);
                            }
                            if (Session["VS_TpcOrdem"] != null)
                            {
                                UCNavegacaoTelaPeriodo.VS_tpc_ordem = Convert.ToInt32(Session["VS_TpcOrdem"]);
                            }
                        }
                        else if (PreviousPage != null && PreviousPage.IsCrossPagePostBack)
                        {
                            UCControleTurma1.VS_tud_id              = PreviousPage.Edit_tud_id;
                            UCControleTurma1.VS_tdt_posicao         = PreviousPage.Edit_tdt_posicao;
                            UCNavegacaoTelaPeriodo.VS_paginaRetorno = PreviousPage.PaginaRetorno;
                            if (VS_EntitiesControleTurma.escola == null)
                            {
                                ViewState["VS_EntitiesControleTurma"] = null;
                            }
                            UCControleTurma1.VS_esc_id                  = VS_EntitiesControleTurma.escola.esc_id;
                            UCControleTurma1.VS_uni_id                  = VS_EntitiesControleTurma.turma.uni_id;
                            UCControleTurma1.VS_tur_id                  = VS_EntitiesControleTurma.turma.tur_id;
                            UCControleTurma1.VS_tud_naoLancarNota       = VS_EntitiesControleTurma.turmaDisciplina.tud_naoLancarNota;
                            UCControleTurma1.VS_tud_naoLancarFrequencia = VS_EntitiesControleTurma.turmaDisciplina.tud_naoLancarFrequencia;
                            UCControleTurma1.VS_tur_dataEncerramento    = VS_EntitiesControleTurma.turma.tur_dataEncerramento;
                            UCNavegacaoTelaPeriodo.VS_cal_id            = VS_EntitiesControleTurma.turma.cal_id;
                            UCControleTurma1.VS_tciIds                  = VS_EntitiesControleTurma.tciIds;
                            UCControleTurma1.VS_tur_tipo                = VS_EntitiesControleTurma.turma.tur_tipo;
                        }
                        else if (Session["DadosPaginaRetorno"] != null)
                        {
                            Dictionary <string, string> listaDados = (Dictionary <string, string>)Session["DadosPaginaRetorno"];
                            UCControleTurma1.VS_tud_id                  = Convert.ToInt64(listaDados["Tud_idRetorno_ControleTurma"]);
                            UCControleTurma1.VS_tdt_posicao             = Convert.ToByte(listaDados["Edit_tdt_posicao"]);
                            UCNavegacaoTelaPeriodo.VS_paginaRetorno     = listaDados["PaginaRetorno"].ToString();
                            UCControleTurma1.VS_esc_id                  = Convert.ToInt32(listaDados["Edit_esc_id"]);
                            UCControleTurma1.VS_uni_id                  = Convert.ToInt32(listaDados["Edit_uni_id"]);
                            UCControleTurma1.VS_tur_id                  = Convert.ToInt64(listaDados["Edit_tur_id"]);
                            UCControleTurma1.VS_tud_naoLancarNota       = Convert.ToBoolean(listaDados["Edit_tud_naoLancarNota"]);
                            UCControleTurma1.VS_tud_naoLancarFrequencia = Convert.ToBoolean(listaDados["Edit_tud_naoLancarFrequencia"]);
                            UCControleTurma1.VS_tur_dataEncerramento    = Convert.ToDateTime(listaDados["Edit_tur_dataEncerramento"]);
                            UCNavegacaoTelaPeriodo.VS_cal_id            = Convert.ToInt32(listaDados["Edit_cal_id"]);
                            UCControleTurma1.VS_tciIds                  = listaDados["Edit_tciIds"];
                            UCControleTurma1.VS_tur_tipo                = Convert.ToByte(listaDados["Edit_tur_tipo"]);
                            UCControleTurma1.VS_tud_idAluno             = Convert.ToInt64(listaDados["Edit_tud_idAluno"]);
                            UCControleTurma1.VS_tur_idNormal            = Convert.ToInt64(listaDados["Edit_tur_idNormal"]);
                            UCNavegacaoTelaPeriodo.VS_tpc_id            = Convert.ToInt32(listaDados["Edit_tpc_id"]);
                            UCNavegacaoTelaPeriodo.VS_tpc_ordem         = Convert.ToInt32(listaDados["Edit_tpc_ordem"]);
                            UCControleTurma1.VS_tur_tud_ids             = (List <string>)(Session["tur_tud_ids"] ?? new List <string>());
                            UCControleTurma1.LabelTurmas                = listaDados["TextoTurmas"];
                        }

                        int tpcIdPendencia = -1;
                        if (Session["tpcIdPendencia"] != null)
                        {
                            tpcIdPendencia = Convert.ToInt32(Session["tpcIdPendencia"]);
                        }

                        // Remove os dados que possam estar na sessao
                        Session.Remove("tud_id");
                        Session.Remove("tdt_posicao");
                        Session.Remove("PaginaRetorno");
                        Session.Remove("DadosPaginaRetorno");
                        Session.Remove("VS_DadosTurmas");
                        Session.Remove("VS_TpcId");
                        Session.Remove("tur_tipo");
                        Session.Remove("tur_idNormal");
                        Session.Remove("tud_idAluno");
                        Session.Remove("tur_tud_ids");
                        Session.Remove("tipoPendencia");
                        Session.Remove("tpcIdPendencia");
                        Session.Remove("tudIdPendencia");
                        //

                        List <Struct_MinhasTurmas.Struct_Turmas> dadosTurma = new List <Struct_MinhasTurmas.Struct_Turmas>();

                        // Se for perfil Administrador
                        if (__SessionWEB.__UsuarioWEB.Docente.doc_id == 0)
                        {
                            dadosTodasTurmas.Add
                            (
                                new Struct_MinhasTurmas
                            {
                                Turmas = TUR_TurmaBO.SelecionaMinhasTurmasComboPorTurId
                                         (
                                    VS_EntitiesControleTurma.turmaDisciplina.tud_tipo == (byte)TurmaDisciplinaTipo.MultisseriadaDocente
                                                                 ? UCControleTurma1.VS_tur_idNormal : UCControleTurma1.VS_tur_id,
                                    ApplicationWEB.AppMinutosCacheCurto
                                         )
                            }
                            );

                            // Não busca pela posição
                            dadosTodasTurmas.All(p =>
                            {
                                dadosTurma.AddRange(p.Turmas.Where(t => t.tud_id == UCControleTurma1.VS_tud_id));
                                return(true);
                            });

                            UCControleTurma1.LabelTurmas = dadosTurma.FirstOrDefault().TurmaDisciplinaEscola;
                        }
                        else
                        {
                            dadosTodasTurmas = TUR_TurmaBO.SelecionaPorDocenteControleTurma(__SessionWEB.__UsuarioWEB.Usuario.ent_id, __SessionWEB.__UsuarioWEB.Docente.doc_id, ApplicationWEB.AppMinutosCacheCurto, false);

                            dadosTodasTurmas.All(p =>
                            {
                                dadosTurma.AddRange(p.Turmas.Where(t => t.tud_id == UCControleTurma1.VS_tud_id && t.tdt_posicao == UCControleTurma1.VS_tdt_posicao));
                                return(true);
                            });

                            VS_situacaoTurmaDisciplina = dadosTurma.FirstOrDefault().tdt_situacao;

                            UCControleTurma1.LabelTurmas = dadosTurma.FirstOrDefault().TurmaDisciplinaEscola;
                        }

                        VS_turmasAnoAtual = dadosTurma.FirstOrDefault().turmasAnoAtual;

                        UCNavegacaoTelaPeriodo.VS_opcaoAbaAtual = eOpcaoAbaMinhasTurmas.Efetivacao;

                        // Carrega o combo de disciplinas e seta o valor selecionado.
                        List <Struct_MinhasTurmas.Struct_Turmas> dadosTurmas = new List <Struct_MinhasTurmas.Struct_Turmas>();

                        dadosTodasTurmas.All(p =>
                        {
                            dadosTurmas.AddRange(p.Turmas);
                            return(true);
                        });

                        // Carrega combo de turmas
                        if (__SessionWEB.__UsuarioWEB.Docente.doc_id == 0)
                        {
                            List <Struct_MinhasTurmas.Struct_Turmas> dadosTurmasCombo = TUR_TurmaBO.SelecionaMinhasTurmasComboPorTurId
                                                                                        (
                                VS_EntitiesControleTurma.turmaDisciplina.tud_tipo == (byte)TurmaDisciplinaTipo.MultisseriadaDocente
                                ? UCControleTurma1.VS_tur_idNormal : UCControleTurma1.VS_tur_id,
                                ApplicationWEB.AppMinutosCacheCurto
                                                                                        );

                            UCControleTurma1.CarregaTurmas(dadosTurmasCombo, UCNavegacaoTelaPeriodo.VS_cal_id, VS_EntitiesControleTurma.turmaDisciplina.tud_tipo, VS_EntitiesControleTurma.formatoAvaliacao.fav_fechamentoAutomatico, true);
                        }
                        else
                        {
                            List <Struct_MinhasTurmas.Struct_Turmas> dadosTurmasCombo = new List <Struct_MinhasTurmas.Struct_Turmas>();

                            if (VS_EntitiesControleTurma.turma.tur_situacao == (byte)TUR_TurmaSituacao.Ativo && VS_situacaoTurmaDisciplina == 1)
                            {
                                // dadosTurmasAtivas
                                dadosTurmasCombo = TUR_TurmaBO.SelecionaTurmasAtivasDocente(dadosTodasTurmas, 0);
                            }
                            else
                            {
                                dadosTurmasCombo = dadosTurmas;
                            }

                            UCControleTurma1.CarregaTurmas(dadosTurmasCombo, UCNavegacaoTelaPeriodo.VS_cal_id, VS_EntitiesControleTurma.turmaDisciplina.tud_tipo, VS_EntitiesControleTurma.formatoAvaliacao.fav_fechamentoAutomatico, true);
                        }

                        TUR_Turma turma = new TUR_Turma();
                        turma.tur_id = UCControleTurma1.VS_tur_id;
                        turma        = TUR_TurmaBO.GetEntity(turma);

                        ACA_FormatoAvaliacao formatoAvaliacao = new ACA_FormatoAvaliacao();
                        formatoAvaliacao.fav_id = turma.fav_id;
                        formatoAvaliacao        = ACA_FormatoAvaliacaoBO.GetEntity(formatoAvaliacao);

                        UCNavegacaoTelaPeriodo.VS_IncluirPeriodoFinal = formatoAvaliacao.fav_avaliacaoFinalAnalitica;

                        TUR_TurmaDisciplina entDisciplinaRelacionada = null;
                        if (VS_EntitiesControleTurma.turmaDisciplina.tud_tipo == (byte)ACA_CurriculoDisciplinaTipo.DocenciaCompartilhada)
                        {
                            List <sTurmaDisciplinaRelacionada> lstDisciplinaCompartilhada = VS_historico ? TUR_TurmaDisciplinaBO.SelectRelacionadaVigenteBy_DisciplinaCompartilhada(VS_EntitiesControleTurma.turmaDisciplina.tud_id, ApplicationWEB.AppMinutosCacheLongo, false, __SessionWEB.__UsuarioWEB.Docente.doc_id)
                                                                                                        : TUR_TurmaDisciplinaBO.SelectRelacionadaVigenteBy_DisciplinaCompartilhada(VS_EntitiesControleTurma.turmaDisciplina.tud_id, ApplicationWEB.AppMinutosCacheLongo);
                            bool docenciaCompartilhadaOk = false;
                            if (lstDisciplinaCompartilhada.Count > 0)
                            {
                                if (tud_idCompartilhada <= 0 || !lstDisciplinaCompartilhada.Any(p => p.tud_id == tud_idCompartilhada))
                                {
                                    tud_idCompartilhada = lstDisciplinaCompartilhada[0].tud_id;
                                }

                                if (tud_idCompartilhada > 0)
                                {
                                    docenciaCompartilhadaOk  = true;
                                    entDisciplinaRelacionada = TUR_TurmaDisciplinaBO.GetEntity(new TUR_TurmaDisciplina {
                                        tud_id = tud_idCompartilhada
                                    });
                                    VS_turmaDisciplinaRelacionada = lstDisciplinaCompartilhada.Find(p => p.tud_id == tud_idCompartilhada);
                                    //UCControleTurma1.CarregarDisciplinaCompartilhada(lstDisciplinaCompartilhada, VS_turmaDisciplinaRelacionada.tud_id, VS_turmaDisciplinaRelacionada.tdr_id);
                                }
                            }

                            if (!docenciaCompartilhadaOk)
                            {
                                __SessionWEB.PostMessages = UtilBO.GetErroMessage(String.Format("{0} {1} - {2}.",
                                                                                                GetGlobalResourceObject("Mensagens", "MSG_SEM_RELACIONAMENTO_DOCENCIA_COMPARTILHADA").ToString()
                                                                                                , VS_EntitiesControleTurma.turma.tur_codigo
                                                                                                , VS_EntitiesControleTurma.turmaDisciplina.tud_nome)
                                                                                  , UtilBO.TipoMensagem.Alerta);
                                RedirecionarPagina(UCNavegacaoTelaPeriodo.VS_paginaRetorno);
                            }
                        }

                        UCNavegacaoTelaPeriodo.CarregarPeriodos(VS_ltPermissaoFrequencia, VS_ltPermissaoEfetivacao,
                                                                VS_ltPermissaoPlanejamentoAnual, VS_ltPermissaoAvaliacao,
                                                                entDisciplinaRelacionada, UCControleTurma1.VS_esc_id,
                                                                VS_EntitiesControleTurma.turmaDisciplina.tud_tipo, UCControleTurma1.VS_tdt_posicao, turma.tur_id, VS_EntitiesControleTurma.turmaDisciplina.tud_id, false, tpcIdPendencia);

                        if (UCNavegacaoTelaPeriodo.VS_tpc_id <= 0 && !formatoAvaliacao.fav_avaliacaoFinalAnalitica)
                        {
                            __SessionWEB.PostMessages = UtilBO.GetErroMessage("Escola não permite lançar dados.", UtilBO.TipoMensagem.Alerta);
                            RedirecionarPagina(UCNavegacaoTelaPeriodo.VS_paginaRetorno);
                        }

                        CarregarTela();
                    }

                    hdnProcessarFilaFechamentoTela.Value = ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.PROCESSAR_FILA_FECHAMENTO_TELA, __SessionWEB.__UsuarioWEB.Usuario.ent_id) ? "true" : "false";
                }

                ScriptManager sm = ScriptManager.GetCurrent(this);
                if (sm != null)
                {
                    sm.Scripts.Add(new ScriptReference("~/Includes/jsControleTurma_Efetivacao.js"));
                    sm.Scripts.Add(new ScriptReference("~/Includes/jsUCSelecaoDisciplinaCompartilhada.js"));
                }

                UCNavegacaoTelaPeriodo.OnCarregaDadosTela += CarregaSessionPaginaRetorno;
                UCControleTurma1.IndexChanged              = uccTurmaDisciplina_IndexChanged;
                UCNavegacaoTelaPeriodo.OnAlteraPeriodo    += CarregarTela;
                UCSelecaoDisciplinaCompartilhada1.SelecionarDisciplina      += UCSelecaoDisciplinaCompartilhada1_SelecionarDisciplina;
                UCControleTurma1.chkTurmasNormaisMultisseriadasIndexChanged += UCControleTurma_chkTurmasNormaisMultisseriadasIndexChanged;

                if ((__SessionWEB.__UsuarioWEB.Grupo.vis_id != SysVisaoID.Individual)
                    &&
                    (__SessionWEB.__UsuarioWEB.GrupoPermissao.grp_consultar && // somente permissão consulta
                     (!__SessionWEB.__UsuarioWEB.GrupoPermissao.grp_inserir) &&
                     (!__SessionWEB.__UsuarioWEB.GrupoPermissao.grp_excluir) &&
                     (!__SessionWEB.__UsuarioWEB.GrupoPermissao.grp_alterar)))
                {
                    UCEfetivacaoNotas1.HabilitaBoletimAluno = true;
                }

                bool mudaCorTitulo = VS_cal_ano < DateTime.Now.Year && VS_turmasAnoAtual && VS_EntitiesControleTurma.turma.tur_situacao == 1;

                UCControleTurma1.CorTituloTurma = mudaCorTitulo ? System.Drawing.ColorTranslator.FromHtml("#A52A2A") : System.Drawing.Color.Black;
                divMessageTurmaAnterior.Visible = mudaCorTitulo;
            }
            catch (ThreadAbortException)
            {
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar os dados.", UtilBO.TipoMensagem.Erro);
            }
        }
        /// <summary>
        /// Carregar os períodos e seta a visibilidade dos botões de acordo com a permissão do usuário.
        /// </summary>
        public void CarregarPeriodos
        (
            List <sPermissaoDocente> VS_ltPermissaoFrequencia
            , List <sPermissaoDocente> VS_ltPermissaoEfetivacao
            , List <sPermissaoDocente> VS_ltPermissaoPlanejamentoAnual
            , List <sPermissaoDocente> VS_ltPermissaoAvaliacao
            , TUR_TurmaDisciplina VS_turmaDisciplinaRelacionada
            , int esc_id
            , byte tud_tipo
            , byte tdt_posicao           = 0
            , Int64 tur_id               = -1
            , Int64 tud_id               = -1
            , bool incluirPeriodoRecesso = false
            , int tpcIdPendencia         = -1
        )
        {
            // Habilita a visibilidade dos botões alunos e voltar
            VisibleAlunos = !ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.MINHAS_TURMAS_ESCONDER_BOTAO_ALUNO, __SessionWEB.__UsuarioWEB.Usuario.ent_id);
            VisibleVoltar = !ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.MINHAS_TURMAS_ESCONDER_BOTAO_VOLTAR, __SessionWEB.__UsuarioWEB.Usuario.ent_id);

            int fav_id = -1;

            if (tur_id > 0 && tud_id > 0 && ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.PRE_CARREGAR_CACHE_EFETIVACAO, __SessionWEB.__UsuarioWEB.Usuario.ent_id))
            {
                TUR_Turma entityTurma = new TUR_Turma {
                    tur_id = tur_id
                };
                TUR_TurmaBO.GetEntity(entityTurma);

                ACA_FormatoAvaliacao entityFormato = new ACA_FormatoAvaliacao {
                    fav_id = entityTurma.fav_id
                };
                ACA_FormatoAvaliacaoBO.GetEntity(entityFormato);

                ACA_EscalaAvaliacao entityEscala = new ACA_EscalaAvaliacao {
                    esa_id = entityFormato.esa_idPorDisciplina
                };
                ACA_EscalaAvaliacaoBO.GetEntity(entityEscala);

                ACA_EscalaAvaliacao entityEscalaDocente = new ACA_EscalaAvaliacao {
                    esa_id = entityFormato.esa_idDocente
                };
                ACA_EscalaAvaliacaoBO.GetEntity(entityEscalaDocente);

                TUR_TurmaDisciplina entityTurmaDisciplina = new TUR_TurmaDisciplina {
                    tud_id = tud_id
                };
                TUR_TurmaDisciplinaBO.GetEntity(entityTurmaDisciplina);

                // Valor do conceito global ou por disciplina.
                string valorMinimo = tud_id > 0 ?
                                     entityFormato.valorMinimoAprovacaoPorDisciplina :
                                     entityFormato.valorMinimoAprovacaoConceitoGlobal;

                double notaMinimaAprovacao = 0;
                int    ordemParecerMinimo  = 0;

                EscalaAvaliacaoTipo tipoEscala = (EscalaAvaliacaoTipo)entityEscala.esa_tipo;

                if (tipoEscala == EscalaAvaliacaoTipo.Numerica)
                {
                    notaMinimaAprovacao = Convert.ToDouble(valorMinimo.Replace(',', '.'));
                }
                else if (tipoEscala == EscalaAvaliacaoTipo.Pareceres)
                {
                    ordemParecerMinimo = ACA_EscalaAvaliacaoParecerBO.RetornaOrdem_Parecer(entityEscala.esa_id, valorMinimo, ApplicationWEB.AppMinutosCacheLongo);
                }

                hdnTudId.Value               = tud_id.ToString();
                hdnTurId.Value               = entityTurma.tur_id.ToString();
                hdnFavId.Value               = entityTurma.fav_id.ToString();
                hdnEsaId.Value               = entityEscala.esa_id.ToString();
                hdnTipoEscala.Value          = entityEscala.esa_tipo.ToString();
                hdnTipoEscalaDocente.Value   = entityEscalaDocente.esa_tipo.ToString();
                hdnNotaMinima.Value          = notaMinimaAprovacao.ToString();
                hdnParecerMinimo.Value       = ordemParecerMinimo.ToString();
                hdnTipoLancamento.Value      = entityFormato.fav_tipoLancamentoFrequencia.ToString();
                hdnCalculoQtAulasDadas.Value = entityFormato.fav_calculoQtdeAulasDadas.ToString();
                hdnTurTipo.Value             = entityTurma.tur_tipo.ToString();
                hdnCalId.Value               = entityTurma.cal_id.ToString();
                hdnTudTipo.Value             = entityTurmaDisciplina.tud_tipo.ToString();
                hdnVariacao.Value            = entityFormato.fav_variacao.ToString();
                hdnTipoDocente.Value         = (__SessionWEB.__UsuarioWEB.Docente.doc_id > 0 ?
                                                (byte)ACA_TipoDocenteBO.SelecionaTipoDocentePorPosicao(tdt_posicao, ApplicationWEB.AppMinutosCacheLongo) : (byte)0).ToString();
                hdnDisciplinaEspecial.Value          = entityTurmaDisciplina.tud_disciplinaEspecial ? "true" : "false";
                hdnFechamentoAutomatico.Value        = entityFormato.fav_fechamentoAutomatico ? "true" : "false";
                hdnProcessarFilaFechamentoTela.Value = ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.PROCESSAR_FILA_FECHAMENTO_TELA, __SessionWEB.__UsuarioWEB.Usuario.ent_id) ? "true" : "false";

                fav_id = entityFormato.fav_id;
            }

            if (ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.TELA_UNICA_LANCAMENTO_FREQUENCIA_AVALIACAO, __SessionWEB.__UsuarioWEB.Usuario.ent_id))
            {
                VisibleListao         = VS_ltPermissaoFrequencia.Any(p => p.pdc_permissaoConsulta) || VS_ltPermissaoAvaliacao.Any(p => p.pdc_permissaoConsulta);
                btnFrequencia.Visible = btnAvaliacao.Visible = false;
            }
            else
            {
                VisibleListao         = false;
                btnFrequencia.Visible = VS_ltPermissaoFrequencia.Any(p => p.pdc_permissaoConsulta);
                btnAvaliacao.Visible  = VS_ltPermissaoAvaliacao.Any(p => p.pdc_permissaoConsulta);
            }

            VisibleEfetivacao = tud_tipo != (byte)ACA_CurriculoDisciplinaTipo.DocenciaCompartilhada &&
                                VS_ltPermissaoEfetivacao.Any(p => p.pdc_permissaoConsulta) &&
                                !ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.MINHAS_TURMAS_ESCONDER_BOTAO_EFETIVACAO, __SessionWEB.__UsuarioWEB.Usuario.ent_id);

            VisiblePlanejamentoAnual = tud_tipo == (byte)ACA_CurriculoDisciplinaTipo.DocenciaCompartilhada ?
                                       VS_turmaDisciplinaRelacionada != null && VS_turmaDisciplinaRelacionada.tud_naoLancarPlanejamento == false
                                        : VS_ltPermissaoPlanejamentoAnual.Any(p => p.pdc_permissaoConsulta);

            List <Struct_CalendarioPeriodos> lstCalendarioPeriodos = ACA_CalendarioPeriodoBO.SelecionaPor_Calendario(VS_cal_id, ApplicationWEB.AppMinutosCacheLongo, false, __SessionWEB.__UsuarioWEB.Usuario.ent_id);

            if (incluirPeriodoRecesso)
            {
                VS_CalendarioPeriodo = lstCalendarioPeriodos;
            }
            else
            {
                VS_CalendarioPeriodo = lstCalendarioPeriodos.FindAll(p => p.tpc_id != ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_PERIODO_CALENDARIO_RECESSO, __SessionWEB.__UsuarioWEB.Usuario.ent_id));

                // Se o período selecionado for de recesso,
                // seleciono o bimestre anterior.
                if (VS_tpc_id == ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_PERIODO_CALENDARIO_RECESSO, __SessionWEB.__UsuarioWEB.Usuario.ent_id))
                {
                    int indiceRecesso = lstCalendarioPeriodos.FindIndex(p => p.tpc_id == VS_tpc_id);
                    if (indiceRecesso > 0)
                    {
                        Struct_CalendarioPeriodos periodo = lstCalendarioPeriodos[indiceRecesso - 1];
                        VS_tpc_id    = periodo.tpc_id;
                        VS_tpc_ordem = periodo.tpc_ordem;
                    }
                }
            }

            VS_cal_ano = VS_CalendarioPeriodo.Find(p => p.cal_id == VS_cal_id).cal_ano;

            List <ESC_EscolaCalendarioPeriodo> lstEscCalPeriodo = ESC_EscolaCalendarioPeriodoBO.SelectEscolasCalendarioCache(VS_cal_id, ApplicationWEB.AppMinutosCacheCurto);

            VS_CalendarioPeriodo = VS_CalendarioPeriodo.Where(calP => (lstEscCalPeriodo.Where(escP => (escP.esc_id == esc_id && escP.tpc_id == calP.tpc_id)).Count() == 0)).ToList();

            if (VS_IncluirPeriodoFinal)
            {
                Struct_CalendarioPeriodos[] calendarioPeriodosCopy = new Struct_CalendarioPeriodos[VS_CalendarioPeriodo.Count() + 1];
                VS_CalendarioPeriodo.CopyTo(calendarioPeriodosCopy, 0);

                Struct_CalendarioPeriodos periodoFinal = new Struct_CalendarioPeriodos();
                periodoFinal.cap_descricao = periodoFinal.tpc_nomeAbreviado = GetGlobalResourceObject("UserControl", "NavegacaoTelaPeriodo.UCNavegacaoTelaPeriodo.PeriodoFinal").ToString();
                periodoFinal.tpc_id        = -1;
                calendarioPeriodosCopy[VS_CalendarioPeriodo.Count()] = periodoFinal;

                rptPeriodo.DataSource = calendarioPeriodosCopy;
            }
            else
            {
                rptPeriodo.DataSource = VS_CalendarioPeriodo;
            }

            if (fav_id > 0)
            {
                string tpc_id = string.Join(",", VS_CalendarioPeriodo.Select(p => p.tpc_id.ToString()).ToArray());
                ltAvaliacao = ACA_AvaliacaoBO.ConsultaPor_Periodo_Relacionadas(fav_id, tpc_id, ApplicationWEB.AppMinutosCacheLongo);
                if (VS_IncluirPeriodoFinal)
                {
                    ltAvaliacao.AddRange(ACA_AvaliacaoBO.SelectAvaliacaoFinal_PorFormato(fav_id, ApplicationWEB.AppMinutosCacheLongo));
                }
            }

            rptPeriodo.DataBind();

            //Seleciona o ultimo bimestre
            List <Struct_CalendarioPeriodos> tabelaPeriodos = ACA_CalendarioPeriodoBO.SelecionaPor_Calendario(VS_cal_id, ApplicationWEB.AppMinutosCacheLongo);
            int tpc_idUltimoPeriodo    = tabelaPeriodos.Count > 0 ? tabelaPeriodos.Last().tpc_id : -1;
            int tpc_ordemUltimoPeriodo = tabelaPeriodos.Count > 0 ? tabelaPeriodos.Last().tpc_ordem : 0;

            if (tpcIdPendencia > 0)
            {
                //Busca o bimestre pendente
                Struct_CalendarioPeriodos periodo = VS_CalendarioPeriodo.Where(x => x.tpc_id == tpcIdPendencia).FirstOrDefault();
                VS_tpc_id    = periodo.tpc_id;
                VS_tpc_ordem = periodo.tpc_ordem;
            }

            if (VS_tpc_id <= 0 && !VS_IncluirPeriodoFinal)
            {
                //Busca o bimestre corrente
                Struct_CalendarioPeriodos periodo = VS_CalendarioPeriodo.Where(x => (x.cap_dataInicio.Date <= DateTime.Now.Date && x.cap_dataFim.Date >= DateTime.Now.Date)).FirstOrDefault();
                VS_tpc_id    = periodo.tpc_id;
                VS_tpc_ordem = periodo.tpc_ordem;

                if (VS_tpc_id <= 0)
                {
                    //Se não tem bimestre selecionado e nem bimestre corrente então seleciona o próximo corrente
                    periodo      = VS_CalendarioPeriodo.Where(x => (x.cap_dataInicio.Date >= DateTime.Now.Date)).FirstOrDefault();
                    VS_tpc_id    = periodo.tpc_id;
                    VS_tpc_ordem = periodo.tpc_ordem;

                    if (VS_tpc_id <= 0)
                    {
                        //Se não tem bimestre selecionado então seleciona o ultimo
                        VS_tpc_id    = tpc_idUltimoPeriodo;
                        VS_tpc_ordem = tpc_ordemUltimoPeriodo;
                    }
                }
            }

            if (VS_tpc_id >= 0 && VS_IncluirPeriodoFinal)
            {
                if (VS_tpc_id == tpc_idUltimoPeriodo)
                {
                    // Se for o ultimo periodo e a avaliacao final estiver aberta,
                    // selecionar a avaliacao final
                    List <ACA_Evento> listaEventos = ACA_EventoBO.GetEntity_Efetivacao_List(VS_cal_id, tur_id, __SessionWEB.__UsuarioWEB.Grupo.gru_id, __SessionWEB.__UsuarioWEB.Usuario.ent_id, ApplicationWEB.AppMinutosCacheLongo, true, __SessionWEB.__UsuarioWEB.Docente.doc_id);
                    if (listaEventos.Exists(p => p.tev_id == ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_EVENTO_EFETIVACAO_FINAL, __SessionWEB.__UsuarioWEB.Usuario.ent_id)))
                    {
                        VS_tpc_id    = -1;
                        VS_tpc_ordem = 0;
                    }
                }

                if (VS_tpc_id == 0)
                {
                    //Se não tem bimestre selecionado e nem bimestre corrente então seleciona o próximo corrente
                    Struct_CalendarioPeriodos periodo = VS_CalendarioPeriodo.Where(x => (x.cap_dataInicio.Date >= DateTime.Now.Date)).FirstOrDefault();
                    VS_tpc_id    = periodo.tpc_id;
                    VS_tpc_ordem = periodo.tpc_ordem;

                    if (VS_tpc_id <= 0)
                    {
                        //Se não tem bimestre selecionado então seleciona o final
                        VS_tpc_id    = -1;
                        VS_tpc_ordem = 0;
                    }
                }
            }

            if (VS_tpc_ordem < 0)
            {
                VS_tpc_ordem = 0;
            }

            // Seleciona o botão do bimestre informado (VS_tpc_id)
            rptPeriodo.Items.Cast <RepeaterItem>().ToList()
            .Select(p => (Button)p.FindControl("btnPeriodo"))
            .ToList().ForEach(p => RemoveClass(p, "periodo_selecionado"));
            rptPeriodo.Items.Cast <RepeaterItem>().ToList()
            .Where(p => Convert.ToInt32(((HiddenField)p.FindControl("hdnPeriodo")).Value) == VS_tpc_id &&
                   Convert.ToInt32(((HiddenField)p.FindControl("hdnPeriodoOrdem")).Value) == VS_tpc_ordem)
            .Select(p => (Button)p.FindControl("btnPeriodo"))
            .ToList()
            .ForEach
            (
                p =>
            {
                AddClass(p, "periodo_selecionado");
                HiddenField hdn = (HiddenField)p.FindControl("hdnIdAvaliacao");
                if (!string.IsNullOrEmpty(hdn.Value))
                {
                    hdnAvaId.Value = hdn.Value;
                }

                hdn = (HiddenField)p.FindControl("hdnAvaliacaoTipo");
                if (!string.IsNullOrEmpty(hdn.Value))
                {
                    hdnTipoAvaliacao.Value = hdn.Value;
                }


                hdnTpcId.Value = VS_tpc_id.ToString();

                hdn = (HiddenField)p.FindControl("hdnPeriodoOrdem");
                if (!string.IsNullOrEmpty(hdn.Value))
                {
                    hdnTpcOrdem.Value = hdn.Value;
                }
            }
            );
        }
Esempio n. 9
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);
        }
Esempio n. 10
0
        protected void Page_Load(object sender, EventArgs e)
        {
            ScriptManager sm = ScriptManager.GetCurrent(this);

            if (sm != null)
            {
                sm.Scripts.Add(new ScriptReference(ArquivoJS.MsgConfirmExclusao));
                RegistrarParametrosMensagemSair(true, (__SessionWEB.__UsuarioWEB.Docente.doc_id > 0));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.ExitPageConfirm));
                sm.Scripts.Add(new ScriptReference("~/Includes/jsSetExitPageConfirmer.js"));
                sm.Scripts.Add(new ScriptReference("~/Includes/jsCadastroRelatorioRP.js"));
            }

            if (!IsPostBack)
            {
                if (Session["PaginaRetorno_RelatorioRP"] != null)
                {
                    try
                    {
                        VS_PaginaRetorno = Session["PaginaRetorno_RelatorioRP"].ToString();
                        Session.Remove("PaginaRetorno_RelatorioRP");
                        VS_DadosPaginaRetorno = Session["DadosPaginaRetorno"];
                        Session.Remove("DadosPaginaRetorno");
                        VS_DadosPaginaRetorno_MinhasTurmas = Session["VS_DadosTurmas"];
                        Session.Remove("VS_DadosTurmas");

                        Dictionary <string, string> listaDados = (Dictionary <string, string>)VS_DadosPaginaRetorno;
                        bool eletiva = Convert.ToByte(listaDados["Edit_tur_tipo"]) == (byte)TUR_TurmaTipo.EletivaAluno;
                        long tur_id  = Convert.ToInt64(listaDados["Edit_tur_id"]);
                        long tud_id  = Convert.ToInt64(listaDados["Tud_idRetorno_ControleTurma"]);
                        VS_disciplinaRP = eletiva;

                        VS_alu_id = Convert.ToInt64(Session["alu_id_RelatorioRP"]);
                        Session.Remove("alu_id_RelatorioRP");

                        VS_Tpc_id_TelaAnterior = Convert.ToInt32(listaDados["Edit_tpc_id"]);

                        UCCRelatorioAtendimento.PermiteEditar = false;
                        fdsLancamento.Visible = false;
                        btnNovo.Visible       = false;

                        // Carregar o combo de disciplinas
                        List <sDisciplinas> lstDisciplinas = new List <sDisciplinas>();
                        if (eletiva)
                        {
                            TUR_Turma turma = TUR_TurmaBO.GetEntity(new TUR_Turma {
                                tur_id = tur_id
                            });
                            TUR_TurmaDisciplina turmaDisciplina = TUR_TurmaDisciplinaBO.GetEntity(new TUR_TurmaDisciplina {
                                tud_id = tud_id
                            });

                            sDisciplinas disciplina = new sDisciplinas {
                                tud_nome = string.Format("{0} - {1}", turma.tur_codigo, turmaDisciplina.tud_nome), tur_tud_id = string.Format("{0};{1}", tur_id, tud_id)
                            };
                            lstDisciplinas.Add(disciplina);
                        }
                        else
                        {
                            int strTdsId = Convert.ToInt32(Session["tds_id_RelatorioRP"]);
                            Session.Remove("tds_id_RelatorioRP");

                            List <Struct_PreenchimentoAluno> lstAlunosRelatorioRP = CLS_RelatorioPreenchimentoAlunoTurmaDisciplinaBO.SelecionaAlunoPreenchimentoPorPeriodoDisciplina(UCCPeriodoCalendario.Tpc_ID, tur_id, tud_id, ApplicationWEB.AppMinutosCacheMedio);
                            lstAlunosRelatorioRP.FindAll(p => p.alu_id == VS_alu_id && (strTdsId <= 0 || p.tds_idRelacionada == strTdsId)).ForEach(
                                p =>
                            {
                                sDisciplinas disciplina = new sDisciplinas {
                                    tud_nome = string.Format("{0} - {1}", p.tur_codigo, p.tud_nome), tur_tud_id = string.Format("{0};{1}", p.tur_id, p.tud_id)
                                };
                                lstDisciplinas.Add(disciplina);
                            });
                        }
                        ddlDisciplina.DataSource = lstDisciplinas;
                        ddlDisciplina.Items.Insert(0, new ListItem(string.Format("-- Selecione um(a) {0} --", GetGlobalResourceObject("Mensagens", "MSG_DISCIPLINA").ToString()), "-1;-1", true));
                        ddlDisciplina.DataBind();

                        if (ddlDisciplina.Items.Count == 2)
                        {
                            // Seleciona o único item
                            ddlDisciplina.SelectedIndex = 1;
                            ddlDisciplina_SelectedIndexChanged(null, null);
                        }
                    }
                    catch (Exception ex)
                    {
                        ApplicationWEB._GravaErro(ex);
                        lblMensagem.Text = UtilBO.GetErroMessage("Erro ao tentar carregar relatórios.", UtilBO.TipoMensagem.Erro);
                    }
                }
            }

            UCCRelatorioAtendimento.IndexChanged += UCCRelatorioAtendimento_IndexChanged;
            UCCPeriodoCalendario.IndexChanged    += UCCPeriodoCalendario_IndexChanged;

            if (!Convert.ToString(btnLimparBusca.CssClass).Contains("btnMensagemUnload"))
            {
                btnLimparBusca.CssClass += " btnMensagemUnload";
            }

            if (!Convert.ToString(btnVoltar.CssClass).Contains("btnMensagemUnload"))
            {
                btnVoltar.CssClass += " btnMensagemUnload";
            }

            if (!Convert.ToString(btnVoltarBaixo.CssClass).Contains("btnMensagemUnload"))
            {
                btnVoltarBaixo.CssClass += " btnMensagemUnload";
            }

            if (!Convert.ToString(btnCancelar.CssClass).Contains("btnMensagemUnload"))
            {
                btnCancelar.CssClass += " btnMensagemUnload";
            }

            if (!Convert.ToString(btnCancelarBaixo.CssClass).Contains("btnMensagemUnload"))
            {
                btnCancelarBaixo.CssClass += " btnMensagemUnload";
            }
        }
Esempio n. 11
0
    /// <summary>
    /// Adiciona na lista as entidades de PeriodoCalendario de acordo com os dados na linha.
    /// </summary>
    private List <TUR_TurmaDisciplinaCalendario> AdicionaPeriodos(RepeaterItem rptItem, TUR_TurmaDisciplina ent)
    {
        List <TUR_TurmaDisciplinaCalendario> lista = new List <TUR_TurmaDisciplinaCalendario>();

        if (rptItem != null)
        {
            Repeater rptPeriodos = (Repeater)rptItem.FindControl("rptPeriodos");

            foreach (RepeaterItem itemPeriodo in rptPeriodos.Items)
            {
                CheckBox chkPeriodo = (CheckBox)itemPeriodo.FindControl("chkPeriodo");

                if (chkPeriodo.Checked)
                {
                    Int32 tpc_id = Convert.ToInt32(((Label)itemPeriodo.FindControl("lbl_tpc_id")).Text);

                    TUR_TurmaDisciplinaCalendario turCal = new TUR_TurmaDisciplinaCalendario
                    {
                        tud_id = ent.tud_id,
                        tpc_id = tpc_id
                    };

                    lista.Add(turCal);
                }
            }
        }

        return(lista);
    }
Esempio n. 12
0
    /// <summary>
    /// Adiciona nas listas as entidades da disciplina da linha atual.
    /// </summary>
    /// <param name="rptItem">recebe o Item</param>
    /// <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>
    private CadastroTurmaDisciplina AdicionaDisciplina
    (
        RepeaterItem rptItem
        , string tud_codigo
        , int tud_vagas
        , int tud_minimoMatriculados
        , byte tud_duracao
    )
    {
        bool tud_disciplinaEspecial = false;

        CheckBox chkAlunoDef = (CheckBox)rptItem.FindControl("chkAlunoDef");

        if (chkAlunoDef != null)
        {
            tud_disciplinaEspecial = chkAlunoDef.Checked;
        }

        // Declarando variáveis que receberá dados do grid
        Int32 tud_id = String.IsNullOrEmpty(((Label)rptItem.FindControl("lblTud_ID")).Text) ? -1 : Convert.ToInt32(((Label)rptItem.FindControl("lblTud_ID")).Text);

        // Adicionando na entidades os valores a ser salvo.
        TUR_TurmaDisciplina ent = new TUR_TurmaDisciplina
        {
            tud_tipo = String.IsNullOrEmpty(((Label)rptItem.FindControl("lblCrd_Tipo")).Text) ? new byte() : Convert.ToByte(((Label)rptItem.FindControl("lblCrd_Tipo")).Text)
            ,
            tud_global = false
            ,
            tud_nome = ((Label)rptItem.FindControl("lblDis_Nome")).Text
            ,
            tud_codigo = tud_codigo
            ,
            tud_id = tud_id
            ,
            tud_situacao = (byte)TurmaDisciplinaSituacao.Ativo
            ,
            tud_cargaHorariaSemanal = String.IsNullOrEmpty(((TextBox)rptItem.FindControl("txtAulaSemanal")).Text) ? 0 : Convert.ToInt32(((TextBox)rptItem.FindControl("txtAulaSemanal")).Text)
            ,
            tud_multiseriado = false
            ,
            tud_vagas = tud_vagas
            ,
            tud_minimoMatriculados = tud_minimoMatriculados
            ,
            tud_duracao = tud_duracao
            ,
            tud_modo = (byte)TurmaDisciplinaModo.Normal
            ,
            tud_aulaForaPeriodoNormal = false
            ,
            tud_disciplinaEspecial = tud_disciplinaEspecial
            ,
            tud_semProfessor = ((CheckBox)rptItem.FindControl("chkSemDocente")).Checked
            ,
            IsNew = tud_id <= 0
        };

        // Adicionando valores na entidade de relacionemento.
        TUR_TurmaDisciplinaRelDisciplina relDis = new TUR_TurmaDisciplinaRelDisciplina
        {
            dis_id = Convert.ToInt32(((Label)rptItem.FindControl("lblDis_ID")).Text)
            ,
            tud_id = ent.tud_id
            ,
            IsNew = tud_id <= 0
        };

        List <TUR_TurmaDisciplinaCalendario> turCal = AdicionaPeriodos(rptItem, ent);
        // TUR_TurmaDocente doc = AdicionaDocentes(rptItem, ent);

        // Setar cde_id = id do grupo de disciplinas eletivas.
        string id     = ((Label)rptItem.FindControl("lblCde_id")).Text;
        Int32  cde_id = -1;

        if (!String.IsNullOrEmpty(id))
        {
            cde_id = Convert.ToInt32(id);
        }

        // Avaliações que não serão avaliadas.
        CheckBoxList chkList = (CheckBoxList)rptItem.FindControl("chkAvaliacoesPeriodicas");
        List <TUR_TurmaDisciplinaNaoAvaliado> lista =
            (from ListItem it in chkList.Items
             where it.Selected
             select new TUR_TurmaDisciplinaNaoAvaliado
        {
            tud_id = ent.tud_id
            ,
            fav_id = Convert.ToInt32(it.Value.Split(';')[0])
            ,
            ava_id = Convert.ToInt32(it.Value.Split(';')[1])
        }
            ).ToList();

        Repeater rptDocentes = (Repeater)rptItem.FindControl("rptDocentes");
        List <TUR_Turma_Docentes_Disciplina> listDocentesPosicoes = new List <TUR_Turma_Docentes_Disciplina>();

        foreach (RepeaterItem itemD in rptDocentes.Items)
        {
            GestaoEscolar.WebControls.ControleVigenciaDocentes.ControleVigenciaDocentes UCControleVigenciaDocentes =
                (GestaoEscolar.WebControls.ControleVigenciaDocentes.ControleVigenciaDocentes)itemD.FindControl("UCControleVigenciaDocentes");
            byte posicao = Convert.ToByte(((Label)itemD.FindControl("lblposicao")).Text);

            UCControleVigenciaDocentes.RetornaDocentesPosicao(ref listDocentesPosicoes, posicao, ent.tud_id);
        }

        return(new CadastroTurmaDisciplina
        {
            entTurmaDisciplina = ent
            ,
            entTurmaDiscRelDisciplina = relDis
            ,
            listaTurmaDocente = listDocentesPosicoes
            ,
            entTurmaCalendario = turCal
            ,
            cde_id = cde_id
            ,
            listaAvaliacoesNaoAvaliar = lista
        });
    }
Esempio n. 13
0
        /// <summary>
        /// Salva as entidades turmaAula e TurmaAulaAluno nas listas - com transação.
        /// </summary>
        /// <param name="listTurmaAulaAluno">Lista de entidades CLS_TurmaAulaAluno</param>
        /// <param name="listTurmaAula">LIsta de entidades CLS_TurmaAula</param>
        /// <param name="tur_id">ID da turma</param>
        /// <param name="tud_id">ID da disciplina que está sendo salva as frequências</param>
        /// <param name="tdt_posicao">Posição do docente logado no sistema</param>
        /// <param name="entityTurma">Turma.</param>
        /// <param name="entityFormatoAvaliacao">Formato de avaliação.</param>
        /// <param name="entityCurriculoPeriodo">CurriculoPeriodo.</param>
        /// <param name="banco">Transação com banco de dados aberta</param>
        /// <returns></returns>
        internal static bool Save
        (
            List <CLS_TurmaAulaAluno> listTurmaAulaAluno
            , List <CLS_TurmaAula> listTurmaAula
            , long tur_id
            , long tud_id
            , byte tdt_posicao
            , TUR_Turma entityTurma
            , ACA_FormatoAvaliacao entityFormatoAvaliacao
            , ACA_CurriculoPeriodo entityCurriculoPeriodo
            , TalkDBTransaction banco
            , Guid usu_id        = new Guid()
            , byte origemLogAula = 0
            , byte tipoLogAula   = 0
            , Guid ent_id        = new Guid()
        )
        {
            string tau_ids = string.Join(",",
                                         (from CLS_TurmaAula item in listTurmaAula select item.tau_id.ToString()).
                                         ToArray());

            // Recupera a lista de entidades CLS_TurmaAulaAluno para verificar se ela já existe.
            List <CLS_TurmaAulaAluno> listaTurmaAulaAluno = new CLS_TurmaAulaAlunoDAO {
                _Banco = banco
            }
            .SelectBy_Disciplina_Aulas(tud_id, tau_ids);

            DataTable dtTurmaAulaAluno = CLS_TurmaAulaAluno.TipoTabela_TurmaAulaAluno();
            List <LOG_TurmaAula_Alteracao> listLogAula = new List <LOG_TurmaAula_Alteracao>();

            object lockObject = new object();

            Parallel.ForEach
            (
                listTurmaAulaAluno,
                entityTurmaAulaAluno =>
            {
                // Busca se a entidade já existe na lista.
                CLS_TurmaAulaAluno entAux =
                    listaTurmaAulaAluno.Find(p =>
                                             p.tud_id == entityTurmaAulaAluno.tud_id &&
                                             p.tau_id == entityTurmaAulaAluno.tau_id &&
                                             p.alu_id == entityTurmaAulaAluno.alu_id &&
                                             p.mtu_id == entityTurmaAulaAluno.mtu_id &&
                                             p.mtd_id == entityTurmaAulaAluno.mtd_id
                                             );

                if (entAux != null)
                {
                    entityTurmaAulaAluno.IsNew        = entAux.IsNew;
                    entityTurmaAulaAluno.taa_anotacao = entAux.taa_anotacao;

                    entityTurmaAulaAluno.usu_idDocenteAlteracao = entAux.usu_idDocenteAlteracao;
                }

                Validate(entityTurmaAulaAluno, listTurmaAula);

                if (entityTurmaAulaAluno.Validate())
                {
                    lock (lockObject)
                    {
                        DataRow dr = dtTurmaAulaAluno.NewRow();
                        dtTurmaAulaAluno.Rows.Add(TurmaAulaAlunoToDataRow(entityTurmaAulaAluno, dr));
                    }
                }
                else
                {
                    throw new ValidationException(GestaoEscolarUtilBO.ErrosValidacao(entityTurmaAulaAluno));
                }
            }
            );

            // Salva os dados de todos os alunos na tabela CLS_TurmaAulaAluno
            SalvaFrequenciaAlunos(dtTurmaAulaAluno, banco);

            // Verifica se a entidade recebida por parâmetro foi alimentada, se não foi, dá o GetEntity.
            TUR_Turma turma = entityTurma ?? TUR_TurmaBO.GetEntity(new TUR_Turma {
                tur_id = tur_id
            }, banco);
            ACA_FormatoAvaliacao formatoAvaliacao = entityFormatoAvaliacao ?? ACA_FormatoAvaliacaoBO.GetEntity(new ACA_FormatoAvaliacao {
                fav_id = turma.fav_id
            }, banco);
            ACA_CurriculoPeriodo entityCrp = entityCurriculoPeriodo ?? ACA_CurriculoPeriodoBO.SelecionaPorTurmaTipoNormal(turma.tur_id, GestaoEscolarUtilBO.MinutosCacheLongo);

            List <TUR_TurmaDisciplina> listaDisciplinas = TUR_TurmaDisciplinaBO.GetSelectBy_Turma(tur_id, banco, GestaoEscolarUtilBO.MinutosCacheLongo);

            TUR_TurmaDisciplina entDisciplinarincipal =
                listaDisciplinas.Find(p => p.tud_tipo == (byte)TurmaDisciplinaTipo.DisciplinaPrincipal);

            // Se não for para lançar na disciplina global, e a turma possuir uma disc. principal,
            // só poderá salvar na disciplina principal.
            bool validarDiscPrincipal =
                (!(turma.tur_docenteEspecialista && formatoAvaliacao.fav_planejamentoAulasNotasConjunto)) &&
                (entDisciplinarincipal != null) && (formatoAvaliacao.fav_tipoApuracaoFrequencia != (byte)ACA_FormatoAvaliacaoTipoApuracaoFrequencia.Dia &&
                                                    entityCrp.crp_controleTempo != (byte)ACA_CurriculoPeriodoControleTempo.Horas);

            DateTime dataLogAula = DateTime.Now;

            foreach (CLS_TurmaAula entityTurmaAula in listTurmaAula)
            {
                // Se for pra validar a disc. principal, só pode lançar frequência nela.
                if (validarDiscPrincipal && (entDisciplinarincipal.tud_id != entityTurmaAula.tud_id))
                {
                    throw new ValidationException("A frequência dessa turma só pode ser lançada para o(a) " + CustomResource.GetGlobalResourceObject("Mensagens", "MSG_DISCIPLINA") + entDisciplinarincipal.tud_nome + ".");
                }

                if (origemLogAula > 0)
                {
                    LOG_TurmaAula_Alteracao entLogAula = new LOG_TurmaAula_Alteracao
                    {
                        tud_id     = entityTurmaAula.tud_id,
                        tau_id     = entityTurmaAula.tau_id,
                        usu_id     = usu_id,
                        lta_origem = origemLogAula,
                        lta_tipo   = tipoLogAula,
                        lta_data   = dataLogAula
                    };

                    listLogAula.Add(entLogAula);
                }
            }

            //Salva os logs de alteração de aula
            LOG_TurmaAula_AlteracaoBO.SalvarEmLote(listLogAula, banco);

            // Atualiza o campo efetivado da aula.
            CLS_TurmaAulaBO.AtualizarEfetivado(listTurmaAula, banco);

            // Caso o fechamento seja automático, grava na fila de processamento.
            if (formatoAvaliacao.fav_fechamentoAutomatico && listTurmaAula.Count > 0 && listTurmaAula[0].tpc_id != ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_PERIODO_CALENDARIO_RECESSO, ent_id))
            {
                CLS_AlunoFechamentoPendenciaBO.SalvarFilaFrequencia(tud_id, listTurmaAula[0].tpc_id, banco);
            }

            if (listTurmaAula.Any() && dtTurmaAulaAluno.Rows.Count > 0 && HttpContext.Current != null)
            {
                // Limpa o cache do fechamento
                try
                {
                    string chave  = string.Empty;
                    int    tpc_id = listTurmaAula[0].tpc_id;
                    List <ACA_Avaliacao> avaliacao = ACA_AvaliacaoBO.GetSelectBy_FormatoAvaliacaoPeriodo(turma.fav_id, tpc_id);

                    if (avaliacao.Any())
                    {
                        int ava_id = avaliacao.First().ava_id;
                        if (tud_id > 0)
                        {
                            chave = MTR_MatriculaTurmaDisciplinaBO.RetornaChaveCache_GetSelectBy_TurmaDisciplinaPeriodo(tud_id, turma.fav_id, ava_id, string.Empty);
                            CacheManager.Factory.RemoveByPattern(chave);

                            chave = MTR_MatriculaTurmaDisciplinaBO.RetornaChaveCache_GetSelectBy_TurmaDisciplinaPeriodoFiltroDeficiencia(tud_id, turma.fav_id, ava_id, string.Empty);
                            CacheManager.Factory.RemoveByPattern(chave);
                        }
                        else
                        {
                            chave = MTR_MatriculaTurmaBO.RetornaChaveCache_GetSelectBy_Turma_Periodo(tur_id, turma.fav_id, ava_id);
                            HttpContext.Current.Cache.Remove(chave);
                        }
                    }
                }
                catch
                { }
            }

            return(true);
        }
Esempio n. 14
0
        /// <summary>
        /// Override do Save passando o banco - salva tambem a tabela CLS_CompensacaoAusenciaAluno
        /// </summary>
        /// <param name="entity">Entidade a ser salva</param>
        /// <param name="lista">Lista de CLS_CompensacaoAusenciaAluno a ser salva</param>
        /// <param name="fechamentoAutomatico">Indica se o fechamento é automático.</param>
        /// <param name="banco">Transação com banco</param>
        /// <returns>Se salvou com sucesso</returns>
        public static bool Save(CLS_CompensacaoAusencia entity, List <CLS_CompensacaoAusenciaAluno> lista, bool fechamentoAutomatico, int cal_id, TalkDBTransaction banco)
        {
            // permite cadatrar compensacao apenas para o ultimo periodo aberto,
            // o metodo ja retorna os periodos abertos ordenados do mais recente para o mais antigo
            List <sComboPeriodoCalendario> dtPeriodos = ACA_TipoPeriodoCalendarioBO.SelecionaPor_PeriodoVigente_EventoEfetivacaoVigente(-1, entity.tud_id, -1, Guid.Empty, true);

            if (dtPeriodos.Count > 0 && dtPeriodos.Any(p => p.tpc_id == entity.tpc_id))
            {
                //validacoes
                DataTable dt = MTR_MatriculaTurmaDisciplinaBO.SelecionaAtivosCompensacaoAusencia(
                    entity.tud_id,
                    entity.tpc_id,
                    0,
                    entity.cpa_id
                    );
                dt.PrimaryKey = new DataColumn[1] {
                    dt.Columns["alu_id"]
                };

                TUR_TurmaDisciplina turmaDisciplina = TUR_TurmaDisciplinaBO.GetEntity(new TUR_TurmaDisciplina {
                    tud_id = entity.tud_id
                });
                // se for disciplina especial
                if (turmaDisciplina.tud_disciplinaEspecial
                    // e o docente do tipo especial tem permissao de editar a compensacao
                    && CFG_PermissaoDocenteBO.SelecionaPermissaoModulo((byte)EnumTipoDocente.Especial, (byte)EnumModuloPermissao.Compensacoes).Any(p => p.pdc_permissaoEdicao))
                {
                    // adiciono na lista de validacao os aluno especiais
                    DataTable dtEspecial = MTR_MatriculaTurmaDisciplinaBO.SelecionaAtivosCompensacaoAusenciaFiltroDeficiencia(
                        -1,
                        entity.tud_id,
                        entity.tpc_id,
                        0,
                        EnumTipoDocente.Especial,
                        entity.cpa_id);
                    dt.Merge(dtEspecial, false, MissingSchemaAction.AddWithKey);
                }

                bool   valida       = true;
                string msgValidacao = "";

                if (turmaDisciplina.tud_tipo == (byte)TurmaDisciplinaTipo.Experiencia)
                {
                    if (!TUR_TurmaDisciplinaTerritorioBO.VerificaOferecimentoExperienciaBimestre(turmaDisciplina.tud_id, cal_id, entity.tpc_id))
                    {
                        valida        = false;
                        msgValidacao += "A experiência não possui territórios vigentes no bimestre.";
                    }
                }

                // caso exista alguma compensação já criada pro aluno
                // valida se pode existir alguma outra.
                foreach (CLS_CompensacaoAusenciaAluno cpaa in lista)
                {
                    var results = from row in dt.AsEnumerable()
                                  where row.Field <Int64>("alu_id") == cpaa.alu_id
                                  select row;

                    if (results.Count() > 0)
                    {
                        DataTable aux = results.CopyToDataTable();
                        int       totalFaltasCompensar = Convert.ToInt32(aux.Rows[0]["TotalFaltasCompensar"]);
                        if (entity.cpa_quantidadeAulasCompensadas > totalFaltasCompensar)
                        {
                            valida        = false;
                            msgValidacao += String.Format("Aluno(a) {0} não pode ter essa quantidade de ausências compensadas. </br>", aux.Rows[0]["pes_nome"].ToString());
                        }
                    }
                    else
                    {
                        valida = false;
                        ACA_Aluno aluno = ACA_AlunoBO.GetEntity(new ACA_Aluno {
                            alu_id = cpaa.alu_id
                        });
                        PES_Pessoa pes = PES_PessoaBO.GetEntity(new PES_Pessoa {
                            pes_id = aluno.pes_id
                        });
                        msgValidacao += String.Format("Aluno(a) {0} não pode ter ausências compensadas nos bimestres em que não estava na turma. </br>", pes.pes_nome);
                    }
                }
                if (!valida)
                {
                    throw new ValidationException(msgValidacao);
                }

                // Salva CLS_CompensacaoAusencia
                if (!Save(entity, banco))
                {
                    throw new Exception("Erro ao tentar salvar compensação de ausência.");
                }

                // Caso o fechamento seja automático, grava na fila de processamento.
                if (fechamentoAutomatico && entity.tpc_id != ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_PERIODO_CALENDARIO_RECESSO, new Guid()))
                {
                    CLS_AlunoFechamentoPendenciaBO.SalvarFilaFrequencia(entity.tud_id, entity.tpc_id, banco);
                }

                List <CLS_CompensacaoAusenciaAluno> listaBanco = CLS_CompensacaoAusenciaAlunoBO.SelectByCpa_id(entity.cpa_id, entity.tud_id);

                foreach (CLS_CompensacaoAusenciaAluno item in lista)
                {
                    CLS_CompensacaoAusenciaAluno ent = listaBanco.Find(p => p.tud_id == item.tud_id &&
                                                                       p.cpa_id == entity.cpa_id &&
                                                                       p.alu_id == item.alu_id &&
                                                                       p.mtd_id == item.mtd_id &&
                                                                       p.mtu_id == item.mtu_id);

                    if (ent != null)
                    {
                        // Achou na lista que vem no banco, altera.
                        ent.IsNew = false;
                        CLS_CompensacaoAusenciaAlunoBO.Save(ent, banco);

                        // Remove o registro da lista do banco para restar somente os que serao excluidos.
                        listaBanco.Remove(ent);
                    }
                    else
                    {
                        // Não achou na lista do banco, inclui.
                        item.cpa_id = entity.cpa_id;
                        CLS_CompensacaoAusenciaAlunoBO.GetEntity(item, banco);
                        if (item.caa_situacao == 3)
                        {
                            item.caa_situacao = 1;
                            item.IsNew        = false;
                        }
                        else
                        {
                            item.IsNew = true;
                        }
                        CLS_CompensacaoAusenciaAlunoBO.Save(item, banco);
                    }
                }

                if (listaBanco.Count > 0)
                {
                    foreach (CLS_CompensacaoAusenciaAluno item in listaBanco)
                    {
                        CLS_CompensacaoAusenciaAlunoBO.Delete(item, banco);
                    }
                }
            }
            else
            {
                throw new ValidationException("Não existe evento de fechamento do bimestre aberto para realizar o lançamento.");
            }
            return(true);
        }
Esempio n. 15
0
        private void UCComboTurmaDisciplina_IndexChanged()
        {
            try
            {
                UCCPeriodoCalendario.Valor         = new[] { -1, -1 };
                UCCPeriodoCalendario.PermiteEditar = false;
                // utilizado para evitar chamar o evento de alteracao do calendario periodo duas vezes seguidas.
                bool selecionouComboPeriodos = false;

                if (UCCTurmaDisciplina1.Valor > -1)
                {
                    long tur_id = Convert.ToInt64(ddlTurma.SelectedValue);

                    TUR_Turma entTurma = new TUR_Turma {
                        tur_id = tur_id
                    };
                    TUR_TurmaBO.GetEntity(entTurma);

                    ACA_CalendarioAnual entCalendario = new ACA_CalendarioAnual {
                        cal_id = entTurma.cal_id
                    };
                    ACA_CalendarioAnualBO.GetEntity(entCalendario);

                    ACA_FormatoAvaliacao entFormatoAvaliacao = new ACA_FormatoAvaliacao {
                        fav_id = entTurma.fav_id
                    };
                    ACA_FormatoAvaliacaoBO.GetEntity(entFormatoAvaliacao);

                    VS_FechamentoAutomatico = entFormatoAvaliacao.fav_fechamentoAutomatico;

                    TUR_TurmaDisciplina entityTurmaDisciplina = new TUR_TurmaDisciplina {
                        tud_id = UCCTurmaDisciplina1.Valor
                    };
                    TUR_TurmaDisciplinaBO.GetEntity(entityTurmaDisciplina);

                    if (entityTurmaDisciplina.tud_naoLancarFrequencia)
                    {
                        lblMessage.Text           = UtilBO.GetErroMessage(GetGlobalResourceObject("Mensagens", "MSG_DISCIPLINA") + " não pode lançar frequência na turma.", UtilBO.TipoMensagem.Alerta);
                        UCCTurmaDisciplina1.Valor = -1;
                    }
                    else
                    {
                        bool sucessoProcessarPendenciaFechamento = true;
                        if (VS_FechamentoAutomatico)
                        {
                            var pendencias = CLS_AlunoFechamentoPendenciaBO.SelecionarAguardandoProcessamento(tur_id, entityTurmaDisciplina.tud_id, entityTurmaDisciplina.tud_tipo, 0);

                            if ((pendencias != null) && (pendencias.Rows.Count > 0))
                            {
                                try
                                {
                                    // limpa cache desta turma
                                    string pattern;
                                    pattern = String.Format("{0}_{1}", ModelCache.FECHAMENTO_AUTO_BIMESTRE_PATTERN_KEY, entityTurmaDisciplina.tud_id);
                                    CacheManager.Factory.RemoveByPattern(pattern);
                                    pattern = String.Format("{0}_{1}", ModelCache.FECHAMENTO_AUTO_BIMESTRE_FILTRO_DEFICIENCIA_PATTERN_KEY, entityTurmaDisciplina.tud_id);
                                    CacheManager.Factory.RemoveByPattern(pattern);
                                    pattern = String.Format("{0}_{1}", ModelCache.FECHAMENTO_AUTO_BIMESTRE_COMPONENTES_REGENCIA_PATTERN_KEY, tur_id);
                                    CacheManager.Factory.RemoveByPattern(pattern);
                                    pattern = String.Format("{0}_{1}", ModelCache.FECHAMENTO_AUTO_FINAL_PATTERN_KEY, entityTurmaDisciplina.tud_id);
                                    CacheManager.Factory.RemoveByPattern(pattern);
                                    pattern = String.Format("{0}_{1}", ModelCache.FECHAMENTO_AUTO_FINAL_FILTRO_DEFICIENCIA_PATTERN_KEY, entityTurmaDisciplina.tud_id);
                                    CacheManager.Factory.RemoveByPattern(pattern);
                                    pattern = String.Format("{0}_{1}", ModelCache.FECHAMENTO_AUTO_FINAL_COMPONENTES_REGENCIA_PATTERN_KEY, tur_id);
                                    CacheManager.Factory.RemoveByPattern(pattern);
                                    pattern = String.Format(ModelCache.PENDENCIAS_DISCIPLINA_MODEL_KEY, entTurma.esc_id, entTurma.uni_id, entCalendario.cal_ano, entityTurmaDisciplina.tud_id);
                                    CacheManager.Factory.Remove(pattern);
                                    CLS_AlunoFechamentoPendenciaBO.Processar(entityTurmaDisciplina.tud_id, (byte)AvaliacaoTipo.Final, pendencias);
                                }
                                catch (Exception ex)
                                {
                                    sucessoProcessarPendenciaFechamento = false;
                                    ApplicationWEB._GravaErro(ex);
                                    lblMessage.Text = UtilBO.GetErroMessage(GetGlobalResourceObject("Classe", "CompensacaoAusencia.Cadastro.MensagemErroProcessarPendenciaFechamento").ToString(), UtilBO.TipoMensagem.Erro);
                                }
                            }
                        }
                        if (sucessoProcessarPendenciaFechamento)
                        {
                            UCCPeriodoCalendario.CarregarPorPeriodoEventoEfetivacaoVigentes(entTurma.cal_id, UCCTurmaDisciplina1.Valor, entTurma.tur_id, true);
                            selecionouComboPeriodos = UCCPeriodoCalendario.Valor[0] != -1 && UCCPeriodoCalendario.Valor[1] != -1;

                            UCCPeriodoCalendario.SetarFoco();
                            UCCPeriodoCalendario.PermiteEditar = true;
                        }

                        VS_DisciplinaEspecial = entityTurmaDisciplina.tud_disciplinaEspecial;

                        VS_posicao = TUR_TurmaDocenteBO.SelecionaPosicaoPorDocenteTurma(_VS_doc_id, UCCTurmaDisciplina1.Valor, ApplicationWEB.AppMinutosCacheLongo);

                        VS_tipoDocente = ACA_TipoDocenteBO.SelecionaTipoDocentePorPosicao(VS_posicao, ApplicationWEB.AppMinutosCacheLongo);
                    }
                }

                if (!selecionouComboPeriodos)
                {
                    UCCPeriodoCalendario_IndexChanged();
                }
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar os dados.", UtilBO.TipoMensagem.Erro);
            }
        }
Esempio n. 16
0
        /// <summary>
        /// Carrega as informações do aluno que serão exibidas na tela.
        /// </summary>
        private void LoadInformacoesAluno()
        {
            try
            {
                DadosAlunoPessoa dados = ACA_AlunoBO.GetDadosAluno(VS_alu_id);

                TUR_TurmaDisciplina tud = new TUR_TurmaDisciplina {
                    tud_id = VS_tud_id
                };
                TUR_TurmaDisciplinaBO.GetEntity(tud);

                lblDisciplina.Text     += tud.tud_nome + "<br />";
                lblNome.Text           += dados.pes_nome + "<br />";
                lblDataNascimento.Text += (Convert.ToDateTime(dados.pes_dataNascimento).ToShortDateString()) + "<br />";
                lblNomeMae.Text        += dados.pesMae_nome + "<br />";
                lblDataCadastro.Text   += (Convert.ToDateTime(dados.pes_dataCriacao).ToShortDateString()) + "<br />";
                lblDataAlteracao.Text  += (Convert.ToDateTime(dados.pes_dataAlteracao).ToShortDateString()) + "<br />";
                lblSituacao.Text       += situacao(dados.alu_situacao) + "<br />";

                DataTable matricula = VS_mtu_id >= 0 ? MTR_MatriculaTurmaBO.GetSelectDadosMatriculaAlunoMtu(VS_alu_id, VS_mtu_id) : MTR_MatriculaTurmaBO.GetSelectDadosMatriculaAluno(VS_alu_id);

                if (matricula.Rows.Count > 0)
                {
                    if (ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.ORDENAR_ESCOLAS_POR_CODIGO, __SessionWEB.__UsuarioWEB.Usuario.ent_id))
                    {
                        lblEscola.Text += string.IsNullOrEmpty(matricula.Rows[0]["esc_nome"].ToString()) ? " - <br />" : matricula.Rows[0]["esc_codigo"] + " - " + matricula.Rows[0]["esc_nome"] + "<br />";
                    }
                    else
                    {
                        lblEscola.Text += string.IsNullOrEmpty(matricula.Rows[0]["esc_nome"].ToString()) ? " - <br />" : matricula.Rows[0]["esc_nome"] + "<br />";
                    }

                    lblCurso.Text   = string.IsNullOrEmpty(matricula.Rows[0]["cur_nome"].ToString()) ? "<b>" + GestaoEscolarUtilBO.nomePadraoCurso(__SessionWEB.__UsuarioWEB.Usuario.ent_id) + ": </b>" + " - " + "<br />" : "<b>" + GestaoEscolarUtilBO.nomePadraoCurso(__SessionWEB.__UsuarioWEB.Usuario.ent_id) + ": </b>" + matricula.Rows[0]["cur_nome"] + "<br />";
                    lblPeriodo.Text = string.IsNullOrEmpty(matricula.Rows[0]["crp_descricao"].ToString()) ? "<b>" + GestaoEscolarUtilBO.nomePadraoPeriodo(__SessionWEB.__UsuarioWEB.Usuario.ent_id) + ": </b>" + " - " + "<br />" : "<b>" + GestaoEscolarUtilBO.nomePadraoPeriodo(__SessionWEB.__UsuarioWEB.Usuario.ent_id) + ": </b>" + matricula.Rows[0]["crp_descricao"] + "<br />";

                    lblTurma.Text += string.IsNullOrEmpty(matricula.Rows[0]["tur_codigo"].ToString()) ? " - <br />" : matricula.Rows[0]["tur_codigo"] + "<br />";

                    if (!string.IsNullOrEmpty(matricula.Rows[0]["mtu_numeroChamada"].ToString()))
                    {
                        if (Convert.ToInt32(matricula.Rows[0]["mtu_numeroChamada"]) > 0)
                        {
                            lblNChamada.Text += matricula.Rows[0]["mtu_numeroChamada"] + "<br />";
                        }
                        else
                        {
                            lblNChamada.Text += " - <br />";
                        }
                    }
                    else
                    {
                        lblNChamada.Text += " - <br />";
                    }


                    string matriculaEstadual = ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.MATRICULA_ESTADUAL, __SessionWEB.__UsuarioWEB.Usuario.ent_id);
                    if (!string.IsNullOrEmpty(matriculaEstadual))
                    {
                        string mtrEstadual = string.IsNullOrEmpty(matricula.Rows[0]["alc_matriculaEstadual"].ToString()) ? "-" : matricula.Rows[0]["alc_matriculaEstadual"].ToString();
                        lblRA.Text    = "<b>" + matriculaEstadual + ": </b>" + mtrEstadual + "<br />";
                        lblRA.Visible = true;
                    }
                    else
                    {
                        string mtr = string.IsNullOrEmpty(matricula.Rows[0]["alc_matricula"].ToString()) ? "-" : matricula.Rows[0]["alc_matricula"].ToString();
                        lblRA.Text    = "<b>" + GetGlobalResourceObject("Mensagens", "MSG_NUMEROMATRICULA") + ": " + "</b>" + mtr + "<br />";
                        lblRA.Visible = true;
                    }
                }
                else
                {
                    lblEscola.Visible   = false;
                    lblCurso.Visible    = false;
                    lblPeriodo.Visible  = false;
                    lblTurma.Visible    = false;
                    lblNChamada.Visible = false;
                    lblRA.Visible       = false;
                }
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMessage.Text = UtilBO.GetErroMessage(CustomResource.GetGlobalResourceObject("Classe", "JustificativaAbonoFalta.Mensagem.Erro"), UtilBO.TipoMensagem.Erro);
            }
        }
Esempio n. 17
0
    /// <summary>
    /// Adiciona nas listas as entidades da disciplina da linha atual.
    /// </summary>
    /// <param name="item"></param>
    /// <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>
    private CadastroTurmaDisciplina AdicionaDisciplina
    (
        GridViewRow item
        , string tud_codigo
        , int tud_vagas
        , int tud_minimoMatriculados
        , byte tud_duracao
    )
    {
        bool tud_disciplinaEspecial = false;

        CheckBox chkAlunoDef = (CheckBox)gvDisciplina.Rows[item.RowIndex].FindControl("chkAlunoDef");

        if (chkAlunoDef != null)
        {
            tud_disciplinaEspecial = chkAlunoDef.Checked;
        }

        // Adicionando na entidades os valores a ser salvo.
        TUR_TurmaDisciplina ent = new TUR_TurmaDisciplina
        {
            tud_tipo                  = String.IsNullOrEmpty(gvDisciplina.DataKeys[item.RowIndex].Values["crd_tipo"].ToString()) ? new byte() : Convert.ToByte(gvDisciplina.DataKeys[item.RowIndex].Values["crd_tipo"].ToString()),
            tud_global                = false,
            tud_nome                  = gvDisciplina.DataKeys[item.RowIndex].Values["dis_nome"].ToString(),
            tud_codigo                = tud_codigo,
            tud_id                    = Convert.ToInt32(gvDisciplina.DataKeys[item.RowIndex].Values["tud_id"]),
            tud_situacao              = (byte)TurmaDisciplinaSituacao.Ativo,
            tud_cargaHorariaSemanal   = String.IsNullOrEmpty(((TextBox)item.FindControl("txtAulaSemanal")).Text) ? 0 : Convert.ToInt32(((TextBox)item.FindControl("txtAulaSemanal")).Text),
            tud_multiseriado          = false,
            tud_vagas                 = tud_vagas,
            tud_minimoMatriculados    = tud_minimoMatriculados,
            tud_duracao               = tud_duracao,
            tud_modo                  = (byte)TurmaDisciplinaModo.Normal,
            tud_aulaForaPeriodoNormal = false,
            tud_disciplinaEspecial    = tud_disciplinaEspecial,
            tud_semProfessor          = ((CheckBox)item.FindControl("chkSemDocente")).Checked,
            IsNew = Convert.ToInt32(gvDisciplina.DataKeys[item.RowIndex].Values["tud_id"]) <= 0
        };

        // Adicionando valores na entidade de relacionemento.
        TUR_TurmaDisciplinaRelDisciplina relDis = new TUR_TurmaDisciplinaRelDisciplina
        {
            dis_id = Convert.ToInt32(gvDisciplina.DataKeys[item.RowIndex].Values["dis_id"]),
            tud_id = ent.tud_id,
            IsNew  = Convert.ToInt32(gvDisciplina.DataKeys[item.RowIndex].Values["tud_id"]) <= 0
        };

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

        // Avaliações que não serão avaliadas.
        CheckBoxList chkList = (CheckBoxList)item.FindControl("chkAvaliacoesPeriodicas");
        List <TUR_TurmaDisciplinaNaoAvaliado> lista =
            (from ListItem it in chkList.Items
             where it.Selected
             select new TUR_TurmaDisciplinaNaoAvaliado
        {
            tud_id = ent.tud_id,
            fav_id = Convert.ToInt32(it.Value.Split(';')[0]),
            ava_id = Convert.ToInt32(it.Value.Split(';')[1])
        }
            ).ToList();

        Repeater rptDocentes = (Repeater)item.FindControl("rptDocentes");
        List <TUR_Turma_Docentes_Disciplina> listDocentesPosicoes = new List <TUR_Turma_Docentes_Disciplina>();

        foreach (RepeaterItem itemD in rptDocentes.Items)
        {
            ControleVigenciaDocentes UCControleVigenciaDocentes = (ControleVigenciaDocentes)itemD.FindControl("UCControleVigenciaDocentes");
            byte posicao = Convert.ToByte(((Label)itemD.FindControl("lblposicao")).Text);

            UCControleVigenciaDocentes.RetornaDocentesPosicao(ref listDocentesPosicoes, posicao, ent.tud_id);
        }

        return(new CadastroTurmaDisciplina
        {
            entTurmaDisciplina = ent,
            entTurmaDiscRelDisciplina = relDis,
            listaTurmaDocente = listDocentesPosicoes,
            entTurmaCalendario = turCal,
            listaAvaliacoesNaoAvaliar = lista
        });
    }
Esempio n. 18
0
        /// <summary>
        /// Realiza a consulta pelos filtros informados.
        /// </summary>
        private void Pesquisar()
        {
            try
            {
                Dictionary <string, string> filtros = new Dictionary <string, string>();

                bool permiteConsultar = true;
                List <sPermissaoDocente> ltPermissao = new List <sPermissaoDocente>();
                EnumTipoDocente          tipoDocente = EnumTipoDocente.Titular;
                if (_VS_doc_id > 0)
                {
                    long tud_id = UCCTurmaDisciplina1.Valor;
                    bool AtribuicaoAtiva;
                    // Traz a última atribuição que o docente teve naquela disciplina, sendo ativa ou inativa.
                    byte tdt_posicao = TUR_TurmaDocenteBO.SelecionaPosicaoPorDocenteTurma_ComInativos
                                           (_VS_doc_id, tud_id, out AtribuicaoAtiva, ApplicationWEB.AppMinutosCacheLongo);
                    VS_AtribuicaoAtiva = AtribuicaoAtiva;
                    ltPermissao        = CFG_PermissaoDocenteBO.SelecionaPermissaoModulo(tdt_posicao, (byte)EnumModuloPermissao.Compensacoes);
                    permiteConsultar   = ltPermissao.Any(p => p.pdc_permissaoConsulta);

                    TUR_TurmaDisciplina entityTurmaDisciplina = new TUR_TurmaDisciplina {
                        tud_id = tud_id
                    };
                    TUR_TurmaDisciplinaBO.GetEntity(entityTurmaDisciplina);
                    VS_DisciplinaEspecial = entityTurmaDisciplina.tud_disciplinaEspecial;

                    tipoDocente = ACA_TipoDocenteBO.SelecionaTipoDocentePorPosicao(tdt_posicao, ApplicationWEB.AppMinutosCacheLongo);
                }
                else
                {
                    VS_AtribuicaoAtiva = true;
                }

                if (permiteConsultar)
                {
                    gvCompAusencia.EmptyDataText = GetGlobalResourceObject("Classe", "CompensacaoAusencia.Busca.SemCompensacaoAusencia").ToString();
                    gvCompAusencia.PageIndex     = 0;
                    odsCompAusencia.SelectMethod = _VS_doc_id > 0 && VS_DisciplinaEspecial ? "SelectByPesquisaFiltroDeficiencia" : "SelectByPesquisa";
                    odsCompAusencia.SelectParameters.Clear();
                    odsCompAusencia.SelectParameters.Add("uad_idSuperior", DbType.Guid, UCComboUAEscola.Uad_ID.ToString());
                    odsCompAusencia.SelectParameters.Add("esc_id", DbType.Int32, UCComboUAEscola.Esc_ID.ToString());
                    odsCompAusencia.SelectParameters.Add("uni_id", DbType.Int32, UCComboUAEscola.Uni_ID.ToString());
                    odsCompAusencia.SelectParameters.Add("cur_id", DbType.Int32, UCCCursoCurriculo.Valor[0].ToString());
                    odsCompAusencia.SelectParameters.Add("crr_id", DbType.Int32, UCCCursoCurriculo.Valor[1].ToString());
                    odsCompAusencia.SelectParameters.Add("cap_id", DbType.Int32, UCCPeriodoCalendario.Valor[1].ToString());
                    odsCompAusencia.SelectParameters.Add("tud_id", DbType.Int64, UCCTurmaDisciplina1.Valor.ToString());
                    odsCompAusencia.SelectParameters.Add("tur_id", DbType.Int64, ddlTurma.SelectedValue);

                    // Filtra pela visão do usuário.
                    odsCompAusencia.SelectParameters.Add("gru_id", __SessionWEB.__UsuarioWEB.Grupo.gru_id.ToString());
                    odsCompAusencia.SelectParameters.Add("usu_id", __SessionWEB.__UsuarioWEB.Usuario.usu_id.ToString());
                    odsCompAusencia.SelectParameters.Add("adm", (__SessionWEB.__UsuarioWEB.Grupo.vis_id == SysVisaoID.Administracao || __SessionWEB.__UsuarioWEB.Grupo.vis_id == SysVisaoID.Individual).ToString());
                    odsCompAusencia.SelectParameters.Add("ent_id", __SessionWEB.__UsuarioWEB.Usuario.ent_id.ToString());

                    if (_VS_doc_id > 0 && VS_DisciplinaEspecial)
                    {
                        odsCompAusencia.SelectParameters.Add("tipoDocente", tipoDocente.ToString());
                    }

                    odsCompAusencia.DataBind();

                    // quantidade de itens por página
                    string qtItensPagina = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.QT_ITENS_PAGINACAO);
                    int    itensPagina   = string.IsNullOrEmpty(qtItensPagina) ? ApplicationWEB._Paginacao : Convert.ToInt32(qtItensPagina);

                    gvCompAusencia.Sort(VS_Ordenacao, VS_SortDirection);

                    #region Salvar busca realizada com os parâmetros do ODS.

                    foreach (Parameter param in odsCompAusencia.SelectParameters)
                    {
                        filtros.Add(param.Name, param.DefaultValue);
                    }

                    filtros.Add("tpc_id", UCCPeriodoCalendario.Valor[0].ToString());
                    filtros.Add("cal_id", UCComboCalendario.Valor.ToString());

                    __SessionWEB.BuscaRealizada = new BuscaGestao
                    {
                        PaginaBusca = PaginaGestao.CompensacaoAusencia
                        ,
                        Filtros = filtros
                    };

                    #endregion

                    // mostra essa quantidade no combobox
                    UCComboQtdePaginacao1.Valor = itensPagina;
                    // atribui essa quantidade para o grid
                    gvCompAusencia.PageSize = itensPagina;
                    // atualiza o grid
                    gvCompAusencia.DataBind();

                    fdsResultados.Visible = true;

                    if (_VS_doc_id > 0)
                    {
                        gvCompAusencia.Columns[gvCompAusenciaIndiceAlterar].Visible     =
                            gvCompAusencia.Columns[gvCompAusenciaIndiceExcluir].Visible = ltPermissao.Any(p => p.pdc_permissaoEdicao);
                    }
                    else
                    {
                        gvCompAusencia.Columns[gvCompAusenciaIndiceAlterar].Visible = __SessionWEB.__UsuarioWEB.GrupoPermissao.grp_alterar;
                        gvCompAusencia.Columns[gvCompAusenciaIndiceExcluir].Visible = __SessionWEB.__UsuarioWEB.GrupoPermissao.grp_excluir;
                    }
                }
                else
                {
                    string msg = String.Format("O docente não possui permissão para consultar compensações de ausência do(a) {0} selecionado(a).", GetGlobalResourceObject("Mensagens", "MSG_DISCIPLINA_MIN"));
                    lblMessage.Text = UtilBO.GetErroMessage(msg, UtilBO.TipoMensagem.Alerta);
                }
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar as compensações de ausências.", UtilBO.TipoMensagem.Erro);
            }
        }