Esempio n. 1
0
    protected void _dgvCalendarioAnual_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "Deletar")
        {
            try
            {
                int index  = int.Parse(e.CommandArgument.ToString());
                int cal_id = Convert.ToInt32(_dgvCalendarioAnual.DataKeys[index].Value);

                ACA_CalendarioAnual entity = new ACA_CalendarioAnual {
                    cal_id = cal_id
                };
                ACA_CalendarioAnualBO.GetEntity(entity);

                if (ACA_CalendarioAnualBO.Delete(entity))
                {
                    _dgvCalendarioAnual.PageIndex = 0;
                    _dgvCalendarioAnual.DataBind();
                    ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Delete, "cal_id: " + cal_id);
                    _lblMessage.Text = UtilBO.GetErroMessage("Calendário escolar excluído com sucesso.", UtilBO.TipoMensagem.Sucesso);
                }
            }
            catch (ValidationException ex)
            {
                _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar excluir o calendário escolar.", UtilBO.TipoMensagem.Erro);
            }
        }
    }
Esempio n. 2
0
        protected List <string> RetornarListaCahveCacheRelatorioPendencias(HttpContext context)
        {
            string[] esc_ids = context.Request.QueryString["esc_ids"].ToString().Split(';');
            string[] uni_ids = context.Request.QueryString["uni_ids"].ToString().Split(';');
            string[] cal_ids = context.Request.QueryString["cal_ids"].ToString().Split(';');
            string[] tud_ids = context.Request.QueryString["tud_ids"].ToString().Split(';');

            List <string> ltChaves = new List <string>();

            List <ACA_CalendarioAnual> lstCalendario = ACA_CalendarioAnualBO.GetSelect().ToList();

            for (int i = 0; i < tud_ids.Length; i++)
            {
                ltChaves.Add(String.Format(ModelCache.FECHAMENTO_AUTO_FINAL_MODEL_KEY, tud_ids[i]));
                ltChaves.Add(String.Format(ModelCache.FECHAMENTO_AUTO_FINAL_FILTRO_DEFICIENCIA_MODEL_KEY, tud_ids[i]));

                if (lstCalendario.Any(p => p.cal_id.ToString() == cal_ids[i]))
                {
                    int cal_ano = lstCalendario.First(p => p.cal_id.ToString() == cal_ids[i]).cal_ano;
                    ltChaves.Add(String.Format(ModelCache.PENDENCIAS_DISCIPLINA_MODEL_KEY, esc_ids[i], uni_ids[i], cal_ano, tud_ids[i]));
                }
            }

            return(ltChaves);
        }
        public HttpResponseMessage GetCalendarioAnual()
        {
            try
            {
                var lst = ACA_CalendarioAnualBO.SelecionaCalendarioAnual(__userLogged.Usuario.ent_id, ApplicationWEB.AppMinutosCacheLongo,
                                                                         __userLogged.Docente.doc_id,
                                                                         __userLogged.Usuario.usu_id,
                                                                         __userLogged.Grupo.gru_id);
                string selecionado = string.Empty;
                if (lst.Where(c => Convert.ToInt32(c.cal_ano) >= DateTime.Today.Year).Count() == 1)
                {
                    selecionado = lst.Where(c => Convert.ToInt32(c.cal_ano) >= DateTime.Today.Year).First().cal_id;
                }

                Calendarios ret = new Calendarios
                {
                    lista = lst.Select(p => new jsonObject {
                        id = p.cal_id.ToString(), text = p.cal_ano_desc
                    }),
                    idSelecionado = selecionado
                };

                return(Request.CreateResponse(HttpStatusCode.OK, ret));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex));
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Mostra os anos de momentos cadastrados dentro da entidade.
 /// </summary>
 /// <param name="ent_id">Entidade - obrigatório</param>
 /// <param name="mom_ano">Ano - opcional</param>
 /// <returns></returns>
 public void CarregarAnoAtual()
 {
     try
     {
         DataTable dt = ACA_CalendarioAnualBO.SelecionarAnosLetivos();
         ddlCombo.DataSource = (from DataRow ano in dt.Rows
                                orderby Convert.ToInt32(ano["cal_ano"]) descending
                                select new { cal_ano = ano["cal_ano"].ToString() }).ToList();
         ddlCombo.DataBind();
         if (ddlCombo.Items.Count > 0)
         {
             if (ddlCombo.Items.Contains(new ListItem(DateTime.Now.Year.ToString(), DateTime.Now.Year.ToString())))
             {
                 ddlCombo.SelectedValue = DateTime.Now.Year.ToString();
             }
             else
             {
                 ddlCombo.SelectedIndex = 0;
             }
         }
     }
     catch
     {
         throw;
     }
 }
Esempio n. 5
0
    /// <summary>
    /// Carrega o calendario selecionado nos campos da tela.
    /// </summary>
    /// <param name="cal_id">The cal_id.</param>
    private void _LoadFromEntity(int cal_id)
    {
        try
        {
            ACA_CalendarioAnual _calendarioAnual = new ACA_CalendarioAnual {
                cal_id = cal_id
            };
            ACA_CalendarioAnualBO.GetEntity(_calendarioAnual);

            if (_calendarioAnual.ent_id != __SessionWEB.__UsuarioWEB.Usuario.ent_id)
            {
                __SessionWEB.PostMessages = UtilBO.GetErroMessage("O calendário não pertence à entidade na qual você está logado.", UtilBO.TipoMensagem.Alerta);
                Response.Redirect("Busca.aspx", false);
                HttpContext.Current.ApplicationInstance.CompleteRequest();
            }

            _VS_cal_id                = _calendarioAnual.cal_id;
            _txtAno.Text              = Convert.ToString(_calendarioAnual.cal_ano);
            _txtAno.Enabled           = false;
            _txtDescricao.Text        = _calendarioAnual.cal_descricao;
            _txtDataInicio.Text       = _calendarioAnual.cal_dataInicio.ToString("dd/MM/yyyy");
            _txtDataFim.Text          = _calendarioAnual.cal_dataFim.ToString("dd/MM/yyyy");
            ckbPermiteRecesso.Checked = _calendarioAnual.cal_permiteLancamentoRecesso;

            CarregaPeriodo();

            _dgvCalendarioPeriodo.Columns[posExcluirAdicionarPeriodo].Visible = !(ACA_CalendarioAnualBO.VerificaTurmaPejaExistente(_VS_cal_id, __SessionWEB.__UsuarioWEB.Usuario.ent_id));
        }
        catch (Exception ex)
        {
            ApplicationWEB._GravaErro(ex);
            _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar o calendário escolar.", UtilBO.TipoMensagem.Erro);
        }
    }
