Пример #1
0
        public async Task <bool> Handle(GerarRelatorioControleGradeAnaliticoCommand request, CancellationToken cancellationToken)
        {
            var dto = new ControleGradeDto();

            var modalidadeCalendario = request.Filtros.ModalidadeTurma == Modalidade.EJA ?
                                       ModalidadeTipoCalendario.EJA : request.Filtros.ModalidadeTurma == Modalidade.Infantil ?
                                       ModalidadeTipoCalendario.Infantil : ModalidadeTipoCalendario.FundamentalMedio;
            var tipoCalendarioId = await mediator.Send(new ObterIdTipoCalendarioPorAnoLetivoEModalidadeQuery(request.Filtros.AnoLetivo, modalidadeCalendario, request.Filtros.Semestre));

            foreach (long turmaId in request.Filtros.Turmas)
            {
                var aulasPrevistasTurma = new List <AulaPrevistaBimestreQuantidade>();
                foreach (long componenteCurricularId in request.Filtros.ComponentesCurriculares)
                {
                    var aulasPrevistasBimestresComponente = await mediator.Send(new ObterAulasPrevistasDadasQuery(turmaId, componenteCurricularId, tipoCalendarioId));

                    if (aulasPrevistasBimestresComponente.Any())
                    {
                        aulasPrevistasTurma.AddRange(aulasPrevistasBimestresComponente);
                    }
                }

                if (aulasPrevistasTurma.Any())
                {
                    dto.Turmas.Add(await MapearParaTurmaDto(aulasPrevistasTurma, request.Filtros.Bimestres, turmaId, tipoCalendarioId, request.Filtros.ModalidadeTurma));
                }
            }

            await MontarCabecalhoRelatorioDto(dto, request.Filtros);

            return(!string.IsNullOrEmpty(await mediator.Send(new GerarRelatorioHtmlParaPdfCommand("RelatorioControleGradeAnalitico", dto, request.CodigoCorrelacao, "", "Relatório Controle de Grade Analítico", true, "RELATÓRIO CONTROLE DE GRADE ANALÍTICO"))));
        }
Пример #2
0
 private string ObterNomeComponente(RelatorioControleGradeFiltroDto filtros, ControleGradeDto dto)
 {
     return(filtros.ComponentesCurriculares.Count() > 1 ?
            "Todos" : !dto.Turmas.Any() ||
            !dto.Turmas.First().Bimestres.Any() ||
            !dto.Turmas.First().Bimestres.First().ComponentesCurriculares.Any() ?
            "" : dto.Turmas.First().Bimestres.First().ComponentesCurriculares.First().Nome);
 }
Пример #3
0
        private async Task MontarCabecalhoRelatorioDto(ControleGradeDto dto, RelatorioControleGradeFiltroDto filtros)
        {
            var turmaId = filtros.Turmas.First();
            var turma   = await mediator.Send(new ObterTurmaResumoComDreUePorIdQuery(turmaId));

            dto.Filtro.Dre      = turma.Ue.Dre.Abreviacao;
            dto.Filtro.Ue       = $"{turma.Ue.CodigoUe} - {turma.Ue.TipoEscola.ShortName()} {turma.Ue.Nome}";
            dto.Filtro.Turma    = filtros.Turmas.Count() > 1 ? "Todas" : $"{turma.Modalidade.ShortName()} - {turma.Nome}";
            dto.Filtro.Bimestre = filtros.Bimestres.Count() == QuantidadePeriodosPorModalidade(turma.Modalidade) ?
                                  "Todos" : string.Join(",", filtros.Bimestres);
            dto.Filtro.ComponenteCurricular = ObterNomeComponente(filtros, dto);
            dto.Filtro.Usuario = filtros.UsuarioNome;
            dto.Filtro.RF      = filtros.UsuarioRf;
        }