/// <summary> /// Controle do databound da grid e tratamentos necessarios. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param> protected void gvCompAusencia_DataBound(object sender, EventArgs e) { UCTotalRegistros1.Total = CLS_CompensacaoAusenciaBO.GetTotalRecords(); // seta propriedades necessárias para ordenação nas colunas. ConfiguraColunasOrdenacao(gvCompAusencia); if ((!string.IsNullOrEmpty(gvCompAusencia.SortExpression)) && (__SessionWEB.BuscaRealizada.PaginaBusca == PaginaGestao.CompensacaoAusencia)) { Dictionary <string, string> filtros = __SessionWEB.BuscaRealizada.Filtros; if (filtros.ContainsKey("VS_Ordenacao")) { filtros["VS_Ordenacao"] = gvCompAusencia.SortExpression; } else { filtros.Add("VS_Ordenacao", gvCompAusencia.SortExpression); } if (filtros.ContainsKey("VS_SortDirection")) { filtros["VS_SortDirection"] = gvCompAusencia.SortDirection.ToString(); } else { filtros.Add("VS_SortDirection", gvCompAusencia.SortDirection.ToString()); } __SessionWEB.BuscaRealizada = new BuscaGestao { PaginaBusca = PaginaGestao.CompensacaoAusencia , Filtros = filtros }; } }
/// <summary> /// Método para salvar um informativo. /// </summary> private void Salvar() { try { bool permiteEditar = true; if (__SessionWEB.__UsuarioWEB.Docente.doc_id > 0) { long tud_id = UCCTurmaDisciplina1.Valor; byte tdt_posicao = TUR_TurmaDocenteBO.SelecionaPosicaoPorDocenteTurma(__SessionWEB.__UsuarioWEB.Docente.doc_id, tud_id, ApplicationWEB.AppMinutosCacheLongo); permiteEditar = CFG_PermissaoDocenteBO.SelecionaPermissaoModulo(tdt_posicao, (byte)EnumModuloPermissao.Compensacoes) .Any(p => p.pdc_permissaoEdicao); } if (permiteEditar) { if (Convert.ToInt32(txtQtAulas.Text) == 0) { throw new ValidationException("Quantidade de aulas compensadas deve ser um número maior do que zero."); } CLS_CompensacaoAusencia entCompensacao = new CLS_CompensacaoAusencia(); entCompensacao.cpa_id = VS_cpa_id; entCompensacao.tud_id = UCCTurmaDisciplina1.Valor; entCompensacao.tpc_id = UCCPeriodoCalendario.Valor[0]; entCompensacao.cpa_atividadesDesenvolvidas = txtAtividades.Text; entCompensacao.cpa_quantidadeAulasCompensadas = Convert.ToInt32(txtQtAulas.Text); entCompensacao.pro_id = VS_pro_id; entCompensacao.cpa_situacao = 1; entCompensacao.IsNew = VS_cpa_id < 0; List <CLS_CompensacaoAusenciaAluno> listCompensacaoAluno = new List <CLS_CompensacaoAusenciaAluno>(); foreach (RepeaterItem item in rptAlunos.Items) { CheckBox ckbAluno = (CheckBox)item.FindControl("ckbAluno"); if (ckbAluno != null && ckbAluno.Checked) { HiddenField hdnId = (HiddenField)item.FindControl("hdnId"); if (hdnId != null) { string[] valor = hdnId.Value.Split(';'); CLS_CompensacaoAusenciaAluno compAluno = new CLS_CompensacaoAusenciaAluno { tud_id = Convert.ToInt64(valor[0]), cpa_id = Convert.ToInt32(entCompensacao.cpa_id), alu_id = Convert.ToInt64(valor[1]), mtu_id = Convert.ToInt32(valor[2]), mtd_id = Convert.ToInt32(valor[3]) }; listCompensacaoAluno.Add(compAluno); } } } if (listCompensacaoAluno.Count == 0) { throw new ValidationException("É necessário selecionar pelo menos um aluno para realizar a compensação."); } if (CLS_CompensacaoAusenciaBO.Save(entCompensacao, listCompensacaoAluno, VS_FechamentoAutomatico, UCComboCalendario.Valor)) { ApplicationWEB._GravaLogSistema(VS_cpa_id > 0 ? LOG_SistemaTipo.Update : LOG_SistemaTipo.Insert, "cpa_id: " + entCompensacao.cpa_id + " tud_id: " + entCompensacao.tud_id); __SessionWEB.PostMessages = UtilBO.GetErroMessage("Compensação de ausência " + (VS_cpa_id > 0 ? "alterada" : "incluída") + " com sucesso.", UtilBO.TipoMensagem.Sucesso); VS_QtAulasComp = 0; VerificaPaginaRedirecionar(); } } else { string msg = String.Format("O docente não possui permissão para incluir compensações de ausência para o(a) {0} selecionado(a).", GetGlobalResourceObject("Mensagens", "MSG_DISCIPLINA_MIN")); lblMessage.Text = UtilBO.GetErroMessage(msg, UtilBO.TipoMensagem.Alerta); } } catch (ValidationException e) { lblMessage.Text = UtilBO.GetErroMessage(e.Message, UtilBO.TipoMensagem.Alerta); } catch (ArgumentException e) { lblMessage.Text = UtilBO.GetErroMessage(e.Message, UtilBO.TipoMensagem.Alerta); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar compensação de ausência.", UtilBO.TipoMensagem.Erro); } }
/// <summary> /// Método para carregar um registro de compensacao, a fim de atualizar suas informações. /// Recebe dados referente a compensacao para realizar busca. /// </summary> /// <param name="cpa_id">ID da compensacao</param> public void Carregar(long cpa, long tud) { try { int cpa_id = Convert.ToInt32(cpa.ToString()); // Armazena valor ID do informativo a ser alterada. VS_cpa_id = cpa_id; // Busca do informativo baseado no ID do informativo. CLS_CompensacaoAusencia entCompensacao = new CLS_CompensacaoAusencia { cpa_id = cpa_id, tud_id = tud }; CLS_CompensacaoAusenciaBO.GetEntity(entCompensacao); VS_pro_id = entCompensacao.pro_id; VS_QtAulasComp = entCompensacao.cpa_quantidadeAulasCompensadas; DataTable dt = CLS_CompensacaoAusenciaBO.RetornaIdsCadastro(entCompensacao.tud_id, entCompensacao.cpa_id); // Pega somente a primeira linha DataRow row = dt.Rows[0]; Guid uad_id; int esc_id, uni_id, cur_id, crr_id, cap_id, tpc_id, cal_id; long tur_id, crp_id, ttn_id, tud_id; bool fav_fechamentoAutomatico; uad_id = string.IsNullOrEmpty(row[1].ToString()) ? new Guid() : new Guid(row[1].ToString()); esc_id = Convert.ToInt32(row[2].ToString()); uni_id = Convert.ToInt32(row[3].ToString()); cur_id = Convert.ToInt32(row[4].ToString()); crr_id = Convert.ToInt32(row[5].ToString()); cap_id = Convert.ToInt32(row[10].ToString()); tpc_id = Convert.ToInt32(row[11].ToString()); cal_id = Convert.ToInt32(row[12].ToString()); tur_id = Convert.ToInt64(row[7].ToString()); crp_id = Convert.ToInt64(row[6].ToString()); ttn_id = Convert.ToInt64(row[8].ToString()); tud_id = Convert.ToInt64(row[9].ToString()); fav_fechamentoAutomatico = Convert.ToBoolean(row["fav_fechamentoAutomatico"].ToString()); VS_FechamentoAutomatico = fav_fechamentoAutomatico; if (_VS_doc_id <= 0) { //CRE / Escola UCComboUAEscola.Inicializar(); if (!uad_id.Equals(new Guid())) { UCComboUAEscola.Uad_ID = uad_id; } UCComboUAEscola.MostraApenasAtivas = true; UCComboUAEscola.SelectedValueEscolas = new int[] { esc_id, uni_id }; UCComboUAEscola.PermiteAlterarCombos = false; //Calendario UCComboCalendario.CarregarCalendariosComBimestresAtivos(esc_id, true); UCComboCalendario.Valor = cal_id; //Etapa de ensino UCCCursoCurriculo.CarregarPorEscolaSituacaoCurso(UCComboUAEscola.Esc_ID, UCComboUAEscola.Uni_ID, 0); UCCCursoCurriculo.PermiteEditar = false; UCCCursoCurriculo.Valor = new int[] { cur_id, crr_id }; ddlTurma.Items.Clear(); ddlTurma.DataTextField = "tur_codigo"; ddlTurma.Items.Insert(0, new ListItem("-- Selecione uma turma --", "-1", true)); ddlTurma.DataSource = TUR_TurmaBO.GetSelectBy_Escola_Periodo_Situacao(__SessionWEB.__UsuarioWEB.Usuario.usu_id, __SessionWEB.__UsuarioWEB.Grupo.gru_id, (__SessionWEB.__UsuarioWEB.Grupo.vis_id == SysVisaoID.Administracao), UCComboUAEscola.Esc_ID, UCComboUAEscola.Uni_ID, UCComboCalendario.Valor, UCCCursoCurriculo.Valor[0], UCCCursoCurriculo.Valor[1], -1, __SessionWEB.__UsuarioWEB.Usuario.ent_id, 0, 0, ApplicationWEB.AppMinutosCacheLongo) .GroupBy(p => new { tur_id = p.tur_id, tur_codigo = p.tur_codigo }).Select(p => p.Key).ToList();; ddlTurma.DataBind(); } else { UCComboUAEscola.SelectedValueEscolas = new int[] { esc_id, uni_id }; UCComboUAEscola.PermiteAlterarCombos = false; //Calendario UCComboCalendario.CarregarCalendariosComBimestresAtivos(esc_id, true); UCComboCalendario.Valor = cal_id; UCComboCalendario.PermiteEditar = false; //Carrega os campos int posicaoDocenteCompatilhado = ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.POSICAO_DOCENCIA_COMPARTILHADA, __SessionWEB.__UsuarioWEB.Usuario.ent_id); ddlTurma.Items.Clear(); ddlTurma.DataTextField = "tur_esc_nome"; ddlTurma.Items.Insert(0, new ListItem("-- Selecione uma turma --", "-1", true)); ddlTurma.DataSource = TUR_TurmaBO.GetSelectBy_Docente_TodosTipos_Posicao(__SessionWEB.__UsuarioWEB.Usuario.ent_id, _VS_doc_id, posicaoDocenteCompatilhado, 0, UCComboCalendario.Valor, true, false, ApplicationWEB.AppMinutosCacheLongo) .GroupBy(p => new { tur_id = p.tur_id, tur_esc_nome = p.tur_esc_nome }).Select(p => p.Key).ToList(); ddlTurma.DataBind(); } ddlTurma_SelectedIndexChanged(null, null); ddlTurma.Enabled = false; ddlTurma.SelectedValue = tur_id.ToString(); //Disciplina if (_VS_doc_id <= 0) { UCCTurmaDisciplina1.CarregarTurmaDisciplina(tur_id); } else { UCCTurmaDisciplina1.CarregarTurmaDisciplina(tur_id, _VS_doc_id); } UCCTurmaDisciplina1.PermiteEditar = false; UCCTurmaDisciplina1.Valor = tud_id; //Periodo Calendario UCCPeriodoCalendario.CarregarPorPeriodoEventoEfetivacaoVigentes(cal_id, tud_id, tur_id); UCCPeriodoCalendario.PermiteEditar = false; UCCPeriodoCalendario.Valor = new int[2] { cap_id, tpc_id }; UCCPeriodoCalendario_IndexChanged(); // Só habilita os campos de quantidade de aulas compensadas e alunos selecionados, // na edicao de uma compensacao do último bimestre "aberto" para edição. bool selecaoUltimoBimestre = UCCPeriodoCalendario.SelecaoUltimoBimestre(); txtQtAulas.Enabled = selecaoUltimoBimestre; UCComboCalendario.PermiteEditar = false; if (UCCPeriodoCalendario.Tpc_ID > 0) { // Atividades txtAtividades.Text = entCompensacao.cpa_atividadesDesenvolvidas; // Qt Aulas txtQtAulas.Text = entCompensacao.cpa_quantidadeAulasCompensadas.ToString(); // Alunos compensados List <CLS_CompensacaoAusenciaAluno> listaAlunos = CLS_CompensacaoAusenciaAlunoBO.SelectByCpa_id(entCompensacao.cpa_id, entCompensacao.tud_id); foreach (RepeaterItem item in rptAlunos.Items) { CheckBox ckbAluno = (CheckBox)item.FindControl("ckbAluno"); HiddenField hdnId = (HiddenField)item.FindControl("hdnId"); if (ckbAluno != null && hdnId != null) { ckbAluno.Enabled = selecaoUltimoBimestre; ckbAluno.Checked = listaAlunos.Any(p => string.Concat(p.tud_id, ";", p.alu_id, ";", p.mtu_id, ";", p.mtd_id) == hdnId.Value); } } } else { // Voltar pra busca, pois não é possível editar uma compensação de um bimestre não aberto. __SessionWEB.PostMessages = UtilBO.GetErroMessage("Não é possível editar a compensação, pois o bimestre não está aberto para edição." , UtilBO.TipoMensagem.Alerta); Response.Redirect("~/Classe/CompensacaoAusencia/Busca.aspx", false); HttpContext.Current.ApplicationInstance.CompleteRequest(); } } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar a compensação de ausência.", UtilBO.TipoMensagem.Erro); } }
/// <summary> /// Controle do rowcommand da grid e tratamentos necessarios. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="GridViewCommandEventArgs"/> instance containing the event data.</param> protected void gvCompAusencia_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Deletar") { try { int index = int.Parse(e.CommandArgument.ToString()); int cpa_id = Convert.ToInt32(gvCompAusencia.DataKeys[index].Values[0]); long tud_id = Convert.ToInt32(gvCompAusencia.DataKeys[index].Values[1]); CLS_CompensacaoAusencia entity = new CLS_CompensacaoAusencia { cpa_id = cpa_id, tud_id = tud_id }; CLS_CompensacaoAusenciaBO.GetEntity(entity); if (CLS_CompensacaoAusenciaBO.Delete(entity)) { gvCompAusencia.PageIndex = 0; gvCompAusencia.DataBind(); ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Delete, "cpa_id: " + cpa_id); lblMessage.Text = UtilBO.GetErroMessage("Compensação de ausência excluída com sucesso.", UtilBO.TipoMensagem.Sucesso); } } catch (ValidationException ex) { lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMessage.Text = UtilBO.GetErroMessage("Erro ao excluir compensação de ausência.", UtilBO.TipoMensagem.Erro); } } if (e.CommandName == "DetalharCompensacao") { try { int index = int.Parse(e.CommandArgument.ToString()); int cpa_id = Convert.ToInt32(gvCompAusencia.DataKeys[index].Values[0]); long tud_id = Convert.ToInt32(gvCompAusencia.DataKeys[index].Values[1]); int tpc_id = Convert.ToInt32(gvCompAusencia.DataKeys[index].Values[2]); if (cpa_id > 0 && tud_id > 0) { CarregarAusencias(cpa_id, tud_id, tpc_id); ScriptManager.RegisterStartupScript(Page, typeof(Page), "CompensacaoDetalhes", "$(document).ready(function() { $('#divCompensacaoDetalhes').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 carregar detalhes de compensação de ausência.", UtilBO.TipoMensagem.Erro); } } }