Esempio n. 6
0
        /// <summary>
        /// Retorna a data de início e fim do período do calendário do tipo informado
        /// (quando informado o tpc_id).
        /// Quando não informado o tpc_id, retorna o primeiro período de acordo
        /// com as avaliações relacionadas.
        /// </summary>
        /// <param name="tpc_id">ID do tipo de período do calendário</param>
        /// <param name="avaliacaoesRelacionadas">IDs das avaliações relacionadas (separadas por ",")</param>
        /// <param name="tur_id">ID da turma</param>
        /// <param name="fav_id">ID do formato de avaliação</param>
        /// <param name="avaliacaoTipo">Tipo da avaliação</param>
        /// <param name="cal_id">ID do calendário</param>
        /// <param name="cap_dataInicio">Data de início do período</param>
        /// <param name="cap_dataFim">Data de fim do período</param>
        /// <returns></returns>
        public static void RetornaDatasPeriodoPor_FormatoAvaliacaoTurma
        (
            int tpc_id
            , string avaliacaoesRelacionadas
            , long tur_id
            , int fav_id
            , AvaliacaoTipo avaliacaoTipo
            , int cal_id
            , out DateTime cap_dataInicio
            , out DateTime cap_dataFim
        )
        {
            // Se for avaliação final, retorna a data de inicio e fim do calendário
            if (avaliacaoTipo == AvaliacaoTipo.Final || avaliacaoTipo == AvaliacaoTipo.ConselhoClasse)
            {
                ACA_CalendarioAnual cal = new ACA_CalendarioAnual {
                    cal_id = cal_id
                };
                ACA_CalendarioAnualBO.GetEntity(cal);

                cap_dataInicio = cal.cal_dataInicio;
                cap_dataFim    = cal.cal_dataFim;
            }
            // Se não for avaliação final, retorna a data de inicio e fim do periodo do calendario
            else
            {
                RetornaDatasPeriodoPor_FormatoAvaliacaoTurma(tpc_id, avaliacaoesRelacionadas, tur_id, fav_id, out cap_dataInicio, out cap_dataFim);
            }
        }
Esempio n. 7
0
        protected void btnImprimir_Click(object sender, EventArgs e)
        {
            try
            {
                string parameter = string.Empty;
                string report    = string.Empty;

                if (!ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.RELATORIO_ANOTACAO_GERAL_BUSCA_ALUNO, __SessionWEB.__UsuarioWEB.Usuario.ent_id))
                {  // SME-SP
                    report    = ((int)ReportNameGestaoAcademicaDocumentosDocente.DocDctRelAnotacoesAula).ToString();
                    parameter = "esc_id=" + VS_esc_id +
                                "&cal_id=" + VS_cal_id +
                                "&cur_id=" + VS_cur_id +
                                "&tur_id=" + VS_tur_id +
                                "&cap_id=" + -1 +
                                "&tud_id=" + -1 +
                                "&doc_id=" + -1 +
                                "&dataAula=" + -1 +
                                "&nomePeriodoCalendario=" + GestaoEscolarUtilBO.nomePadraoPeriodo_Calendario(__SessionWEB.__UsuarioWEB.Usuario.ent_id) +
                                "&nomeDisciplina=" + GetGlobalResourceObject("Mensagens", "MSG_DISCIPLINA") +
                                "&alu_id=" + _VS_alu_id +
                                "&mostraCodigoEscola=" + ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.ORDENAR_ESCOLAS_POR_CODIGO, __SessionWEB.__UsuarioWEB.Usuario.ent_id) +
                                "&nomeMunicipio=" + GetGlobalResourceObject("Reporting", "Reporting.DocDctSubCabecalhoPaisagem.Municipio") +
                                "&nomeSecretaria=" + GetGlobalResourceObject("Reporting", "Reporting.DocDctSubCabecalhoPaisagem.Secretaria") +
                                "&lblCodigoEOL2=" + GetGlobalResourceObject("Reporting", "Reporting.DocDctRelAnotacoesAula.lblCodigoEOL2.label") +
                                "&logo=" + String.Concat(MSTech.GestaoEscolar.BLL.CFG_ServidorRelatorioBO.CarregarCredencialServidorPorRelatorio(__SessionWEB.__UsuarioWEB.Usuario.ent_id, Convert.ToInt32(report)).srr_pastaRelatorios.ToString()
                                                         , ApplicationWEB.LogoRelatorioSSRS) +
                                "&cal_ano=" + VS_cal_ano.ToString() +
                                "&documentoOficial=false";
                }
                else
                {   // demais clientes
                    report    = ((int)MSTech.GestaoEscolar.BLL.ReportNameGestaoAcademica.GestaoAcademicaAnotacoes).ToString();
                    parameter = "alu_id=" + _VS_alu_id +
                                "&cal_ano=" + ACA_CalendarioAnualBO.SelecionaPorTurma(VS_tur_id).cal_ano +
                                "&matricula=" + GetGlobalResourceObject("Mensagens", "MSG_NUMEROMATRICULA").ToString() +
                                "&usu_id=" + __SessionWEB.__UsuarioWEB.Usuario.usu_id.ToString() +
                                "&usuario_superior=" + (__SessionWEB.__UsuarioWEB.Docente.doc_id == 0).ToString() +
                                "&ordenaPorCodigo=" + ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.ORDENAR_ESCOLAS_POR_CODIGO, __SessionWEB.__UsuarioWEB.Usuario.ent_id) +
                                "&ent_id=" + __SessionWEB.__UsuarioWEB.Usuario.ent_id.ToString() +
                                "&atg_tipo=" + ((int)ACA_AvisoTextoGeralBO.eTiposAvisosTextosGerais.CabecalhoRelatorio).ToString() +
                                "&logo=" + String.Concat(MSTech.GestaoEscolar.BLL.CFG_ServidorRelatorioBO.CarregarServidorRelatorioPorEntidade(__SessionWEB.__UsuarioWEB.Usuario.ent_id, ApplicationWEB.AppMinutosCacheLongo).srr_pastaRelatorios.ToString(), ApplicationWEB.LogoRelatorioSSRS);
                }

                Session["PaginaRetorno_AnotacoesAluno"] = VS_PaginaRetorno;
                Session["DadosPaginaRetorno"]           = VS_DadosPaginaRetorno;
                Session["VS_DadosTurmas"]   = VS_DadosPaginaRetorno_MinhasTurmas;
                Session["tud_id_anotacoes"] = VS_tud_id > 0 ? (object)VS_tud_id : null;
                Session["alu_id_anotacoes"] = _VS_alu_id;
                Session["mtu_id_anotacoes"] = VS_mtu_id;

                CFG_RelatorioBO.CallReport("Documentos", report, parameter, HttpContext.Current);
            }
            catch (Exception error)
            {
                ApplicationWEB._GravaErro(error);
                lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar gerar relatório de anotações sobre o aluno.", UtilBO.TipoMensagem.Erro);
            }
        }
Esempio n. 8
0
 /// <summary>
 /// Mostra os anos de momentos cadastrados dentro da entidade.
 /// </summary>
 /// <param name="ent_id">Entidade - obrigatório</param>
 /// <param name="mom_ano">Ano - opcional</param>
 /// <returns></returns>
 public void Carregar()
 {
     try
     {
         ddlCombo.DataSource      = ACA_CalendarioAnualBO.SelecionarAnosLetivos();
         _MostrarMessageSelecione = true;
         ddlCombo.DataBind();
     }
     catch
     {
         throw;
     }
 }
