Ejemplo n.º 1
0
    /// <summary>
    /// Evento disparado ao renderizar cada dia do calendário
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void calMesPeriodo_DayRender(object sender, DayRenderEventArgs e)
    {
        // coloca os dias referentes a outros meses em uma cor diferente
        if (e.Day.IsOtherMonth)
        {
            e.Cell.ForeColor = Color.Silver;
        }

        // altera a cor da célula referente a data de cada período
        foreach (DataRow row in Periodos.Rows)
        {
            DateTime dataPeriodo;
            if (DateTime.TryParse((row["cap_periodo"].ToString().Split('-'))[0], out dataPeriodo) &&
                dataPeriodo == e.Day.Date && !e.Day.IsOtherMonth)
            {
                e.Cell.Font.Bold = true;
                e.Cell.ForeColor = Color.FromName(CorPeriodosEventos);
            }

            if (DateTime.TryParse((row["cap_periodo"].ToString().Split('-'))[1], out dataPeriodo) &&
                dataPeriodo == e.Day.Date && !e.Day.IsOtherMonth)
            {
                e.Cell.Font.Bold = true;
                e.Cell.ForeColor = Color.FromName(CorPeriodosEventos);
            }
        }

        // altera a cor da célula referente a data de cada evento
        DateTime dateAux;
        var      listEventos = (
            from DataRow row in Eventos.Rows
            where
            DateTime.TryParse(row["evt_dataInicio"].ToString(), out dateAux) &&
            DateTime.TryParse(row["evt_dataFim"].ToString(), out dateAux) &&
            DateTime.Parse(row["evt_dataInicio"].ToString()) <= e.Day.Date &&
            e.Day.Date <= DateTime.Parse(row["evt_dataFim"].ToString())
            select new
        {
            evt_dataInicio = DateTime.Parse(row["evt_dataInicio"].ToString()),
            evt_dataFim = DateTime.Parse(row["evt_dataFim"].ToString()),
            evt_semAtividadeDiscente = bool.Parse(row["evt_semAtividadeDiscente"].ToString()),
            esc_nome = row["esc_nome"].ToString()
        }

            ).Distinct().ToList();

        if ((listEventos.Any(p => p.evt_dataInicio == e.Day.Date) && !e.Day.IsOtherMonth) ||
            (listEventos.Any(p => p.evt_dataFim == e.Day.Date) && !e.Day.IsOtherMonth))
        {
            e.Cell.Font.Bold = true;
            e.Cell.ForeColor = Color.FromName(CorPeriodosEventos);
        }

        foreach (DataRow row in Eventos.Rows)
        {
            DateTime dataInicioEvento, dataFimEvento;
            DateTime.TryParse(row["evt_dataInicio"].ToString(), out dataInicioEvento);
            DateTime.TryParse(row["evt_dataFim"].ToString(), out dataFimEvento);

            if (bool.Parse(row["evt_semAtividadeDiscente"].ToString()) &&
                dataInicioEvento <= e.Day.Date &&
                e.Day.Date <= dataFimEvento)
            {
                e.Cell.BackColor = Color.FromName(CorDiasSemAtividadeDiscente);
            }
        }

        int parametroAtivDiversificada = ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_EVENTO_ATIVIDADE_DIVERSIFICADA, __SessionWEB.__UsuarioWEB.Usuario.ent_id);

        if (DiaNaoUtil(e.Day.Date) && !DiaDeEventoAtividadeDiversificada(e.Day.Date, parametroAtivDiversificada) && !e.Day.IsOtherMonth)
        {
            e.Cell.Font.Bold = true;
            e.Cell.ForeColor = Color.FromName(CorDiasNaoUteis);
            e.Cell.BackColor = Color.FromName(CorDiasSemAtividadeDiscente);
        }

        // altera a cor da célula referente ao início e fim do calendário
        if (CalendarioAnual.cal_dataInicio == e.Day.Date && !e.Day.IsOtherMonth)
        {
            e.Cell.Font.Bold = true;
            e.Cell.ForeColor = Color.FromName(CorInicioAnoLetivo);
        }
        else
        if (CalendarioAnual.cal_dataFim == e.Day.Date && !e.Day.IsOtherMonth)
        {
            e.Cell.Font.Bold = true;
            e.Cell.ForeColor = Color.FromName(CorInicioAnoLetivo);
        }
    }
Ejemplo n.º 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            SetaDelegates();

            ScriptManager sm = ScriptManager.GetCurrent(this);

            if (sm != null)
            {
                sm.Scripts.Add(new ScriptReference(ArquivoJS.JQueryValidation));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.JqueryMask));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.CamposData));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.MascarasCampos));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.MsgConfirmBtn));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.ExitPageConfirm));
                sm.Scripts.Add(new ScriptReference("~/Includes/jsSetExitPageConfirmer.js"));
                sm.Scripts.Add(new ScriptReference("~/Includes/jquery.tools.min.js"));
                sm.Scripts.Add(new ScriptReference("~/Includes/jsCadastroTurmaEletiva.js"));

                if (ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.BOTAO_SALVAR_PERMANECE_TELA, __SessionWEB.__UsuarioWEB.Usuario.ent_id))
                {
                    Page.ClientScript.RegisterStartupScript(typeof(Page), "exitConfirm", "SetExitPageConfirmer();", true);

                    if (!Convert.ToString(btnCancelar.CssClass).Contains("btnMensagemUnload"))
                    {
                        btnCancelar.CssClass += " btnMensagemUnload";
                    }
                }
            }

            if (!IsPostBack)
            {
                try
                {
                    InicializarUserControls();

                    if ((PreviousPage != null) && PreviousPage.IsCrossPagePostBack)
                    {
                        uccFiltroEscola.FiltroEscolasControladas = null;
                        uccFiltroEscola.MostraApenasAtivas       = false;
                        CarregarDadosAlteracao(PreviousPage.Edit_tur_id);
                    }

                    //Se é um cadastro de turma nova e o parâmetro de novas turmas "aguardando" estiver ativo então remove as opções de situação
                    if (VS_tur_id <= 0 &&
                        ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.NOVAS_TURMAS_AGUARDANDO,
                                                                                   __SessionWEB.__UsuarioWEB.Usuario.ent_id))
                    {
                        ddlSituacao.Items.Clear();
                        ddlSituacao.Items.Add(new ListItem("Aguardando", ((byte)TUR_TurmaSituacao.Aguardando).ToString()));
                    }

                    lblPeriodoCursos.Text = GestaoEscolarUtilBO.nomePadraoPeriodo(__SessionWEB.__UsuarioWEB.Usuario.ent_id) + " do(a) " + GestaoEscolarUtilBO.nomePadraoCurso(__SessionWEB.__UsuarioWEB.Usuario.ent_id).ToLower() + " *";

                    UCControleVigenciaDocentes.PermiteEditar = false;
                }
                catch (Exception ex)
                {
                    ApplicationWEB._GravaErro(ex);
                    lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar o sistema.", UtilBO.TipoMensagem.Erro);
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Gera o relatorio com base nos filtros selecionados.
        /// </summary>
        private void GerarRel()
        {
            string ciclosSelecionados = "";
            string ciclosTexto        = "";
            bool   todosCiclos        = true;

            foreach (RepeaterItem item in rptCampos.Items)
            {
                CheckBox ckbCampo = (CheckBox)item.FindControl("ckbCampo");
                if (ckbCampo != null)
                {
                    if (ckbCampo.Checked)
                    {
                        ciclosTexto += (string.IsNullOrEmpty(ciclosTexto) ? "" : ", ") + ckbCampo.Text;
                        HiddenField hdnId = (HiddenField)item.FindControl("hdnId");
                        if (hdnId != null)
                        {
                            ciclosSelecionados += (string.IsNullOrEmpty(ciclosSelecionados) ? "" : ",") + hdnId.Value;
                        }
                    }
                    else
                    {
                        todosCiclos = false;
                    }
                }
            }

            if (todosCiclos)
            {
                ciclosTexto = "Todos";
            }

            if (string.IsNullOrEmpty(ciclosSelecionados))
            {
                throw new ValidationException(GetGlobalResourceObject("Relatorios", "ObjetoAprendizagem.Busca.cvCiclos.ErrorMessage").ToString());
            }

            SalvarBusca(ciclosSelecionados);

            string parameter = string.Empty;
            string report    = ((int)MSTech.GestaoEscolar.BLL.ReportNameGestaoAcademica.RelatorioObjetoAprendizagem).ToString();

            parameter = "uad_idSuperior=" + UCComboUAEscola.Uad_ID.ToString()
                        + "&esc_id=" + UCComboUAEscola.Esc_ID.ToString()
                        + "&uni_id=" + UCComboUAEscola.Uni_ID.ToString()
                        + "&cal_ano=" + UCComboAnoLetivo1.ano.ToString()
                        + "&ciclosSelecionados=" + ciclosSelecionados
                        + "&ciclosTexto=" + ciclosTexto
                        + "&tds_id=" + UCComboTipoDisciplina1.Valor.ToString()
                        + "&tds_nome=" + UCComboTipoDisciplina1.Texto
                        + "&tipoRel=" + ddlTipoRel.SelectedValue
                        + "&MostraCodigoEscola=" + ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.ORDENAR_ESCOLAS_POR_CODIGO, __SessionWEB.__UsuarioWEB.Usuario.ent_id)
                        + "&logo=" + String.Concat(MSTech.GestaoEscolar.BLL.CFG_ServidorRelatorioBO.CarregarServidorRelatorioPorEntidade(__SessionWEB.__UsuarioWEB.Usuario.ent_id, ApplicationWEB.AppMinutosCacheLongo).srr_pastaRelatorios.ToString()
                                                   , ApplicationWEB.LogoRelatorioSSRS)
                        + "&nomeMunicipio=" + GetGlobalResourceObject("Reporting", "Reporting.DocDctSubCabecalhoRetrato.Municipio")
                        + "&nomeSecretaria=" + GetGlobalResourceObject("Reporting", "Reporting.DocDctSubCabecalhoRetrato.Secretaria")
                        + "&nomeEscola=" + (UCComboUAEscola.Esc_ID > 0 ? UCComboUAEscola.TextoComboEscola : "")
                        + "&nomeDRE=" + (UCComboUAEscola.Uad_ID != Guid.Empty ? UCComboUAEscola.TextoComboUA : "")
                        + "&ent_id=" + __SessionWEB.__UsuarioWEB.Usuario.ent_id.ToString()
                        + "&adm=" + (__SessionWEB.__UsuarioWEB.Grupo.vis_id == SysVisaoID.Administracao)
                        + "&usu_id=" + __SessionWEB.__UsuarioWEB.Usuario.usu_id
                        + "&gru_id=" + __SessionWEB.__UsuarioWEB.Grupo.gru_id;

            MSTech.GestaoEscolar.BLL.CFG_RelatorioBO.CallReport("Relatorios", report, parameter, HttpContext.Current);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Verifica os parâmetros acadêmicos cadastrados, mostrando e carregando os combos
        /// conforme a configuração.
        /// Se parâmetro FILTRAR_ESCOLA_UA_SUPERIOR = "Sim", mostra combo de Unidade Administrativa,
        /// e carrega no combo pelo tipo de UA que estiver setada no parâmetro
        /// TIPO_UNIDADE_ADMINISTRATIVA_FILTRO_ESCOLA.
        /// </summary>
        public void Inicializar()
        {
            try
            {
                lblUA.Visible = false;
                ddlUA.Visible = false;

                if ((__SessionWEB.__UsuarioWEB.Grupo.vis_id == SysVisaoID.UnidadeAdministrativa && PermissaoUsuario) ||
                    !ACA_ParametroAcademicoBO.VerificaFiltroUniAdmSuperiorPorEntidade(__SessionWEB.__UsuarioWEB.Usuario.ent_id))
                {
                    FiltroEscola = false;

                    cpvUA.Visible = false;
                    CarregaUnidadesEscolas();
                }
                else
                {
                    FiltroEscola  = true;
                    EnableEscolas = false;

                    Guid tua_id = ACA_ParametroAcademicoBO.VerificaFiltroEscolaPorEntidade(__SessionWEB.__UsuarioWEB.Usuario.ent_id);
                    SYS_TipoUnidadeAdministrativa entityTipoUnidadeAdministrativa = new SYS_TipoUnidadeAdministrativa {
                        tua_id = tua_id
                    };
                    SYS_TipoUnidadeAdministrativaBO.GetEntity(entityTipoUnidadeAdministrativa);

                    LabelUA = String.IsNullOrEmpty(entityTipoUnidadeAdministrativa.tua_nome) ? "Unidade Administrativa" : entityTipoUnidadeAdministrativa.tua_nome;

                    CarregaUnidadesAdministrativasSuperior(tua_id);

                    lblUA.Visible = true;
                    ddlUA.Visible = true;
                    cpvUA.Visible = ObrigatorioUA;
                }

                if ((ObrigatorioUA) && (!lblUA.Text.Contains("*")))
                {
                    lblUA.Text += " *";
                }

                if ((ObrigatorioEscola) && (!lblEscola.Text.Contains("*")))
                {
                    lblEscola.Text += " *";
                }

                if (!ObrigatorioUA)
                {
                    lblUA.Text = lblUA.Text.Replace(ApplicationWEB.TextoAsteriscoObrigatorio, "");
                    lblUA.Text = lblUA.Text.Replace(" *", "");
                }

                if (!ObrigatorioEscola)
                {
                    lblEscola.Text = lblEscola.Text.Replace(ApplicationWEB.TextoAsteriscoObrigatorio, "");
                    lblEscola.Text = lblEscola.Text.Replace(" *", "");
                }

                cpvEscola.Visible = ObrigatorioEscola;
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
            }
        }
Ejemplo n.º 5
0
        /// <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);
            }
        }
Ejemplo n.º 6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string mod = Request.QueryString["mod"];

            if (mod != null)
            {
                VS_mod = Convert.ToInt32(mod);
            }

            ScriptManager sm = ScriptManager.GetCurrent(this);

            if (sm != null)
            {
                sm.Scripts.Add(new ScriptReference(ArquivoJS.Json));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.JQueryValidation));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.JqueryMask));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.MascarasCampos));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.CamposData));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.MsgConfirmBtn));
            }

            UCComboCursoCurriculo1.IndexChanged   += UCComboCursoCurriculo1_IndexChanged;
            UCComboCurriculoPeriodo1.IndexChanged += UCComboCurriculoPeriodo1__OnSelectedIndexChange;
            UCComboCalendario1.IndexChanged       += UCComboCalendario1_IndexChanged;

            if (!IsPostBack)
            {
                _VS_PesquisaSalva = false;
                //_VS_SelecionarTodos = false;

                try
                {
                    string message = __SessionWEB.PostMessages;
                    if (!String.IsNullOrEmpty(message))
                    {
                        _lblMessage.Text = message;
                        _lblMessage.Focus();
                        __SessionWEB.PostMessages = String.Empty;
                    }

                    if (!__SessionWEB.__UsuarioWEB.GrupoPermissao.grp_consultar)
                    {
                        uppPesquisa.Visible = false;
                        _lblMessage.Text    = UtilBO.GetErroMessage("Você não possui permissão para acessar a página solicitada.", UtilBO.TipoMensagem.Alerta);
                        _lblMessage.Focus();
                    }

                    Page.Form.DefaultFocus  = UCComboUAEscola.ComboEscola_ClientID;
                    Page.Form.DefaultButton = _btnPesquisar.UniqueID;

                    // quantidade de itens por página
                    string qtItensPagina = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.QT_ITENS_PAGINACAO);
                    _ddlQtPaginado.SelectedValue = string.IsNullOrEmpty(qtItensPagina) ? ApplicationWEB._Paginacao.ToString() : qtItensPagina;

                    // ******************************

                    string nomeMatriculaEstadual   = ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.MATRICULA_ESTADUAL, __SessionWEB.__UsuarioWEB.Usuario.ent_id);
                    bool   mostraMatriculaEstadual = !string.IsNullOrEmpty(nomeMatriculaEstadual);

                    UCCamposBuscaAluno1.MostrarMatriculaEstadual = mostraMatriculaEstadual;
                    UCCamposBuscaAluno1.TituloMatriculaEstadual  = nomeMatriculaEstadual;

                    fdsResultados.Visible = false;

                    Inicializar();
                    VerificaBusca();
                }
                catch (Exception ex)
                {
                    ApplicationWEB._GravaErro(ex);
                    _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar o sistema.", UtilBO.TipoMensagem.Erro);
                    _lblMessage.Focus();
                }
            }
        }
