private void subReportEstudos_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { string estudos = ACA_AlunoHistoricoBO.GerarEsturosHistPedagogico(Convert.ToInt64(this.GetCurrentColumnValue("alu_id").ToString()), new Guid()); if (string.IsNullOrEmpty(estudos)) { ((SubHistoricoEscolarEstudos)((XRSubreport)sender).ReportSource).Visible = false; } ((SubHistoricoEscolarEstudos)((XRSubreport)sender).ReportSource).ESTUDOS.Value = estudos; }
private void subReportGrade_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { string grade = ACA_AlunoHistoricoBO.GerarGradeHistPedagogico(Convert.ToInt64(this.GetCurrentColumnValue("alu_id").ToString()), new Guid()); if (string.IsNullOrEmpty(grade)) { ((SubHistoricoEscolarGrade)((XRSubreport)sender).ReportSource).Visible = false; } ((SubHistoricoEscolarGrade)((XRSubreport)sender).ReportSource).GRADE.Value = grade; }
public void Carregar(int anoLetivo, int tcp_id, int tne_id) { try { dtDados = ACA_AlunoHistoricoBO.Seleciona_TipoCurriculoPeriodoAnoLetivo(tcp_id, anoLetivo, tne_id); dtDados.Columns.Add("ahd_id"); dtDados.Columns.Add("grade", typeof(bool)); dtDados.Columns.Add("alu_id", typeof(int)); dtDados.Columns.Add("ahd_avaliacao", typeof(string)); dtDados.Columns.Add("ahd_frequencia", typeof(int)); foreach (DataRow row in dtDados.Rows) { if (Convert.ToInt32(row["tds_id"]) > 0) { row["grade"] = true; } else { row["grade"] = false; } } if (dtDados.Rows.Count == 0) { lblMessage.Text = UtilBO.GetErroMessage((string)GetGlobalResourceObject("UserControl", "UCAddResultadoFinal.NenhumDadoParaInserir"), UtilBO.TipoMensagem.Informacao); } else { ACA_FormatoAvaliacao fav = new ACA_FormatoAvaliacao { fav_id = Convert.ToInt32(dtDados.Rows[0]["fav_id"]) }; ACA_FormatoAvaliacaoBO.GetEntity(fav); VS_fav_tipo = fav.fav_tipo; esa_id = fav.esa_idPorDisciplina > 0 ? fav.esa_idPorDisciplina : fav.esa_idConceitoGlobal; ACA_EscalaAvaliacao esa = new ACA_EscalaAvaliacao { esa_id = esa_id }; ACA_EscalaAvaliacaoBO.GetEntity(esa); tipo = esa.esa_tipo; } } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMessage.Text = UtilBO.GetErroMessage((string)GetGlobalResourceObject("UserControl", "UCAddResultadoFinal.ErroCarregar"), UtilBO.TipoMensagem.Erro); } }
private void subReportTransferencia_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { string dataTransferencia = ""; string transferencia = ACA_AlunoHistoricoBO.GerarTransferenciaHistPedagogico(Convert.ToInt64(this.GetCurrentColumnValue("alu_id").ToString()), Convert.ToInt32(this.GetCurrentColumnValue("mtu_id").ToString()), out dataTransferencia); if (string.IsNullOrEmpty(transferencia)) { ((SubHistoricoEscolarTransferencia)((XRSubreport)sender).ReportSource).Visible = false; } ((SubHistoricoEscolarTransferencia)((XRSubreport)sender).ReportSource).TRANSFERENCIA.Value = transferencia; ((SubHistoricoEscolarTransferencia)((XRSubreport)sender).ReportSource).DATATRANSF.Value = dataTransferencia; }
public void CarregarDados(SortedList <int, ACA_AlunoHistoricoBO.StructHistorico> alh, bool permiteEditar) { if (dtDados.Rows.Count > 0) { CarregarNovo(permiteEditar, alh.FirstOrDefault().Value.ltDisciplina); } { #region COMPONENTE CURRICULAR foreach (GridViewRow row in grvResFinalCompCurricular.Rows) { TextBox txtNota = (TextBox)row.FindControl("txtNota"); DropDownList ddlPareceres = (DropDownList)row.FindControl("ddlPareceres"); HiddenField hdnAhdId = (HiddenField)row.FindControl("hdnAhdId"); int ahdId; int.TryParse(hdnAhdId.Value, out ahdId); if (ahdId == 0) { hdnAhdId.Value = (from dados in alh.FirstOrDefault().Value.ltDisciplina where dados.entDisciplina.tds_id == Convert.ToInt32(grvResFinalCompCurricular.DataKeys[row.RowIndex]["tds_id"]) select dados.entDisciplina.ahd_id).FirstOrDefault().ToString(); } if (ahdId < 0) { hdnAhdId.Value = "-1"; } if (ahdId > 0 || Convert.ToInt32(grvResFinalCompCurricular.DataKeys[row.RowIndex]["tds_id"]) > 0) { if (txtNota.Visible) { if (ahdId <= 0) { txtNota.Text = (from dados in alh.FirstOrDefault().Value.ltDisciplina where dados.entDisciplina.tds_id == Convert.ToInt32(grvResFinalCompCurricular.DataKeys[row.RowIndex]["tds_id"]) select dados.entDisciplina.ahd_avaliacao).FirstOrDefault(); } else { txtNota.Text = (from dados in alh.FirstOrDefault().Value.ltDisciplina where dados.entDisciplina.ahd_id == Convert.ToInt32(grvResFinalCompCurricular.DataKeys[row.RowIndex]["ahd_id"]) select dados.entDisciplina.ahd_avaliacao).FirstOrDefault(); } } else if (ddlPareceres.Visible) { string valor; if (ahdId <= 0) { valor = (from dados in alh.FirstOrDefault().Value.ltDisciplina where dados.entDisciplina.tds_id == Convert.ToInt32(grvResFinalCompCurricular.DataKeys[row.RowIndex]["tds_id"]) select dados.entDisciplina.ahd_avaliacao).FirstOrDefault(); } else { valor = (from dados in alh.FirstOrDefault().Value.ltDisciplina where dados.entDisciplina.ahd_id == Convert.ToInt32(grvResFinalCompCurricular.DataKeys[row.RowIndex]["ahd_id"]) select dados.entDisciplina.ahd_avaliacao).FirstOrDefault(); } valor = (from par in LtPareceresNota where par.eap_valor.Equals(valor) select par.eap_valor + ";" + par.eap_ordem.ToString()).FirstOrDefault(); if (ddlPareceres.Items.FindByValue(valor) != null) { ddlPareceres.SelectedValue = valor; } } TextBox txtFrequencia = (TextBox)row.FindControl("txtFrequencia"); DropDownList ddlFrequencia = (DropDownList)row.FindControl("ddlFrequencia"); if (txtFrequencia.Visible) { if (ahdId <= 0) { txtFrequencia.Text = (from dados in alh.FirstOrDefault().Value.ltDisciplina where dados.entDisciplina.tds_id == Convert.ToInt32(grvResFinalCompCurricular.DataKeys[row.RowIndex]["tds_id"]) select dados.entDisciplina.ahd_frequencia).FirstOrDefault(); } else { txtFrequencia.Text = (from dados in alh.FirstOrDefault().Value.ltDisciplina where dados.entDisciplina.ahd_id == Convert.ToInt32(grvResFinalCompCurricular.DataKeys[row.RowIndex]["ahd_id"]) select dados.entDisciplina.ahd_frequencia).FirstOrDefault(); } } else if (ddlFrequencia.Visible) { string valor; if (ahdId <= 0) { valor = (from dados in alh.FirstOrDefault().Value.ltDisciplina where dados.entDisciplina.tds_id == Convert.ToInt32(grvResFinalCompCurricular.DataKeys[row.RowIndex]["tds_id"]) select dados.entDisciplina.ahd_frequencia).FirstOrDefault(); } else { valor = (from dados in alh.FirstOrDefault().Value.ltDisciplina where dados.entDisciplina.ahd_id == Convert.ToInt32(grvResFinalCompCurricular.DataKeys[row.RowIndex]["ahd_id"]) select dados.entDisciplina.ahd_frequencia).FirstOrDefault(); } if (ddlFrequencia.Items.FindByValue(valor) != null) { ddlFrequencia.SelectedValue = valor; } } } } #endregion #region ENRIQUECIMENTO CURRICULAR foreach (GridViewRow row in grvResFinalEnrCurricular.Rows) { TextBox txtFrequencia = (TextBox)row.FindControl("txtFrequencia"); DropDownList ddlFrequencia = (DropDownList)row.FindControl("ddlFrequencia"); HiddenField hdnAhdId = (HiddenField)row.FindControl("hdnAhdId"); hdnAhdId.Value = (from dados in alh.FirstOrDefault().Value.ltDisciplina where dados.entDisciplina.tds_id == Convert.ToInt32(grvResFinalEnrCurricular.DataKeys[row.RowIndex]["tds_id"]) select dados.entDisciplina.ahd_id).FirstOrDefault().ToString(); if (txtFrequencia.Visible) { txtFrequencia.Text = (from dados in alh.FirstOrDefault().Value.ltDisciplina where dados.entDisciplina.tds_id == Convert.ToInt32(grvResFinalEnrCurricular.DataKeys[row.RowIndex]["tds_id"]) select dados.entDisciplina.ahd_frequencia).FirstOrDefault(); } else if (ddlFrequencia.Visible) { string valor = (from dados in alh.FirstOrDefault().Value.ltDisciplina where dados.entDisciplina.tds_id == Convert.ToInt32(grvResFinalEnrCurricular.DataKeys[row.RowIndex]["tds_id"]) select dados.entDisciplina.ahd_resultado.ToString()).FirstOrDefault(); if (ddlFrequencia.Items.FindByValue(valor) != null) { ddlFrequencia.SelectedValue = valor; } } } #endregion } #region PORJ/ATIV COMPLEMENTAR foreach (GridViewRow row in grvResFinalProjAtivCompl.Rows) { TextBox txtFrequencia = (TextBox)row.FindControl("txtFrequencia"); DropDownList ddlFrequencia = (DropDownList)row.FindControl("ddlFrequencia"); HiddenField hdnAhdId = (HiddenField)row.FindControl("hdnAhdId"); hdnAhdId.Value = (from dados in alh.FirstOrDefault().Value.ltDisciplina where dados.entDisciplina.ahp_id == Convert.ToInt32(grvResFinalProjAtivCompl.DataKeys[row.RowIndex]["ahp_id"]) select dados.entDisciplina.ahd_id).FirstOrDefault().ToString(); if (txtFrequencia.Visible) { txtFrequencia.Text = (from dados in alh.FirstOrDefault().Value.ltDisciplina where dados.entDisciplina.ahp_id == Convert.ToInt32(grvResFinalProjAtivCompl.DataKeys[row.RowIndex]["ahp_id"]) select dados.entDisciplina.ahd_frequencia).FirstOrDefault(); } else if (ddlFrequencia.Visible) { string valor = (from dados in alh.FirstOrDefault().Value.ltDisciplina where dados.entDisciplina.ahp_id == Convert.ToInt32(grvResFinalProjAtivCompl.DataKeys[row.RowIndex]["ahp_id"]) select dados.entDisciplina.ahd_resultado.ToString()).FirstOrDefault(); if (ddlFrequencia.Items.FindByValue(valor) != null) { ddlFrequencia.SelectedValue = valor; } } } #endregion #region PARECER CONCLUSIVO foreach (GridViewRow row in grvResFinalConclusivo.Rows) { DropDownList ddlParecerConclusivo = (DropDownList)row.FindControl("ddlParecerConclusivo"); if (ddlParecerConclusivo.Items.FindByValue(ACA_AlunoHistoricoBO.HistoricoRes(alh.FirstOrDefault().Value.entHistorico.alh_resultado).ToString()) != null) { ddlParecerConclusivo.SelectedValue = ACA_AlunoHistoricoBO.HistoricoRes(alh.FirstOrDefault().Value.entHistorico.alh_resultado).ToString(); } } #endregion }
/// <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(); } } }
/// <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(); } } }