Esempio n. 9
0
    /// <summary>
    /// Carrega os dados da pagina.
    /// </summary>
    private void CarregarDados()
    {
        long alu_id = __SessionWEB.__UsuarioWEB.alu_id;
        int  mtu_id = __SessionWEB.__UsuarioWEB.mtu_id;
        int  esc_id = __SessionWEB.__UsuarioWEB.esc_id;

        _VS_cal_id = ACA_CalendarioEscolaBO.SelectCalendarioByAluIdMtuIdEscId(alu_id, mtu_id, esc_id);

        if (_VS_cal_id > 0)
        {
            ACA_CalendarioAnual calendario = new ACA_CalendarioAnual {
                cal_id = _VS_cal_id
            };
            ACA_CalendarioAnualBO.GetEntity(calendario);
            CalendarioAnual = calendario;

            // busca os periodos referentes ao calendário
            Periodos = ACA_CalendarioPeriodoBO.Seleciona_cal_id(CalendarioAnual.cal_id, false, 1, 1);

            // busca os dias não úteis
            DiasNaoUteis = SYS_DiaNaoUtilBO.SelecionaTodosPorCidade(CarregarCidadeUsuarioLogado());

            // mostra o nome da calendário
            lblCalendario.Text = "Calendário escolar: <b>" + CalendarioAnual.cal_descricao + "</b>";

            // mostra o ano letivo
            lblAnoLetivo.Text = "Ano Letivo: <b>" + CalendarioAnual.cal_ano + "</b>";

            Eventos = ACA_CalendarioEventoBO.BuscaEventosCalendario(
                CalendarioAnual.cal_id,
                false,
                esc_id
                );

            IniciaRepeater();

            IniciaRepeaterDiasLetivos();

            CriaTabelaLegenda();

            // mostra a quantidade de dias letivos no ano
            int totalDeDiasLetivos = NumeroDeDiasUteis(CalendarioAnual.cal_dataInicio, CalendarioAnual.cal_dataFim);
            //- NumeroDeDiasSemAtividadeDiscente(CalendarioAnual.cal_dataInicio, CalendarioAnual.cal_dataFim);
            lblDiasLetivosNoAno.Text = "Dias letivos do ano: <b>" + totalDeDiasLetivos + "</b>";
        }
        else
        {
            _lblMessage.Text = UtilBO.GetErroMessage("Calendário não encontrado.", UtilBO.TipoMensagem.Alerta);
        }
    }
Esempio n. 10
0
        public HttpResponseMessage GetCalendariosAnuais()
        {
            try
            {
                var lst = ACA_CalendarioAnualBO.SelecionarAnosLetivos();

                return(Request.CreateResponse(HttpStatusCode.OK,
                                              (from DataRow dr in lst.Rows
                                               select Convert.ToInt32(dr["cal_ano"]))
                                              ));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex));
            }
        }
Esempio n. 11
0
    /// <summary>
    /// Carrega os dados da pagina.
    /// </summary>
    private void CarregarDados()
    {
        ACA_CalendarioAnual calendario = new ACA_CalendarioAnual {
            cal_id = _VS_cal_id
        };

        ACA_CalendarioAnualBO.GetEntity(calendario);
        CalendarioAnual = calendario;

        // busca os periodos referentes ao calendário
        Periodos = ACA_CalendarioPeriodoBO.Seleciona_cal_id(CalendarioAnual.cal_id, false, 1, 1);

        // busca os dias não úteis
        DiasNaoUteis = SYS_DiaNaoUtilBO.SelecionaTodosPorCidade(CarregarCidadeUsuarioLogado());

        // mostra o nome da calendário
        lblCalendario.Text = "Calendário escolar: <b>" + CalendarioAnual.cal_descricao + "</b>";

        // mostra o ano letivo
        lblAnoLetivo.Text = "Ano Letivo: <b>" + CalendarioAnual.cal_ano + "</b>";

        if (ddlComboTipoEvento.SelectedValue.Equals("2") && ucComboUAEscola.Esc_ID <= 0)
        {
            fdsVisualizacao.Visible = false;
            return;
        }

        Eventos = ACA_CalendarioEventoBO.BuscaEventosCalendario(
            CalendarioAnual.cal_id,
            ddlComboTipoEvento.SelectedValue.Equals("0"),
            ddlComboTipoEvento.SelectedValue.Equals("2") ? ucComboUAEscola.Esc_ID : 0
            );

        IniciaRepeater();

        IniciaRepeaterDiasLetivos();

        CriaTabelaLegenda();

        fdsVisualizacao.Visible = true;

        // mostra a quantidade de dias letivos no ano
        int totalDeDiasLetivos = NumeroDeDiasUteis(CalendarioAnual.cal_dataInicio, CalendarioAnual.cal_dataFim);

        //- NumeroDeDiasSemAtividadeDiscente(CalendarioAnual.cal_dataInicio, CalendarioAnual.cal_dataFim);
        lblDiasLetivosNoAno.Text = "Dias letivos do ano: <b>" + totalDeDiasLetivos + "</b>";
    }
Esempio n. 12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            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.MascarasCampos));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.CamposData));
                sm.Scripts.Add(new ScriptReference(ArquivoJS.MsgConfirmExclusao));
                sm.Scripts.Add(new ScriptReference("~/Includes/jsCadastroEventoLimite.js"));
            }

            if (!IsPostBack)
            {
                cpvDataInicio.ValueToCompare = DateTime.Now.ToString("dd/MM/yyyy");

                if (PreviousPage != null && PreviousPage.IsCrossPagePostBack)
                {
                    VS_cal_id = PreviousPage.SelectedItem;

                    var entityCalendario = new ACA_CalendarioAnual()
                    {
                        cal_id = VS_cal_id
                    };
                    ACA_CalendarioAnualBO.GetEntity(entityCalendario);

                    lblCalendarioAno.Text = string.Format("{0} (Ano {1})", entityCalendario.cal_descricao, entityCalendario.cal_ano);

                    UCCTipoEvento.CarregarLiberacao();
                    UCCPeriodoCalendario.CarregarPorCalendario(VS_cal_id, entityCalendario.cal_permiteLancamentoRecesso);
                    UCComboUAEscola.Inicializar();

                    //btnSalvar.Visible = __SessionWEB.__UsuarioWEB.GrupoPermissao.grp_inserir;

                    Pesquisar();
                }
                else
                {
                    __SessionWEB.PostMessages = UtilBO.GetErroMessage("Selecione um calendário para definir os limites para data de criação de eventos.", UtilBO.TipoMensagem.Alerta);
                    Response.Redirect("Busca.aspx", false);
                    HttpContext.Current.ApplicationInstance.CompleteRequest();
                }
            }
        }
