/// <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); } }
/// <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); }
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); }
/// <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 }); }
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; } } ); }
/// <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); }
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"; } }
/// <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); }
/// <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 }); }
/// <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); }
/// <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); }
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); } }
/// <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); } }
/// <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 }); }
/// <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); } }