Ejemplo n.º 7
0
        protected void btnEntrar_Click(object sender, EventArgs e)
        {
            if (ValidarLogin())
            {
                try
                {
                    // Carrega os dados do usuário necessário para o login
                    SYS_Usuario entityUsuario = new SYS_Usuario
                    {
                        ent_id = UCComboEntidade1.Valor
                        ,
                        usu_login = (RadioButtonList1.SelectedIndex == 0
                                        ? ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.PREFIXO_LOGIN_ALUNO_AREA_ALUNO, Guid.Empty)
                                        : ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.PREFIXO_LOGIN_RESPONSAVEL_AREA_ALUNO, Guid.Empty)) + txtLogin.Text
                        ,
                        usu_senha = txtSenha.Text
                    };

                    // Checa as credenciais do usuário
                    LoginStatus status = SYS_UsuarioBO.LoginWEB(entityUsuario);

                    switch (status)
                    {
                    case LoginStatus.Erro:
                    {
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Erro ao tentar entrar no sistema." + entityUsuario.usu_login);
                        lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar entrar no sistema.", UtilBO.TipoMensagem.Erro);
                        txtLogin.Focus();
                        break;
                    }

                    case LoginStatus.Bloqueado:
                    {
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Usuário bloqueado." + entityUsuario.usu_login);
                        lblMessage.Text = UtilBO.GetErroMessage("Usuário bloqueado.", UtilBO.TipoMensagem.Alerta);
                        txtLogin.Focus();
                        break;
                    }

                    case LoginStatus.NaoEncontrado:
                    {
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Usuário não encontrado." + entityUsuario.usu_login);

                        //mostra para o usuário a mensagem abaixo
                        lblMessage.Text = UtilBO.GetErroMessage("Usuário e/ou senha inválidos.", UtilBO.TipoMensagem.Alerta);
                        txtLogin.Focus();
                        break;
                    }

                    case LoginStatus.SenhaInvalida:
                    {
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Senha inválida." + entityUsuario.usu_login);

                        //mostra para o usuário a mensagem abaixo
                        lblMessage.Text = UtilBO.GetErroMessage("Usuário e/ou senha inválidos.", UtilBO.TipoMensagem.Alerta);
                        txtLogin.Focus();

                        break;
                    }

                    case LoginStatus.Expirado:
                    {
                        ConfigurarTelaSenhaExpirada(entityUsuario);
                        break;
                    }

                    case LoginStatus.Sucesso:
                    {
                        // Zera a quantidade de falhas de autenticação para o usuário.
                        SYS_UsuarioFalhaAutenticacaoBO.ZeraFalhaAutenticacaoUsuario(entityUsuario.usu_id);

                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Login efetuado com sucesso.");

                        // Autenticação SAML.
                        SYS_UsuarioBO.AutenticarUsuario(entityUsuario);

                        // Configura usuário na Session
                        LoadSession(entityUsuario);

                        // Se selecionou para logar como responsável, verifica se esse ele é responsável por um aluno só,
                        //  ou caso tenha mais, redireciona para uma tela de selação de alunos
                        if (RadioButtonList1.SelectedIndex == 1)
                        {
                            DataTable dtAlunosDoResponsavel = ACA_AlunoResponsavelBO.SelecionaAlunosPorResponsavel(entityUsuario.pes_id);

                            Session["Pes_Id_Responsavel"] = entityUsuario.pes_id.ToString();

                            Session["Qtde_Filhos_Responsavel"] = dtAlunosDoResponsavel.Rows.Count;

                            if (dtAlunosDoResponsavel.Rows.Count > 1)
                            {
                                //Session["Pes_Id_Responsavel"] = entityUsuario.pes_id.ToString();
                                RedirecionarLogin(true);
                                break;
                            }
                        }

                        RedirecionarLogin(false);

                        break;
                    }
                    }
                }
                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 entrar no sistema.", UtilBO.TipoMensagem.Erro);
                }
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Validar idade do aluno de acordo com o CurriculoPeriodo no qual ele está inserido.
        /// Valida a idade máxima ideal + a amplitude do parâmetro acadêmico ou o valor informado
        /// no parâmetro amplitude.
        /// Valida a idade mínima ideal quando informado através da flag validarIdadeMinima - quando
        /// informada sempre valida usando a amplitudo passada por parâmetro na função.
        /// </summary>
        /// <param name="entity">Entidade AlunoCurriculo carregada</param>
        /// <param name="bancoGestao">Transação com banco Gestão - obrigatório</param>
        /// <param name="bancoCore">Transação com banco CoreSSO - opcional</param>
        /// <param name="validarIdadeMinima">Flag que indica se é pra validar idade mínima também</param>
        /// <param name="amplitude">Amplitude, se > 0, substitui a amplitude do parâmetro acadêmico</param>
        /// <param name="ent_id">Id da entidade do usuário logado.</param>
        /// <returns>Se idade válida</returns>
        internal static bool ValidarIdadeIdeal
        (
            ACA_AlunoCurriculo entity
            , TalkDBTransaction bancoGestao
            , TalkDBTransaction bancoCore
            , bool validarIdadeMinima
            , int amplitude
            , Guid ent_id
        )
        {
            ACA_Aluno entAluno = new ACA_Aluno {
                alu_id = entity.alu_id
            };

            ACA_AlunoBO.GetEntity(entAluno, bancoGestao);

            if (entAluno.alu_situacao != Convert.ToByte(ACA_AlunoSituacao.Inativo))
            {
                if (entity.alc_situacao == Convert.ToByte(ACA_AlunoCurriculoSituacao.Ativo) ||
                    entity.alc_situacao == Convert.ToByte(ACA_AlunoCurriculoSituacao.EmMatricula))
                {
                    ACA_CurriculoPeriodo entCurPer = new ACA_CurriculoPeriodo {
                        cur_id = entity.cur_id, crr_id = entity.crr_id, crp_id = entity.crp_id
                    };
                    ACA_CurriculoPeriodoBO.GetEntity(entCurPer, bancoGestao);

                    PES_Pessoa entPessoa = new PES_Pessoa {
                        pes_id = entAluno.pes_id
                    };
                    if (bancoCore == null)
                    {
                        PES_PessoaBO.GetEntity(entPessoa);
                    }
                    else
                    {
                        PES_PessoaBO.GetEntity(entPessoa, bancoCore);
                    }

                    // Quantidade de meses da idade máxima da criança cadastrada no CurrPeriodo.
                    int idadeMaxima = (entCurPer.crp_idadeIdealAnoFim * 12) + entCurPer.crp_idadeIdealMesFim;

                    if (amplitude > 0)
                    {
                        idadeMaxima += amplitude;
                    }
                    else
                    {
                        int pac_valor = ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.AMPLITUDE_IDADE_ALERTA, ent_id);

                        // Soma quantidade em meses do parâmetro de amplitude.
                        idadeMaxima += (pac_valor > 0 ? (pac_valor * 12) : 0);
                    }

                    // Valida a quantidade de meses da idade da criança.
                    int anos, meses, dias;
                    GestaoEscolarUtilBO.CalculaAniversarioCompleto(DateTime.Now, entPessoa.pes_dataNascimento, out anos, out meses, out dias);

                    int idade = (anos * 12) + meses;

                    if (idade > idadeMaxima)
                    {
                        anos  = idadeMaxima / 12;
                        meses = idadeMaxima % 12;

                        string sAnos  = anos > 0 ? (anos + (anos > 1 ? " anos" : " ano")) : string.Empty;
                        string sMeses = meses > 0 ? (anos > 0 ? " e " : "") + meses + (meses > 1 ? " meses" : " mês") : string.Empty;
                        throw new ACA_Aluno_ValidationException("A idade do aluno não pode ser maior que " + sAnos + sMeses + ".");
                    }

                    ACA_Curriculo curso = ACA_CurriculoBO.GetEntity(new ACA_Curriculo {
                        cur_id = entity.cur_id, crr_id = entity.crr_id
                    });

                    if (validarIdadeMinima &&
                        curso.crr_regimeMatricula == 3 &&
                        ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.VALIDAR_IDADE_MINIMA_PEJA, ent_id))
                    {
                        // Quantidade de meses da idade máxima da criança cadastrada no CurrPeriodo.
                        int idadeMinima = (entCurPer.crp_idadeIdealAnoInicio * 12) + entCurPer.crp_idadeIdealMesInicio;

                        idadeMinima -= amplitude;

                        if (idade < idadeMinima)
                        {
                            anos  = idadeMinima / 12;
                            meses = idadeMinima % 12;

                            string sAnos  = anos > 0 ? (anos + (anos > 1 ? " anos" : " ano")) : string.Empty;
                            string sMeses = meses > 0 ? (anos > 0 ? " e " : "") + meses + (meses > 1 ? " meses" : " mês") : string.Empty;
                            throw new ACA_Aluno_ValidationException("A idade do aluno não pode ser menor que " + sAnos + sMeses + ".");
                        }
                    }
                }
            }

            return(true);
        }