Esempio n. 13
0
 /// <summary>
 /// Mostra os dados não excluídos logicamente no dropdownlist
 /// </summary>
 public void CarregarCalendarioAnual()
 {
     //Se for visão de docente carrega apenas os calendários que o docente tem acesso
     if (__SessionWEB.__UsuarioWEB.Grupo.vis_id == SysVisaoID.Individual && __SessionWEB.__UsuarioWEB.Docente != null && __SessionWEB.__UsuarioWEB.Docente.doc_id > 0)
     {
         SelecionarAnoCorrente = true;
         CarregarCombo(ACA_CalendarioAnualBO.SelecionaCalendarioAnual(__SessionWEB.__UsuarioWEB.Usuario.ent_id, __SessionWEB.__UsuarioWEB.Docente.doc_id, ApplicationWEB.AppMinutosCacheLongo));
     }
     //Se for visão de unidade escolar carrega apenas os calendários ligados aos cursos da escola
     else if (__SessionWEB.__UsuarioWEB.Grupo.vis_id == SysVisaoID.UnidadeAdministrativa)
     {
         SelecionarAnoCorrente = true;
         CarregarCombo(ACA_CalendarioAnualBO.SelecionaCalendarioAnual(__SessionWEB.__UsuarioWEB.Usuario.ent_id, __SessionWEB.__UsuarioWEB.Usuario.usu_id, __SessionWEB.__UsuarioWEB.Grupo.gru_id, ApplicationWEB.AppMinutosCacheLongo));
     }
     //Carrega todos os calendários
     else
     {
         CarregarCombo(ACA_CalendarioAnualBO.SelecionaCalendarioAnual(__SessionWEB.__UsuarioWEB.Usuario.ent_id, ApplicationWEB.AppMinutosCacheLongo));
     }
 }
Esempio n. 14
0
        /// <summary>
        /// Carrega todos os calendários não excluídos logicamente
        /// </summary>
        public void CarregarCalendarioAnualAnoAtualEscola(int esc_id)
        {
            List <sComboCalendario> lstCalendario = new List <sComboCalendario>();

            //Se for visão de docente carrega apenas os calendários que o docente tem acesso
            if (__SessionWEB.__UsuarioWEB.Grupo.vis_id == SysVisaoID.Individual && __SessionWEB.__UsuarioWEB.Docente != null && __SessionWEB.__UsuarioWEB.Docente.doc_id > 0)
            {
                SelecionarAnoCorrente = true;
                lstCalendario         = ACA_CalendarioAnualBO.SelecionaCalendarioAnual_Esc_id(esc_id, __SessionWEB.__UsuarioWEB.Usuario.ent_id, __SessionWEB.__UsuarioWEB.Docente.doc_id, ApplicationWEB.AppMinutosCacheLongo);
            }
            //Se for visão de unidade escolar carrega apenas os calendários ligados aos cursos da escola
            else if (__SessionWEB.__UsuarioWEB.Grupo.vis_id == SysVisaoID.UnidadeAdministrativa)
            {
                SelecionarAnoCorrente = true;
                lstCalendario         = ACA_CalendarioAnualBO.SelecionaCalendarioAnual_Esc_id(esc_id, __SessionWEB.__UsuarioWEB.Usuario.ent_id, __SessionWEB.__UsuarioWEB.Usuario.usu_id, __SessionWEB.__UsuarioWEB.Grupo.gru_id, ApplicationWEB.AppMinutosCacheLongo);
            }
            //Carrega todos os calendários
            else
            {
                lstCalendario = ACA_CalendarioAnualBO.SelecionaCalendarioAnual_Esc_id(esc_id, __SessionWEB.__UsuarioWEB.Usuario.ent_id, ApplicationWEB.AppMinutosCacheLongo);
            }

            if (lstCalendario.Any())
            {
                if (lstCalendario.Any(c => Convert.ToInt32(c.cal_ano) >= DateTime.Today.Year))
                {
                    lstCalendario = lstCalendario.Where(c => Convert.ToInt32(c.cal_ano) >= DateTime.Today.Year).ToList();
                }
                else
                {
                    lstCalendario = lstCalendario.Where(c => Convert.ToInt32(c.cal_ano) == Convert.ToInt32(lstCalendario.OrderBy(p => p.cal_ano).LastOrDefault().cal_ano)).ToList();
                }
            }
            CarregarCombo(lstCalendario.AsEnumerable()
                          .Select(p => new
            {
                cal_ano_desc = p.cal_ano_desc.ToString()
                ,
                cal_id = p.cal_id.ToString()
            }));
        }
Esempio n. 15
0
 /// <summary>
 /// Carrega os calendarios com bimestres ativos por entidade e escola
 /// </summary>
 /// <param name="esc_id">ID da escola</param>
 /// <param name="VerificaEscolaCalendarioPeriodo">Informa se irá selecionar todos os dados conforme os filtros (false)
 /// ou se irá selecionar apenas os dados que não estão na tabela ESC_EscolaCalendarioPeriodo (true)</param>
 /// <returns></returns>
 public void CarregarCalendariosComBimestresAtivos(int esc_id, bool VerificaEscolaCalendarioPeriodo)
 {
     //Se for visão de docente carrega apenas os calendários que o docente tem acesso
     if (__SessionWEB.__UsuarioWEB.Grupo.vis_id == SysVisaoID.Individual && __SessionWEB.__UsuarioWEB.Docente != null && __SessionWEB.__UsuarioWEB.Docente.doc_id > 0)
     {
         SelecionarAnoCorrente = true;
         CarregarCombo(ACA_CalendarioAnualBO.SelecionaCalendariosComBimestresAberto_Por_EntidadeEscola(__SessionWEB.__UsuarioWEB.Usuario.ent_id, esc_id, VerificaEscolaCalendarioPeriodo, __SessionWEB.__UsuarioWEB.Docente.doc_id));
     }
     //Se for visão de unidade escolar carrega apenas os calendários ligados aos cursos da escola
     else if (__SessionWEB.__UsuarioWEB.Grupo.vis_id == SysVisaoID.UnidadeAdministrativa)
     {
         SelecionarAnoCorrente = true;
         CarregarCombo(ACA_CalendarioAnualBO.SelecionaCalendariosComBimestresAberto_Por_EntidadeEscola(__SessionWEB.__UsuarioWEB.Usuario.ent_id, esc_id, VerificaEscolaCalendarioPeriodo,
                                                                                                       __SessionWEB.__UsuarioWEB.Usuario.usu_id, __SessionWEB.__UsuarioWEB.Grupo.gru_id));
     }
     //Carrega todos os calendários
     else
     {
         CarregarCombo(ACA_CalendarioAnualBO.SelecionaCalendariosComBimestresAberto_Por_EntidadeEscola(__SessionWEB.__UsuarioWEB.Usuario.ent_id, esc_id, VerificaEscolaCalendarioPeriodo));
     }
 }
Esempio n. 16
0
    protected void _dgvCalendarioAnual_DataBound(object sender, EventArgs e)
    {
        UCTotalRegistros1.Total = ACA_CalendarioAnualBO.GetTotalRecords();

        ConfiguraColunasOrdenacao(_dgvCalendarioAnual);

        if ((!string.IsNullOrEmpty(_dgvCalendarioAnual.SortExpression)) &&
            (__SessionWEB.BuscaRealizada.PaginaBusca == PaginaGestao.CalendarioAnual))
        {
            Dictionary <string, string> filtros = __SessionWEB.BuscaRealizada.Filtros;

            if (filtros.ContainsKey("VS_Ordenacao"))
            {
                filtros["VS_Ordenacao"] = _dgvCalendarioAnual.SortExpression;
            }
            else
            {
                filtros.Add("VS_Ordenacao", _dgvCalendarioAnual.SortExpression);
            }

            if (filtros.ContainsKey("VS_SortDirection"))
            {
                filtros["VS_SortDirection"] = _dgvCalendarioAnual.SortDirection.ToString();
            }
            else
            {
                filtros.Add("VS_SortDirection", _dgvCalendarioAnual.SortDirection.ToString());
            }

            __SessionWEB.BuscaRealizada = new BuscaGestao
            {
                PaginaBusca = PaginaGestao.CalendarioAnual
                ,
                Filtros = filtros
            };
        }
    }
