/// <summary> /// Salva os lançamentos de frequência externa do aluno /// </summary> private void Salvar() { try { List <CLS_AlunoFrequenciaExterna> lstAlunoFrequenciaExterna = (from RepeaterItem item in rptDisciplinas.Items where item.ItemType == ListItemType.AlternatingItem || item.ItemType == ListItemType.Item let rptFrequenciaDisciplina = (Repeater)item.FindControl("rptFrequenciaDisciplina") from RepeaterItem itemFreq in rptFrequenciaDisciplina.Items where itemFreq.ItemType == ListItemType.AlternatingItem || itemFreq.ItemType == ListItemType.Item let hdnMtuId = (HiddenField)itemFreq.FindControl("hdnMtuId") let hdnMtdId = (HiddenField)itemFreq.FindControl("hdnMtdId") let hdnMtdIdReg = (HiddenField)itemFreq.FindControl("hdnMtdIdReg") let hdnTpc = (HiddenField)itemFreq.FindControl("hdnTpc") let hdnAfx = (HiddenField)itemFreq.FindControl("hdnAfx") let afx_id = string.IsNullOrEmpty(hdnAfx.Value) ? -1 : Convert.ToInt32(hdnAfx.Value) let txtAulas = (TextBox)itemFreq.FindControl("txtAulas") let txtFaltas = (TextBox)itemFreq.FindControl("txtFaltas") let hdnTudId = (HiddenField)itemFreq.FindControl("hdnTudId") let hdnTudIdRegencia = (HiddenField)itemFreq.FindControl("hdnTudIdRegencia") let hdnTudTipo = (HiddenField)itemFreq.FindControl("hdnTudTipo") let tud_tipo = Convert.ToByte(hdnTudTipo.Value) let regencia = tud_tipo == (byte)TurmaDisciplinaTipo.ComponenteRegencia || tud_tipo == (byte)TurmaDisciplinaTipo.DocenteEspecificoComplementacaoRegencia where txtAulas.Visible && txtFaltas.Visible select new CLS_AlunoFrequenciaExterna { alu_id = VS_alu_id , mtu_id = Convert.ToInt32(hdnMtuId.Value) , mtd_id = regencia ? Convert.ToInt32(hdnMtdIdReg.Value) : Convert.ToInt32(hdnMtdId.Value) , tpc_id = Convert.ToInt32(hdnTpc.Value) , afx_id = afx_id , afx_qtdAulas = string.IsNullOrEmpty(txtAulas.Text) ? 0 : Convert.ToInt32(txtAulas.Text) , afx_qtdFaltas = string.IsNullOrEmpty(txtFaltas.Text) ? 0 : Convert.ToInt32(txtFaltas.Text) , IsNew = afx_id <= 0 , tud_id = regencia ? Convert.ToInt64(hdnTudIdRegencia.Value) : Convert.ToInt64(hdnTudId.Value) }).ToList(); lstAlunoFrequenciaExterna.AddRange (from RepeaterItem item in rptDisciplinasEnriquecimentoCurricular.Items where item.ItemType == ListItemType.AlternatingItem || item.ItemType == ListItemType.Item let rptFrequenciaDisciplina = (Repeater)item.FindControl("rptFrequenciaDisciplina") from RepeaterItem itemFreq in rptFrequenciaDisciplina.Items let hdnMtuId = (HiddenField)itemFreq.FindControl("hdnMtuId") let hdnMtdId = (HiddenField)itemFreq.FindControl("hdnMtdId") let hdnTpc = (HiddenField)itemFreq.FindControl("hdnTpc") let hdnAfx = (HiddenField)itemFreq.FindControl("hdnAfx") let afx_id = string.IsNullOrEmpty(hdnAfx.Value) ? -1 : Convert.ToInt32(hdnAfx.Value) let hdnTudId = (HiddenField)itemFreq.FindControl("hdnTudId") let txtAulas = (TextBox)itemFreq.FindControl("txtAulas") let txtFaltas = (TextBox)itemFreq.FindControl("txtFaltas") select new CLS_AlunoFrequenciaExterna { alu_id = VS_alu_id , mtu_id = Convert.ToInt32(hdnMtuId.Value) , mtd_id = Convert.ToInt32(hdnMtdId.Value) , tpc_id = Convert.ToInt32(hdnTpc.Value) , afx_id = afx_id , afx_qtdAulas = string.IsNullOrEmpty(txtAulas.Text) ? 0 : Convert.ToInt32(txtAulas.Text) , afx_qtdFaltas = string.IsNullOrEmpty(txtFaltas.Text) ? 0 : Convert.ToInt32(txtFaltas.Text) , IsNew = afx_id <= 0 , tud_id = Convert.ToInt64(hdnTudId.Value) }); lstAlunoFrequenciaExterna.AddRange (from RepeaterItem item in rptDisciplinasExperiencias.Items where item.ItemType == ListItemType.AlternatingItem || item.ItemType == ListItemType.Item let rptFrequenciaDisciplina = (Repeater)item.FindControl("rptFrequenciaDisciplina") from RepeaterItem itemFreq in rptFrequenciaDisciplina.Items let hdnMtuId = (HiddenField)itemFreq.FindControl("hdnMtuId") let hdnMtdId = (HiddenField)itemFreq.FindControl("hdnMtdId") let hdnTpc = (HiddenField)itemFreq.FindControl("hdnTpc") let hdnAfx = (HiddenField)itemFreq.FindControl("hdnAfx") let afx_id = string.IsNullOrEmpty(hdnAfx.Value) ? -1 : Convert.ToInt32(hdnAfx.Value) let hdnTudId = (HiddenField)itemFreq.FindControl("hdnTudId") let txtAulas = (TextBox)itemFreq.FindControl("txtAulas") let txtFaltas = (TextBox)itemFreq.FindControl("txtFaltas") select new CLS_AlunoFrequenciaExterna { alu_id = VS_alu_id , mtu_id = Convert.ToInt32(hdnMtuId.Value) , mtd_id = Convert.ToInt32(hdnMtdId.Value) , tpc_id = Convert.ToInt32(hdnTpc.Value) , afx_id = afx_id , afx_qtdAulas = string.IsNullOrEmpty(txtAulas.Text) ? 0 : Convert.ToInt32(txtAulas.Text) , afx_qtdFaltas = string.IsNullOrEmpty(txtFaltas.Text) ? 0 : Convert.ToInt32(txtFaltas.Text) , IsNew = afx_id <= 0 , tud_id = Convert.ToInt64(hdnTudId.Value) }); lstAlunoFrequenciaExterna.AddRange (from RepeaterItem item in rptDisciplinasEnsinoInfantil.Items where item.ItemType == ListItemType.AlternatingItem || item.ItemType == ListItemType.Item let rptFrequenciaDisciplina = (Repeater)item.FindControl("rptFrequenciaDisciplina") from RepeaterItem itemFreq in rptFrequenciaDisciplina.Items where itemFreq.ItemType == ListItemType.AlternatingItem || itemFreq.ItemType == ListItemType.Item let hdnMtuId = (HiddenField)itemFreq.FindControl("hdnMtuId") let hdnMtdId = (HiddenField)itemFreq.FindControl("hdnMtdId") let hdnMtdIdReg = (HiddenField)itemFreq.FindControl("hdnMtdIdReg") let hdnTpc = (HiddenField)itemFreq.FindControl("hdnTpc") let hdnAfx = (HiddenField)itemFreq.FindControl("hdnAfx") let afx_id = string.IsNullOrEmpty(hdnAfx.Value) ? -1 : Convert.ToInt32(hdnAfx.Value) let hdnTudId = (HiddenField)itemFreq.FindControl("hdnTudId") let hdnTudIdRegencia = (HiddenField)itemFreq.FindControl("hdnTudIdRegencia") let txtAulas = (TextBox)itemFreq.FindControl("txtAulas") let txtFaltas = (TextBox)itemFreq.FindControl("txtFaltas") let hdnTudTipo = (HiddenField)itemFreq.FindControl("hdnTudTipo") let tud_tipo = Convert.ToByte(hdnTudTipo.Value) let regencia = tud_tipo == (byte)TurmaDisciplinaTipo.ComponenteRegencia || tud_tipo == (byte)TurmaDisciplinaTipo.DocenteEspecificoComplementacaoRegencia where txtAulas.Visible && txtFaltas.Visible select new CLS_AlunoFrequenciaExterna { alu_id = VS_alu_id , mtu_id = Convert.ToInt32(hdnMtuId.Value) , mtd_id = regencia ? Convert.ToInt32(hdnMtdIdReg.Value) : Convert.ToInt32(hdnMtdId.Value) , tpc_id = Convert.ToInt32(hdnTpc.Value) , afx_id = afx_id , afx_qtdAulas = string.IsNullOrEmpty(txtAulas.Text) ? 0 : Convert.ToInt32(txtAulas.Text) , afx_qtdFaltas = string.IsNullOrEmpty(txtFaltas.Text) ? 0 : Convert.ToInt32(txtFaltas.Text) , IsNew = afx_id <= 0 , tud_id = regencia ? Convert.ToInt64(hdnTudIdRegencia.Value) : Convert.ToInt64(hdnTudId.Value) }); int fav_id = VS_ListaDadosPeriodo.Where(p => p.alu_id == VS_alu_id && p.mtu_id == VS_mtu_id).FirstOrDefault().fav_id; if (CLS_AlunoFrequenciaExternaBO.Salvar(lstAlunoFrequenciaExterna, fav_id, __SessionWEB.__UsuarioWEB.Usuario.ent_id)) { ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Update, string.Format("Lançamento de ausência em outras redes: alu_id: {0} | mtu_id: {1}", VS_alu_id, VS_mtu_id)); __SessionWEB.PostMessages = UtilBO.GetErroMessage("Lançamento de ausência em outras redes realizado com sucesso.", UtilBO.TipoMensagem.Sucesso); RedirecionarPagina("~/Classe/LancamentoFrequenciaExterna/Busca.aspx"); } } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMensagem.Text = UtilBO.GetErroMessage("Erro ao tentar salvar o lançamento de ausência em outras redes.", UtilBO.TipoMensagem.Erro); } }
/// <summary> /// Carrega os dados de lançamento de frequência externa do aluno /// </summary> private void CarregarLancamento() { List <DadosLancamentoFreqExterna> lDadosAluno = CLS_AlunoFrequenciaExternaBO.SelecionaDadosAlunoLancamentoFrequenciaExterna(VS_alu_id, VS_mtu_id); if (lDadosAluno.Any()) { int cur_id = lDadosAluno.First().cur_id; ACA_Curso cur = new ACA_Curso { cur_id = cur_id }; ACA_CursoBO.GetEntity(cur); //Verifica se o nível de ensino do curso é do ensino infantil. bool ensinoInfantil = cur.tne_id == ACA_ParametroAcademicoBO.ParametroValorInt32PorEntidade(eChaveAcademico.TIPO_NIVEL_ENSINO_EDUCACAO_INFANTIL, __SessionWEB.__UsuarioWEB.Usuario.ent_id); #region Períodos var periodos = from DadosAlunoEntradaRede item in VS_ListaDadosPeriodo orderby item.tpc_ordem group item by item.tpc_id into g select new { tpc_id = g.Key , tpc_nome = g.First().cap_descricao , g.First().tpc_ordem }; rptPeriodosNomes.DataSource = periodos; rptPeriodosColunasFixas.DataSource = periodos; rptPeriodosNomesEnriquecimento.DataSource = periodos; rptPeriodosNomesEI.DataSource = periodos; rptPeriodosColunasFixasEnriquecimento.DataSource = periodos; rptPeriodosColunasFixasEI.DataSource = periodos; rptPeriodosNomes.DataBind(); rptPeriodosColunasFixas.DataBind(); rptPeriodosNomesEnriquecimento.DataBind(); rptPeriodosNomesEI.DataBind(); rptPeriodosColunasFixasEnriquecimento.DataBind(); rptPeriodosColunasFixasEI.DataBind(); #endregion Períodos #region Disciplinas bool controleOrdemDisciplinas = ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.CONTROLAR_ORDEM_DISCIPLINAS, __SessionWEB.__UsuarioWEB.Usuario.ent_id); var todasDisciplinas = (from DadosLancamentoFreqExterna item in lDadosAluno where item.tur_id > 0 && item.tud_tipo != (byte)TurmaDisciplinaTipo.Experiencia orderby item.tud_tipo, item.Disciplina group item by item.Disciplina into g select new { tud_id = g.First().tud_id , Disciplina = g.Key , tds_ordem = g.First().tds_ordem , tud_tipo = g.First().tud_tipo , regencia = g.First().tud_tipo == (byte)TurmaDisciplinaTipo.Regencia || g.First().tud_tipo == (byte)TurmaDisciplinaTipo.ComponenteRegencia || (g.First().tud_tipo == (byte)TurmaDisciplinaTipo.DocenteEspecificoComplementacaoRegencia && controleOrdemDisciplinas) ? 1 : 2 , enriquecimentoCurricular = g.First().EnriquecimentoCurricular , frequencias = (from per in periodos.ToList() orderby per.tpc_ordem select new { per.tpc_id , frequencia = (from DadosLancamentoFreqExterna bFrequencia in lDadosAluno where bFrequencia.Disciplina == g.Key && bFrequencia.tpc_id == per.tpc_id select new { bFrequencia.numeroAulas , bFrequencia.numeroFaltas , numeroAulasPrevistas = bFrequencia.possuiLancamentoAulasPrevistas ? bFrequencia.numeroAulasPrevistas.ToString() : "-" , bFrequencia.possuiLancamentoAulasPrevistas , tud_Tipo = g.First().tud_tipo , bFrequencia.tud_id , bFrequencia.mtu_id , bFrequencia.mtd_id , bFrequencia.tud_idRegencia , bFrequencia.mtd_idRegencia , afx_id = bFrequencia.ID , enriquecimentoCurricular = bFrequencia.EnriquecimentoCurricular }).FirstOrDefault() }) }); var experiencias = (from DadosLancamentoFreqExterna item in lDadosAluno where item.tur_id > 0 && item.tud_tipo == (byte)TurmaDisciplinaTipo.Experiencia orderby item.tud_tipo, item.Disciplina group item by item.Disciplina into g select new { tud_id = g.First().tud_id , Disciplina = g.Key , tds_ordem = g.First().tds_ordem , tud_tipo = g.First().tud_tipo , regencia = g.First().tud_tipo == (byte)TurmaDisciplinaTipo.Regencia || g.First().tud_tipo == (byte)TurmaDisciplinaTipo.ComponenteRegencia || (g.First().tud_tipo == (byte)TurmaDisciplinaTipo.DocenteEspecificoComplementacaoRegencia && controleOrdemDisciplinas) ? 1 : 2 , enriquecimentoCurricular = g.First().EnriquecimentoCurricular , frequencias = (from per in periodos.ToList() orderby per.tpc_ordem select new { per.tpc_id , frequencia = (from DadosLancamentoFreqExterna bFrequencia in lDadosAluno where bFrequencia.Disciplina == g.Key && bFrequencia.tpc_id == per.tpc_id select new { bFrequencia.numeroAulas , bFrequencia.numeroFaltas , numeroAulasPrevistas = bFrequencia.possuiLancamentoAulasPrevistas ? bFrequencia.numeroAulasPrevistas.ToString() : "-" , bFrequencia.possuiLancamentoAulasPrevistas , tud_Tipo = g.First().tud_tipo , bFrequencia.tud_id , bFrequencia.mtu_id , bFrequencia.mtd_id , bFrequencia.tud_idRegencia , bFrequencia.mtd_idRegencia , afx_id = bFrequencia.ID , enriquecimentoCurricular = bFrequencia.EnriquecimentoCurricular }).FirstOrDefault() }) }); var disciplinas = (from item in todasDisciplinas where !item.enriquecimentoCurricular //Retira as que são de enriquecimento curricular select item ); // Realiza uma ordenação posterior em que so importa se a disciplina é ou nao regencia/componente da regencia para manter o agrupamento var dispOrdenadas = from item in disciplinas orderby item.regencia, controleOrdemDisciplinas ? item.tds_ordem.ToString() : item.Disciplina select item; // "Agrupa" a frequência das disciplinas componentes e complementares à regência. QtComponenteRegencia = dispOrdenadas.Count(p => ((byte)TurmaDisciplinaTipo.ComponenteRegencia == p.tud_tipo || (byte)TurmaDisciplinaTipo.DocenteEspecificoComplementacaoRegencia == p.tud_tipo)); // "Agrupa" a frequência das disciplinas QtComponentes = dispOrdenadas.Count(); if (!ensinoInfantil) { divDisciplinas.Visible = true; rptDisciplinas.DataSource = dispOrdenadas; rptDisciplinas.DataBind(); } else { divDisciplinas.Visible = false; } #endregion Disciplinas #region Disciplinas de enriquecimento curricular e experiências var disciplinasEnriquecimentoCurricular = (from item in todasDisciplinas where item.enriquecimentoCurricular //Verifica se são de enriquecimento curricular select item ); if (disciplinasEnriquecimentoCurricular.Count() > 0 || experiencias.Count() > 0) { divEnriquecimentoCurricular.Visible = true; // Realiza uma ordenação posterior em que so importa se a disciplina é ou nao regencia/componente da regencia para manter o agrupamento var dispOrdenadasEnriquecimento = from item in disciplinasEnriquecimentoCurricular orderby item.regencia, controleOrdemDisciplinas ? item.tds_ordem.ToString() : item.Disciplina select item; rptDisciplinasEnriquecimentoCurricular.DataSource = dispOrdenadasEnriquecimento; rptDisciplinasEnriquecimentoCurricular.DataBind(); rptDisciplinasExperiencias.DataSource = experiencias.OrderBy(p => controleOrdemDisciplinas ? p.tds_ordem.ToString() : p.Disciplina); rptDisciplinasExperiencias.DataBind(); } else { divEnriquecimentoCurricular.Visible = false; } #endregion Disciplinas de enriquecimento curricular #region Ensino Infantil if (ensinoInfantil) { divEnsinoInfantil.Visible = true; rptDisciplinasEnsinoInfantil.DataSource = dispOrdenadas; rptDisciplinasEnsinoInfantil.DataBind(); } else { divEnsinoInfantil.Visible = false; } #endregion } }