/// <summary> /// O método salva os dados do planejamento anual. /// </summary> /// <param name="ltPlanejamento">Lista de dados do planejamento anual.</param> /// <param name="ltHabilidade">Lista de orientações curriculares da turma.</param> /// <param name="ltDiagnostico">Lista de orientações anteriores.</param> /// <param name="banco"></param> /// <returns></returns> public static bool SalvaPlanejamentoTurmaDisciplina ( List <CLS_TurmaDisciplinaPlanejamento> ltPlanejamento, List <CLS_PlanejamentoOrientacaoCurricular> ltHabilidade, List <CLS_PlanejamentoOrientacaoCurricularDiagnostico> ltDiagnostico, TalkDBTransaction banco, bool sincronizacaoDiarioClasse = false ) { bool retorno = true; retorno &= sincronizacaoDiarioClasse ? ltPlanejamento.Aggregate(true, (salvou, entity) => salvou & CLS_TurmaDisciplinaPlanejamentoBO.SaveSincronizacaoDiarioClasse(entity, banco)) : ltPlanejamento.Aggregate(true, (salvou, entity) => salvou & CLS_TurmaDisciplinaPlanejamentoBO.Save(entity, banco)); #region Verifica se algum plano de aula nao pode ser desplanejado //Seleciona as habilidades que seram salvas como nao planejadas List <CLS_PlanejamentoOrientacaoCurricular> ltHabilidadeNaoPlanejadas = ltHabilidade.Where(p => !p.poc_planejado).ToList(); //Carrega as habilidades que estao ligadas a uma aula List <sOrientacoesCurricularesPorDisciplinaBimestreComAulasPlanejadas> listOrientacoesComAula = new List <sOrientacoesCurricularesPorDisciplinaBimestreComAulasPlanejadas>(); ltHabilidadeNaoPlanejadas.Select(p => p.tud_id).Distinct().ToList().ForEach(tud_id => { listOrientacoesComAula.AddRange(CLS_TurmaAulaOrientacaoCurricularBO.AulasPlanejadasSelecionaPorDisciplina(tud_id)); }); //Verifica se tem alguma aula nao planejada para aquele bimestre que esteja ligada a uma aula. var lAux = ( from aula in listOrientacoesComAula join habilidade in ltHabilidadeNaoPlanejadas on new { aula.tud_id, aula.tpc_id, aula.ocr_id } equals new { habilidade.tud_id, habilidade.tpc_id, habilidade.ocr_id } select aula ).Distinct().ToList(); if (lAux.Any()) { throw new ValidationException("Não é possível desplanejar uma habilidade que já tenha sido planejada para uma aula."); } #endregion // Salva os dados na tabela CLS_PlanejamentoOrientacaoCurricular. DataTable dtPlanejamentoOrientacaoCurricular = CLS_PlanejamentoOrientacaoCurricular.TipoTabela_PlanejamentoOrientacaoCurricular(); if (ltHabilidade.Any()) { List <DataRow> ltDrPlanejamentoOrientacaoCurricular = (from CLS_PlanejamentoOrientacaoCurricular planejamentoOrientacaoCurricular in ltHabilidade select PlanejamentoOrientacaoCurricularToDataRow(planejamentoOrientacaoCurricular, dtPlanejamentoOrientacaoCurricular.NewRow())).ToList(); dtPlanejamentoOrientacaoCurricular = ltDrPlanejamentoOrientacaoCurricular.CopyToDataTable(); retorno &= SalvarEmLote(dtPlanejamentoOrientacaoCurricular, banco); } // Salva os dados na tabela CLS_PlanejamentoOrientacaoCurricularDiagnostico. retorno &= CLS_PlanejamentoOrientacaoCurricularDiagnosticoBO.SalvarEmLote(ltDiagnostico, banco); return(retorno); }
public static bool SalvarAulaAnotacoesRecursos ( CLS_TurmaAulaRegencia entity , List <CLS_TurmaAulaRecursoRegencia> listTurmaAulaRecursoRegencia , Guid ent_id , bool turmaIntegral , bool fechamentoAutomatico , List <VigenciaCriacaoAulas> vigenciasCriacaoAulas , CLS_TurmaAula entityTurmaAula = null , List <CLS_TurmaAulaOrientacaoCurricular> listOriCurTurAula = null , Guid usu_id = new Guid() , byte origemLogAula = 0 , byte tipoLogAula = 0 ) { CLS_TurmaAulaRecursoDAO dao = new CLS_TurmaAulaRecursoDAO(); dao._Banco.Open(IsolationLevel.ReadCommitted); try { if (entityTurmaAula != null && !CLS_TurmaAulaBO.Save(entityTurmaAula, dao._Banco)) { return(false); } if (listOriCurTurAula != null) { CLS_TurmaAulaOrientacaoCurricularBO.Salvar(listOriCurTurAula, dao._Banco); } return(SalvarAulaAnotacoesRecursos(entity, listTurmaAulaRecursoRegencia, dao._Banco, ent_id, turmaIntegral, fechamentoAutomatico, vigenciasCriacaoAulas, false, null, usu_id, origemLogAula, tipoLogAula)); } catch (Exception err) { dao._Banco.Close(err); throw; } finally { dao._Banco.Close(); } }
public static bool Salvar(List <CLS_TurmaAulaOrientacaoCurricular> listOriCurTurAula, TalkDBTransaction _Banco) { long tudId = listOriCurTurAula.First().tud_id; long tudIdRegencia = listOriCurTurAula.First().tud_idRegencia; int tauId = listOriCurTurAula.First().tau_id; listOriCurTurAula.Remove(listOriCurTurAula.Find(p => p.ocr_id == 0)); //Carrega Recursos gravados no banco List <CLS_TurmaAulaOrientacaoCurricular> listaBanco = CLS_TurmaAulaOrientacaoCurricularBO.GetSelectBy_TurmaAula(tudId, tudIdRegencia > 0 ? tudIdRegencia : tudId, tauId); //busca registros que devem ser excluidos IEnumerable <Int64> dadosTela = (from CLS_TurmaAulaOrientacaoCurricular item in listOriCurTurAula.AsEnumerable() orderby item.ocr_id descending select item.ocr_id).AsEnumerable(); IEnumerable <Int64> dadosExcluir = (from CLS_TurmaAulaOrientacaoCurricular item in listaBanco.AsEnumerable() orderby item.ocr_id descending select item.ocr_id).Except(dadosTela); IList <Int64> dadosDif = dadosExcluir.ToList(); foreach (Int64 ocrId in dadosDif) { CLS_TurmaAulaOrientacaoCurricularBO.Delete( new CLS_TurmaAulaOrientacaoCurricular { tud_id = tudId, tau_id = tauId, ocr_id = ocrId }); } //busca registro que devem ser alterados IEnumerable <Int64> dadosBanco = (from CLS_TurmaAulaOrientacaoCurricular item in listaBanco.AsEnumerable() orderby item.ocr_id descending select item.ocr_id).AsEnumerable(); IEnumerable <Int64> dadosAlterar = (from CLS_TurmaAulaOrientacaoCurricular item in listOriCurTurAula.AsEnumerable() orderby item.ocr_id descending select item.ocr_id).Intersect(dadosBanco); IList <Int64> dadosAlte = dadosAlterar.ToList(); //Altera recursos já gravados CLS_TurmaAulaOrientacaoCurricular entityAltera; foreach (Int64 ocrId in dadosAlte) { entityAltera = listOriCurTurAula.Find(p => p.ocr_id == ocrId); listOriCurTurAula.Remove(entityAltera); entityAltera.IsNew = false; CLS_TurmaAulaOrientacaoCurricularBO.Save(entityAltera, _Banco); } // Salva recursos utilizados na aula foreach (CLS_TurmaAulaOrientacaoCurricular entity in listOriCurTurAula) { if (entity.Validate()) { CLS_TurmaAulaOrientacaoCurricularBO.Save(entity, _Banco); } else { throw new ValidationException(GestaoEscolarUtilBO.ErrosValidacao(entity)); } } return(true); }