Esempio n. 17
0
    /// <summary>
    /// Cria lista de entidades de CalendarioCurso de acordo com os calendários selecionados
    /// </summary>
    private void CriarListaCalendarioEvento()
    {
        _VS_Calendario = null;
        DataTable dtTemp = _VS_Calendario;

        foreach (RepeaterItem item in rptCampos.Items)
        {
            CheckBox ckbCampo = (CheckBox)item.FindControl("ckbCampo");

            if (ckbCampo != null && ckbCampo.Checked)
            {
                HiddenField hdnId = (HiddenField)item.FindControl("hdnId");
                DataRow     dr    = dtTemp.NewRow();

                ACA_CalendarioAnual calendario = new ACA_CalendarioAnual {
                    cal_id = Convert.ToInt32(hdnId.Value)
                };
                ACA_CalendarioAnualBO.GetEntity(calendario);

                dr["cal_id"]        = calendario.cal_id;
                dr["cal_id_novo"]   = calendario.cal_id;
                dr["cal_descricao"] = calendario.cal_descricao;
                dr["cal_ano"]       = calendario.cal_ano;
                if (calendario.cal_dataFim.Equals(null))
                {
                    dr["cap_periodo"] = calendario.cal_dataInicio.ToString("dd/MM/yyyy");
                }
                else
                {
                    dr["cal_periodo"] = calendario.cal_dataInicio.ToString("dd/MM/yyyy") + " - " + calendario.cal_dataFim.ToString("dd/MM/yyyy");
                }
                dtTemp.Rows.Add(dr);
            }
        }
        _VS_Calendario = dtTemp;
    }
Esempio n. 18
0
        public static bool Delete(CLS_RelatorioPreenchimentoAlunoTurmaDisciplina entity, int rea_id)
        {
            CLS_RelatorioPreenchimentoAlunoTurmaDisciplinaDAO dao = new CLS_RelatorioPreenchimentoAlunoTurmaDisciplinaDAO();

            dao._Banco.Open(IsolationLevel.ReadCommitted);

            try
            {
                bool sucesso = Delete(entity, dao._Banco);
                if (sucesso)
                {
                    CLS_RelatorioAtendimento relatorioAtendimento = CLS_RelatorioAtendimentoBO.GetEntity(new CLS_RelatorioAtendimento {
                        rea_id = rea_id
                    });
                    if (relatorioAtendimento.rea_tipo == (byte)CLS_RelatorioAtendimentoTipo.RP)
                    {
                        ACA_CalendarioAnual       calendario    = ACA_CalendarioAnualBO.SelecionaPorTurma(entity.tur_id);
                        List <MTR_MatriculaTurma> matriculasAno = MTR_MatriculaTurmaBO.GetSelectMatriculasAlunoAno(entity.alu_id, calendario.cal_ano);
                        matriculasAno.ForEach(p => LimpaCache_AlunoPreenchimentoPorPeriodoDisciplina(entity.tpc_id, p.tur_id));

                        ACA_FormatoAvaliacao fav = TUR_TurmaBO.SelecionaFormatoAvaliacao(entity.tur_id, dao._Banco);
                        if (fav != null && fav.fav_fechamentoAutomatico)
                        {
                            CLS_AlunoFechamentoPendenciaBO.SalvarFilaPendencias(entity.tud_id, entity.tpc_id, dao._Banco);
                        }
                    }
                    else if (relatorioAtendimento.rea_tipo == (byte)CLS_RelatorioAtendimentoTipo.NAAPA)
                    {
                        List <AlunoFechamentoPendencia> FilaProcessamento = new List <AlunoFechamentoPendencia>();
                        ACA_CalendarioAnual             cal = ACA_CalendarioAnualBO.SelecionaPorTurma(entity.tur_id, dao._Banco);
                        var periodos = ACA_CalendarioPeriodoBO.SelecionaPor_Calendario(cal.cal_id, GestaoEscolarUtilBO.MinutosCacheLongo);
                        FilaProcessamento.AddRange(TUR_TurmaDisciplinaBO.GetSelectBy_Turma(entity.tur_id, dao._Banco, GestaoEscolarUtilBO.MinutosCacheLongo)
                                                   .SelectMany
                                                   (
                                                       tud =>

                                                       periodos.Select
                                                       (
                                                           tpc =>
                                                           new AlunoFechamentoPendencia
                        {
                            tud_id = tud.tud_id
                            ,
                            tpc_id = tpc.tpc_id
                            ,
                            afp_frequencia = true
                            ,
                            afp_nota = true
                            ,
                            afp_processado = 2
                        }
                                                       ).ToList()
                                                   ));

                        if (FilaProcessamento.Any())
                        {
                            CLS_AlunoFechamentoPendenciaBO.SalvarFilaPendencias(FilaProcessamento, dao._Banco);
                        }
                    }
                }
                return(sucesso);
            }
            catch (Exception ex)
            {
                dao._Banco.Close(ex);
                throw;
            }
            finally
            {
                if (dao._Banco.ConnectionIsOpen)
                {
                    dao._Banco.Close();
                }
            }
        }