Ejemplo n.º 9
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);
            }
        }
        /// <summary>
        /// O método salva as observações para conselho pedagógico.
        /// </summary>
        /// <param name="tur_id">ID da turma.</param>
        /// <param name="alu_id">ID do aluno.</param>
        /// <param name="mtu_id">ID da matrícula turma do aluno.</param>
        /// <param name="fav_id">ID do formato de avaliação.</param>
        /// <param name="ava_id">ID da avaliação.</param>
        /// <param name="ltObservacao">Lista de observações.</param>
        /// <param name="banco">Banco</param>
        /// <param name="ent_id">Id da entidade do usuário logado.</param>
        /// <returns></returns>
        public static bool SalvarObservacao
        (
            long tur_id,
            long alu_id,
            int mtu_id,
            int fav_id,
            int ava_id,
            CLS_AlunoAvaliacaoTur_Observacao observacao,
            Guid usu_idLogado,
            byte resultado,
            string justificativaResultado,
            DateTime dataUltimaAlteracaoObservacao,
            DateTime dataUltimaAlteracaoNotaFinal,
            ACA_FormatoAvaliacao entFormatoAvaliacao,
            List <CLS_AvaliacaoTurDisc_Cadastro> listaDisciplina,
            List <MTR_MatriculaTurmaDisciplina> listaMatriculaTurmaDisciplina,
            int tamanhoMaximoKB,
            string[] TiposArquivosPermitidos,
            ref List <CLS_AlunoAvaliacaoTurmaDisciplina> listaAtualizacaoEfetivacao,
            Guid ent_id,
            int tpc_id
        )
        {
            TalkDBTransaction banco = new CLS_AlunoAvaliacaoTurmaObservacaoDAO()._Banco.CopyThisInstance();

            banco.Open(IsolationLevel.ReadCommitted);

            List <AlunoFechamentoPendencia> FilaProcessamento = new List <AlunoFechamentoPendencia>();

            try
            {
                if (observacao.entityObservacao != null && observacao.entityObservacao != new CLS_AlunoAvaliacaoTurmaObservacao())
                {
                    Save(observacao.entityObservacao, banco);
                }
                int tpc_idUtilizado = -1;

                List <CLS_AvaliacaoTurDisc_Cadastro> listaDisciplinasUltimoPeriodo = new List <CLS_AvaliacaoTurDisc_Cadastro>();
                listaDisciplinasUltimoPeriodo = listaDisciplina.Where(d => d.entity.ava_id != ava_id).ToList();
                if (listaDisciplinasUltimoPeriodo.Count > 0)
                {
                    tpc_idUtilizado = ACA_AvaliacaoBO.SelecionaMaiorBimestre_ByFormatoAvaliacao(entFormatoAvaliacao.fav_id, banco);
                }

                CLS_AlunoAvaliacaoTurmaDisciplinaBO.SaveAvaliacaoFinal(
                    tur_id
                    , entFormatoAvaliacao
                    , listaDisciplina
                    , tamanhoMaximoKB
                    , TiposArquivosPermitidos
                    , dataUltimaAlteracaoNotaFinal
                    , listaMatriculaTurmaDisciplina
                    , ref listaAtualizacaoEfetivacao
                    , banco);

                tpc_idUtilizado = tpc_idUtilizado > 0 ? tpc_idUtilizado : tpc_id;
                if (entFormatoAvaliacao.fav_fechamentoAutomatico && listaMatriculaTurmaDisciplina.Any())
                {
                    FilaProcessamento.AddRange(listaMatriculaTurmaDisciplina
                                               .Select(p => new AlunoFechamentoPendencia {
                        tud_id         = p.tud_id,
                        tpc_id         = tpc_idUtilizado,
                        afp_frequencia = true,
                        afp_nota       = true,
                        afp_processado = (Byte)(p.mtd_id <= 0 ? 0 : 2)
                    }).ToList());
                }

                // Se for passado o resultado, salva na MTR_MatriculaTurma.
                if (!usu_idLogado.Equals(Guid.Empty))
                {
                    MTR_MatriculaTurma entMatr = new MTR_MatriculaTurma
                    {
                        alu_id = alu_id
                        ,
                        mtu_id = mtu_id
                    };
                    MTR_MatriculaTurmaBO.GetEntity(entMatr, banco);

                    // Se o registro foi alterado depois da data da alteração mais recente no momento em que os dados foram carregados,
                    // interrompe o salvamento e alerta o usuário de que é necessário atualizar os dados
                    if (entMatr != null && !entMatr.IsNew && Convert.ToDateTime(entMatr.mtu_dataAlteracao.ToString()) > dataUltimaAlteracaoObservacao)
                    {
                        throw new ValidationException("Existe registro alterado mais recentemente, é necessário atualizar os dados.");
                    }
                    else
                    {
                        entMatr.usu_idResultado = usu_idLogado;
                        entMatr.mtu_resultado   = resultado;
                        entMatr.mtu_relatorio   = justificativaResultado;
                        MTR_MatriculaTurmaBO.Save(entMatr, banco);

                        if (ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.GERAR_HISTORICO_SALVAR_PARECER_CONCLUSIVO, ent_id))
                        {
                            ACA_AlunoHistoricoBO.GeracaoHistoricoPedagogicoPorAluno(entMatr.alu_id, entMatr.mtu_id, banco);
                        }

                        if (entFormatoAvaliacao.fav_fechamentoAutomatico)
                        {
                            FilaProcessamento.Add(new AlunoFechamentoPendencia {
                                tud_id         = listaMatriculaTurmaDisciplina.FirstOrDefault().tud_id,
                                tpc_id         = tpc_id,
                                afp_frequencia = true,
                                afp_nota       = true,
                                afp_processado = (Byte)(entMatr.IsNew == true ? 0 : 2)
                            });
                        }
                    }
                }

                // Limpa cache do fechamento, para atualizar o check.
                GestaoEscolarUtilBO.LimpaCache(MTR_MatriculaTurmaBO.RetornaChaveCache_GetSelectBy_Turma_Periodo(tur_id, fav_id, ava_id));
                List <TUR_TurmaDisciplina> listaDisciplinas = TUR_TurmaDisciplinaBO.GetSelectBy_Turma(tur_id, null, GestaoEscolarUtilBO.MinutosCacheLongo);
                listaDisciplinas.ForEach(p =>
                {
                    GestaoEscolarUtilBO.LimpaCache(MTR_MatriculaTurmaDisciplinaBO.RetornaChaveCache_GetSelectBy_TurmaDisciplinaPeriodo(p.tud_id, fav_id, ava_id, string.Empty));
                    GestaoEscolarUtilBO.LimpaCache(MTR_MatriculaTurmaDisciplinaBO.RetornaChaveCache_GetSelectBy_TurmaDisciplinaPeriodoFiltroDeficiencia(p.tud_id, fav_id, ava_id, string.Empty));

                    // Chaves do fechamento automatico
                    string chave = string.Empty;
                    chave        = String.Format(ModelCache.FECHAMENTO_AUTO_BIMESTRE_MODEL_KEY, p.tud_id, tpc_id);
                    CacheManager.Factory.RemoveByPattern(chave);

                    chave = String.Format(ModelCache.FECHAMENTO_AUTO_BIMESTRE_FILTRO_DEFICIENCIA_MODEL_KEY, p.tud_id, tpc_id);
                    CacheManager.Factory.RemoveByPattern(chave);

                    chave = String.Format(ModelCache.FECHAMENTO_AUTO_FINAL_MODEL_KEY, p.tud_id);
                    CacheManager.Factory.RemoveByPattern(chave);

                    chave = String.Format(ModelCache.FECHAMENTO_AUTO_FINAL_FILTRO_DEFICIENCIA_MODEL_KEY, p.tud_id);
                    CacheManager.Factory.RemoveByPattern(chave);

                    chave = String.Format(ModelCache.FECHAMENTO_AUTO_BIMESTRE_COMPONENTES_REGENCIA_MODEL_KEY, tur_id, tpc_id);
                    CacheManager.Factory.RemoveByPattern(chave);

                    chave = String.Format(ModelCache.FECHAMENTO_AUTO_FINAL_COMPONENTES_REGENCIA_MODEL_KEY, tur_id, tpc_id);
                    CacheManager.Factory.RemoveByPattern(chave);
                    //
                });

                if (entFormatoAvaliacao.fav_fechamentoAutomatico && FilaProcessamento.Any(a => a.tpc_id > 0))
                {
                    CLS_AlunoFechamentoPendenciaBO.SalvarFilaPendencias(
                        FilaProcessamento
                        .GroupBy(g => new { g.tud_id, g.tpc_id })
                        .Select(p => new AlunoFechamentoPendencia {
                        tud_id         = p.FirstOrDefault().tud_id,
                        tpc_id         = p.FirstOrDefault().tpc_id,
                        afp_frequencia = p.FirstOrDefault().afp_frequencia,
                        afp_nota       = p.FirstOrDefault().afp_nota,
                        afp_processado = FilaProcessamento
                                         .Where(w => w.tud_id == p.FirstOrDefault().tud_id&& w.tpc_id == p.FirstOrDefault().tpc_id)
                                         .Min(m => m.afp_processado)
                    })
                        .Where(w => w.tpc_id > 0 && w.tpc_id != ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_PERIODO_CALENDARIO_RECESSO, ent_id))
                        .ToList()
                        , banco);
                }

                return(true);
            }
            catch (ValidationException ex)
            {
                banco.Close(ex);
                throw;
            }
            catch (Exception ex)
            {
                banco.Close(ex);
                throw;
            }
            finally
            {
                if (banco.ConnectionIsOpen)
                {
                    banco.Close();
                }
            }
        }
        /// <summary>
        /// O método salva as observações para conselho pedagógico.
        /// </summary>
        /// <param name="tur_id">ID da turma.</param>
        /// <param name="alu_id">ID do aluno.</param>
        /// <param name="mtu_id">ID da matrícula turma do aluno.</param>
        /// <param name="fav_id">ID do formato de avaliação.</param>
        /// <param name="ava_id">ID da avaliação.</param>
        /// <param name="ltObservacao">Lista de observações.</param>
        /// <param name="banco">Banco</param>
        /// <param name="ent_id">Id da entidade do usuário logado.</param>
        /// <returns></returns>
        public static bool SalvarObservacao
        (
            long tur_id,
            long alu_id,
            int mtu_id,
            long[] tud_ids,
            List <CLS_AlunoAvaliacaoTurmaObservacao> listaObservacao,
            List <CLS_AlunoAvaliacaoTurma> listaAlunoAvaliacaoTurma,
            List <CLS_AlunoAvaliacaoTurmaDisciplina> listaAlunoAvaliacaoTurmaDisciplina,
            List <ACA_AlunoAnotacao> listaAlunoAnotacao,
            bool permiteEditarResultadoFinal,
            Guid usu_idLogado,
            byte resultado,
            DateTime dataUltimaAlteracaoObservacao,
            DateTime dataUltimaAlteracaoNotaFinal,
            ACA_FormatoAvaliacao entFormatoAvaliacao,
            List <CLS_AvaliacaoTurDisc_Cadastro> listaDisciplina,
            List <MTR_MatriculaTurmaDisciplina> listaMatriculaTurmaDisciplina,
            int tamanhoMaximoKB,
            string[] TiposArquivosPermitidos,
            ref List <CLS_AlunoAvaliacaoTurmaDisciplina> listaAtualizacaoEfetivacao,
            Guid ent_id,
            IDictionary <int, int> dicAvaTpc,
            List <CLS_AlunoAvaliacaoTurmaObservacaoBO.DadosAlunoObservacao> listaDadosPeriodo
        )
        {
            TalkDBTransaction banco = new CLS_AlunoAvaliacaoTurmaObservacaoDAO()._Banco.CopyThisInstance();

            banco.Open(IsolationLevel.ReadCommitted);

            List <AlunoFechamentoPendencia> FilaProcessamento = new List <AlunoFechamentoPendencia>();
            int tpc_idUltimoPeriodo = (dicAvaTpc.Count() > 0 ? dicAvaTpc.Max(p => p.Value) : 0);

            try
            {
                foreach (CLS_AlunoAvaliacaoTurmaObservacao observacao in listaObservacao)
                {
                    observacao.usu_idAlteracao = usu_idLogado;
                    Save(observacao, banco);
                }

                foreach (CLS_AlunoAvaliacaoTurma alunoAvaliacaoTurma in listaAlunoAvaliacaoTurma)
                {
                    CLS_AlunoAvaliacaoTurmaBO.Save(alunoAvaliacaoTurma, banco);
                }


                object lockObject = new object();

                DataTable dtAlunoAvaliacaoTurmaDisciplina = CLS_AlunoAvaliacaoTurmaDisciplina.TipoTabela_AlunoAvaliacaoTurmaDisciplina();
                if (listaAlunoAvaliacaoTurmaDisciplina.Any())
                {
                    Parallel.ForEach
                    (
                        listaAlunoAvaliacaoTurmaDisciplina,
                        alunoAvaliacaoTurmaDisciplina =>
                    {
                        lock (lockObject)
                        {
                            DataRow drAlunoAvaliacaoTurmaDisciplina = dtAlunoAvaliacaoTurmaDisciplina.NewRow();
                            dtAlunoAvaliacaoTurmaDisciplina.Rows.Add(
                                CLS_AlunoAvaliacaoTurmaDisciplinaBO.EntityToDataRow(alunoAvaliacaoTurmaDisciplina, drAlunoAvaliacaoTurmaDisciplina));
                        }
                    }
                    );
                }

                if (dtAlunoAvaliacaoTurmaDisciplina.Rows.Count > 0)
                {
                    CLS_AlunoAvaliacaoTurmaDisciplinaBO.SalvarEmLotePosConselho(dtAlunoAvaliacaoTurmaDisciplina, banco);

                    if (entFormatoAvaliacao.fav_fechamentoAutomatico && listaAlunoAvaliacaoTurmaDisciplina.Any())
                    {
                        FilaProcessamento.AddRange(listaAlunoAvaliacaoTurmaDisciplina
                                                   .Select(p => new AlunoFechamentoPendencia {
                            tud_id         = p.tud_id,
                            tpc_id         = (p.tpc_id > 0 ? p.tpc_id : tpc_idUltimoPeriodo),
                            afp_frequencia = true,
                            afp_nota       = true,
                            afp_processado = (Byte)(p.atd_id <= 0 ? 0 : 2)
                        }).ToList());
                    }
                }


                foreach (ACA_AlunoAnotacao alunoAnotacao in listaAlunoAnotacao)
                {
                    ACA_AlunoAnotacaoBO.Save(alunoAnotacao, banco);
                }

                CLS_AlunoAvaliacaoTurmaDisciplinaBO.SaveAvaliacaoFinal(
                    tur_id
                    , entFormatoAvaliacao
                    , listaDisciplina
                    , tamanhoMaximoKB
                    , TiposArquivosPermitidos
                    , dataUltimaAlteracaoNotaFinal
                    , listaMatriculaTurmaDisciplina
                    , ref listaAtualizacaoEfetivacao
                    , banco);

                if (entFormatoAvaliacao.fav_fechamentoAutomatico && listaMatriculaTurmaDisciplina.Any() && (tpc_idUltimoPeriodo > 0))
                {
                    FilaProcessamento.AddRange(listaMatriculaTurmaDisciplina
                                               .Select(p => new AlunoFechamentoPendencia {
                        tud_id         = p.tud_id,
                        tpc_id         = tpc_idUltimoPeriodo,
                        afp_frequencia = true,
                        afp_nota       = true,
                        afp_processado = (Byte)(p.mtd_id <= 0 ? 0 : 2)
                    }).ToList());
                }

                if (permiteEditarResultadoFinal)
                {
                    // Se for passado o resultado, salva na MTR_MatriculaTurma.
                    MTR_MatriculaTurma entMatr = new MTR_MatriculaTurma
                    {
                        alu_id = alu_id
                        ,
                        mtu_id = mtu_id
                    };
                    MTR_MatriculaTurmaBO.GetEntity(entMatr, banco);

                    // So registra a alteracao do parecer conclusivo (resultado)
                    // se for um registro novo e tem valor selecionado, ou se houve alteracao do valor.
                    if ((entMatr.IsNew && entMatr.mtu_resultado > 0) || entMatr.mtu_resultado != resultado)
                    {
                        // Se o registro foi alterado depois da data da alteração mais recente no momento em que os dados foram carregados,
                        // interrompe o salvamento e alerta o usuário de que é necessário atualizar os dados
                        if (entMatr != null && !entMatr.IsNew && Convert.ToDateTime(entMatr.mtu_dataAlteracao.ToString()) > dataUltimaAlteracaoObservacao)
                        {
                            throw new ValidationException("Existe registro alterado mais recentemente, é necessário atualizar os dados.");
                        }
                        else
                        {
                            entMatr.usu_idResultado = usu_idLogado;
                            entMatr.mtu_resultado   = resultado;
                            MTR_MatriculaTurmaBO.Save(entMatr, banco);

                            if (ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.GERAR_HISTORICO_SALVAR_PARECER_CONCLUSIVO, ent_id))
                            {
                                ACA_AlunoHistoricoBO.GeracaoHistoricoPedagogicoPorAluno(entMatr.alu_id, entMatr.mtu_id, banco);
                            }

                            if (entFormatoAvaliacao.fav_fechamentoAutomatico)
                            {
                                FilaProcessamento.Add(new AlunoFechamentoPendencia {
                                    tud_id         = tud_ids.FirstOrDefault(),
                                    tpc_id         = tpc_idUltimoPeriodo,
                                    afp_frequencia = true,
                                    afp_nota       = true,
                                    afp_processado = (Byte)(entMatr.IsNew == true ? 0 : 2)
                                });
                            }
                        }
                    }
                }

                // Limpa cache do fechamento, para atualizar o check, as notas pos-conselho, o parecer e a sintese final.
                string chave = string.Empty;
                int    tpcId = -1;
                listaDadosPeriodo.ForEach(q =>
                {
                    // Fechamento de bimestre
                    chave = MTR_MatriculaTurmaBO.RetornaChaveCache_GetSelectBy_Turma_Periodo(tur_id, entFormatoAvaliacao.fav_id, q.ava_id);
                    if (HttpContext.Current != null)
                    {
                        HttpContext.Current.Cache.Remove(chave);
                    }
                    chave = MTR_MatriculaTurmaDisciplinaBO.RetornaChaveCache_GetSelect_ComponentesRegencia_By_TurmaFormato(tur_id, entFormatoAvaliacao.fav_id, q.ava_id);
                    CacheManager.Factory.Remove(chave);

                    // Fechamento final
                    chave = MTR_MatriculaTurmaBO.RetornaChaveCache_GetSelectBy_Turma_Final(tur_id, entFormatoAvaliacao.fav_id, q.ava_id);
                    if (HttpContext.Current != null)
                    {
                        HttpContext.Current.Cache.Remove(chave);
                    }
                    chave = MTR_MatriculaTurmaDisciplinaBO.RetornaChaveCache_GetSelect_ComponentesRegencia_By_TurmaFormato_Final(tur_id, entFormatoAvaliacao.fav_id, q.ava_id);
                    CacheManager.Factory.Remove(chave);

                    // Fechamento automatico de bimestre
                    if (dicAvaTpc.TryGetValue(q.ava_id, out tpcId))
                    {
                        chave = String.Format(ModelCache.FECHAMENTO_AUTO_BIMESTRE_COMPONENTES_REGENCIA_MODEL_KEY, tur_id, tpcId);
                        CacheManager.Factory.Remove(chave);
                    }

                    // Fechamento automatico final
                    chave = String.Format(ModelCache.FECHAMENTO_AUTO_FINAL_COMPONENTES_REGENCIA_MODEL_KEY, tur_id);
                    CacheManager.Factory.Remove(chave);
                });
                List <TUR_TurmaDisciplina> listaDisciplinas = TUR_TurmaDisciplinaBO.GetSelectBy_Turma(tur_id, null, GestaoEscolarUtilBO.MinutosCacheLongo);
                listaDisciplinas.ForEach(p =>
                {
                    // Fechamento de bimestre
                    chave = String.Format("{0}_{1}_{2}", ModelCache.FECHAMENTO_BIMESTRE_PATTERN_KEY, p.tud_id, entFormatoAvaliacao.fav_id);
                    CacheManager.Factory.RemoveByPattern(chave);
                    chave = String.Format("{0}_{1}_{2}", ModelCache.FECHAMENTO_BIMESTRE_FILTRO_DEFICIENCIA_PATTERN_KEY, p.tud_id, entFormatoAvaliacao.fav_id);
                    CacheManager.Factory.RemoveByPattern(chave);

                    // Fechamento final
                    chave = String.Format("{0}_{1}_{2}", ModelCache.FECHAMENTO_FINAL_PATTERN_KEY, p.tud_id, entFormatoAvaliacao.fav_id);
                    CacheManager.Factory.RemoveByPattern(chave);
                    chave = String.Format("{0}_{1}_{2}", ModelCache.FECHAMENTO_FINAL_FILTRO_DEFICIENCIA_PATTERN_KEY, p.tud_id, entFormatoAvaliacao.fav_id);
                    CacheManager.Factory.RemoveByPattern(chave);

                    // Fechamento automatico final
                    chave = String.Format(ModelCache.FECHAMENTO_AUTO_FINAL_MODEL_KEY, p.tud_id);
                    CacheManager.Factory.Remove(chave);
                    chave = String.Format(ModelCache.FECHAMENTO_AUTO_FINAL_FILTRO_DEFICIENCIA_MODEL_KEY, p.tud_id);
                    CacheManager.Factory.Remove(chave);

                    listaDadosPeriodo.ForEach(q =>
                    {
                        // Fechamento automatico de bimestre
                        if (dicAvaTpc.TryGetValue(q.ava_id, out tpcId))
                        {
                            chave = String.Format(ModelCache.FECHAMENTO_AUTO_BIMESTRE_MODEL_KEY, p.tud_id, tpcId);
                            CacheManager.Factory.Remove(chave);
                            chave = String.Format(ModelCache.FECHAMENTO_AUTO_BIMESTRE_FILTRO_DEFICIENCIA_MODEL_KEY, p.tud_id, tpcId);
                            CacheManager.Factory.Remove(chave);
                        }
                    });
                });
                //

                //Adiciona tuds para processamento de pendência de notas (quando salva o parecer final
                foreach (long tud in tud_ids.Where(t => !FilaProcessamento.Any(f => f.tud_id == t)))
                {
                    FilaProcessamento.Add(new AlunoFechamentoPendencia
                    {
                        tud_id                = tud,
                        tpc_id                = tpc_idUltimoPeriodo,
                        afp_frequencia        = false,
                        afp_frequenciaExterna = false,
                        afp_nota              = true,
                        afp_processado        = (byte)2
                    });
                }

                if (entFormatoAvaliacao.fav_fechamentoAutomatico && FilaProcessamento.Any(a => a.tpc_id > 0))
                {
                    CLS_AlunoFechamentoPendenciaBO.SalvarFilaPendencias(
                        FilaProcessamento
                        .GroupBy(g => new { g.tud_id, g.tpc_id })
                        .Select(p => new AlunoFechamentoPendencia {
                        tud_id         = p.FirstOrDefault().tud_id,
                        tpc_id         = p.FirstOrDefault().tpc_id,
                        afp_frequencia = p.FirstOrDefault().afp_frequencia,
                        afp_nota       = p.FirstOrDefault().afp_nota,
                        afp_processado = FilaProcessamento
                                         .Where(w => w.tud_id == p.FirstOrDefault().tud_id&& w.tpc_id == p.FirstOrDefault().tpc_id)
                                         .Min(m => m.afp_processado)
                    })
                        .Where(w => w.tpc_id > 0 && w.tpc_id != ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_PERIODO_CALENDARIO_RECESSO, ent_id))
                        .ToList()
                        , banco);
                }

                return(true);
            }
            catch (ValidationException ex)
            {
                banco.Close(ex);
                throw;
            }
            catch (Exception ex)
            {
                banco.Close(ex);
                throw;
            }
            finally
            {
                if (banco.ConnectionIsOpen)
                {
                    banco.Close();
                }
            }
        }
