/// <summary> /// Carregar os períodos e seta a visibilidade dos botões de acordo com a permissão do usuário. /// </summary> public void CarregarPeriodos ( List <sPermissaoDocente> VS_ltPermissaoFrequencia , List <sPermissaoDocente> VS_ltPermissaoEfetivacao , List <sPermissaoDocente> VS_ltPermissaoPlanejamentoAnual , List <sPermissaoDocente> VS_ltPermissaoAvaliacao , TUR_TurmaDisciplina VS_turmaDisciplinaRelacionada , int esc_id , byte tud_tipo , byte tdt_posicao = 0 , Int64 tur_id = -1 , Int64 tud_id = -1 , bool incluirPeriodoRecesso = false , int tpcIdPendencia = -1 ) { // Habilita a visibilidade dos botões alunos e voltar VisibleAlunos = !ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.MINHAS_TURMAS_ESCONDER_BOTAO_ALUNO, __SessionWEB.__UsuarioWEB.Usuario.ent_id); VisibleVoltar = !ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.MINHAS_TURMAS_ESCONDER_BOTAO_VOLTAR, __SessionWEB.__UsuarioWEB.Usuario.ent_id); int fav_id = -1; if (tur_id > 0 && tud_id > 0 && ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.PRE_CARREGAR_CACHE_EFETIVACAO, __SessionWEB.__UsuarioWEB.Usuario.ent_id)) { TUR_Turma entityTurma = new TUR_Turma { tur_id = tur_id }; TUR_TurmaBO.GetEntity(entityTurma); ACA_FormatoAvaliacao entityFormato = new ACA_FormatoAvaliacao { fav_id = entityTurma.fav_id }; ACA_FormatoAvaliacaoBO.GetEntity(entityFormato); ACA_EscalaAvaliacao entityEscala = new ACA_EscalaAvaliacao { esa_id = entityFormato.esa_idPorDisciplina }; ACA_EscalaAvaliacaoBO.GetEntity(entityEscala); ACA_EscalaAvaliacao entityEscalaDocente = new ACA_EscalaAvaliacao { esa_id = entityFormato.esa_idDocente }; ACA_EscalaAvaliacaoBO.GetEntity(entityEscalaDocente); TUR_TurmaDisciplina entityTurmaDisciplina = new TUR_TurmaDisciplina { tud_id = tud_id }; TUR_TurmaDisciplinaBO.GetEntity(entityTurmaDisciplina); // Valor do conceito global ou por disciplina. string valorMinimo = tud_id > 0 ? entityFormato.valorMinimoAprovacaoPorDisciplina : entityFormato.valorMinimoAprovacaoConceitoGlobal; double notaMinimaAprovacao = 0; int ordemParecerMinimo = 0; EscalaAvaliacaoTipo tipoEscala = (EscalaAvaliacaoTipo)entityEscala.esa_tipo; if (tipoEscala == EscalaAvaliacaoTipo.Numerica) { notaMinimaAprovacao = Convert.ToDouble(valorMinimo.Replace(',', '.')); } else if (tipoEscala == EscalaAvaliacaoTipo.Pareceres) { ordemParecerMinimo = ACA_EscalaAvaliacaoParecerBO.RetornaOrdem_Parecer(entityEscala.esa_id, valorMinimo, ApplicationWEB.AppMinutosCacheLongo); } hdnTudId.Value = tud_id.ToString(); hdnTurId.Value = entityTurma.tur_id.ToString(); hdnFavId.Value = entityTurma.fav_id.ToString(); hdnEsaId.Value = entityEscala.esa_id.ToString(); hdnTipoEscala.Value = entityEscala.esa_tipo.ToString(); hdnTipoEscalaDocente.Value = entityEscalaDocente.esa_tipo.ToString(); hdnNotaMinima.Value = notaMinimaAprovacao.ToString(); hdnParecerMinimo.Value = ordemParecerMinimo.ToString(); hdnTipoLancamento.Value = entityFormato.fav_tipoLancamentoFrequencia.ToString(); hdnCalculoQtAulasDadas.Value = entityFormato.fav_calculoQtdeAulasDadas.ToString(); hdnTurTipo.Value = entityTurma.tur_tipo.ToString(); hdnCalId.Value = entityTurma.cal_id.ToString(); hdnTudTipo.Value = entityTurmaDisciplina.tud_tipo.ToString(); hdnVariacao.Value = entityFormato.fav_variacao.ToString(); hdnTipoDocente.Value = (__SessionWEB.__UsuarioWEB.Docente.doc_id > 0 ? (byte)ACA_TipoDocenteBO.SelecionaTipoDocentePorPosicao(tdt_posicao, ApplicationWEB.AppMinutosCacheLongo) : (byte)0).ToString(); hdnDisciplinaEspecial.Value = entityTurmaDisciplina.tud_disciplinaEspecial ? "true" : "false"; hdnFechamentoAutomatico.Value = entityFormato.fav_fechamentoAutomatico ? "true" : "false"; hdnProcessarFilaFechamentoTela.Value = ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.PROCESSAR_FILA_FECHAMENTO_TELA, __SessionWEB.__UsuarioWEB.Usuario.ent_id) ? "true" : "false"; fav_id = entityFormato.fav_id; } if (ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.TELA_UNICA_LANCAMENTO_FREQUENCIA_AVALIACAO, __SessionWEB.__UsuarioWEB.Usuario.ent_id)) { VisibleListao = VS_ltPermissaoFrequencia.Any(p => p.pdc_permissaoConsulta) || VS_ltPermissaoAvaliacao.Any(p => p.pdc_permissaoConsulta); btnFrequencia.Visible = btnAvaliacao.Visible = false; } else { VisibleListao = false; btnFrequencia.Visible = VS_ltPermissaoFrequencia.Any(p => p.pdc_permissaoConsulta); btnAvaliacao.Visible = VS_ltPermissaoAvaliacao.Any(p => p.pdc_permissaoConsulta); } VisibleEfetivacao = tud_tipo != (byte)ACA_CurriculoDisciplinaTipo.DocenciaCompartilhada && VS_ltPermissaoEfetivacao.Any(p => p.pdc_permissaoConsulta) && !ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.MINHAS_TURMAS_ESCONDER_BOTAO_EFETIVACAO, __SessionWEB.__UsuarioWEB.Usuario.ent_id); VisiblePlanejamentoAnual = tud_tipo == (byte)ACA_CurriculoDisciplinaTipo.DocenciaCompartilhada ? VS_turmaDisciplinaRelacionada != null && VS_turmaDisciplinaRelacionada.tud_naoLancarPlanejamento == false : VS_ltPermissaoPlanejamentoAnual.Any(p => p.pdc_permissaoConsulta); List <Struct_CalendarioPeriodos> lstCalendarioPeriodos = ACA_CalendarioPeriodoBO.SelecionaPor_Calendario(VS_cal_id, ApplicationWEB.AppMinutosCacheLongo, false, __SessionWEB.__UsuarioWEB.Usuario.ent_id); if (incluirPeriodoRecesso) { VS_CalendarioPeriodo = lstCalendarioPeriodos; } else { VS_CalendarioPeriodo = lstCalendarioPeriodos.FindAll(p => p.tpc_id != ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_PERIODO_CALENDARIO_RECESSO, __SessionWEB.__UsuarioWEB.Usuario.ent_id)); // Se o período selecionado for de recesso, // seleciono o bimestre anterior. if (VS_tpc_id == ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_PERIODO_CALENDARIO_RECESSO, __SessionWEB.__UsuarioWEB.Usuario.ent_id)) { int indiceRecesso = lstCalendarioPeriodos.FindIndex(p => p.tpc_id == VS_tpc_id); if (indiceRecesso > 0) { Struct_CalendarioPeriodos periodo = lstCalendarioPeriodos[indiceRecesso - 1]; VS_tpc_id = periodo.tpc_id; VS_tpc_ordem = periodo.tpc_ordem; } } } VS_cal_ano = VS_CalendarioPeriodo.Find(p => p.cal_id == VS_cal_id).cal_ano; List <ESC_EscolaCalendarioPeriodo> lstEscCalPeriodo = ESC_EscolaCalendarioPeriodoBO.SelectEscolasCalendarioCache(VS_cal_id, ApplicationWEB.AppMinutosCacheCurto); VS_CalendarioPeriodo = VS_CalendarioPeriodo.Where(calP => (lstEscCalPeriodo.Where(escP => (escP.esc_id == esc_id && escP.tpc_id == calP.tpc_id)).Count() == 0)).ToList(); if (VS_IncluirPeriodoFinal) { Struct_CalendarioPeriodos[] calendarioPeriodosCopy = new Struct_CalendarioPeriodos[VS_CalendarioPeriodo.Count() + 1]; VS_CalendarioPeriodo.CopyTo(calendarioPeriodosCopy, 0); Struct_CalendarioPeriodos periodoFinal = new Struct_CalendarioPeriodos(); periodoFinal.cap_descricao = periodoFinal.tpc_nomeAbreviado = GetGlobalResourceObject("UserControl", "NavegacaoTelaPeriodo.UCNavegacaoTelaPeriodo.PeriodoFinal").ToString(); periodoFinal.tpc_id = -1; calendarioPeriodosCopy[VS_CalendarioPeriodo.Count()] = periodoFinal; rptPeriodo.DataSource = calendarioPeriodosCopy; } else { rptPeriodo.DataSource = VS_CalendarioPeriodo; } if (fav_id > 0) { string tpc_id = string.Join(",", VS_CalendarioPeriodo.Select(p => p.tpc_id.ToString()).ToArray()); ltAvaliacao = ACA_AvaliacaoBO.ConsultaPor_Periodo_Relacionadas(fav_id, tpc_id, ApplicationWEB.AppMinutosCacheLongo); if (VS_IncluirPeriodoFinal) { ltAvaliacao.AddRange(ACA_AvaliacaoBO.SelectAvaliacaoFinal_PorFormato(fav_id, ApplicationWEB.AppMinutosCacheLongo)); } } rptPeriodo.DataBind(); //Seleciona o ultimo bimestre List <Struct_CalendarioPeriodos> tabelaPeriodos = ACA_CalendarioPeriodoBO.SelecionaPor_Calendario(VS_cal_id, ApplicationWEB.AppMinutosCacheLongo); int tpc_idUltimoPeriodo = tabelaPeriodos.Count > 0 ? tabelaPeriodos.Last().tpc_id : -1; int tpc_ordemUltimoPeriodo = tabelaPeriodos.Count > 0 ? tabelaPeriodos.Last().tpc_ordem : 0; if (tpcIdPendencia > 0) { //Busca o bimestre pendente Struct_CalendarioPeriodos periodo = VS_CalendarioPeriodo.Where(x => x.tpc_id == tpcIdPendencia).FirstOrDefault(); VS_tpc_id = periodo.tpc_id; VS_tpc_ordem = periodo.tpc_ordem; } if (VS_tpc_id <= 0 && !VS_IncluirPeriodoFinal) { //Busca o bimestre corrente Struct_CalendarioPeriodos periodo = VS_CalendarioPeriodo.Where(x => (x.cap_dataInicio.Date <= DateTime.Now.Date && x.cap_dataFim.Date >= DateTime.Now.Date)).FirstOrDefault(); VS_tpc_id = periodo.tpc_id; VS_tpc_ordem = periodo.tpc_ordem; if (VS_tpc_id <= 0) { //Se não tem bimestre selecionado e nem bimestre corrente então seleciona o próximo corrente periodo = VS_CalendarioPeriodo.Where(x => (x.cap_dataInicio.Date >= DateTime.Now.Date)).FirstOrDefault(); VS_tpc_id = periodo.tpc_id; VS_tpc_ordem = periodo.tpc_ordem; if (VS_tpc_id <= 0) { //Se não tem bimestre selecionado então seleciona o ultimo VS_tpc_id = tpc_idUltimoPeriodo; VS_tpc_ordem = tpc_ordemUltimoPeriodo; } } } if (VS_tpc_id >= 0 && VS_IncluirPeriodoFinal) { if (VS_tpc_id == tpc_idUltimoPeriodo) { // Se for o ultimo periodo e a avaliacao final estiver aberta, // selecionar a avaliacao final List <ACA_Evento> listaEventos = ACA_EventoBO.GetEntity_Efetivacao_List(VS_cal_id, tur_id, __SessionWEB.__UsuarioWEB.Grupo.gru_id, __SessionWEB.__UsuarioWEB.Usuario.ent_id, ApplicationWEB.AppMinutosCacheLongo, true, __SessionWEB.__UsuarioWEB.Docente.doc_id); if (listaEventos.Exists(p => p.tev_id == ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_EVENTO_EFETIVACAO_FINAL, __SessionWEB.__UsuarioWEB.Usuario.ent_id))) { VS_tpc_id = -1; VS_tpc_ordem = 0; } } if (VS_tpc_id == 0) { //Se não tem bimestre selecionado e nem bimestre corrente então seleciona o próximo corrente Struct_CalendarioPeriodos periodo = VS_CalendarioPeriodo.Where(x => (x.cap_dataInicio.Date >= DateTime.Now.Date)).FirstOrDefault(); VS_tpc_id = periodo.tpc_id; VS_tpc_ordem = periodo.tpc_ordem; if (VS_tpc_id <= 0) { //Se não tem bimestre selecionado então seleciona o final VS_tpc_id = -1; VS_tpc_ordem = 0; } } } if (VS_tpc_ordem < 0) { VS_tpc_ordem = 0; } // Seleciona o botão do bimestre informado (VS_tpc_id) rptPeriodo.Items.Cast <RepeaterItem>().ToList() .Select(p => (Button)p.FindControl("btnPeriodo")) .ToList().ForEach(p => RemoveClass(p, "periodo_selecionado")); rptPeriodo.Items.Cast <RepeaterItem>().ToList() .Where(p => Convert.ToInt32(((HiddenField)p.FindControl("hdnPeriodo")).Value) == VS_tpc_id && Convert.ToInt32(((HiddenField)p.FindControl("hdnPeriodoOrdem")).Value) == VS_tpc_ordem) .Select(p => (Button)p.FindControl("btnPeriodo")) .ToList() .ForEach ( p => { AddClass(p, "periodo_selecionado"); HiddenField hdn = (HiddenField)p.FindControl("hdnIdAvaliacao"); if (!string.IsNullOrEmpty(hdn.Value)) { hdnAvaId.Value = hdn.Value; } hdn = (HiddenField)p.FindControl("hdnAvaliacaoTipo"); if (!string.IsNullOrEmpty(hdn.Value)) { hdnTipoAvaliacao.Value = hdn.Value; } hdnTpcId.Value = VS_tpc_id.ToString(); hdn = (HiddenField)p.FindControl("hdnPeriodoOrdem"); if (!string.IsNullOrEmpty(hdn.Value)) { hdnTpcOrdem.Value = hdn.Value; } } ); }
/// <summary> /// O método realiza a importação dos registros que foram analisados com sucesso. /// </summary> private void ImportarArquivo() { try { List <LoteFechamento> listaSucesso = VS_listaLoteFechamento.Where(p => p.status == LoteStatus.Sucess).ToList(); if (listaSucesso.Any()) { int sucesso, erro; VS_listaLoteFechamento = CLS_ArquivoEfetivacaoBO.SalvarRegistrosLote(__SessionWEB.__UsuarioWEB.Usuario.ent_id, listaSucesso, VS_arquivo, out sucesso, out erro); // Configura e atualiza GridView UCComboQtdePaginacao.Valor = 10; grvArquivo.PageIndex = 0; grvArquivo.PageSize = Convert.ToInt32(UCComboQtdePaginacao.Valor); grvArquivo.DataBind(); // Configura importação dos registro do arquivo lblSucesso.Text = sucesso.ToString(); lblErro.Text = erro.ToString(); lblTotal.Text = (sucesso + erro).ToString(); ConfigurarPasso(ePasso.ImportacaoArquivo); // Configura mensagem da importação dos registro lblMessage.Text = sucesso > 0 ? ( erro > 0 ? UtilBO.GetMessage(String.Format("Importação de dados de {0} de {1} realizada com sucesso, porém alguns registros não foram importados devido a erros encontrados.", nomeEfetivacao.ToLower(), nomeBimestre.ToLower()), UtilBO.TipoMensagem.Sucesso) : UtilBO.GetMessage(String.Format("Importação de dados de {0} de {1} realizada com sucesso.", nomeEfetivacao.ToLower(), nomeBimestre.ToLower()), UtilBO.TipoMensagem.Sucesso) ) : UtilBO.GetMessage(String.Format("Não foi possível realizar importação de dados de {0} de {1} devido a erros encontrados.", nomeEfetivacao.ToLower(), nomeBimestre.ToLower()), UtilBO.TipoMensagem.Erro); if (sucesso > 0) { ApplicationWEB._GravaLogSistema ( LOG_SistemaTipo.Insert, String.Format("Importação de dados de {0} de {1} - sucesso: {2} / erro: {3} / tur_id: {4} / tpc_id: {5}", nomeEfetivacao.ToLower(), nomeBimestre.ToLower(), sucesso.ToString(), erro.ToString(), VS_tur_id.ToString(), VS_tpc_id.ToString()) ); } } else { lblMessage.Text = UtilBO.GetMessage("Não existem registros processados com sucesso para realizar a importação.", UtilBO.TipoMensagem.Alerta); } } catch (ValidationException ex) { lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Erro); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar importar dados do arquivo.", UtilBO.TipoMensagem.Erro); } finally { updMessage.Update(); } }