Esempio n. 19
0
        /// <summary>
        /// Retorna nas 2 variáveis se a movimentação está no período válido, para o curso e ano letivo
        /// informados (através da matrícula do aluno).
        /// </summary>
        /// <param name="tur_id">ID da turma</param>
        /// <param name="cur_id">ID do curso</param>
        /// <param name="crr_id">ID do curriculo do curso</param>
        /// <param name="tmo_id">ID do tipo de movimentação</param>
        /// <param name="dataComparar">Data para comparação do momento</param>
        /// <param name="bancoGestao">Transação com banco - obrigatório</param>
        /// <param name="estaInicioMovimentacao">OUT - retorna se está no período de início de movimentação</param>
        /// <param name="estaFechamentoMovimentacao">OUT - retorna se está no período de fechamento de movimentação</param>
        /// <param name="listasFechamentoMatricula">Listas carregadas com dados do fechamento de matrícula</param>
        public static void VerificaPeriodoValidoMovimentacao
        (
            long tur_id
            , int cur_id
            , int crr_id
            , int tmo_id
            , DateTime dataComparar
            , TalkDBTransaction bancoGestao
            , out bool estaInicioMovimentacao
            , out bool estaFechamentoMovimentacao
            , FormacaoTurmaBO.ListasFechamentoMatricula listasFechamentoMatricula = null
        )
        {
            TUR_Turma entTur = null;

            if (listasFechamentoMatricula != null && listasFechamentoMatricula.listTurma != null)
            {
                // Busca a entidade da lista de fechamento de matrícula.
                entTur = listasFechamentoMatricula.listTurma.Find(p => p.tur_id == tur_id);
            }

            if (entTur == null)
            {
                entTur = new TUR_Turma
                {
                    tur_id = tur_id
                };
                TUR_TurmaBO.GetEntity(entTur, bancoGestao);
            }

            ACA_CalendarioAnual entCalendario = null;

            if (listasFechamentoMatricula != null && listasFechamentoMatricula.listCalendarios != null)
            {
                // Busca a entidade da lista de fechamento de matrícula.
                entCalendario = listasFechamentoMatricula.listCalendarios.Find(p => p.cal_id == entTur.cal_id);
            }

            if (entCalendario == null)
            {
                entCalendario = new ACA_CalendarioAnual
                {
                    cal_id = entTur.cal_id
                };
                ACA_CalendarioAnualBO.GetEntity(entCalendario, bancoGestao);
            }

            int mom_ano = entCalendario.cal_ano;

            MTR_TipoMovimentacaoDAO dao = new MTR_TipoMovimentacaoDAO {
                _Banco = bancoGestao
            };
            DataTable dt = dao.SelectBy_PeriodoValido_Curso(cur_id, crr_id, tmo_id, mom_ano, dataComparar);

            if (dt.Rows.Count > 0)
            {
                if (!String.IsNullOrEmpty(dt.Rows[0]["IsPeriodoInicioProcesso"].ToString()))
                {
                    estaInicioMovimentacao = Convert.ToBoolean(dt.Rows[0]["IsPeriodoInicioProcesso"]);
                }
                else
                {
                    estaInicioMovimentacao = false;
                }

                if (!String.IsNullOrEmpty(dt.Rows[0]["IsPeriodoFimProcesso"].ToString()))
                {
                    estaFechamentoMovimentacao = Convert.ToBoolean(dt.Rows[0]["IsPeriodoFimProcesso"]);
                }
                else
                {
                    estaFechamentoMovimentacao = false;
                }
            }
            else
            {
                estaInicioMovimentacao     = false;
                estaFechamentoMovimentacao = false;
            }
        }
Esempio n. 20
0
        private void UCComboTurmaDisciplina_IndexChanged()
        {
            try
            {
                UCCPeriodoCalendario.Valor         = new[] { -1, -1 };
                UCCPeriodoCalendario.PermiteEditar = false;
                // utilizado para evitar chamar o evento de alteracao do calendario periodo duas vezes seguidas.
                bool selecionouComboPeriodos = false;

                if (UCCTurmaDisciplina1.Valor > -1)
                {
                    long tur_id = Convert.ToInt64(ddlTurma.SelectedValue);

                    TUR_Turma entTurma = new TUR_Turma {
                        tur_id = tur_id
                    };
                    TUR_TurmaBO.GetEntity(entTurma);

                    ACA_CalendarioAnual entCalendario = new ACA_CalendarioAnual {
                        cal_id = entTurma.cal_id
                    };
                    ACA_CalendarioAnualBO.GetEntity(entCalendario);

                    ACA_FormatoAvaliacao entFormatoAvaliacao = new ACA_FormatoAvaliacao {
                        fav_id = entTurma.fav_id
                    };
                    ACA_FormatoAvaliacaoBO.GetEntity(entFormatoAvaliacao);

                    VS_FechamentoAutomatico = entFormatoAvaliacao.fav_fechamentoAutomatico;

                    TUR_TurmaDisciplina entityTurmaDisciplina = new TUR_TurmaDisciplina {
                        tud_id = UCCTurmaDisciplina1.Valor
                    };
                    TUR_TurmaDisciplinaBO.GetEntity(entityTurmaDisciplina);

                    if (entityTurmaDisciplina.tud_naoLancarFrequencia)
                    {
                        lblMessage.Text           = UtilBO.GetErroMessage(GetGlobalResourceObject("Mensagens", "MSG_DISCIPLINA") + " não pode lançar frequência na turma.", UtilBO.TipoMensagem.Alerta);
                        UCCTurmaDisciplina1.Valor = -1;
                    }
                    else
                    {
                        bool sucessoProcessarPendenciaFechamento = true;
                        if (VS_FechamentoAutomatico)
                        {
                            var pendencias = CLS_AlunoFechamentoPendenciaBO.SelecionarAguardandoProcessamento(tur_id, entityTurmaDisciplina.tud_id, entityTurmaDisciplina.tud_tipo, 0);

                            if ((pendencias != null) && (pendencias.Rows.Count > 0))
                            {
                                try
                                {
                                    // limpa cache desta turma
                                    string pattern;
                                    pattern = String.Format("{0}_{1}", ModelCache.FECHAMENTO_AUTO_BIMESTRE_PATTERN_KEY, entityTurmaDisciplina.tud_id);
                                    CacheManager.Factory.RemoveByPattern(pattern);
                                    pattern = String.Format("{0}_{1}", ModelCache.FECHAMENTO_AUTO_BIMESTRE_FILTRO_DEFICIENCIA_PATTERN_KEY, entityTurmaDisciplina.tud_id);
                                    CacheManager.Factory.RemoveByPattern(pattern);
                                    pattern = String.Format("{0}_{1}", ModelCache.FECHAMENTO_AUTO_BIMESTRE_COMPONENTES_REGENCIA_PATTERN_KEY, tur_id);
                                    CacheManager.Factory.RemoveByPattern(pattern);
                                    pattern = String.Format("{0}_{1}", ModelCache.FECHAMENTO_AUTO_FINAL_PATTERN_KEY, entityTurmaDisciplina.tud_id);
                                    CacheManager.Factory.RemoveByPattern(pattern);
                                    pattern = String.Format("{0}_{1}", ModelCache.FECHAMENTO_AUTO_FINAL_FILTRO_DEFICIENCIA_PATTERN_KEY, entityTurmaDisciplina.tud_id);
                                    CacheManager.Factory.RemoveByPattern(pattern);
                                    pattern = String.Format("{0}_{1}", ModelCache.FECHAMENTO_AUTO_FINAL_COMPONENTES_REGENCIA_PATTERN_KEY, tur_id);
                                    CacheManager.Factory.RemoveByPattern(pattern);
                                    pattern = String.Format(ModelCache.PENDENCIAS_DISCIPLINA_MODEL_KEY, entTurma.esc_id, entTurma.uni_id, entCalendario.cal_ano, entityTurmaDisciplina.tud_id);
                                    CacheManager.Factory.Remove(pattern);
                                    CLS_AlunoFechamentoPendenciaBO.Processar(entityTurmaDisciplina.tud_id, (byte)AvaliacaoTipo.Final, pendencias);
                                }
                                catch (Exception ex)
                                {
                                    sucessoProcessarPendenciaFechamento = false;
                                    ApplicationWEB._GravaErro(ex);
                                    lblMessage.Text = UtilBO.GetErroMessage(GetGlobalResourceObject("Classe", "CompensacaoAusencia.Cadastro.MensagemErroProcessarPendenciaFechamento").ToString(), UtilBO.TipoMensagem.Erro);
                                }
                            }
                        }
                        if (sucessoProcessarPendenciaFechamento)
                        {
                            UCCPeriodoCalendario.CarregarPorPeriodoEventoEfetivacaoVigentes(entTurma.cal_id, UCCTurmaDisciplina1.Valor, entTurma.tur_id, true);
                            selecionouComboPeriodos = UCCPeriodoCalendario.Valor[0] != -1 && UCCPeriodoCalendario.Valor[1] != -1;

                            UCCPeriodoCalendario.SetarFoco();
                            UCCPeriodoCalendario.PermiteEditar = true;
                        }

                        VS_DisciplinaEspecial = entityTurmaDisciplina.tud_disciplinaEspecial;

                        VS_posicao = TUR_TurmaDocenteBO.SelecionaPosicaoPorDocenteTurma(_VS_doc_id, UCCTurmaDisciplina1.Valor, ApplicationWEB.AppMinutosCacheLongo);

                        VS_tipoDocente = ACA_TipoDocenteBO.SelecionaTipoDocentePorPosicao(VS_posicao, ApplicationWEB.AppMinutosCacheLongo);
                    }
                }

                if (!selecionouComboPeriodos)
                {
                    UCCPeriodoCalendario_IndexChanged();
                }
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar os dados.", UtilBO.TipoMensagem.Erro);
            }
        }
