Example #1
0
        /// <summary>
        /// Retorna compensação de ausência filtrado por disciplina e protocolo de criação.
        /// </summary>
        /// <param name="tud_id"></param>
        /// <param name="pro_id"></param>
        /// <returns></returns>
        public CLS_CompensacaoAusencia SelectByDisciplinaProtocolo(long tud_id, Guid pro_id)
        {
            CLS_CompensacaoAusencia    entity = new CLS_CompensacaoAusencia();
            QuerySelectStoredProcedure qs     = new QuerySelectStoredProcedure("NEW_CLS_CompensacaoAusencia_SelectByDisciplinaProtocolo", _Banco);

            try
            {
                #region Parâmetros

                Param               = qs.NewParameter();
                Param.DbType        = DbType.Int64;
                Param.ParameterName = "@tud_id";
                Param.Size          = 8;
                Param.Value         = tud_id;
                qs.Parameters.Add(Param);

                Param               = qs.NewParameter();
                Param.DbType        = DbType.Guid;
                Param.ParameterName = "@pro_id";
                Param.Size          = 16;
                Param.Value         = pro_id;
                qs.Parameters.Add(Param);

                #endregion

                qs.Execute();

                if (qs.Return.Rows.Count > 0)
                {
                    entity       = DataRowToEntity(qs.Return.Rows[0], entity, false);
                    entity.IsNew = false;
                }
                else
                {
                    entity.tud_id = tud_id;
                    entity.IsNew  = true;
                }

                return(entity);
            }
            finally
            {
                qs.Parameters.Clear();
            }
        }
Example #2
0
        /// <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);
            }
        }
Example #3
0
        /// <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);
            }
        }
Example #4
0
        /// <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);
                }
            }
        }