Ejemplo n.º 12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //Exibe o título no navegador
            Page.Title = __SessionWEB.TituloGeral;

            #region Adiciona links de favicon

            HtmlLink link = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon.ico");
            link.Attributes["rel"]   = "shortcut icon";
            link.Attributes["sizes"] = "";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-57x57.png");
            link.Attributes["rel"]   = "apple-touch-icon";
            link.Attributes["sizes"] = "57x57";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-114x114.png");
            link.Attributes["rel"]   = "apple-touch-icon";
            link.Attributes["sizes"] = "114x114";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-72x72.png");
            link.Attributes["rel"]   = "apple-touch-icon";
            link.Attributes["sizes"] = "72x72";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-144x144.png");
            link.Attributes["rel"]   = "apple-touch-icon";
            link.Attributes["sizes"] = "144x144";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-60x60.png");
            link.Attributes["rel"]   = "apple-touch-icon";
            link.Attributes["sizes"] = "60x60";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-120x120.png");
            link.Attributes["rel"]   = "apple-touch-icon";
            link.Attributes["sizes"] = "120x120";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-76x76.png");
            link.Attributes["rel"]   = "apple-touch-icon";
            link.Attributes["sizes"] = "76x76";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/apple-touch-icon-152x152.png");
            link.Attributes["rel"]   = "apple-touch-icon";
            link.Attributes["sizes"] = "152x152";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-196x196.png");
            link.Attributes["rel"]   = "icon";
            link.Attributes["sizes"] = "196x196";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-160x160.png");
            link.Attributes["rel"]   = "icon";
            link.Attributes["sizes"] = "160x160";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-96x96.png");
            link.Attributes["rel"]   = "icon";
            link.Attributes["sizes"] = "96x96";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-16x16.png");
            link.Attributes["rel"]   = "icon";
            link.Attributes["sizes"] = "16x16";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-32x32.png");
            link.Attributes["rel"]   = "icon";
            link.Attributes["sizes"] = "32x32";
            Page.Header.Controls.Add(link);

            link      = new HtmlLink();
            link.Href = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/favicon-32x32.png");
            link.Attributes["rel"]   = "icon";
            link.Attributes["sizes"] = "32x32";
            Page.Header.Controls.Add(link);

            HtmlMeta meta = new HtmlMeta();
            meta.Name    = "msapplication-TileImage";
            meta.Content = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/mstile-144x144.png");
            Page.Header.Controls.Add(meta);

            meta         = new HtmlMeta();
            meta.Name    = "msapplication-config";
            meta.Content = ResolveUrl("~/App_Themes/" + TemaAtual + "/images/favicons/browserconfig.xml");
            Page.Header.Controls.Add(meta);

            #endregion Adiciona links de favicon


            if (ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.EXIBIR_LISTA_SISTEMAS_AREA_ALUNO, __SessionWEB.__UsuarioWEB.Usuario.ent_id) &&
                !ApplicationWEB.LoginProprioDoSistema)
            {
                //Carrega logo geral do sistema
                imgGeral.ImageUrl        = UtilBO.UrlImagemGestao(__SessionWEB.UrlCoreSSO, __SessionWEB.UrlLogoGeral);
                imgGeral.ToolTip         = __SessionWEB.TituloGeral;
                imgGeral.AlternateText   = __SessionWEB.TituloGeral;
                ImgLogoGeral.ToolTip     = __SessionWEB.TituloGeral;
                ImgLogoGeral.NavigateUrl = __SessionWEB.UrlCoreSSO + "/Sistema.aspx";
            }
            else
            {
                h1Logo.Visible = ImgLogoGeral.Visible = false;
                if (UCSistemas1 != null)
                {
                    UCSistemas1.Visible = false;
                }
            }

            //Atribui o caminho do logo do sistema atual, caso ele exista no Sistema Administrativo
            if (string.IsNullOrEmpty(__SessionWEB.UrlLogoSistema))
            {
                ImgLogoSistemaAtual.Visible = false;
            }
            else
            {
                //Carrega logo do sistema atual
                imgSistemaAtual.ImageUrl        = UtilBO.UrlImagemGestao(__SessionWEB.UrlCoreSSO, __SessionWEB.UrlLogoSistema);
                imgSistemaAtual.AlternateText   = __SessionWEB.TituloSistema;
                imgSistemaAtual.ToolTip         = __SessionWEB.TituloSistema;
                ImgLogoSistemaAtual.ToolTip     = __SessionWEB.TituloSistema;
                ImgLogoSistemaAtual.NavigateUrl = "~/Index.aspx";
            }

            try
            {
                // Busca dados do aluno

                Int64 alu_id = 0;
                if (__SessionWEB.__UsuarioWEB.responsavel && __SessionWEB.__UsuarioWEB.alu_id > 0)
                {
                    alu_id = __SessionWEB.__UsuarioWEB.alu_id;
                }
                else if (__SessionWEB.__UsuarioWEB.responsavel)
                {
                    alu_id = ACA_AlunoBO.SelectAlunoby_pes_id(__SessionWEB.__UsuarioWEB.pes_idAluno);
                }
                else
                {
                    alu_id = ACA_AlunoBO.SelectAlunoby_pes_id(__SessionWEB.__UsuarioWEB.Usuario.pes_id);
                }

                bool boletimBloqueado           = false;
                bool compromissoEstudoBloqueado = false;
                if (alu_id > 0)
                {
                    compromissoEstudoBloqueado = !ACA_TipoCicloBO.VerificaSeExibeCompromissoAluno(alu_id);
                    DataTable dtCurriculo = ACA_AlunoCurriculoBO.SelecionaDadosUltimaMatricula(alu_id);
                    if (dtCurriculo.Rows.Count > 0)
                    {
                        string nomeAluno = dtCurriculo.Rows[0]["pes_nome"].ToString();
                        string parametroMatriculaEstadual = ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.MATRICULA_ESTADUAL, __SessionWEB.__UsuarioWEB.Usuario.ent_id);
                        string matriculaEstadual          = dtCurriculo.Rows[0]["alc_matriculaEstadual"].ToString();
                        string numeroMatricula            = dtCurriculo.Rows[0]["alc_matricula"].ToString();

                        litNomeAluno.Text    = __SessionWEB.__UsuarioWEB.responsavel ? (string)GetGlobalResourceObject("AreaAluno.MasterPageAluno", "litNomeAluno.Text.Responsavel") : (string)GetGlobalResourceObject("AreaAluno.MasterPageAluno", "litNomeAluno.Text.Aluno");
                        lblNomeAluno.Text    = nomeAluno;
                        lblMatricula.Text    = string.IsNullOrEmpty(parametroMatriculaEstadual) ? numeroMatricula : matriculaEstadual;
                        lblNroMatricula.Text = string.IsNullOrEmpty(parametroMatriculaEstadual)
                            ? GetGlobalResourceObject("AreaAluno", "MasterPageAluno.lblNroMatricula.Text").ToString()
                            : parametroMatriculaEstadual + ":";
                    }

                    ACA_Aluno entityAluno = ACA_AlunoBO.GetEntity(new ACA_Aluno {
                        alu_id = alu_id
                    });
                    if (entityAluno.alu_possuiInformacaoSigilosa && entityAluno.alu_bloqueioBoletimOnline)
                    {
                        boletimBloqueado = true;
                    }
                }

                if (__SessionWEB.__UsuarioWEB.responsavel && boletimBloqueado)
                {
                    Response.Redirect("~/Index.aspx", false);
                    HttpContext.Current.ApplicationInstance.CompleteRequest();
                }

                // Se ja tiver logado mostra o linkbutton pra selecionar o aluno, senão esconde
                if (Session["Pes_Id_Responsavel"] != null)
                {
                    if (Convert.ToInt32(Session["Qtde_Filhos_Responsavel"]) > 1)
                    {
                        lbSelecaoAlunos.Visible = true;
                    }
                    else
                    {
                        lbSelecaoAlunos.Visible = false;
                    }
                    imgLogoAreaAluno.Visible = false;
                    imgLogoAreaResp.Visible  = true;
                }
                else
                {
                    lbSelecaoAlunos.Visible  = false;
                    imgLogoAreaAluno.Visible = true;
                    imgLogoAreaResp.Visible  = false;
                }

                // Busca dados do menu

                int mod_id = GetModuloId;

                string menuXml = SYS_ModuloBO.CarregarSiteMapXML2(
                    __SessionWEB.__UsuarioWEB.Grupo.gru_id,
                    __SessionWEB.__UsuarioWEB.Grupo.sis_id,
                    __SessionWEB.__UsuarioWEB.Grupo.vis_id,
                    mod_id
                    );

                if (String.IsNullOrEmpty(menuXml))
                {
                    menuXml = "<menus/>";
                }
                menuXml = menuXml.Replace("url=\"~/", String.Concat("url=\"", ApplicationWEB._DiretorioVirtual));

                // Verifica se o aluno está com o boletim bloqueado. Se estiver, retiro do menu.
                int indiceBoletim = menuXml.IndexOf("<menu id=\"Boletim");
                if (boletimBloqueado && indiceBoletim >= 0)
                {
                    menuXml = menuXml.Remove(indiceBoletim, menuXml.IndexOf("/>", indiceBoletim) - indiceBoletim + 2);
                }

                IDictionary <string, ICFG_Configuracao> configuracao;
                MSTech.GestaoEscolar.BLL.CFG_ConfiguracaoBO.Consultar(eConfig.Academico, out configuracao);
                if (configuracao.ContainsKey("AppURLAreaAlunoInfantil") && !string.IsNullOrEmpty(configuracao["AppURLAreaAlunoInfantil"].cfg_valor))
                {
                    string url            = HttpContext.Current.Request.Url.AbsoluteUri;
                    string configInfantil = configuracao["AppURLAreaAlunoInfantil"].cfg_valor;

                    if (url.Contains(configInfantil))
                    {
                        menuXml = menuXml.Replace("menu id=\"Boletim Online\"", "menu id=\"" + (string)GetGlobalResourceObject("AreaAluno.MasterPageAluno", "MenuBoletimInfantil") + "\"");
                    }
                }

                // Verifica se o aluno está com o compromisso estudo bloqueado. Se estiver, retiro do menu.
                int indiceCompromissoEstudo = menuXml.IndexOf("<menu id=\"Compromisso de Estudo");
                if (compromissoEstudoBloqueado && indiceCompromissoEstudo >= 0)
                {
                    menuXml = menuXml.Remove(indiceCompromissoEstudo, menuXml.IndexOf("/>", indiceCompromissoEstudo) - indiceCompromissoEstudo + 2);
                }

                XmlTextReader        reader  = new XmlTextReader(new StringReader(menuXml));
                XPathDocument        treeDoc = new XPathDocument(reader);
                XslCompiledTransform siteMap = new XslCompiledTransform();

                if (__SessionWEB.__UsuarioWEB.responsavel)
                {
                    siteMap.Load(String.Concat(__SessionWEB._AreaAtual._DiretorioIncludes, "SiteMapPagesResponsavel.xslt"));
                }
                else
                {
                    siteMap.Load(String.Concat(__SessionWEB._AreaAtual._DiretorioIncludes, "SiteMapPages.xslt"));
                }

                string page = Page.Request.Url.ToString();

                StringWriter sw = new StringWriter();
                siteMap.Transform(treeDoc, null, sw);

                string result = sw.ToString();


                //Carrega a lista de link e moduloId
                Dictionary <string, string> linkModulo = new Dictionary <string, string>();
                string[] linkMenusXml = menuXml.Split(new[] { "<menu id=\"" }, StringSplitOptions.None);
                if (linkMenusXml.Length > 0)
                {
                    bool primeiroItem = true;
                    foreach (string item in linkMenusXml)
                    {
                        if (!primeiroItem)
                        {
                            string link2  = item.Substring(item.IndexOf("url=\"") + 5, item.Substring(item.IndexOf("url=\"") + 5).IndexOf("\""));
                            string modulo = item.Substring(0, item.IndexOf("\""));
                            linkModulo.Add(link2, modulo);
                        }
                        primeiroItem = false;
                    }
                }

                //Carrega a lista de link e classe css atual
                Dictionary <string, string> linkClasse = new Dictionary <string, string>();
                string[] linkMenus = result.Split(new[] { "<li class=\"txtSubMenu\"><a " }, StringSplitOptions.None);
                if (linkMenus.Length > 0)
                {
                    bool primeiroItem = true;
                    foreach (string item in linkMenus)
                    {
                        if (!primeiroItem)
                        {
                            string link2  = item.Substring(item.IndexOf("href=\"") + 6, item.Substring(item.IndexOf("href=\"") + 6).IndexOf("\""));
                            string classe = item.Substring(item.IndexOf("class=\"") + 7, item.Substring(item.IndexOf("class=\"") + 7).IndexOf("\""));
                            linkClasse.Add(link2, "class=\"" + classe + "\" " + "href=\"" + link2);
                        }
                        primeiroItem = false;
                    }
                }

                //Troca a classe css atual do link conforme o que está configurado na tabela filtrando pelo modulo
                List <CFG_ModuloClasse> lstModClasse = new List <CFG_ModuloClasse>();
                if (linkModulo.Count > 0 && linkClasse.Count > 0)
                {
                    lstModClasse = CFG_ModuloClasseBO.SelecionaAtivos(ApplicationWEB.AreaAlunoSistemaID);
                    foreach (var item in linkClasse)
                    {
                        string modulo = linkModulo[item.Key];
                        if (!string.IsNullOrEmpty(modulo) && lstModClasse.Any(p => p.mod_nome == modulo))
                        {
                            string classeCfg = lstModClasse.Where(p => p.mod_nome == modulo).FirstOrDefault().mdc_classe;
                            if (!string.IsNullOrEmpty(classeCfg))
                            {
                                result = result.Replace(item.Value, "class=\"link " + classeCfg + "\" " + "href=\"" + item.Key);
                            }
                        }
                    }
                }


                int indexPagina = result.IndexOf(Page.Request.Url.ToString()) > 0 ? result.IndexOf(Page.Request.Url.ToString()) : result.IndexOf(Page.Request.UrlReferrer.ToString());
                int indexClasse = 0;
                if (indexPagina > 0)
                {
                    indexClasse = result.IndexOf("txtSubMenu", (indexPagina - 60), result.Length - indexPagina);
                }

                string resultClasse = result.Substring(indexClasse);

                // Busca menu que está sendo chamado, para adicionar a classe ativo para a aba selecionada
                if (indexClasse > 0)
                {
                    result = result.Replace(resultClasse, "ativo " + resultClasse);
                }

                Control ctrl = Page.ParseControl(result);
                menuAreaAlunoComponentes.Controls.Add(ctrl);
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
            }
        }
Ejemplo n.º 13
0
    /// <summary>
    /// Faz as validações necessárias.
    /// </summary>
    /// <returns></returns>
    private bool _Validar()
    {
        if (UCComboCargo1.Valor <= 0)
        {
            _lblMessage.Text = UtilBO.GetErroMessage("Cargo é obrigatório.", UtilBO.TipoMensagem.Alerta);
            return(false);
        }

        if (string.IsNullOrEmpty(txtUA.Text.Trim()))
        {
            _lblMessage.Text = UtilBO.GetErroMessage("Unidade administrativa é obrigatório.", UtilBO.TipoMensagem.Alerta);
            return(false);
        }

        if (string.IsNullOrEmpty(txtVigenciaIni.Text.Trim()))
        {
            _lblMessage.Text = UtilBO.GetErroMessage("Vigência inicial é obrigatório.", UtilBO.TipoMensagem.Alerta);
            return(false);
        }

        if (RHU_ColaboradorBO.VerificaMatriculaExistente(VS_col_id, txtMatricula.Text, __SessionWEB.__UsuarioWEB.Usuario.ent_id))
        {
            _lblMessage.Text = UtilBO.GetErroMessage("Outro docente/colaborador já possui um vínculo com esta matrícula.", UtilBO.TipoMensagem.Alerta);
            return(false);
        }

        if (ExisteCargoComMesmasInformacoes())
        {
            _lblMessage.Text = UtilBO.GetErroMessage("Já existe um vínculo com as mesmas informações.", UtilBO.TipoMensagem.Alerta);
            return(false);
        }

        if (ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.CONTROLAR_COLABORADOR_VINCULO_INTEGRADO_VIRTUAL, __SessionWEB.__UsuarioWEB.Usuario.ent_id) &&
            (ckbVinculoSede.Checked && ckbComplementacaoCargaHoraria.Checked))
        {
            _lblMessage.Text = UtilBO.GetErroMessage("Não é permitido selecionar as opções 'Vínculo sede' e 'Complementação de carga horária' no mesmo vínculo.", UtilBO.TipoMensagem.Alerta);
            return(false);
        }

        cvVigenciIni.Validate();

        if (!cvVigenciIni.IsValid)
        {
            return(false);
        }

        DateTime dtVigenciaInicio = Convert.ToDateTime(txtVigenciaIni.Text);
        DateTime dtVigenciaFim    = string.IsNullOrEmpty(txtVigenciaFim.Text) ? new DateTime() : Convert.ToDateTime(txtVigenciaFim.Text);

        if (dtVigenciaFim != new DateTime())
        {
            cvVigenciaFim.Validate();

            if (!cvVigenciaFim.IsValid)
            {
                return(false);
            }

            if (dtVigenciaInicio > dtVigenciaFim)
            {
                _lblMessage.Text = UtilBO.GetErroMessage("Vigência inicial não pode ser maior que a vigência final.", UtilBO.TipoMensagem.Alerta);
                return(false);
            }
        }

        if (_VS_dataAdmissao != new DateTime())
        {
            if (dtVigenciaInicio < _VS_dataAdmissao)
            {
                _lblMessage.Text = UtilBO.GetErroMessage("Vigência inicial não pode ser menor que a data de admissão.", UtilBO.TipoMensagem.Alerta);
                return(false);
            }

            if (dtVigenciaFim != new DateTime())
            {
                if (dtVigenciaFim < _VS_dataAdmissao)
                {
                    _lblMessage.Text = UtilBO.GetErroMessage("Vigência final não pode ser menor que a data de admissão.", UtilBO.TipoMensagem.Alerta);
                    return(false);
                }
            }
        }

        if (_VS_dataDemissao != new DateTime())
        {
            if (dtVigenciaInicio > _VS_dataDemissao)
            {
                _lblMessage.Text = UtilBO.GetErroMessage("Vigência inicial não pode ser maior que a data de demissão.", UtilBO.TipoMensagem.Alerta);
                return(false);
            }

            if (!string.IsNullOrEmpty(txtVigenciaFim.Text))
            {
                if (Convert.ToDateTime(txtVigenciaFim.Text) > _VS_dataDemissao)
                {
                    _lblMessage.Text = UtilBO.GetErroMessage("Vigência final não pode ser maior que a data de demissão.", UtilBO.TipoMensagem.Alerta);
                    return(false);
                }
            }
        }

        if (ddlCargoSituacao.SelectedValue == "-1")
        {
            _lblMessage.Text = UtilBO.GetErroMessage("Situação é obrigatório.", UtilBO.TipoMensagem.Alerta);
            return(false);
        }

        _lblMessage.Visible = false;
        return(true);
    }