Esempio n. 21
0
    /// <summary>
    /// Salva o calendário anual
    /// </summary>
    public void Salvar()
    {
        try
        {
            DataTable CalendarioPeriodico = new DataTable();
            int       valida = ValidaCampos();
            if (valida != 1)
            {
                if (valida == 0)
                {
                    CalendarioPeriodico = dtCalendarioPeriodo(listCalendarioPeriodo());
                }

                ACA_CalendarioAnual _calendarioAnual = new ACA_CalendarioAnual
                {
                    ent_id = __SessionWEB.__UsuarioWEB.Usuario.ent_id
                    ,
                    cal_id = _VS_cal_id
                    ,
                    cal_padrao = true
                    ,
                    cal_ano = Convert.ToInt32(_txtAno.Text)
                    ,
                    cal_descricao = _txtDescricao.Text
                    ,
                    cal_dataInicio = Convert.ToDateTime(_txtDataInicio.Text)
                    ,
                    cal_dataFim = Convert.ToDateTime(_txtDataFim.Text)
                    ,
                    cal_permiteLancamentoRecesso = ckbPermiteRecesso.Checked
                    ,
                    cal_situacao = 1
                    ,
                    IsNew = (_VS_cal_id > 0) ? false : true
                };

                List <ACA_CalendarioCurso> ListaCursoCurriculo = CriarListaCalendarioCurso();

                if (ACA_CalendarioAnualBO.Save(_calendarioAnual, CalendarioPeriodico, ListaCursoCurriculo, __SessionWEB.__UsuarioWEB.Usuario.ent_id))
                {
                    if (_VS_cal_id <= 0)
                    {
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Insert, "cal_id: " + _calendarioAnual.cal_id);
                        __SessionWEB.PostMessages = UtilBO.GetErroMessage("Calendário escolar incluído com sucesso.", UtilBO.TipoMensagem.Sucesso);
                    }
                    else
                    {
                        ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Update, "cal_id: " + _calendarioAnual.cal_id);
                        __SessionWEB.PostMessages = UtilBO.GetErroMessage("Calendário escolar alterado com sucesso.", UtilBO.TipoMensagem.Sucesso);
                    }

                    Response.Redirect("Busca.aspx", false);
                    HttpContext.Current.ApplicationInstance.CompleteRequest();
                }
                else
                {
                    _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar o calendário escolar.", UtilBO.TipoMensagem.Erro);
                }
            }
        }
        catch (MSTech.Validation.Exceptions.ValidationException ex)
        {
            _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
        }
        catch (DuplicateNameException ex)
        {
            _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
        }
        catch (ArgumentException ex)
        {
            _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
        }
        catch (Exception ex)
        {
            ApplicationWEB._GravaErro(ex);
            _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar o calendário escolar.", UtilBO.TipoMensagem.Erro);
        }
    }
Esempio n. 22
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);
        }
