Ejemplo n.º 1
0
        private async Task <List <AulaTitularCJDataControleGradeDto> > ObterAulasTitularCJ(AulaPrevistaBimestreQuantidade aulasPrevistasComponente, long turmaId, long tipoCalendarioId, int bimestre)
        {
            var aulasTitular = await mediator.Send(new ObterAulaReduzidaPorTurmaComponenteEBimestreQuery(turmaId, tipoCalendarioId, aulasPrevistasComponente.ComponenteCurricularId, bimestre));

            var aulasCJ = await mediator.Send(new ObterAulaReduzidaPorTurmaComponenteEBimestreQuery(turmaId, tipoCalendarioId, aulasPrevistasComponente.ComponenteCurricularId, bimestre, true));

            var aulasTitularCJData = new List <AulaTitularCJDataControleGradeDto>();

            var datas = aulasTitular.Select(a => a.Data);

            datas.Union(aulasCJ.Select(a => a.Data));

            foreach (var data in datas.Distinct())
            {
                if (aulasTitular.Where(a => a.Data == data).Any() && aulasCJ.Where(a => a.Data == data).Any())
                {
                    var aulaTitularCJData = new AulaTitularCJDataControleGradeDto()
                    {
                        Data = data.ToString("dd/MM/yyyy")
                    };

                    var divergencias = new List <AulaTitularCJControleGradeDto>();
                    foreach (var aula in aulasTitular.Where(a => a.Data == data))
                    {
                        divergencias.Add(new AulaTitularCJControleGradeDto()
                        {
                            QuantidadeAulas  = aula.Quantidade,
                            ProfessorTitular = $"{aula.Professor} ({aula.ProfessorRf})"
                        });
                    }

                    foreach (var aula in aulasCJ.Where(a => a.Data == data))
                    {
                        divergencias.Add(new AulaTitularCJControleGradeDto()
                        {
                            QuantidadeAulas = aula.Quantidade,
                            ProfessorCJ     = $"{aula.Professor} ({aula.ProfessorRf})"
                        });
                    }

                    aulaTitularCJData.Divergencias = divergencias;
                    aulasTitularCJData.Add(aulaTitularCJData);
                }
            }


            return(aulasTitularCJData);
        }
Ejemplo n.º 2
0
        private async Task <ComponenteCurricularControleGradeDto> MapearParaComponenteDto(AulaPrevistaBimestreQuantidade aulasPrevistasComponente, long turmaId, long tipoCalendarioId, Modalidade modalidadeTurma, int bimestre, DateTime dataInicio, DateTime dataFim)
        {
            var componenteDto = new ComponenteCurricularControleGradeDto();

            componenteDto.Nome           = aulasPrevistasComponente.ComponenteCurricularNome;
            componenteDto.AulasPrevistas = aulasPrevistasComponente.Previstas;
            componenteDto.AulasCriadasProfessorTitular    = aulasPrevistasComponente.CriadasTitular;
            componenteDto.AulasCriadasProfessorSubstituto = aulasPrevistasComponente.CriadasCJ;
            componenteDto.AulasDadasProfessorTitular      = aulasPrevistasComponente.CumpridasTitular;
            componenteDto.AulasDadasProfessorSubstituto   = aulasPrevistasComponente.CumpridasCj;
            componenteDto.Repostas     = aulasPrevistasComponente.Reposicoes;
            componenteDto.Divergencias = await VerificarDivergencias(turmaId, aulasPrevistasComponente.Bimestre, aulasPrevistasComponente.ComponenteCurricularId, aulasPrevistasComponente.Regencia, modalidadeTurma,
                                                                     componenteDto.AulasPrevistas != (aulasPrevistasComponente.CumpridasTitular + aulasPrevistasComponente.CumpridasCj), tipoCalendarioId, componenteDto.AulasPrevistas == 0) ? "Sim" : "Não";

            var detalhamentoDivergencias = new DetalhamentoDivergenciasControleGradeSinteticoDto();

            detalhamentoDivergencias.AulasNormaisExcedido = await mediator.Send(new ObterAulasNormaisExcedidasQuery(turmaId, tipoCalendarioId, aulasPrevistasComponente.ComponenteCurricularId, bimestre));

            detalhamentoDivergencias.AulasTitularCJ = await ObterAulasTitularCJ(aulasPrevistasComponente, turmaId, tipoCalendarioId, bimestre);

            detalhamentoDivergencias.AulasDuplicadas = await mediator.Send(new DetalharAulasDuplicadasPorTurmaComponenteEBimestreQuery(turmaId, aulasPrevistasComponente.ComponenteCurricularId, tipoCalendarioId, aulasPrevistasComponente.Bimestre));

            componenteDto.DetalhamentoDivergencias = detalhamentoDivergencias;
            componenteDto.VisaoSemanal             = await ObterSessaoVisaoSemanal(dataInicio, dataFim, turmaId, aulasPrevistasComponente.ComponenteCurricularId, tipoCalendarioId);

            detalhamentoDivergencias.AulasDiasNaoLetivos = await ObterAulasDiasNaoLetivos(turmaId, tipoCalendarioId, aulasPrevistasComponente.ComponenteCurricularId, bimestre, dataInicio, dataFim);

            return(componenteDto);
        }
Ejemplo n.º 3
0
        private async Task <ComponenteCurricularControleGradeDto> MapearParaComponenteDto(AulaPrevistaBimestreQuantidade aulasPrevistasComponente, long turmaId, long tipoCalendarioId, Modalidade modalidadeTurma)
        {
            var componenteDto = new ComponenteCurricularControleGradeDto();

            componenteDto.Nome           = aulasPrevistasComponente.ComponenteCurricularNome;
            componenteDto.AulasPrevistas = aulasPrevistasComponente.Previstas;
            componenteDto.AulasCriadasProfessorTitular    = aulasPrevistasComponente.CriadasTitular;
            componenteDto.AulasCriadasProfessorSubstituto = aulasPrevistasComponente.CriadasCJ;
            componenteDto.AulasDadasProfessorTitular      = aulasPrevistasComponente.CumpridasTitular;
            componenteDto.AulasDadasProfessorSubstituto   = aulasPrevistasComponente.CumpridasCj;
            componenteDto.Repostas     = aulasPrevistasComponente.Reposicoes;
            componenteDto.Divergencias = await VerificarDivergencias(turmaId, aulasPrevistasComponente.Bimestre, aulasPrevistasComponente.ComponenteCurricularId, aulasPrevistasComponente.Regencia, modalidadeTurma,
                                                                     componenteDto.AulasPrevistas != (aulasPrevistasComponente.CumpridasTitular + aulasPrevistasComponente.CumpridasCj), tipoCalendarioId, componenteDto.AulasPrevistas == 0) ? "Sim" : "Não";

            return(componenteDto);
        }