Ejemplo n.º 14
0
        /// <summary>
        /// Handles the Load event of the Page control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        /// <author>juliano.real</author>
        /// <datetime>12/10/2013-09:20</datetime>
        /// <exception cref="System.ComponentModel.DataAnnotations.ValidationException">Usuário não autorizado a exibir o area aluno.</exception>
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                String sMensagemLog = "";

                divResponsavel.Visible = __SessionWEB.__UsuarioWEB.responsavel;

                Int64 alu_id     = 0;
                long  arq_idFoto = 0;
                if (__SessionWEB.__UsuarioWEB.responsavel && __SessionWEB.__UsuarioWEB.alu_id > 0)
                {
                    alu_id = __SessionWEB.__UsuarioWEB.alu_id;
                    PES_Pessoa pesAluno = new PES_Pessoa {
                        pes_id = __SessionWEB.__UsuarioWEB.pes_idAluno
                    };
                    PES_PessoaBO.GetEntity(pesAluno);
                    arq_idFoto = pesAluno.arq_idFoto;
                }
                else if (__SessionWEB.__UsuarioWEB.responsavel)
                {
                    alu_id = ACA_AlunoBO.SelectAlunoby_pes_id(__SessionWEB.__UsuarioWEB.pes_idAluno);
                    PES_Pessoa pesAluno = new PES_Pessoa {
                        pes_id = __SessionWEB.__UsuarioWEB.pes_idAluno
                    };
                    PES_PessoaBO.GetEntity(pesAluno);
                    arq_idFoto = pesAluno.arq_idFoto;
                }
                else
                {
                    alu_id = ACA_AlunoBO.SelectAlunoby_pes_id(__SessionWEB.__UsuarioWEB.Usuario.pes_id);
                    PES_Pessoa pesAluno = new PES_Pessoa {
                        pes_id = __SessionWEB.__UsuarioWEB.Usuario.pes_id
                    };
                    PES_PessoaBO.GetEntity(pesAluno);
                    arq_idFoto = pesAluno.arq_idFoto;
                }

                if (alu_id <= 0)
                {
                    sMensagemLog = "Usuário não autorizado a exibir Area do Aluno: usu_id: " + __SessionWEB.__UsuarioWEB.Usuario.usu_id.ToString();
                    throw new ValidationException("Usuário não autorizado a exibir o Area do Aluno.");
                }

                ACA_Aluno entityAluno = ACA_AlunoBO.GetEntity(new ACA_Aluno {
                    alu_id = alu_id
                });
                bool boletimBloqueado           = false;
                bool compromissoEstudoBloqueado = !ACA_TipoCicloBO.VerificaSeExibeCompromissoAluno(alu_id);

                if (entityAluno.alu_possuiInformacaoSigilosa && entityAluno.alu_bloqueioBoletimOnline)
                {
                    if (__SessionWEB.__UsuarioWEB.responsavel)
                    {
                        Fieldset2.Visible            = true;
                        lblBoletimNaoDisponivel.Text = UtilBO.GetErroMessage(GetGlobalResourceObject("AreaAluno", "Index.lblBoletimNaoDisponivel.Text").ToString(), UtilBO.TipoMensagem.Informacao);
                        Fieldset1.Visible            = false;
                        return;
                    }
                    else
                    {
                        boletimBloqueado = true;
                    }
                }

                if (arq_idFoto > 0)
                {
                    string      imagem  = "";
                    CFG_Arquivo arquivo = new CFG_Arquivo {
                        arq_id = arq_idFoto
                    };
                    CFG_ArquivoBO.GetEntity(arquivo);
                    byte[] bufferData = arquivo.arq_data;

                    using (MemoryStream stream = new MemoryStream(bufferData))
                    {
                        System.Drawing.Image img = System.Drawing.Image.FromStream(stream);
                        imagem = Convert.ToBase64String(stream.ToArray());
                    }

                    imgFotoAluno.ImageUrl = "data:" + arquivo.arq_typeMime + ";base64," + imagem;
                }

                DataTable dtCurriculo = ACA_AlunoCurriculoBO.SelecionaDadosUltimaMatricula(alu_id);

                if (dtCurriculo.Rows.Count <= 0)
                {
                    sMensagemLog = "Aluno não possui dados para a Area do Aluno: alu_id: " + alu_id.ToString();
                    throw new ValidationException("Aluno não possui dados para a Area do Aluno.");
                }

                string nomeAluno         = dtCurriculo.Rows[0]["pes_nome"].ToString();
                string matriculaEstadual = dtCurriculo.Rows[0]["alc_matriculaEstadual"].ToString();
                string numeroMatricula   = dtCurriculo.Rows[0]["alc_matricula"].ToString();

                //Nome Aluno
                lblInformacaoAluno.Text = "Aluno: <b>" + nomeAluno + "</b><br/>";

                //Matricula
                if (!string.IsNullOrEmpty(ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.MATRICULA_ESTADUAL, __SessionWEB.__UsuarioWEB.Usuario.ent_id)))
                {
                    if (!string.IsNullOrEmpty(matriculaEstadual))
                    {
                        lblInformacaoAluno.Text += " <b>" + GestaoEscolarUtilBO.nomePadraoMatriculaEstadual(__SessionWEB.__UsuarioWEB.Usuario.ent_id) + ": " + "</b>" + matriculaEstadual + "&nbsp;&nbsp;&nbsp;";
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(numeroMatricula))
                    {
                        lblInformacaoAluno.Text += GetGlobalResourceObject("Mensagens", "MSG_NUMEROMATRICULA") + ": <b>" + numeroMatricula + "</b>" + "&nbsp;&nbsp;&nbsp;";
                    }
                }

                __SessionWEB.__UsuarioWEB.alu_id = Convert.ToInt64(dtCurriculo.Rows[0]["alu_id"].ToString());
                __SessionWEB.__UsuarioWEB.esc_id = Convert.ToInt32(dtCurriculo.Rows[0]["esc_id"].ToString());
                __SessionWEB.__UsuarioWEB.uni_id = Convert.ToInt32(dtCurriculo.Rows[0]["uni_id"].ToString());
                __SessionWEB.__UsuarioWEB.mtu_id = Convert.ToInt32(dtCurriculo.Rows[0]["mtu_id"].ToString());
                __SessionWEB.__UsuarioWEB.tpc_id = Convert.ToInt32(string.IsNullOrEmpty(dtCurriculo.Rows[0]["tpc_id"].ToString()) ? "-1" : dtCurriculo.Rows[0]["tpc_id"].ToString());

                int mod_id = GetModuloId;

                string menuXml = SYS_ModuloBO.CarregarSiteMapXML2(
                    __SessionWEB.__UsuarioWEB.Grupo.gru_id,
                    __SessionWEB.__UsuarioWEB.Grupo.sis_id,
                    __SessionWEB.__UsuarioWEB.Grupo.vis_id,
                    mod_id
                    );
                if (String.IsNullOrEmpty(menuXml))
                {
                    menuXml = "<menus/>";
                }
                menuXml = menuXml.Replace("url=\"~/", String.Concat("url=\"", ApplicationWEB._DiretorioVirtual));

                // Verifica se o aluno está com o boletim bloqueado. Se estiver, retiro do menu.
                int indiceBoletim = menuXml.IndexOf("<menu id=\"Boletim");
                if (boletimBloqueado && indiceBoletim >= 0)
                {
                    menuXml = menuXml.Remove(indiceBoletim, menuXml.IndexOf("/>", indiceBoletim) - indiceBoletim + 2);
                }

                IDictionary <string, ICFG_Configuracao> configuracao;
                MSTech.GestaoEscolar.BLL.CFG_ConfiguracaoBO.Consultar(eConfig.Academico, out configuracao);
                if (configuracao.ContainsKey("AppURLAreaAlunoInfantil") && !string.IsNullOrEmpty(configuracao["AppURLAreaAlunoInfantil"].cfg_valor))
                {
                    string url            = HttpContext.Current.Request.Url.AbsoluteUri;
                    string configInfantil = configuracao["AppURLAreaAlunoInfantil"].cfg_valor;

                    if (url.Contains(configInfantil))
                    {
                        menuXml = menuXml.Replace("menu id=\"Boletim Online\"", "menu id=\"" + (string)GetGlobalResourceObject("AreaAluno.MasterPageAluno", "MenuBoletimInfantil") + "\"");
                    }
                }

                // Verifica se o aluno está com o compromisso estudo bloqueado. Se estiver, retiro do menu.
                int indiceCompromissoEstudo = menuXml.IndexOf("<menu id=\"Compromisso de Estudo");
                if (compromissoEstudoBloqueado && indiceCompromissoEstudo >= 0)
                {
                    menuXml = menuXml.Remove(indiceCompromissoEstudo, menuXml.IndexOf("/>", indiceCompromissoEstudo) - indiceCompromissoEstudo + 2);
                }

                XmlTextReader        reader  = new XmlTextReader(new StringReader(menuXml));
                XPathDocument        treeDoc = new XPathDocument(reader);
                XslCompiledTransform siteMap = new XslCompiledTransform();

                if (__SessionWEB.__UsuarioWEB.responsavel)
                {
                    siteMap.Load(String.Concat(__SessionWEB._AreaAtual._DiretorioIncludes, "SiteMapResponsavel.xslt"));
                }
                else
                {
                    siteMap.Load(String.Concat(__SessionWEB._AreaAtual._DiretorioIncludes, "SiteMap.xslt"));
                }

                StringWriter sw = new StringWriter();
                siteMap.Transform(treeDoc, null, sw);
                string result = sw.ToString();

                List <CFG_ModuloClasse> lstModClasse = CFG_ModuloClasseBO.SelecionaAtivos(ApplicationWEB.AreaAlunoSistemaID);

                if (lstModClasse.Any())
                {
                    //Carrega a lista de link e moduloId
                    Dictionary <string, string> linkModulo = new Dictionary <string, string>();
                    string[] linkMenusXml = menuXml.Split(new[] { "<menu id=\"" }, StringSplitOptions.None);
                    if (linkMenusXml.Length > 0)
                    {
                        bool primeiroItem = true;
                        foreach (string item in linkMenusXml)
                        {
                            if (!primeiroItem)
                            {
                                string link   = item.Substring(item.IndexOf("url=\"") + 5, item.Substring(item.IndexOf("url=\"") + 5).IndexOf("\""));
                                string modulo = item.Substring(0, item.IndexOf("\""));
                                linkModulo.Add(link, modulo);
                            }
                            primeiroItem = false;
                        }
                    }

                    //Carrega a lista de link e classe css atual
                    Dictionary <string, string> linkClasse = new Dictionary <string, string>();
                    string[] linkMenus = result.Split(new[] { "<li class=\"txtSubMenu\"><a " }, StringSplitOptions.None);
                    if (linkMenus.Length > 0)
                    {
                        bool primeiroItem = true;
                        foreach (string item in linkMenus)
                        {
                            if (!primeiroItem)
                            {
                                string link   = item.Substring(item.IndexOf("href=\"") + 6, item.Substring(item.IndexOf("href=\"") + 6).IndexOf("\""));
                                string classe = item.Substring(item.IndexOf("class=\"") + 7, item.Substring(item.IndexOf("class=\"") + 7).IndexOf("\""));
                                linkClasse.Add(link, "class=\"" + classe + "\" " + "href=\"" + link);
                            }
                            primeiroItem = false;
                        }
                    }

                    //Troca a classe css atual do link conforme o que está configurado na tabela filtrando pelo modulo
                    if (linkModulo.Count > 0 && linkClasse.Count > 0)
                    {
                        foreach (var item in linkClasse)
                        {
                            string modulo = linkModulo[item.Key];
                            if (!string.IsNullOrEmpty(modulo) && lstModClasse.Any(p => p.mod_nome == modulo))
                            {
                                string classeCfg = lstModClasse.Where(p => p.mod_nome == modulo).FirstOrDefault().mdc_classe;
                                if (!string.IsNullOrEmpty(classeCfg))
                                {
                                    result = result.Replace(item.Value, "class=\"link " + classeCfg + "\" " + "href=\"" + item.Key);
                                }
                            }
                        }
                    }
                }

                //Control ctrl = Page.ParseControl(result);
                _lblSiteMap.Text = result;

                if (!string.IsNullOrEmpty(ApplicationWEB.UrlAcessoExternoBoletimOnline))
                {
                    string[] crp_ordem = ApplicationWEB.Crp_ordem_AcessoExternoBoletimOnline;
                    // Só exibe o ícone caso o aluno esteja em alguma das séries parametrizadas.
                    if (crp_ordem.Contains(dtCurriculo.Rows[0]["crp_ordem"].ToString()))
                    {
                        // Seta um nó de menu para acesso ao site externo.
                        ulItemAcessoExterno.Visible     = true;
                        lblAcessoExterno.Text           = GetGlobalResourceObject("AreaAluno", "Index.lblAcessoExternoNome").ToString();
                        lnkAcessoExterno.HRef           = ApplicationWEB.UrlAcessoExternoBoletimOnline;
                        h2TituloAcessoExterno.InnerHtml = GetGlobalResourceObject("AreaAluno", "Index.lblAcessoExternoNome").ToString();
                    }
                }

                sMensagemLog = "Area do Aluno exibida para aluno: alu_id: " + alu_id.ToString();
                ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Query, sMensagemLog);
            }
            catch (ValidationException ex)
            {
                lblMessage.Text       = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
                btnVoltar.PostBackUrl = __SessionWEB.UrlCoreSSO + "/Sistema.aspx";
                btnVoltar.Visible     = true;
                divInformacao.Visible = false;
                HttpContext.Current.ApplicationInstance.CompleteRequest();
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMessage.Text       = UtilBO.GetErroMessage("Erro ao exibir a Area do aluno", UtilBO.TipoMensagem.Erro);
                btnVoltar.PostBackUrl = __SessionWEB.UrlCoreSSO + "/Sistema.aspx";
                btnVoltar.Visible     = true;
                divInformacao.Visible = false;
                HttpContext.Current.ApplicationInstance.CompleteRequest();
            }
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Gera o relatorio com base nos filtros selecionados.
        /// </summary>
        private void GerarRel()
        {
            SalvarBusca();

            bool turmaRegencia = TUR_TurmaDisciplinaBO.GetSelectBy_Turma(UCComboTurma1.Valor[0], null, ApplicationWEB.AppMinutosCacheLongo).Any(t => t.tud_tipo == (byte)TurmaDisciplinaTipo.Regencia);

            // mostra a quantidade de dias letivos no ano
            int numeroDiasUteis = GestaoEscolarUtilBO.NumeroDeDiasUteis(UCComboCalendario1.Valor, UCComboUAEscola.Esc_ID, UCComboUAEscola.Uni_ID, __SessionWEB.__UsuarioWEB.Usuario.ent_id, turmaRegencia);

            string parameter = string.Empty;
            string parametroAtivDiversificada = ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.TIPO_EVENTO_ATIVIDADE_DIVERSIFICADA, __SessionWEB.__UsuarioWEB.Usuario.ent_id);
            string report = ((int)MSTech.GestaoEscolar.BLL.ReportNameGestaoAcademica.DivergenciasRematriculas).ToString();

            Guid   uad_idSuperior = UCComboUAEscola.Uad_ID;
            string DRE            = UCComboUAEscola.DdlUA.SelectedItem.Text;

            if (uad_idSuperior.Equals(Guid.Empty))
            {
                ESC_Escola esc = new ESC_Escola {
                    esc_id = UCComboUAEscola.Esc_ID
                };
                ESC_EscolaBO.GetEntity(esc);

                uad_idSuperior = esc.uad_idSuperiorGestao;

                if (uad_idSuperior.Equals(Guid.Empty))
                {
                    SYS_UnidadeAdministrativa uad = new SYS_UnidadeAdministrativa
                    {
                        uad_id = esc.uad_id,
                        ent_id = __SessionWEB.__UsuarioWEB.Usuario.ent_id
                    };
                    SYS_UnidadeAdministrativaBO.GetEntity(uad);
                    uad_idSuperior = uad.uad_idSuperior;
                }

                SYS_UnidadeAdministrativa uadSuperior = new SYS_UnidadeAdministrativa
                {
                    uad_id = uad_idSuperior,
                    ent_id = __SessionWEB.__UsuarioWEB.Usuario.ent_id
                };
                SYS_UnidadeAdministrativaBO.GetEntity(uadSuperior);
                DRE = uadSuperior.uad_nome;
            }

            parameter = "cal_id=" + UCComboCalendario1.Valor.ToString()
                        + "&uad_idSuperior=" + uad_idSuperior.ToString()
                        + "&esc_id=" + UCComboUAEscola.Esc_ID.ToString()
                        + "&uni_id=" + UCComboUAEscola.Uni_ID.ToString()
                        + "&cur_id=" + UCComboCursoCurriculo1.Valor[0].ToString()
                        + "&crr_id=" + UCComboCursoCurriculo1.Valor[1].ToString()
                        + "&crp_id=" + UCComboCurriculoPeriodo1.Valor[2].ToString()
                        + "&mostraCodigoEscola=" + ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.ORDENAR_ESCOLAS_POR_CODIGO, __SessionWEB.__UsuarioWEB.Usuario.ent_id)
                        + "&tur_id=" + UCComboTurma1.Valor[0].ToString()
                        + "&logo=" + String.Concat(MSTech.GestaoEscolar.BLL.CFG_ServidorRelatorioBO.CarregarServidorRelatorioPorEntidade(__SessionWEB.__UsuarioWEB.Usuario.ent_id, ApplicationWEB.AppMinutosCacheLongo).srr_pastaRelatorios.ToString()
                                                   , ApplicationWEB.LogoRelatorioSSRS)
                        + "&mensagemAlerta=" + GetGlobalResourceObject("Relatorios", "DivergenciasRematriculas.Busca.MensagemAviso")
                        + "&periodoCurso=" + GestaoEscolarUtilBO.nomePadraoPeriodo(__SessionWEB.__UsuarioWEB.Usuario.ent_id)
                        + "&nomeMunicipio=" + GetGlobalResourceObject("Reporting", "Reporting.DocDctSubCabecalhoRetrato.Municipio")
                        + "&nomeSecretaria=" + GetGlobalResourceObject("Reporting", "Reporting.DocDctSubCabecalhoRetrato.Secretaria")
                        + "&cal_ano=" + UCComboCalendario1.Cal_ano.ToString()
                        + "&ent_id=" + __SessionWEB.__UsuarioWEB.Usuario.ent_id.ToString()
                        + "&adm=" + (__SessionWEB.__UsuarioWEB.Grupo.vis_id == SysVisaoID.Administracao)
                        + "&usu_id=" + __SessionWEB.__UsuarioWEB.Usuario.usu_id
                        + "&gru_id=" + __SessionWEB.__UsuarioWEB.Grupo.gru_id
                        + "&DRE=" + DRE;

            MSTech.GestaoEscolar.BLL.CFG_RelatorioBO.CallReport("Relatorios", report, parameter, HttpContext.Current);
        }