Esempio n. 23
0
 /// <summary>
 /// Carrega todos os calendários não excluídos logicamente
 /// filtrando por docente (turmas que o docente está atribuído)
 /// </summary>
 /// <param name="doc_id">ID do docente</param>
 public void CarregarPorDocente(long doc_id)
 {
     CarregarCombo(ACA_CalendarioAnualBO.SelecionaCalendarioAnualPorDocente(doc_id, __SessionWEB.__UsuarioWEB.Usuario.ent_id, ApplicationWEB.AppMinutosCacheLongo));
 }
        public static bool Salvar(RelatorioPreenchimentoAluno relatorio, List <CLS_AlunoDeficienciaDetalhe> lstDeficienciaDetalhe, bool permiteAlterarRacaCor, byte racaCor, List <CLS_RelatorioPreenchimentoAcoesRealizadas> lstAcoesRealizadas)
        {
            CLS_RelatorioPreenchimentoDAO dao = new CLS_RelatorioPreenchimentoDAO();

            dao._Banco.Open(IsolationLevel.ReadCommitted);

            PES_PessoaDAO daoCore = new PES_PessoaDAO();

            daoCore._Banco.Open(IsolationLevel.ReadCommitted);

            try
            {
                bool retorno = true;

                if (permiteAlterarRacaCor)
                {
                    ACA_Aluno alu = new ACA_Aluno {
                        alu_id = relatorio.entityPreenchimentoAlunoTurmaDisciplina.alu_id
                    };
                    ACA_AlunoBO.GetEntity(alu);

                    PES_Pessoa pes = new PES_Pessoa {
                        pes_id = alu.pes_id
                    };
                    PES_PessoaBO.GetEntity(pes);

                    pes.pes_racaCor = racaCor;
                    PES_PessoaBO.Save(pes, daoCore._Banco);
                }

                List <CLS_AlunoDeficienciaDetalhe> lstDeficienciaDetalheBanco =
                    (from sAlunoDeficiencia alunoDeficiencia in CLS_AlunoDeficienciaDetalheBO.SelecionaPorAluno(relatorio.entityPreenchimentoAlunoTurmaDisciplina.alu_id)
                     from sAlunoDeficienciaDetalhe alunoDeficienciaDetalhe in alunoDeficiencia.lstDeficienciaDetalhe
                     select new CLS_AlunoDeficienciaDetalhe
                {
                    alu_id = relatorio.entityPreenchimentoAlunoTurmaDisciplina.alu_id
                    ,
                    tde_id = alunoDeficiencia.tde_id
                    ,
                    dfd_id = alunoDeficienciaDetalhe.dfd_id
                }).ToList();

                if (lstDeficienciaDetalheBanco.Any())
                {
                    lstDeficienciaDetalheBanco.ForEach(p => CLS_AlunoDeficienciaDetalheBO.Delete(p, dao._Banco));
                }


                if (relatorio.entityRelatorioPreenchimento.reap_id > 0)
                {
                    CLS_QuestionarioConteudoPreenchimentoBO.ExcluiPorReapId(relatorio.entityRelatorioPreenchimento.reap_id, dao._Banco);
                    CLS_QuestionarioRespostaPreenchimentoBO.ExcluiPorReapId(relatorio.entityRelatorioPreenchimento.reap_id, dao._Banco);
                }

                retorno &= Save(relatorio.entityRelatorioPreenchimento, dao._Banco);

                relatorio.entityPreenchimentoAlunoTurmaDisciplina.reap_id = relatorio.entityRelatorioPreenchimento.reap_id;
                retorno &= CLS_RelatorioPreenchimentoAlunoTurmaDisciplinaBO.Save(relatorio.entityPreenchimentoAlunoTurmaDisciplina, dao._Banco);

                relatorio.lstQuestionarioConteudoPreenchimento.ForEach
                (
                    p =>
                {
                    p.reap_id = relatorio.entityRelatorioPreenchimento.reap_id;
                    retorno  &= CLS_QuestionarioConteudoPreenchimentoBO.Save(p, dao._Banco);
                }
                );

                relatorio.lstQuestionarioRespostaPreenchimento.ForEach
                (
                    p =>
                {
                    p.reap_id = relatorio.entityRelatorioPreenchimento.reap_id;
                    retorno  &= CLS_QuestionarioRespostaPreenchimentoBO.Save(p, dao._Banco);
                }
                );

                lstDeficienciaDetalhe.ForEach
                (
                    p =>
                {
                    retorno &= CLS_AlunoDeficienciaDetalheBO.Save(p, dao._Banco);
                }
                );

                lstAcoesRealizadas.ForEach
                (
                    p =>
                {
                    if (p.rpa_situacao == (byte)CLS_RelatorioPreenchimentoAcoesRealizadasSituacao.Excluido)
                    {
                        retorno &= CLS_RelatorioPreenchimentoAcoesRealizadasBO.Delete(p, dao._Banco);
                    }
                    else
                    {
                        p.reap_id = relatorio.entityRelatorioPreenchimento.reap_id;
                        retorno  &= CLS_RelatorioPreenchimentoAcoesRealizadasBO.Save(p, dao._Banco);
                    }
                }
                );

                CLS_RelatorioAtendimento relatorioAtendimento = CLS_RelatorioAtendimentoBO.GetEntity(new CLS_RelatorioAtendimento {
                    rea_id = relatorio.entityRelatorioPreenchimento.rea_id
                });

                ACA_CalendarioAnual       calendario    = ACA_CalendarioAnualBO.SelecionaPorTurma(relatorio.entityPreenchimentoAlunoTurmaDisciplina.tur_id);
                List <MTR_MatriculaTurma> matriculasAno = MTR_MatriculaTurmaBO.GetSelectMatriculasAlunoAno(relatorio.entityPreenchimentoAlunoTurmaDisciplina.alu_id, calendario.cal_ano);
                matriculasAno.ForEach(p => CLS_RelatorioPreenchimentoAlunoTurmaDisciplinaBO.LimpaCache_AlunoPreenchimentoPorPeriodoDisciplina(relatorio.entityPreenchimentoAlunoTurmaDisciplina.tpc_id, p.tur_id));

                if (relatorioAtendimento.rea_gerarPendenciaFechamento &&
                    ACA_FormatoAvaliacaoBO.CarregarPorTur(relatorio.entityPreenchimentoAlunoTurmaDisciplina.tur_id, dao._Banco).fav_fechamentoAutomatico)
                {
                    List <AlunoFechamentoPendencia> FilaProcessamento = new List <AlunoFechamentoPendencia>();
                    if (relatorioAtendimento.rea_tipo == (byte)CLS_RelatorioAtendimentoTipo.RP &&
                        relatorio.entityPreenchimentoAlunoTurmaDisciplina.tud_id > 0)
                    {
                        if (relatorio.entityPreenchimentoAlunoTurmaDisciplina.tpc_id > 0)
                        {
                            FilaProcessamento.Add(
                                new AlunoFechamentoPendencia
                            {
                                tud_id = relatorio.entityPreenchimentoAlunoTurmaDisciplina.tud_id
                                ,
                                tpc_id = relatorio.entityPreenchimentoAlunoTurmaDisciplina.tpc_id
                                ,
                                afp_frequencia = true
                                ,
                                afp_nota = true
                                ,
                                afp_processado = 2
                            });
                        }
                        else
                        {
                            FilaProcessamento.AddRange(ACA_CalendarioPeriodoBO.SelecionaPor_Calendario(calendario.cal_id, GestaoEscolarUtilBO.MinutosCacheLongo)
                                                       .Select(p => new AlunoFechamentoPendencia
                            {
                                tud_id         = relatorio.entityPreenchimentoAlunoTurmaDisciplina.tud_id,
                                tpc_id         = p.tpc_id,
                                afp_frequencia = true,
                                afp_nota       = false,
                                afp_processado = 2
                            }).ToList());
                        }
                    }
                    else
                    {
                        if (relatorio.entityPreenchimentoAlunoTurmaDisciplina.tpc_id > 0)
                        {
                            FilaProcessamento.AddRange(TUR_TurmaDisciplinaBO.GetSelectBy_Turma(relatorio.entityPreenchimentoAlunoTurmaDisciplina.tur_id, dao._Banco, GestaoEscolarUtilBO.MinutosCacheLongo)
                                                       .Select(p => new AlunoFechamentoPendencia
                            {
                                tud_id = p.tud_id
                                ,
                                tpc_id = relatorio.entityPreenchimentoAlunoTurmaDisciplina.tpc_id
                                ,
                                afp_frequencia = true
                                ,
                                afp_nota = true
                                ,
                                afp_processado = 2
                            }).ToList());
                        }
                        else
                        {
                            var periodos = ACA_CalendarioPeriodoBO.SelecionaPor_Calendario(calendario.cal_id, GestaoEscolarUtilBO.MinutosCacheLongo);
                            FilaProcessamento.AddRange(TUR_TurmaDisciplinaBO.GetSelectBy_Turma(relatorio.entityPreenchimentoAlunoTurmaDisciplina.tur_id, dao._Banco, GestaoEscolarUtilBO.MinutosCacheLongo)
                                                       .SelectMany
                                                       (
                                                           tud =>

                                                           periodos.Select
                                                           (
                                                               tpc =>
                                                               new AlunoFechamentoPendencia
                            {
                                tud_id = tud.tud_id
                                ,
                                tpc_id = tpc.tpc_id
                                ,
                                afp_frequencia = true
                                ,
                                afp_nota = true
                                ,
                                afp_processado = 2
                            }
                                                           ).ToList()
                                                       ));
                        }
                    }

                    if (FilaProcessamento.Any())
                    {
                        CLS_AlunoFechamentoPendenciaBO.SalvarFilaPendencias(FilaProcessamento, dao._Banco);
                    }
                }

                return(retorno);
            }
            catch (Exception ex)
            {
                dao._Banco.Close(ex);
                daoCore._Banco.Close(ex);
                throw;
            }
            finally
            {
                if (dao._Banco.ConnectionIsOpen)
                {
                    dao._Banco.Close();
                }

                if (daoCore._Banco.ConnectionIsOpen)
                {
                    daoCore._Banco.Close();
                }
            }
        }