public async Task <PlanoAulaRetornoDto> ObterPlanoAulaPorAula(long aulaId) { if (!await VerificarPlanoAnualExistente(aulaId)) { throw new NegocioException("Não foi possível carregar o plano de aula porque não há plano anual cadastrado"); } PlanoAulaRetornoDto planoAulaDto = new PlanoAulaRetornoDto(); // Busca plano de aula por data e disciplina da aula var plano = await repositorio.ObterPlanoAulaPorAula(aulaId); var aulaDto = await consultasAula.BuscarPorId(aulaId); var atividadeAvaliativa = await repositorioAtividadeAvaliativa.ObterAtividadeAvaliativa(aulaDto.DataAula.Date, aulaDto.DisciplinaId, aulaDto.TurmaId, aulaDto.UeId); if (plano != null) { planoAulaDto = MapearParaDto(plano) ?? new PlanoAulaRetornoDto(); // Carrega objetivos aprendizagem Jurema var planoAnual = await consultasPlanoAnual.ObterPorEscolaTurmaAnoEBimestre(new FiltroPlanoAnualDto() { AnoLetivo = aulaDto.DataAula.Year, Bimestre = (aulaDto.DataAula.Month + 2) / 3, ComponenteCurricularEolId = long.Parse(aulaDto.DisciplinaId), EscolaId = aulaDto.UeId, TurmaId = aulaDto.TurmaId }, seNaoExistirRetornaNovo : false); // Carrega objetivos já cadastrados no plano de aula var objetivosAula = await consultasObjetivosAula.ObterObjetivosPlanoAula(plano.Id); if (planoAnual != null) { // Filtra objetivos anual com os objetivos da aula planoAulaDto.ObjetivosAprendizagemAula = planoAnual.ObjetivosAprendizagem .Where(c => objetivosAula.Any(a => a.ObjetivoAprendizagemPlano.ObjetivoAprendizagemJuremaId == c.Id)) .ToList(); } } var periodoEscolar = consultasPeriodoEscolar.ObterPorTipoCalendario(aulaDto.TipoCalendarioId); var periodo = periodoEscolar.Periodos.FirstOrDefault(p => p.PeriodoInicio <= aulaDto.DataAula && p.PeriodoFim >= aulaDto.DataAula); var planoAnualId = await consultasPlanoAnual.ObterIdPlanoAnualPorAnoEscolaBimestreETurma( aulaDto.DataAula.Year, aulaDto.UeId, long.Parse(aulaDto.TurmaId), periodo.Bimestre, long.Parse(aulaDto.DisciplinaId)); // Carrega informações da aula para o retorno planoAulaDto.PossuiPlanoAnual = planoAnualId > 0; planoAulaDto.AulaId = aulaDto.Id; planoAulaDto.QtdAulas = aulaDto.Quantidade; planoAulaDto.IdAtividadeAvaliativa = atividadeAvaliativa?.Id; planoAulaDto.PodeLancarNota = planoAulaDto.IdAtividadeAvaliativa.HasValue && aulaDto.DataAula.Date <= DateTime.Now.Date; return(planoAulaDto); }
public async Task <IActionResult> Obter(FiltroPlanoAnualDto filtroPlanoAnualDto, [FromServices] IConsultasPlanoAnual consultasPlanoAnual) { return(Ok(await consultasPlanoAnual.ObterPorEscolaTurmaAnoEBimestre(filtroPlanoAnualDto))); }