Ejemplo n.º 16
0
        public static List <sComboPeriodoCalendario> SelecionaPor_PeriodoVigente_EventoEfetivacaoVigente
        (
            int cal_id
            , long tud_id
            , long tur_id
            , Guid ent_id
            , bool VerificaEscolaCalendarioPeriodo
            , int appMinutosCacheLongo = 0
            , long doc_id = -1
        )
        {
            // Tipo de evento de efetivação de notas, configurado nos parâmetros.
            int tev_idEfetivacao = ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_EVENTO_EFETIVACAO_NOTAS, ent_id);
            List <sComboPeriodoCalendario> dados = null;

            if (appMinutosCacheLongo > 0)
            {
                if (HttpContext.Current != null)
                {
                    // Chave padrão do cache - nome do método + parâmetros.
                    string chave = RetornaChaveCache_SelecionaPor_PeriodoVigente_EventoEfetivacaoVigente(cal_id, tud_id, tev_idEfetivacao, tur_id, VerificaEscolaCalendarioPeriodo, doc_id);
                    object cache = HttpContext.Current.Cache[chave];

                    if (cache == null)
                    {
                        ACA_TipoPeriodoCalendarioDAO dao = new ACA_TipoPeriodoCalendarioDAO();
                        DataTable dtDados = dao.SelectBy_PeriodoVigente_EventoEfetivacaoVigente(cal_id, tud_id, tev_idEfetivacao, tur_id, VerificaEscolaCalendarioPeriodo, doc_id);
                        dados = (from DataRow dr in dtDados.Rows
                                 select new sComboPeriodoCalendario
                        {
                            tpc_id = string.IsNullOrEmpty(dr["tpc_id"].ToString()) ? -1 : Convert.ToInt32(dr["tpc_id"]),
                            tpc_nome = dr["tpc_nome"].ToString(),
                            cap_descricao = dr["cap_descricao"].ToString(),
                            tpc_cap_id = dr["tpc_cap_id"].ToString(),
                            PeriodoAtual = string.IsNullOrEmpty(dr["PeriodoAtual"].ToString()) ? false : Convert.ToBoolean(dr["PeriodoAtual"])
                        }).ToList();

                        // Adiciona cache com validade do tempo informado na configuração.
                        HttpContext.Current.Cache.Insert(chave, dados, null, DateTime.Now.AddMinutes(appMinutosCacheLongo), System.Web.Caching.Cache.NoSlidingExpiration);
                    }
                    else
                    {
                        dados = (List <sComboPeriodoCalendario>)cache;
                    }
                }
            }

            if (dados == null)
            {
                // Se não carregou pelo cache, seleciona os dados do banco.
                ACA_TipoPeriodoCalendarioDAO dao = new ACA_TipoPeriodoCalendarioDAO();
                DataTable dtDados = dao.SelectBy_PeriodoVigente_EventoEfetivacaoVigente(cal_id, tud_id, tev_idEfetivacao, tur_id, VerificaEscolaCalendarioPeriodo, doc_id);
                dados = (from DataRow dr in dtDados.Rows
                         select new sComboPeriodoCalendario
                {
                    tpc_id = string.IsNullOrEmpty(dr["tpc_id"].ToString()) ? -1 : Convert.ToInt32(dr["tpc_id"]),
                    tpc_nome = dr["tpc_nome"].ToString(),
                    cap_descricao = dr["cap_descricao"].ToString(),
                    tpc_cap_id = dr["tpc_cap_id"].ToString(),
                    PeriodoAtual = string.IsNullOrEmpty(dr["PeriodoAtual"].ToString()) ? false : Convert.ToBoolean(dr["PeriodoAtual"])
                }).ToList();
            }

            return(dados);
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Carrega os dados de lançamento de frequência externa do aluno
        /// </summary>
        private void CarregarLancamento()
        {
            List <DadosLancamentoFreqExterna> lDadosAluno = CLS_AlunoFrequenciaExternaBO.SelecionaDadosAlunoLancamentoFrequenciaExterna(VS_alu_id, VS_mtu_id);

            if (lDadosAluno.Any())
            {
                int       cur_id = lDadosAluno.First().cur_id;
                ACA_Curso cur    = new ACA_Curso {
                    cur_id = cur_id
                };
                ACA_CursoBO.GetEntity(cur);

                //Verifica se o nível de ensino do curso é do ensino infantil.
                bool ensinoInfantil = cur.tne_id == ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_NIVEL_ENSINO_EDUCACAO_INFANTIL, __SessionWEB.__UsuarioWEB.Usuario.ent_id);

                #region Períodos

                var periodos = from DadosAlunoEntradaRede item in VS_ListaDadosPeriodo
                               orderby item.tpc_ordem
                               group item by item.tpc_id
                               into g
                               select
                               new
                {
                    tpc_id = g.Key
                    ,
                    tpc_nome = g.First().cap_descricao
                    ,
                    g.First().tpc_ordem
                };

                rptPeriodosNomes.DataSource                      = periodos;
                rptPeriodosColunasFixas.DataSource               = periodos;
                rptPeriodosNomesEnriquecimento.DataSource        = periodos;
                rptPeriodosNomesEI.DataSource                    = periodos;
                rptPeriodosColunasFixasEnriquecimento.DataSource = periodos;
                rptPeriodosColunasFixasEI.DataSource             = periodos;
                rptPeriodosNomes.DataBind();
                rptPeriodosColunasFixas.DataBind();
                rptPeriodosNomesEnriquecimento.DataBind();
                rptPeriodosNomesEI.DataBind();
                rptPeriodosColunasFixasEnriquecimento.DataBind();
                rptPeriodosColunasFixasEI.DataBind();

                #endregion Períodos

                #region Disciplinas

                bool controleOrdemDisciplinas = ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.CONTROLAR_ORDEM_DISCIPLINAS,
                                                                                                           __SessionWEB.__UsuarioWEB.Usuario.ent_id);

                var todasDisciplinas = (from DadosLancamentoFreqExterna item in lDadosAluno
                                        where item.tur_id > 0 && item.tud_tipo != (byte)TurmaDisciplinaTipo.Experiencia
                                        orderby item.tud_tipo, item.Disciplina
                                        group item by item.Disciplina into g
                                        select new
                {
                    tud_id = g.First().tud_id
                    ,
                    Disciplina = g.Key
                    ,
                    tds_ordem = g.First().tds_ordem
                    ,
                    tud_tipo = g.First().tud_tipo
                    ,
                    regencia = g.First().tud_tipo == (byte)TurmaDisciplinaTipo.Regencia ||
                               g.First().tud_tipo == (byte)TurmaDisciplinaTipo.ComponenteRegencia ||
                               (g.First().tud_tipo == (byte)TurmaDisciplinaTipo.DocenteEspecificoComplementacaoRegencia &&
                                controleOrdemDisciplinas) ? 1 : 2
                    ,
                    enriquecimentoCurricular = g.First().EnriquecimentoCurricular
                    ,
                    frequencias = (from per in periodos.ToList()
                                   orderby per.tpc_ordem
                                   select new
                    {
                        per.tpc_id
                        ,
                        frequencia = (from DadosLancamentoFreqExterna bFrequencia in lDadosAluno
                                      where bFrequencia.Disciplina == g.Key &&
                                      bFrequencia.tpc_id == per.tpc_id
                                      select new
                        {
                            bFrequencia.numeroAulas
                            ,
                            bFrequencia.numeroFaltas
                            ,
                            numeroAulasPrevistas = bFrequencia.possuiLancamentoAulasPrevistas ?
                                                   bFrequencia.numeroAulasPrevistas.ToString() : "-"
                            ,
                            bFrequencia.possuiLancamentoAulasPrevistas
                            ,
                            tud_Tipo = g.First().tud_tipo
                            ,
                            bFrequencia.tud_id
                            ,
                            bFrequencia.mtu_id
                            ,
                            bFrequencia.mtd_id
                            ,
                            bFrequencia.tud_idRegencia
                            ,
                            bFrequencia.mtd_idRegencia
                            ,
                            afx_id = bFrequencia.ID
                            ,
                            enriquecimentoCurricular = bFrequencia.EnriquecimentoCurricular
                        }).FirstOrDefault()
                    })
                });

                var experiencias = (from DadosLancamentoFreqExterna item in lDadosAluno
                                    where item.tur_id > 0 && item.tud_tipo == (byte)TurmaDisciplinaTipo.Experiencia
                                    orderby item.tud_tipo, item.Disciplina
                                    group item by item.Disciplina into g
                                    select new
                {
                    tud_id = g.First().tud_id
                    ,
                    Disciplina = g.Key
                    ,
                    tds_ordem = g.First().tds_ordem
                    ,
                    tud_tipo = g.First().tud_tipo
                    ,
                    regencia = g.First().tud_tipo == (byte)TurmaDisciplinaTipo.Regencia ||
                               g.First().tud_tipo == (byte)TurmaDisciplinaTipo.ComponenteRegencia ||
                               (g.First().tud_tipo == (byte)TurmaDisciplinaTipo.DocenteEspecificoComplementacaoRegencia &&
                                controleOrdemDisciplinas) ? 1 : 2
                    ,
                    enriquecimentoCurricular = g.First().EnriquecimentoCurricular
                    ,
                    frequencias = (from per in periodos.ToList()
                                   orderby per.tpc_ordem
                                   select new
                    {
                        per.tpc_id
                        ,
                        frequencia = (from DadosLancamentoFreqExterna bFrequencia in lDadosAluno
                                      where bFrequencia.Disciplina == g.Key &&
                                      bFrequencia.tpc_id == per.tpc_id
                                      select new
                        {
                            bFrequencia.numeroAulas
                            ,
                            bFrequencia.numeroFaltas
                            ,
                            numeroAulasPrevistas = bFrequencia.possuiLancamentoAulasPrevistas ?
                                                   bFrequencia.numeroAulasPrevistas.ToString() : "-"
                            ,
                            bFrequencia.possuiLancamentoAulasPrevistas
                            ,
                            tud_Tipo = g.First().tud_tipo
                            ,
                            bFrequencia.tud_id
                            ,
                            bFrequencia.mtu_id
                            ,
                            bFrequencia.mtd_id
                            ,
                            bFrequencia.tud_idRegencia
                            ,
                            bFrequencia.mtd_idRegencia
                            ,
                            afx_id = bFrequencia.ID
                            ,
                            enriquecimentoCurricular = bFrequencia.EnriquecimentoCurricular
                        }).FirstOrDefault()
                    })
                });

                var disciplinas = (from item in todasDisciplinas
                                   where !item.enriquecimentoCurricular //Retira as que são de enriquecimento curricular
                                   select item
                                   );

                // Realiza uma ordenação posterior em que so importa se a disciplina é ou nao regencia/componente da regencia para manter o agrupamento
                var dispOrdenadas = from item in disciplinas
                                    orderby item.regencia, controleOrdemDisciplinas ? item.tds_ordem.ToString() : item.Disciplina
                select item;

                // "Agrupa" a frequência das disciplinas componentes e complementares à regência.
                QtComponenteRegencia = dispOrdenadas.Count(p => ((byte)TurmaDisciplinaTipo.ComponenteRegencia == p.tud_tipo || (byte)TurmaDisciplinaTipo.DocenteEspecificoComplementacaoRegencia == p.tud_tipo));

                // "Agrupa" a frequência das disciplinas
                QtComponentes = dispOrdenadas.Count();

                if (!ensinoInfantil)
                {
                    divDisciplinas.Visible    = true;
                    rptDisciplinas.DataSource = dispOrdenadas;
                    rptDisciplinas.DataBind();
                }
                else
                {
                    divDisciplinas.Visible = false;
                }

                #endregion Disciplinas

                #region Disciplinas de enriquecimento curricular e experiências

                var disciplinasEnriquecimentoCurricular = (from item in todasDisciplinas
                                                           where item.enriquecimentoCurricular //Verifica se são de enriquecimento curricular
                                                           select item
                                                           );

                if (disciplinasEnriquecimentoCurricular.Count() > 0 || experiencias.Count() > 0)
                {
                    divEnriquecimentoCurricular.Visible = true;

                    // Realiza uma ordenação posterior em que so importa se a disciplina é ou nao regencia/componente da regencia para manter o agrupamento
                    var dispOrdenadasEnriquecimento = from item in disciplinasEnriquecimentoCurricular
                                                      orderby item.regencia, controleOrdemDisciplinas ? item.tds_ordem.ToString() : item.Disciplina
                    select item;


                    rptDisciplinasEnriquecimentoCurricular.DataSource = dispOrdenadasEnriquecimento;
                    rptDisciplinasEnriquecimentoCurricular.DataBind();

                    rptDisciplinasExperiencias.DataSource = experiencias.OrderBy(p => controleOrdemDisciplinas ? p.tds_ordem.ToString() : p.Disciplina);
                    rptDisciplinasExperiencias.DataBind();
                }
                else
                {
                    divEnriquecimentoCurricular.Visible = false;
                }

                #endregion Disciplinas de enriquecimento curricular

                #region Ensino Infantil

                if (ensinoInfantil)
                {
                    divEnsinoInfantil.Visible = true;

                    rptDisciplinasEnsinoInfantil.DataSource = dispOrdenadas;
                    rptDisciplinasEnsinoInfantil.DataBind();
                }
                else
                {
                    divEnsinoInfantil.Visible = false;
                }

                #endregion
            }
        }
Ejemplo n.º 18
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!HttpContext.Current.User.Identity.IsAuthenticated)
                {
                    string provider = IdentitySettingsConfig.IDSSettings.AuthenticationType;
                    Context.GetOwinContext().Authentication.Challenge(provider);
                }
                else
                {
                    if (!UserIsAuthenticated())
                    {
                        throw new Exception("Usuário não encontrado!");
                    }

                    string prefixoRESP = ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.PREFIXO_LOGIN_RESPONSAVEL_AREA_ALUNO, __SessionWEB.__UsuarioWEB.Usuario.ent_id);
                    bool   responsavel = __SessionWEB.__UsuarioWEB.Usuario.usu_login.Contains(prefixoRESP);

                    // Se selecionou para logar como responsável, verifica se esse ele é responsável por um aluno só,
                    //  ou caso tenha mais, redireciona para uma tela de selação de alunos
                    if (responsavel)
                    {
                        __SessionWEB.__UsuarioWEB.responsavel = true;
                        string prefixoAluno = ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.PREFIXO_LOGIN_ALUNO_AREA_ALUNO, __SessionWEB.__UsuarioWEB.Usuario.ent_id);
                        //Troca o prefixo de responsável por aluno
                        var regex      = new Regex(Regex.Escape(prefixoRESP));
                        var loginAluno = regex.Replace(__SessionWEB.__UsuarioWEB.Usuario.usu_login, prefixoAluno, 1);

                        SYS_Usuario entityUsuarioAluno = new SYS_Usuario
                        {
                            ent_id    = __SessionWEB.__UsuarioWEB.Usuario.ent_id,
                            usu_login = loginAluno
                        };

                        SYS_UsuarioBO.GetSelectBy_ent_id_usu_login(entityUsuarioAluno);
                        __SessionWEB.__UsuarioWEB.pes_idAluno = entityUsuarioAluno.pes_id;

                        DataTable dtAlunosDoResponsavel = ACA_AlunoResponsavelBO.SelecionaAlunosPorResponsavel(__SessionWEB.__UsuarioWEB.Usuario.pes_id);
                        Session["Pes_Id_Responsavel"]      = __SessionWEB.__UsuarioWEB.Usuario.pes_id.ToString();
                        Session["Qtde_Filhos_Responsavel"] = dtAlunosDoResponsavel.Rows.Count;
                        if (dtAlunosDoResponsavel.Rows.Count > 1)
                        {
                            RedirecionarLogin(true);
                            return;
                        }
                    }
                    RedirecionarLogin(false);
                    return;
                }
            }
            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 entrar no sistema.", UtilBO.TipoMensagem.Erro);
            }
        }
Ejemplo n.º 19
0
        /// <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);
        }
Ejemplo n.º 20
0
        /// <summary>
        /// Carrega uma nova avaliação ou uma avaliação para edição.
        /// </summary>
        /// <param name="tur_id"></param>
        /// <param name="tud_id"></param>
        /// <param name="tnt_id"></param>
        /// <param name="tud_tipo"></param>
        /// <param name="permiteEditar"></param>
        /// <param name="tpc_id"></param>
        /// <param name="cal_id"></param>
        /// <param name="tdt_posicao"></param>
        /// <param name="cur_id"></param>
        /// <param name="crr_id"></param>
        /// <param name="crp_id"></param>
        public void CarregarAvaliacao(long tur_id
                                      , long tud_id
                                      , int tnt_id
                                      , byte tur_tipo
                                      , byte tud_tipo
                                      , bool permiteEditar
                                      , int tpc_id
                                      , int cal_id
                                      , byte tdt_posicao
                                      , int cur_id
                                      , int crr_id
                                      , int crp_id)
        {
            try
            {
                VS_tud_id = tud_id;
                VS_tnt_id = tnt_id;

                LimparCampos();
                HabilitarCampos(permiteEditar);
                lblComponenteAtAvaliativa.Visible  = ddlComponenteAtAvaliativa.Visible = tud_tipo == (byte)ACA_CurriculoDisciplinaTipo.Regencia || tud_tipo == (byte)ACA_CurriculoDisciplinaTipo.ComponenteRegencia;
                chkAtividadeExclusiva.Visible      = ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.PERMITIR_ATIVIDADES_AVALIATIVAS_EXCLUSIVAS, __SessionWEB.__UsuarioWEB.Usuario.ent_id);
                fdsHabilidadesRelacionadas.Visible = tur_tipo != (byte)TUR_TurmaTipo.EletivaAluno && ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.RELACIONAR_HABILIDADES_AVALIACAO, __SessionWEB.__UsuarioWEB.Usuario.ent_id);
                CarregarHabilidadesAvaliacao(tur_id, tpc_id, cal_id, tdt_posicao, cur_id, crr_id, crp_id);
                UCComboTipoAtividadeAvaliativa.MostrarMessageOutros = false;

                if (tnt_id > 0)
                {
                    CLS_TurmaNota entity = new CLS_TurmaNota
                    {
                        tud_id = Convert.ToInt64(VS_tud_id),
                        tnt_id = Convert.ToInt32(VS_tnt_id)
                    };
                    CLS_TurmaNotaBO.GetEntity(entity);

                    UCComboTipoAtividadeAvaliativa.CarregaTipoAtividadeAvaliativaAtivosMaisInativo(true, entity.tav_id, VS_tud_id);
                    UCComboTipoAtividadeAvaliativa.PermiteEditar = false;

                    if (tud_tipo == (byte)ACA_CurriculoDisciplinaTipo.ComponenteRegencia)
                    {
                        if (entity.tud_id > 0)
                        {
                            IEnumerable <string> x = from ListItem lItem in ddlComponenteAtAvaliativa.Items
                                                     where lItem.Value.Split(';')[0].Equals(tur_id.ToString()) &&
                                                     lItem.Value.Split(';')[1].Equals(entity.tud_id.ToString())
                                                     select lItem.Value;
                            if (x.Count() > 0)
                            {
                                ddlComponenteAtAvaliativa.SelectedValue = x.First();
                            }
                        }
                        ddlComponenteAtAvaliativa.Enabled = false;
                    }

                    txtData.Text = entity.tnt_data == new DateTime() ? string.Empty : entity.tnt_data.ToString();
                    UCComboTipoAtividadeAvaliativa.Valor = entity.tav_id;
                    txtNomeAtividade.Text         = entity.tnt_nome;
                    txtConteudoAtividade.Text     = entity.tnt_descricao;
                    chkAtividadeExclusiva.Checked = entity.tnt_exclusiva;
                }
                else
                {
                    UCComboTipoAtividadeAvaliativa.CarregarTipoAtividadeAvaliativa(true, VS_tud_id);
                    UCComboTipoAtividadeAvaliativa.Valor = -1;
                }
                updAtividade.Update();

                if (txtData.Visible)
                {
                    txtData.Focus();
                }
                else if (ddlComponenteAtAvaliativa.Visible)
                {
                    ddlComponenteAtAvaliativa.Focus();
                }
                else
                {
                    UCComboTipoAtividadeAvaliativa.Focus();
                }
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMessageAtividade.Text = UtilBO.GetErroMessage(GetGlobalResourceObject("UserControl", "LancamentoAvaliacao.UCCadastroAvaliacao.lblMessageAtividade.ErroCarregar").ToString(), UtilBO.TipoMensagem.Erro);
            }
        }
