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