public void CarregarAvaliacaoPorTurmaTipo(long tur_id, string ava_tipos) { try { ddlAvaliacao.Items.Clear(); DataTable dt = new DataTable(); List <ACA_AvaliacaoBO.sTipoAvaliacao> lstTipoAvaliacao = ACA_AvaliacaoBO.SelecionaPorTipoAvaliacao(ava_tipos, tur_id); dt.Columns.Add("ava_id"); dt.Columns.Add("ava_nome"); foreach (ACA_AvaliacaoBO.sTipoAvaliacao lstItem in lstTipoAvaliacao) { DataRow r = dt.NewRow(); r["ava_id"] = lstItem.fav_ava_id.ToString().Split(';')[1]; r["ava_nome"] = lstItem.ava_nome; dt.Rows.Add(r); } ddlAvaliacao.DataSource = dt; ddlAvaliacao.AppendDataBoundItems = true; ddlAvaliacao.DataBind(); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar avaliações.", UtilBO.TipoMensagem.Erro); } }
protected void CarregarBoletim(long alu_id, int mtu_id) { try { string mtuId = ""; if (mtu_id > 0) { mtuId = Convert.ToString(mtu_id); } int tpc_id = 0; MTR_MatriculaTurma matriculaTurma = MTR_MatriculaTurmaBO.GetEntity(new MTR_MatriculaTurma { alu_id = __SessionWEB.__UsuarioWEB.alu_id, mtu_id = mtu_id }); TUR_Turma turma = TUR_TurmaBO.GetEntity(new TUR_Turma { tur_id = matriculaTurma.tur_id }); DataTable dtAvaliacao = ACA_AvaliacaoBO.GetSelectBy_FormatoAvaliacao(turma.fav_id); tpc_id = (from DataRow row in dtAvaliacao.Rows orderby Convert.ToInt32(row["tpc_ordem"]) select Convert.ToInt32(row["tpc_id"])).FirstOrDefault(); List <ACA_AlunoBO.BoletimDadosAluno> lBoletimAluno = ACA_AlunoBO.BuscaBoletimAlunos(Convert.ToString(alu_id), mtuId, tpc_id, __SessionWEB.__UsuarioWEB.Usuario.ent_id); if (lBoletimAluno != null && lBoletimAluno.Any()) { UCAlunoBoletimEscolar.ExibeBoletim(lBoletimAluno.FirstOrDefault()); } else { throw new ValidationException("O aluno não possui dados para o boletim."); } } catch (ValidationException ex) { lblMensagem.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMensagem.Text = UtilBO.GetErroMessage("Erro ao exibir o Boletim Online do aluno.", UtilBO.TipoMensagem.Erro); } }
/// <summary> /// Carrega todos os dados do boletim, com informações de recomendações, qualidades e notas. /// </summary> /// <param name="lBoletimAluno">Lista com os dados do boletim.</param> public void CarregarDadosBoletim(List <ACA_AlunoBO.BoletimDadosAluno> lBoletimAluno) { bool permiteImportacao = ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.PERMITIR_IMPORTACAO_DADOS_EFETIVACAO , __SessionWEB.__UsuarioWEB.Usuario.ent_id); ACA_AlunoBO.BoletimDadosAluno boletimAluno; if (lBoletimAluno != null && lBoletimAluno.Any()) { boletimAluno = lBoletimAluno.First(); VS_Alu_Id = boletimAluno.alu_id; VS_Mtu_Id = boletimAluno.mtu_id; VS_ListaPeriodoMatricula = boletimAluno.listaNotasEFaltas .GroupBy(p => p.tpc_id) .Select(p => new sPeriodoMatricula { tpc_id = p.Key, mtu_id = p.First().mtu_id }) .ToList(); // Ocultar quando a escolas estiverem marcadas para importar dados da efetivação no período selecionado: divRecomendacoes.Visible = DivProposta.Visible = divPerfil.Visible = !permiteImportacao || (permiteImportacao && !boletimAluno.fechamentoPorImportacao); DivPropostaVisible = (!boletimAluno.fechamentoPorImportacao && boletimAluno.tci_exibirBoletim); lblLegend.Text = @"<h1>BOLETIM - " + boletimAluno.ava_nome + @" - " + boletimAluno.cal_ano + @"</h1>"; lblLegend.Text += @"<h3> " + GetGlobalResourceObject("WebControls", "BoletimCompletoAluno.UCBoletimCompletoAluno.lblLegend.Titulo").ToString() + " <br/>" + boletimAluno.uad_nome + @"</h3>"; lblLegend.Text += @"<h2>" + boletimAluno.esc_nome + @"</h2>"; lblNomeAluno.Text = boletimAluno.pes_nome; lblCodigoEOL.Text = boletimAluno.pes_nome_abreviado; Label5.Text = boletimAluno.tur_codigo; lblCicloAluno.Text = boletimAluno.tci_nome; rptQualidades.DataSource = lBoletimAluno.Where(p => !string.IsNullOrEmpty(p.qualidade)).Select(p => new { p.alu_id, tqa_id = 0, p.qualidade, porDisciplina = 0 }).Distinct().ToList(); rptDesempenho.DataSource = lBoletimAluno.Where(p => !string.IsNullOrEmpty(p.desempenho)).Select(p => new { p.alu_id, tda_id = 0, p.desempenho, porDisciplina = 0 }).Distinct().ToList(); rptRecomendacoes.DataSource = lBoletimAluno.Where(p => !string.IsNullOrEmpty(p.recomendacaoAluno)).Select(p => new { p.alu_id, rar_id = 0, recomendacao = p.recomendacaoAluno, porDisciplina = 0 }).Distinct().ToList(); rptRecomendacoesAosResp.DataSource = lBoletimAluno.Where(p => !string.IsNullOrEmpty(p.recomendacaoResponsavel)).Select(p => new { p.alu_id, rar_id = 0, recomendacao = p.recomendacaoResponsavel, porDisciplina = 0 }).Distinct().ToList(); lblAtividadeFeita.Text = boletimAluno.cpe_atividadeFeita; lblAtividadePretendeFazer.Text = boletimAluno.cpe_atividadePretendeFazer; rptPeriodo.DataBind(); if (rptPeriodo.Items.Count == 0) { rptPeriodo.DataSource = ACA_AvaliacaoBO.GetSelectBy_FormatoAvaliacao(boletimAluno.fav_id); rptPeriodo.DataBind(); } Fieldset1.Visible = true; } else { Fieldset1.Visible = ImprimirDiv.Visible = false; throw new ValidationException("O aluno não possui dados para o boletim."); } rptQualidades.DataBind(); rptDesempenho.DataBind(); rptRecomendacoes.DataBind(); rptRecomendacoesAosResp.DataBind(); CarregarBoletim(boletimAluno); }
/// <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> /// Carrega as avaliações no combo que estão liberadas de acordo com os eventos do calendário, /// e com os períodos ligados à disciplina. /// </summary> /// <param name="entityTurma">Entidade da turma</param> /// <param name="tud_id">Id da disciplina</param> public void CarregarAvaliacao(TUR_Turma entityTurma, long tud_id, int tpc_idFiltrar = -1, bool incluirPeriodoFinal = false, long doc_id = -1) { try { // Busca o evento ligado ao calendário, que seja do tipo definido // no parâmetro como de efetivação. List <ACA_Evento> listEvento = ACA_EventoBO.GetEntity_Efetivacao_List(entityTurma.cal_id, entityTurma.tur_id, __SessionWEB.__UsuarioWEB.Grupo.gru_id, __SessionWEB.__UsuarioWEB.Usuario.ent_id, tpc_idFiltrar, ApplicationWEB.AppMinutosCacheLongo, true, doc_id); if (entityTurma.fav_id <= 0) { __SessionWEB.PostMessages = UtilBO.GetErroMessage("É necessário selecionar uma turma que possua um formato de avaliação.", UtilBO.TipoMensagem.Alerta); Response.Redirect("~/Classe/Efetivacao/Busca.aspx", false); HttpContext.Current.ApplicationInstance.CompleteRequest(); } else { int valor = ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_EVENTO_EFETIVACAO_NOTAS, __SessionWEB.__UsuarioWEB.Usuario.ent_id); int valorRecuperacao = ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_EVENTO_EFETIVACAO_RECUPERACAO, __SessionWEB.__UsuarioWEB.Usuario.ent_id); int valorFinal = ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_EVENTO_EFETIVACAO_FINAL, __SessionWEB.__UsuarioWEB.Usuario.ent_id); int valorRecuperacaoFinal = ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_EVENTO_EFETIVACAO_RECUPERACAO_FINAL, __SessionWEB.__UsuarioWEB.Usuario.ent_id); // verifica se existe evento do tipo Efetivação Nota string listaTpcIdPeriodicaPeriodicaFinal = string.Empty; IEnumerable <ACA_Evento> dadoNota = (from ACA_Evento item in listEvento where item.tev_id == valor select item); // se existir, pega os tpc_id's List <ACA_Evento> lt = dadoNota.ToList(); if (lt.Count > 0) { var x = from ACA_Evento evt in listEvento where evt.tev_id == valor select evt.tpc_id; foreach (int tpc_id in x.ToList()) { if (string.IsNullOrEmpty(listaTpcIdPeriodicaPeriodicaFinal)) { listaTpcIdPeriodicaPeriodicaFinal += Convert.ToString(tpc_id); } else { listaTpcIdPeriodicaPeriodicaFinal += "," + Convert.ToString(tpc_id); } } } // verifica se existe evento do tipo efetivação recuperacao string listaTpcIdRecuperacao = string.Empty; IEnumerable <ACA_Evento> dadoRecuperacao = (from ACA_Evento item in listEvento where item.tev_id == valorRecuperacao select item); List <ACA_Evento> ltRe = dadoRecuperacao.ToList(); // se existir, pega os tpc_id's if (ltRe.Count > 0) { var x = from ACA_Evento evt in listEvento where evt.tev_id == valorRecuperacao select evt.tpc_id; foreach (int tpc_id in x.ToList()) { if (string.IsNullOrEmpty(listaTpcIdRecuperacao)) { listaTpcIdRecuperacao += Convert.ToString(tpc_id); } else { listaTpcIdRecuperacao += "," + Convert.ToString(tpc_id); } } } // verifica se existe evento do tipo efetivação final bool existeFinal = false; IEnumerable <ACA_Evento> dadoFinal = (from ACA_Evento item in listEvento where item.tev_id == valorFinal select item); List <ACA_Evento> ltFinal = dadoFinal.ToList(); // se existir, marca para trazer as avaliações do tipo final if (ltFinal.Count > 0) { existeFinal = true; } // verifica se existe evento do tipo recuperação final bool existeRecuperacaoFinal = false; IEnumerable <ACA_Evento> dadoRecuperacaoFinal = (from ACA_Evento item in listEvento where item.tev_id == valorRecuperacaoFinal select item); List <ACA_Evento> ltRecuperacaoFinal = dadoRecuperacaoFinal.ToList(); // se existir, marca para trazer as avaliações do tipo recuperação final if (ltRecuperacaoFinal.Count > 0) { existeRecuperacaoFinal = true; } DataTable dtAvaliacoes; // Se for turma eletiva do aluno, carrega apenas os períodos do calendário em que // a turma é oferecida if ((TUR_TurmaTipo)entityTurma.tur_tipo == TUR_TurmaTipo.EletivaAluno) { List <CadastroTurmaDisciplina> listaDisciplinas = TUR_TurmaDisciplinaBO.GetSelectCadastradosBy_Turma(entityTurma.tur_id); dtAvaliacoes = ACA_AvaliacaoBO.ConsultaPor_Periodo_Efetivacao_TurmaDisciplinaCalendario(entityTurma.tur_id, listaDisciplinas[0].entTurmaDisciplina.tud_id, entityTurma.fav_id, listaTpcIdPeriodicaPeriodicaFinal, listaTpcIdRecuperacao, existeFinal, true, true); if (tpc_idFiltrar > 0) { var eletivaFiltrada = (from DataRow dr in dtAvaliacoes.Rows where (tpc_idFiltrar == Convert.ToInt32(string.IsNullOrEmpty(dr["tpc_id"].ToString()) ? 0 : dr["tpc_id"])) select dr); dtAvaliacoes = eletivaFiltrada.Any() ? eletivaFiltrada.CopyToDataTable() : new DataTable(); } } else { dtAvaliacoes = ACA_AvaliacaoBO.ConsultaPor_Periodo_Efetivacao(entityTurma.tur_id, entityTurma.fav_id, tud_id, listaTpcIdPeriodicaPeriodicaFinal, listaTpcIdRecuperacao, existeFinal, existeRecuperacaoFinal, true, true, tpc_idFiltrar, ApplicationWEB.AppMinutosCacheLongo); } if (incluirPeriodoFinal) { if (tpc_idFiltrar > 0) { var eletivaFiltrada = (from DataRow dr in dtAvaliacoes.Rows where (tpc_idFiltrar == Convert.ToInt32(string.IsNullOrEmpty(dr["tpc_id"].ToString()) ? 0 : dr["tpc_id"])) select dr); dtAvaliacoes = eletivaFiltrada.Any() ? eletivaFiltrada.CopyToDataTable() : new DataTable(); } else { var eletivaFiltrada = (from DataRow dr in dtAvaliacoes.Rows where ((byte)dr["ava_tipo"] == (byte)AvaliacaoTipo.Final) select dr); dtAvaliacoes = eletivaFiltrada.Any() ? eletivaFiltrada.CopyToDataTable() : new DataTable(); } } var avaliacoes = (from DataRow dr in dtAvaliacoes.Rows let fechado = Convert.ToBoolean(dr["ava_tpc_fechado"]) let cap_dataInicio = Convert.ToDateTime(string.IsNullOrEmpty(dr["cap_dataInicio"].ToString()) ? new DateTime().ToString() : dr["cap_dataInicio"]) let tpc_id = Convert.ToInt32(string.IsNullOrEmpty(dr["tpc_id"].ToString()) ? 0 : dr["tpc_id"]) where (!(fechado && cap_dataInicio > DateTime.Now)) && ((VS_tpc_id == -1) || (tpc_id == VS_tpc_id)) select dr); dtAvaliacoes = avaliacoes.Any() ? avaliacoes.CopyToDataTable() : new DataTable(); ddlAvaliacao.Items.Clear(); ddlAvaliacao.DataTextField = "ava_tpc_nome"; ddlAvaliacao.DataSource = dtAvaliacoes; ddlAvaliacao.Items.Insert(0, new ListItem("-- Selecione uma avaliação --", "-1")); ddlAvaliacao.AppendDataBoundItems = true; ddlAvaliacao.DataBind(); //if (tpc_idSelecionar > 0) //{ // // Seleciona o tpc_id da avaliação relacionada. //} } } catch (ValidationException ex) { __SessionWEB.PostMessages = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); Response.Redirect("~/Classe/Efetivacao/Busca.aspx", false); HttpContext.Current.ApplicationInstance.CompleteRequest(); } catch (Exception ex) { TrataErro(ex); } }
protected void _dgvTurma_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Selecionar") { try { VS_cancelSelect = false; GridViewRow row = (GridViewRow)((LinkButton)e.CommandSource).NamingContainer; int index = row.RowIndex; _VS_tur_id = Convert.ToInt32(_dgvTurma.DataKeys[index].Values["tur_id"]); // Utilizado para verificar se é turma eletiva do aluno TUR_Turma tur = new TUR_Turma { tur_id = _VS_tur_id }; TUR_TurmaBO.GetEntity(tur); // verifica se existe evento de efetivacao ligado ao calendário da turma int cal_id = Convert.ToInt32(_dgvTurma.DataKeys[index].Values["cal_id"]); // Busca o evento ligado ao calendário, que seja do tipo definido // no parâmetro como de efetivação. List <ACA_Evento> listEvento = ACA_EventoBO.GetEntity_Efetivacao_List(cal_id, _VS_tur_id, __SessionWEB.__UsuarioWEB.Grupo.gru_id, __SessionWEB.__UsuarioWEB.Usuario.ent_id, ApplicationWEB.AppMinutosCacheLongo, true, __SessionWEB.__UsuarioWEB.Docente.doc_id); if (string.IsNullOrEmpty(_dgvTurma.DataKeys[index].Values["fav_id"].ToString())) { _lblMessage.Text = UtilBO.GetErroMessage("É necessário selecionar uma turma que possua um formato de avaliação.", UtilBO.TipoMensagem.Alerta); } else { _VS_fav_id = Convert.ToInt32(_dgvTurma.DataKeys[index].Values["fav_id"]); int valor = ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_EVENTO_EFETIVACAO_NOTAS, __SessionWEB.__UsuarioWEB.Usuario.ent_id); int valorRecuperacao = ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_EVENTO_EFETIVACAO_RECUPERACAO, __SessionWEB.__UsuarioWEB.Usuario.ent_id); int valorFinal = ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_EVENTO_EFETIVACAO_FINAL, __SessionWEB.__UsuarioWEB.Usuario.ent_id); int valorRecuperacaoFinal = ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_EVENTO_EFETIVACAO_RECUPERACAO_FINAL, __SessionWEB.__UsuarioWEB.Usuario.ent_id); // verifica se existe evento do tipo Efetivação Nota string listaTpcIdPeriodicaPeriodicaFinal = string.Empty; IEnumerable <ACA_Evento> dadoNota = (from ACA_Evento item in listEvento where item.tev_id == valor select item); // se existir, pega os tpc_id's List <ACA_Evento> lt = dadoNota.ToList(); if (lt.Count > 0) { var x = from ACA_Evento evt in listEvento where evt.tev_id == valor select evt.tpc_id; foreach (int tpc_id in x.ToList()) { if (string.IsNullOrEmpty(listaTpcIdPeriodicaPeriodicaFinal)) { listaTpcIdPeriodicaPeriodicaFinal += Convert.ToString(tpc_id); } else { listaTpcIdPeriodicaPeriodicaFinal += "," + Convert.ToString(tpc_id); } } } // verifica se existe evento do tipo efetivação recuperacao string listaTpcIdRecuperacao = string.Empty; IEnumerable <ACA_Evento> dadoRecuperacao = (from ACA_Evento item in listEvento where item.tev_id == valorRecuperacao select item); List <ACA_Evento> ltRe = dadoRecuperacao.ToList(); // se existir, pega os tpc_id's if (ltRe.Count > 0) { var x = from ACA_Evento evt in listEvento where evt.tev_id == valorRecuperacao select evt.tpc_id; foreach (int tpc_id in x.ToList()) { if (string.IsNullOrEmpty(listaTpcIdRecuperacao)) { listaTpcIdRecuperacao += Convert.ToString(tpc_id); } else { listaTpcIdRecuperacao += "," + Convert.ToString(tpc_id); } } } // verifica se existe evento do tipo efetivação final bool existeFinal = false; IEnumerable <ACA_Evento> dadoFinal = (from ACA_Evento item in listEvento where item.tev_id == valorFinal select item); List <ACA_Evento> ltFinal = dadoFinal.ToList(); // se existir, marca para trazer as avaliações do tipo final if (ltFinal.Count > 0) { existeFinal = true; } // verifica se existe evento do tipo recuperação final bool existeRecuperacaoFinal = false; IEnumerable <ACA_Evento> dadoRecuperacaoFinal = (from ACA_Evento item in listEvento where item.tev_id == valorRecuperacaoFinal select item); List <ACA_Evento> ltRecuperacaoFinal = dadoRecuperacaoFinal.ToList(); // se existir, marca para trazer as avaliações do tipo recuperação final if (ltRecuperacaoFinal.Count > 0) { existeRecuperacaoFinal = true; } DataTable dtAvaliacoes; // Se for turma eletiva do aluno, carrega apenas os períodos do calendário em que // a turma é oferecida if ((TUR_TurmaTipo)tur.tur_tipo == TUR_TurmaTipo.EletivaAluno) { List <CadastroTurmaDisciplina> listaDisciplinas = TUR_TurmaDisciplinaBO.GetSelectCadastradosBy_Turma(_VS_tur_id); dtAvaliacoes = ACA_AvaliacaoBO.ConsultaPor_Periodo_Efetivacao_TurmaDisciplinaCalendario(_VS_tur_id, listaDisciplinas[0].entTurmaDisciplina.tud_id, _VS_fav_id, listaTpcIdPeriodicaPeriodicaFinal, listaTpcIdRecuperacao, existeFinal, false, true); } else { dtAvaliacoes = ACA_AvaliacaoBO.ConsultaPor_Periodo_Efetivacao(_VS_tur_id, _VS_fav_id, 0, listaTpcIdPeriodicaPeriodicaFinal, listaTpcIdRecuperacao, existeFinal, existeRecuperacaoFinal, false, true, -1, ApplicationWEB.AppMinutosCacheLongo); } var avaliacoes = (from DataRow dr in dtAvaliacoes.Rows let fechado = Convert.ToBoolean(dr["ava_tpc_fechado"]) let cap_dataInicio = Convert.ToDateTime(string.IsNullOrEmpty(dr["cap_dataInicio"].ToString()) ? new DateTime().ToString() : dr["cap_dataInicio"]) where !(fechado && cap_dataInicio > DateTime.Now) select dr); dtAvaliacoes = avaliacoes.Any() ? avaliacoes.CopyToDataTable() : new DataTable(); if (dtAvaliacoes.Rows.Count == 0) { _lblMessage.Text = UtilBO.GetErroMessage("Turma fora do período de " + NomeModulo + ".", UtilBO.TipoMensagem.Alerta); } else if (dtAvaliacoes.Rows.Count == 1) { ACA_FormatoAvaliacao ent = new ACA_FormatoAvaliacao { fav_id = _VS_fav_id }; ACA_FormatoAvaliacaoBO.GetEntity(ent); _VS_ava_id = Convert.ToInt32(dtAvaliacoes.Rows[0]["ava_id"]); RedirecionaCadastro(); } else if (dtAvaliacoes.Rows.Count > 1) { // Carregar Avaliações. gvAvaliacoes.DataSource = dtAvaliacoes; gvAvaliacoes.DataBind(); ScriptManager.RegisterStartupScript(this, typeof(Page), "abreAvaliacoes", "$(document).ready(function(){$('#divAvaliacoes').dialog('open'); });", true); } } } catch (ValidationException ex) { _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar as avaliações.", UtilBO.TipoMensagem.Erro); } } }