Ejemplo n.º 21
0
        protected void _btnSalvar_Click(object sender, EventArgs e)
        {
            if (ValidarAlterarSenha())
            {
                try
                {
                    // Carrega os dados do usuário
                    SYS_Usuario entityUsuario = new SYS_Usuario
                    {
                        ent_id = UCComboEntidade1.Valor
                        ,
                        usu_login = (RadioButtonList1.SelectedIndex == 0
                                        ? ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.PREFIXO_LOGIN_ALUNO_AREA_ALUNO, Guid.Empty)
                                        : ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.PREFIXO_LOGIN_RESPONSAVEL_AREA_ALUNO, Guid.Empty)) + txtLogin.Text
                    };
                    SYS_UsuarioBO.GetSelectBy_ent_id_usu_login(entityUsuario);

                    // Configura criptografia da senha
                    eCriptografa criptografia = (eCriptografa)Enum.Parse(typeof(eCriptografa), Convert.ToString(entityUsuario.usu_criptografia), true);
                    if (!Enum.IsDefined(typeof(eCriptografa), criptografia))
                    {
                        criptografia = eCriptografa.TripleDES;
                    }

                    // Verifica a senha do usuário comparando com a senha atual
                    if (!UtilBO.EqualsSenha(entityUsuario.usu_senha, UtilBO.CriptografarSenha(_txtSenhaAtual.Text, criptografia), criptografia))
                    {
                        string mensagemSenhaAtualInvalida = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemSenhaAtualIncorreta);

                        _lblMessageAlterarSenha.Text = UtilBO.GetErroMessage(string.IsNullOrEmpty(mensagemSenhaAtualInvalida) ? "Senha atual inválida." : mensagemSenhaAtualInvalida, UtilBO.TipoMensagem.Erro);
                        _updAlterarSenha.Update();

                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Erro ao alterar senha. Senha atual inválida.");
                    }
                    else
                    {
                        // Atualiza dados do usuário
                        entityUsuario.usu_situacao      = 1;
                        entityUsuario.usu_senha         = _txtNovaSenha.Text;
                        entityUsuario.usu_dataAlteracao = DateTime.Now;
                        SYS_UsuarioBO.AlterarSenhaAtualizarUsuario(entityUsuario, entityUsuario.usu_integracaoAD == (byte)SYS_UsuarioBO.eIntegracaoAD.IntegradoADReplicacaoSenha);

                        // Configura usuário na Session
                        LoadSession(entityUsuario);
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Senha alterada com sucesso.");

                        string mensagemSenhaAlterada = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.LoginMensagemSenhaAlteradaSucesso);

                        __SessionWEB.PostMessages = UtilBO.GetErroMessage(string.IsNullOrEmpty(mensagemSenhaAlterada) ? "Senha alterada com sucesso." : mensagemSenhaAlterada, UtilBO.TipoMensagem.Sucesso);

                        // Autenticação SAML.
                        SYS_UsuarioBO.AutenticarUsuario(entityUsuario);

                        // Configura usuário na Session
                        LoadSession(entityUsuario);

                        // Se selecionou para logar como responsável, verifica se esse ele é responsável por um aluno só,
                        //  ou caso tenha mais, redireciona para uma tela de selação de alunos
                        if (RadioButtonList1.SelectedIndex == 1)
                        {
                            DataTable dtAlunosDoResponsavel = ACA_AlunoResponsavelBO.SelecionaAlunosPorResponsavel(entityUsuario.pes_id);

                            Session["Pes_Id_Responsavel"] = entityUsuario.pes_id.ToString();

                            Session["Qtde_Filhos_Responsavel"] = dtAlunosDoResponsavel.Rows.Count;

                            if (dtAlunosDoResponsavel.Rows.Count > 1)
                            {
                                //Session["Pes_Id_Responsavel"] = entityUsuario.pes_id.ToString();
                                RedirecionarLogin(true);
                                return;
                            }
                        }

                        RedirecionarLogin(false);
                    }
                }
                catch (DuplicateNameException ex)
                {
                    lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
                    ScriptManager.RegisterClientScriptBlock(this, GetType(), "AlterarSenhaErro", "$('#divAlterarSenha').dialog('close');", true);
                }
                catch (ArgumentException ex)
                {
                    lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
                    ScriptManager.RegisterClientScriptBlock(this, GetType(), "AlterarSenhaErro", "$('#divAlterarSenha').dialog('close');", true);
                }
                catch (ValidationException ex)
                {
                    lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
                    ScriptManager.RegisterClientScriptBlock(this, GetType(), "AlterarSenhaErro", "$('#divAlterarSenha').dialog('close');", true);
                }
                catch (Exception ex)
                {
                    ApplicationWEB._GravaErro(ex);

                    lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar alterar a senha do usuário.", UtilBO.TipoMensagem.Erro);
                    ScriptManager.RegisterClientScriptBlock(this, GetType(), "AlterarSenhaErro", "$('#divAlterarSenha').dialog('close');", true);
                }
            }
            else
            {
                _updAlterarSenha.Update();
            }
        }
Ejemplo n.º 22
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                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);
                        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 = TUR_TurmaBO.SelecionaPorFiltrosMinhasTurmas
                                                   (UCControleTurma1.VS_esc_id
                                                   , VS_EntitiesControleTurma.turma.uni_id
                                                   , VS_EntitiesControleTurma.curso.cur_id
                                                   , VS_EntitiesControleTurma.curriculo.crr_id
                                                   , VS_EntitiesControleTurma.curriculoPeriodo.crp_id
                                                   , __SessionWEB.__UsuarioWEB.Usuario.ent_id
                                                   , VS_EntitiesControleTurma.turma.tur_codigo
                                                   , 0
                                                   , 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);
                        }

                        ACA_FormatoAvaliacao formatoAvaliacao = TUR_TurmaBO.SelecionaFormatoAvaliacao(UCControleTurma1.VS_tur_id);
                        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);
                                }
                            }

                            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, UCControleTurma1.VS_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/jsUCSelecaoDisciplinaCompartilhada.js"));
                }

                UCNavegacaoTelaPeriodo.OnCarregaDadosTela += CarregaSessionPaginaRetorno;
                UCControleTurma1.IndexChanged              = uccTurmaDisciplina_IndexChanged;
                UCNavegacaoTelaPeriodo.OnAlteraPeriodo    += CarregarTela;
                UCSelecaoDisciplinaCompartilhada1.SelecionarDisciplina      += UCSelecaoDisciplinaCompartilhada1_SelecionarDisciplina;
                UCControleTurma1.chkTurmasNormaisMultisseriadasIndexChanged += UCControleTurma_chkTurmasNormaisMultisseriadasIndexChanged;
                UCFechamento.AbrirRelatorioRP  += UCFechamento_AbrirRelatorioRP;
                UCFechamento.AbrirRelatorioAEE += UCFechamento_AbrirRelatorioAEE;

                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);
            }
        }
Ejemplo n.º 23
0
        protected void Page_Load(object sender, EventArgs e)
        {
            ScriptManager sm = ScriptManager.GetCurrent(this);

            if (sm != null)
            {
                sm.Scripts.Add(new ScriptReference(ArquivoJS.Json));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.JQueryValidation));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.JqueryMask));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.MascarasCampos));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.CamposData));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.MsgConfirmBtn));
                sm.Scripts.Add(new ScriptReference("~/Includes/jsBuscaDocumentosAluno.js"));
            }

            UCBuscaDocenteTurma._VS_AnosAnteriores       = true;
            UCBuscaDocenteTurma.IndexChanged_Calendario += UCBuscaDocenteTurma_IndexChanged_Calendario;
            UCBuscaDocenteTurma.IndexChanged_Turma      += UCBuscaDocenteTurma_IndexChanged_Turma;

            //btnGerarRelatorio.Attributes.Add("onclick", String.Format("javascript: return ExtensaoDosFiltros('{0}');", __SessionWEB.__UsuarioWEB.Usuario.ent_id));
            //btnGerarRelatorioCima.Attributes.Add("onclick", String.Format("javascript: return ExtensaoDosFiltros('{0}');", __SessionWEB.__UsuarioWEB.Usuario.ent_id));

            if (!IsPostBack)
            {
                _VS_PesquisaSalva = false;
                //_VS_SelecionarTodos = false;

                try
                {
                    string message = __SessionWEB.PostMessages;
                    if (!String.IsNullOrEmpty(message))
                    {
                        lblMessage.Text           = message;
                        __SessionWEB.PostMessages = String.Empty;
                    }

                    if (!__SessionWEB.__UsuarioWEB.GrupoPermissao.grp_consultar)
                    {
                        updPesquisa.Visible = false;
                        lblMessage.Text     = UtilBO.GetErroMessage("Você não possui permissão para acessar a página solicitada.", UtilBO.TipoMensagem.Alerta);
                    }

                    // Inserção do título do relatório
                    lgdTitulo.InnerText = Modulo.mod_nome;

                    Inicializar();

                    Page.Form.DefaultButton = btnPesquisar.UniqueID;

                    // quantidade de itens por página
                    string qtItensPagina = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.QT_ITENS_PAGINACAO);
                    ddlQtPaginado.SelectedValue = string.IsNullOrEmpty(qtItensPagina) ? ApplicationWEB._Paginacao.ToString() : qtItensPagina;

                    // ******************************

                    // Carrega o nome referente ao parametro de matricula estadual.
                    string nomeMatriculaEstadual = ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.MATRICULA_ESTADUAL
                                                                                                      , __SessionWEB.__UsuarioWEB.Usuario.ent_id);
                    bool mostraMatriculaEstadual = !string.IsNullOrEmpty(nomeMatriculaEstadual);

                    grvDocumentoAluno.Columns[columnMatricula].Visible            = !mostraMatriculaEstadual;
                    grvDocumentoAluno.Columns[columnMatriculaEstadual].Visible    = mostraMatriculaEstadual;
                    grvDocumentoAluno.Columns[columnMatriculaEstadual].HeaderText = nomeMatriculaEstadual;

                    UCCamposBuscaAluno1.MostrarMatriculaEstadual = mostraMatriculaEstadual;
                    UCCamposBuscaAluno1.TituloMatriculaEstadual  = nomeMatriculaEstadual;

                    grvDocumentoAluno.Columns[cellCurso].HeaderText = GestaoEscolarUtilBO.nomePadraoCurso(__SessionWEB.__UsuarioWEB.Usuario.ent_id);

                    //fdsResultados.Style.Add("display", "none");
                    fdsResultados.Visible = false;

                    CarregaBusca();

                    // adiciona atributo que controla se estao todas as paginas selecionavas
                    //divSeleciona.Style.Add("display", "inline");
                    //hdnSelecionaGrid.Value = "false";
                }
                catch (Exception ex)
                {
                    ApplicationWEB._GravaErro(ex);
                    lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar o sistema.", UtilBO.TipoMensagem.Erro);
                }
            }
        }
Ejemplo n.º 24
0
        /// <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);
        }
Ejemplo n.º 25
0
 /// <summary>
 /// Retorna o parametro academico.
 /// </summary>
 public static int GetQuantidadeMaximaFilaFechamento()
 {
     return(ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.QUANTIDADE_THREADS_FILA_FECHAMENTO, new Guid()));
 }
Ejemplo n.º 26
0
        /// <summary>
        /// Processa os protocolos informados.
        /// </summary>
        /// <param name="ltProtocolo">Lista de protocolos em processamento.</param>
        /// <param name="tentativasProtocolo">Quantidade máxima de tentativas para processar protocolos.</param>
        /// <returns></returns>
        public static bool ProcessarProtocoloCompensacao(List <DCL_Protocolo> ltProtocolo, int tentativasProtocolo)
        {
            DataTable dtProtocolo = DCL_Protocolo.TipoTabela_Protocolo();

            foreach (DCL_Protocolo protocolo in ltProtocolo.Where(pro => pro.pro_tentativa > tentativasProtocolo))
            {
                protocolo.pro_statusObservacao = String.Format("Número máximo ({0}) de tentativas de processamento deste protocolo foram excedidas. Erro: {1}"
                                                               , tentativasProtocolo, protocolo.pro_statusObservacao);
                protocolo.pro_status     = (byte)DCL_ProtocoloBO.eStatus.ProcessadoComErrosValidacao;
                protocolo.tur_id         = -1;
                protocolo.tud_id         = -1;
                protocolo.tau_id         = -1;
                protocolo.pro_qtdeAlunos = -1;
                dtProtocolo.Rows.Add(DCL_ProtocoloBO.ProtocoloToDataRow(protocolo, dtProtocolo.NewRow()));
            }

            foreach (DCL_Protocolo protocolo in ltProtocolo.Where(pro => pro.pro_tentativa <= tentativasProtocolo))
            {
                // Abre uma transação para cada protocolo dentro do laço.
                // Assim é possível processar o próximo protocolo, mesmo que o atual esteja com erro.
                TalkDBTransaction bancoSincronizacao = new CLS_TurmaAulaDAO()._Banco.CopyThisInstance();
                bancoSincronizacao.Open(IsolationLevel.ReadCommitted);
                bool processou = false;

                try
                {
                    if (protocolo.pro_tentativa <= tentativasProtocolo)
                    {
                        JObject json = JObject.Parse(protocolo.pro_pacote);

                        JArray compensacoes = ((JArray)json.SelectToken("CompensacaoFalta") ?? new JArray());

                        foreach (JObject compensacao in compensacoes)
                        {
                            long tud_id = Convert.ToInt64(compensacao.SelectToken("tud_id"));

                            ACA_FormatoAvaliacao formatoAvaliacao = ACA_FormatoAvaliacaoBO.CarregarPorTud(tud_id);
                            ACA_CalendarioAnual  cal = ACA_CalendarioAnualBO.SelecionaPorTurmaDisciplina(tud_id, bancoSincronizacao);

                            // apenas protocolos de turmas ativas e do ano letivo corrente podem ser processados
                            if (!DCL_ProtocoloBO.PodeProcessarProtocolo(0, tud_id))
                            {
                                throw new ValidationException("O protocolo pertence a uma turma que não esta ativa ou de um ano letivo diferente do corrente, não pode ser processado!");
                            }

                            int cpa_id = Convert.ToInt32(compensacao.SelectToken("cpa_id"));
                            int quantidadeAulasCompensadas = Convert.ToInt32(compensacao.SelectToken("cpa_quantidadeAulasCompensadas"));

                            DateTime cpa_dataAlteracao = Convert.ToDateTime(compensacao.SelectToken("cpa_dataAlteracao"));

                            CLS_CompensacaoAusencia compensacaoAusencia;

                            long pro_protocoloCriacao = (long)(compensacao.GetValue("pro_protocolo", StringComparison.OrdinalIgnoreCase) ?? "0");
                            if (cpa_id > 0 || pro_protocoloCriacao <= 0)
                            {
                                compensacaoAusencia = new CLS_CompensacaoAusencia
                                {
                                    tud_id = tud_id,
                                    cpa_id = cpa_id
                                };
                                GetEntity(compensacaoAusencia, bancoSincronizacao);
                            }
                            else
                            {
                                List <DCL_Protocolo> protocoloCriacaoCompensacao = DCL_ProtocoloBO.SelectBy_Protocolos(pro_protocoloCriacao.ToString());
                                Guid pro_idCriacao = protocoloCriacaoCompensacao.Count() > 0 ? protocoloCriacaoCompensacao[0].pro_id : Guid.Empty;
                                compensacaoAusencia = SelectByDisciplinaProtocolo(tud_id, pro_idCriacao);
                                if (!compensacaoAusencia.IsNew)
                                {
                                    compensacaoAusencia.pro_id = protocolo.pro_id;
                                }
                            }

                            if (compensacaoAusencia.IsNew)
                            {
                                compensacaoAusencia.cpa_id          = -1;
                                compensacaoAusencia.cpa_dataCriacao = DateTime.Now;
                                compensacaoAusencia.pro_id          = protocolo.pro_id;
                            }
                            else if (!compensacaoAusencia.IsNew && (cpa_dataAlteracao < compensacaoAusencia.cpa_dataAlteracao))
                            {
                                throw new ValidationException("Compensação existe e foi alterada mais recentemente.");
                            }

                            compensacaoAusencia.tpc_id = Convert.ToInt32(compensacao.SelectToken("tpc_id"));
                            compensacaoAusencia.cpa_quantidadeAulasCompensadas = quantidadeAulasCompensadas;
                            compensacaoAusencia.cpa_atividadesDesenvolvidas    = Convert.ToString(compensacao.SelectToken("cpa_atividadesDesenvolvidas"));
                            compensacaoAusencia.cpa_situacao      = Convert.ToInt16(compensacao.SelectToken("cpa_situacao"));
                            compensacaoAusencia.cpa_dataAlteracao = DateTime.Now;

                            if (compensacaoAusencia.cpa_situacao != 3)
                            {
                                JArray arrayAlunos = ((JArray)compensacao.SelectToken("AlunosCompensados") ?? new JArray());
                                List <CLS_CompensacaoAusenciaAluno> listaAlunos = new List <CLS_CompensacaoAusenciaAluno>();
                                foreach (JObject jsonAluno in arrayAlunos)
                                {
                                    int alu_id = Convert.ToInt32(jsonAluno.SelectToken("alu_id"));
                                    MTR_MatriculaTurmaDisciplina matricula = MTR_MatriculaTurmaDisciplinaBO.BuscarPorAlunoTurmaDisciplina(alu_id, tud_id, bancoSincronizacao);

                                    CLS_CompensacaoAusenciaAluno compensacaoAluno = new CLS_CompensacaoAusenciaAluno
                                    {
                                        tud_id = tud_id,
                                        cpa_id = compensacaoAusencia.cpa_id,
                                        alu_id = alu_id,
                                        mtu_id = matricula.mtu_id,
                                        mtd_id = matricula.mtd_id
                                    };

                                    CLS_CompensacaoAusenciaAlunoBO.GetEntity(compensacaoAluno);

                                    if (compensacaoAluno.IsNew)
                                    {
                                        compensacaoAluno.caa_dataCriacao = DateTime.Now;
                                    }

                                    compensacaoAluno.caa_situacao      = 1;
                                    compensacaoAluno.caa_dataAlteracao = DateTime.Now;


                                    listaAlunos.Add(compensacaoAluno);
                                }

                                processou = Save(compensacaoAusencia, listaAlunos, formatoAvaliacao.fav_fechamentoAutomatico, cal.cal_id, bancoSincronizacao);
                            }
                            else
                            {
                                // persistindo os dados.
                                processou = true;
                                // Caso o fechamento seja automático, grava na fila de processamento.
                                if (formatoAvaliacao.fav_fechamentoAutomatico && compensacaoAusencia.tpc_id != ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_PERIODO_CALENDARIO_RECESSO, new Guid()))
                                {
                                    processou &= CLS_AlunoFechamentoPendenciaBO.SalvarFilaFrequencia(compensacaoAusencia.tud_id, compensacaoAusencia.tpc_id, bancoSincronizacao);
                                }
                                processou &= Delete(compensacaoAusencia, bancoSincronizacao);
                            }
                        }
                    }


                    // Processou com sucesso.
                    protocolo.pro_statusObservacao = String.Format("Protocolo processado com sucesso ({0}).",
                                                                   DateTime.Now.ToString("dd/MM/yyyy HH:mm"));
                    protocolo.pro_status = (byte)DCL_ProtocoloBO.eStatus.ProcessadoComSucesso;
                    dtProtocolo.Rows.Add(DCL_ProtocoloBO.ProtocoloToDataRow(protocolo, dtProtocolo.NewRow()));
                }
                catch (ArgumentException ex)
                {
                    // Se ocorrer uma excessão de validação, guardar novo status.
                    protocolo.pro_status           = (byte)DCL_ProtocoloBO.eStatus.ProcessadoComErrosValidacao;
                    protocolo.pro_statusObservacao = ex.Message;
                    protocolo.tur_id         = -1;
                    protocolo.tud_id         = -1;
                    protocolo.tau_id         = -1;
                    protocolo.pro_qtdeAlunos = -1;
                    dtProtocolo.Rows.Add(DCL_ProtocoloBO.ProtocoloToDataRow(protocolo, dtProtocolo.NewRow()));
                    bancoSincronizacao.Close(ex);
                }
                catch (ValidationException ex)
                {
                    // Se ocorrer uma excessão de validação, guardar novo status.
                    protocolo.pro_status           = (byte)DCL_ProtocoloBO.eStatus.ProcessadoComErrosValidacao;
                    protocolo.pro_statusObservacao = ex.Message;
                    protocolo.tur_id         = -1;
                    protocolo.tud_id         = -1;
                    protocolo.tau_id         = -1;
                    protocolo.pro_qtdeAlunos = -1;
                    dtProtocolo.Rows.Add(DCL_ProtocoloBO.ProtocoloToDataRow(protocolo, dtProtocolo.NewRow()));
                    bancoSincronizacao.Close(ex);
                }
                catch (Exception ex)
                {
                    // Se ocorrer uma excessão de erro, guardar novo status.
                    protocolo.pro_status           = (byte)DCL_ProtocoloBO.eStatus.ProcessadoComErro;
                    protocolo.pro_statusObservacao = ex.Message;
                    protocolo.tur_id         = -1;
                    protocolo.tud_id         = -1;
                    protocolo.tau_id         = -1;
                    protocolo.pro_qtdeAlunos = -1;
                    dtProtocolo.Rows.Add(DCL_ProtocoloBO.ProtocoloToDataRow(protocolo, dtProtocolo.NewRow()));
                    bancoSincronizacao.Close(ex);
                }
                finally
                {
                    if (bancoSincronizacao.ConnectionIsOpen)
                    {
                        bancoSincronizacao.Close();
                    }
                }
            }

            DCL_ProtocoloBO.AtualizaProtocolos(dtProtocolo);

            return(true);
        }
Ejemplo n.º 27
0
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!IsPostBack)
            {
                //recebe valores da sessão e grava em variáveis
                string tipoRel       = CFG_RelatorioBO.CurrentReportID;
                string parametrosRel = CFG_RelatorioBO.CurrentReportParameters;

                if (!String.IsNullOrEmpty(tipoRel))
                {
                    this.QueryStringUrlReports = "tipRel=" + HttpUtility.UrlEncode(tipoRel) + "&params=" + HttpUtility.UrlEncode(parametrosRel);

                    //remove os valores da sessão
                    CFG_RelatorioBO.ClearSessionReportParameters();
                    //Recebe os dados do relatório
                    CFG_Relatorio rpt = new CFG_Relatorio()
                    {
                        rlt_id = int.Parse(tipoRel)
                    };
                    CFG_RelatorioBO.GetEntity(rpt);
                    if (rpt.IsNew)
                    {
                        throw new ValidationException("Relatório não encontrado.");
                    }
                    //Configurações do Relatório
                    CFG_ServidorRelatorio rptServer = CFG_ServidorRelatorioBO.CarregarServidorRelatorioPorEntidade(
                        this.__SessionWEB.__UsuarioWEB.Usuario.ent_id
                        , ApplicationWEB.AppMinutosCacheLongo
                        );

                    if (rptServer.IsNew)
                    {
                        throw new ValidationException("O servidor de relatório não está configurado.");
                    }

                    VerificaAtributosReport(rpt.rlt_id);

                    //Carrega os parâmetros do relatório
                    MSReportServerParameters param = new MSReportServerParameters(parametrosRel);

                    //Verifica se está Habilitada a impressão sem activeX
                    bool bHabilitarImpressaoRel = ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.HABILITA_IMPRESSAO_RELATORIO
                                                                                                             , __SessionWEB.__UsuarioWEB.Usuario.ent_id);

                    this.HabilitarImpressaoRel      = bHabilitarImpressaoRel;
                    divPdf.Visible                  = bHabilitarImpressaoRel;
                    ReportViewerRel.ShowPrintButton = !bHabilitarImpressaoRel;

                    //Verifica se usuário vizualizará algum relatório da aba 'DOCUMENTOS'
                    if (_VS_TipoRelatorio == tipoRelatorio.Documento)
                    {
                        // Habilita ou desabilita, conforme configuração do parâmetro HABILITA_EXPORTACAO_IMPRESSAO_DOCUMENTOS, se vai ter botão de exportar documento no ReportView.
                        ReportViewerRel.ShowExportControls = ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.HABILITA_EXPORTACAO_IMPRESSAO_DOCUMENTOS
                                                                                                                        , __SessionWEB.__UsuarioWEB.Usuario.ent_id);
                    }

                    //Checa o modo de processamento do servidor
                    if (rptServer.srr_remoteServer)
                    {
                        //Configura o reportviewer
                        ReportViewerRel.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
                        Uri urlReport = new Uri(rptServer.srr_diretorioRelatorios);
                        ReportViewerRel.ServerReport.ReportServerUrl         = urlReport;
                        ReportViewerRel.ServerReport.ReportServerCredentials = new MSReportServerCredentials(rptServer.srr_usuario, rptServer.srr_senha, rptServer.srr_dominio);
                        ReportViewerRel.ServerReport.ReportPath = String.Concat(rptServer.srr_pastaRelatorios, rpt.rlt_nome);
                        ReportViewerRel.ServerReport.SetParameters(param.getReportParameters());
                        //Recebe as configurações do delegate
                        ConfigRemoteRerpotViewerEvent configRemoteRerpotViewer = Events[ConfigRemoteRerpotViewerKey] as ConfigRemoteRerpotViewerEvent;
                        if (configRemoteRerpotViewer != null)
                        {
                            configRemoteRerpotViewer(ReportViewerRel);
                        }
                        //Carrega o relatório
                        ReportViewerRel.ServerReport.Refresh();
                    }
                    else
                    {
                        //Configura o reportviewer
                        ReportViewerRel.ProcessingMode         = Microsoft.Reporting.WebForms.ProcessingMode.Local;
                        ReportViewerRel.LocalReport.ReportPath = String.Concat(rptServer.srr_pastaRelatorios, rpt.rlt_nome);
                        ReportViewerRel.LocalReport.SetParameters(param.getReportParameters());
                        //Recebe as configurações do delegate
                        ConfigLocalRerpotViewerEvent configLocalRerpotViewer = Events[ConfigLocalRerpotViewerKey] as ConfigLocalRerpotViewerEvent;
                        if (configLocalRerpotViewer != null)
                        {
                            configLocalRerpotViewer(ReportViewerRel);
                        }
                        //Carrega o relatório
                        ReportViewerRel.LocalReport.Refresh();
                    }
                }
                else
                {
                    string nome = _VS_TipoRelatorio == tipoRelatorio.Relatorio ? "relatório" : "documento";
                    _lblMensagem.Text = UtilBO.GetErroMessage("Não foi possível carregar o " + nome + ". Tipo de relatório indisponível.", UtilBO.TipoMensagem.Informacao);
                }
            }

            this.Page.ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "reports", " var query= '" + this.QueryStringUrlReports + "';", true);
        }
        catch (ValidationException ex)
        {
            this._TrataErro(ex, ex.Message);
        }
        catch (Exception ex)
        {
            string nome = _VS_TipoRelatorio == tipoRelatorio.Relatorio ? "relatório" : "documento";
            this._TrataErro(ex, "Recurso indisponível ao exibir o " + nome + ".");
        }
    }
Ejemplo n.º 28
0
        /// <summary>
        /// Carrega no combo as disciplinas disponíveis para o docente de acordo com o objeto
        /// passado.
        /// </summary>
        /// <param name="dadosTurmas">Objeto com as turmas do docente</param>
        /// <param name="cal_id">ID do calendário</param>
        public void CarregaTurmas(List <Struct_MinhasTurmas.Struct_Turmas> dadosTurmas, int cal_id, byte tud_tipo, bool fav_fechamentoAutomatico, bool removerCompartilhada = false)
        {
            DateTime dataLimiteLancamento = new DateTime();
            string   dataBloqueio         = ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.DATA_VALIDADE_BLOQUEIO_ACESSO_MINHAS_TURMAS, __SessionWEB.__UsuarioWEB.Usuario.ent_id);

            if (visaoDocente &&
                !string.IsNullOrEmpty(dataBloqueio) && DateTime.TryParse(dataBloqueio, out dataLimiteLancamento) &&
                DateTime.Today >= dataLimiteLancamento)
            {
                // Se passou a data limite para lançamento das aulas previstas, só carrega disciplinas com
                // as aulas previstas lançadas.
                if (removerCompartilhada)
                {
                    dadosTurmas = dadosTurmas.Where(p =>
                                                    (
                                                        (p.aulasPrevistasPreenchida == true)
                                                        ||
                                                        (
                                                            p.tdt_posicao != (byte)EnumTipoDocente.Titular &&
                                                            p.tdt_posicao != (byte)EnumTipoDocente.SegundoTitular &&
                                                            p.tdt_posicao != (byte)EnumTipoDocente.Especial
                                                        )
                                                    )
                                                    &&
                                                    (p.tud_tipo != (byte)ACA_CurriculoDisciplinaTipo.DocenciaCompartilhada)
                                                    ).ToList();
                }
                else
                {
                    dadosTurmas = dadosTurmas.Where(p =>
                                                    (p.aulasPrevistasPreenchida == true || p.tud_tipo == (byte)ACA_CurriculoDisciplinaTipo.DocenciaCompartilhada)
                                                    ||
                                                    (
                                                        p.tdt_posicao != (byte)EnumTipoDocente.Titular &&
                                                        p.tdt_posicao != (byte)EnumTipoDocente.SegundoTitular &&
                                                        p.tdt_posicao != (byte)EnumTipoDocente.Especial
                                                    )).ToList();
                }
            }

            //Remove as disciplinas do tipo territorio do saber
            dadosTurmas = dadosTurmas.Where(p => p.tud_tipo != (byte)ACA_CurriculoDisciplinaTipo.TerritorioSaber).ToList();

            uccTurmaDisciplina.CarregarCombo(dadosTurmas, "TurmaDisciplinaEscola", "DataValueFieldCombo");
            uccTurmaDisciplina.Valor = VS_tur_id + ";" + VS_tud_id + ";" + cal_id + ";" + VS_tdt_posicao + ";" + tud_tipo + ";" + VS_tur_tipo + ";" + VS_tur_idNormal + ";" + VS_tud_idAluno + ";" + (fav_fechamentoAutomatico ? "true" : "false");

            // Seta as atribuições que devem ter a vigência verificada para a criação de aulas.
            AtribuicoesVerificarVigencia =
                (from Struct_MinhasTurmas.Struct_Turmas item in dadosTurmas
                 where item.crg_tipo == (byte)eTipoCargo.AtribuicaoEsporadica
                 select new VigenciaCriacaoAulas
            {
                tud_id = item.tud_id
                ,
                tdt_id = item.tdt_id
                ,
                crg_tipo = item.crg_tipo
                ,
                tdt_vigenciaInicio = item.tdt_vigenciaInicio
                ,
                tdt_vigenciaFim = item.tdt_vigenciaFim
            }).ToList();


            if (VS_tur_tipo == (byte)TUR_TurmaTipo.MultisseriadaDocente)
            {
                chkTurmasNormaisMultisseriadas.DataSource = TUR_TurmaBO.SelecionaTurmasNormaisMatriculaMutisseriada(VS_tur_id);
                chkTurmasNormaisMultisseriadas.DataBind();
                if (!VS_tur_tud_ids.Any())
                {
                    chkTurmasNormaisMultisseriadas.Items.Cast <ListItem>()
                    .ToList()
                    .ForEach
                    (
                        item =>
                    {
                        item.Selected = true;
                    }
                    );
                }
                else
                {
                    (from ListItem item in chkTurmasNormaisMultisseriadas.Items.Cast <ListItem>()
                     join string tur_tud_id in VS_tur_tud_ids on item.Value equals tur_tud_id
                     select item).ToList().ForEach
                    (
                        item =>
                    {
                        item.Selected = true;
                    }
                    );
                }
                pnlTurmasMultisseriada.Visible = chkTurmasNormaisMultisseriadas.Items.Count > 0;
            }
            else
            {
                chkTurmasNormaisMultisseriadas.Items.Add(new ListItem("", String.Format("{0};{1}", VS_tur_idNormal, VS_tud_idAluno)));
                chkTurmasNormaisMultisseriadas.Items.Cast <ListItem>()
                .ToList()
                .ForEach
                (
                    item =>
                {
                    item.Selected = true;
                }
                );
                pnlTurmasMultisseriada.Visible = false;
            }
        }
Ejemplo n.º 29
0
        protected void gvFechamento_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Exportar")
            {
                try
                {
                    int   index  = int.Parse(e.CommandArgument.ToString());
                    int   esc_id = Convert.ToInt32(gvFechamento.DataKeys[index]["esc_id"]);
                    int   uni_id = Convert.ToInt32(gvFechamento.DataKeys[index]["uni_id"]);
                    int   cal_id = Convert.ToInt32(gvFechamento.DataKeys[index]["cal_id"]);
                    int   tpc_id = Convert.ToInt32(gvFechamento.DataKeys[index]["tpc_id"]);
                    Int64 tur_id = Convert.ToInt64(gvFechamento.DataKeys[index]["tur_id"]);

                    string ordemAluno = ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.ORDENACAO_COMBO_ALUNO, __SessionWEB.__UsuarioWEB.Usuario.ent_id);

                    ordemAluno = string.IsNullOrEmpty(ordemAluno) ? "1" : ordemAluno;
                    DataTable dt = CLS_ArquivoEfetivacaoBO.ExportacaoAlunosFechamento(esc_id, uni_id, cal_id, tur_id, tpc_id,
                                                                                      GestaoEscolarUtilBO.nomePadraoPeriodo_Calendario(__SessionWEB.__UsuarioWEB.Usuario.ent_id),
                                                                                      GetGlobalResourceObject("Mensagens", "MSG_DISCIPLINA_PLURAL").ToString(),
                                                                                      Convert.ToInt16(ordemAluno));
                    if (dt.Rows.Count == 0)
                    {
                        throw new ValidationException("Não existem itens para essa turma");
                    }

                    CLS_ArquivoEfetivacao entity = new CLS_ArquivoEfetivacao
                    {
                        aef_id            = -1,
                        esc_id            = esc_id,
                        uni_id            = uni_id,
                        cal_id            = cal_id,
                        tpc_id            = tpc_id,
                        tur_id            = tur_id,
                        aef_dataCriacao   = DateTime.Now,
                        aef_dataAlteracao = DateTime.Now,
                        aef_tipo          = (short)CLS_ArquivoEfetivacaoBO.eTipoArquivoEfetivacao.Exportacao,
                        aef_situacao      = (short)CLS_ArquivoEfetivacaoBO.eSituacao.Ativo,
                        IsNew             = true
                    };

                    if (CLS_ArquivoEfetivacaoBO.Save(entity))
                    {
                        VS_NomeArquivoCSV     = dt.Rows[0][0] + "_" + dt.Rows[0][1] + "_" + dt.Rows[0][2] + "-" + dt.Rows[0][3] + "_" + entity.aef_id + ".csv";
                        VS_ConteudoArquivoCSV = GestaoEscolarUtilBO.ConverterTabelaParaArquivoCSV(dt).ToString();

                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Insert, "aef_id: " + entity.aef_id);
                        lblMsgDownload.Text = UtilBO.GetErroMessage("Arquivo gerado com sucesso.", UtilBO.TipoMensagem.Sucesso);// +
                        //UtilBO.GetErroMessage("O nome do arquivo será utilizado para importação, portanto não deve ser alterado.", UtilBO.TipoMensagem.Alerta);
                        Pesquisar();
                        ScriptManager.RegisterStartupScript(Page, typeof(Page), "Donwload", "$(document).ready(function() { $('#divDownload').dialog({title: 'Download do arquivo do fechamento do bimestre'}).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 gerar o arquivo.", UtilBO.TipoMensagem.Erro);
                }
            }

            if (e.CommandName == "Importar")
            {
                try
                {
                    gvFechamento.EditIndex = int.Parse(e.CommandArgument.ToString());
                }
                catch (Exception ex)
                {
                    ApplicationWEB._GravaErro(ex);
                    _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar o sistema.", UtilBO.TipoMensagem.Erro);
                }
            }
        }
Ejemplo n.º 30
0
        /// <summary>
        /// Retorna o tra_id correspondente ao responsável "Não existe", cadastrado nos parâmetros acadêmicos.
        /// Caso o parâmetro não esteja configurado, retorna -1.
        /// </summary>
        /// <param name="ent_id">Id da entidade do usuário logado.</param>
        public static Int32 tra_idNaoExiste(Guid ent_id)
        {
            int tra_id = ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_RESPONSAVEL_NAO_EXISTE, ent_id);

            return(tra_id > 0 ? tra_id : -1);
        }